跳到正文
返回 Launch 文件

下載 MarkdownGitHub 原始文件

使用 AI 接入 Licentivo Launch

當前未發布改動采用帳號身份交換,具體職責和遷移約束見 購買期限與帳號 SDK 邊界。Launch 計算購買期限;Licentivo SDK 執行授權。

Launch 后臺的 運營工具 → AI 快速接入 會生成一份可交給 AI 編程工具的英文任務說明。它使用當前商店、已有軟體和已發布套餐的真實公開配置,并要求 AI 安裝公開的 Launch 客戶端包、調用真實 API、把權限檢查放到業務操作中,再完成接入測試。

程序接入頁的 接入檢查與代碼 / AI 快速接入 導航也可進入同一功能。手動開發不需要使用 AI,可直接閱讀 九種語言手動接入指南。

生成前準備

  1. 在 Launch 中創建軟體和銷售套餐,并把套餐關聯到 Licentivo 產品與授權策略。
  2. 將套餐發布到要測試的 sandbox 或 live 環境。
  3. 確認 Launch 的公開地址可被客戶軟體訪問,正式環境使用 HTTPS。
  4. 在 程序接入 → 接入檢查與代碼 讀取產品資訊,確認產品映射和簽名公鑰通過檢查。
  5. 明確要保護的真實業務動作,例如 export、save 或 render,不要只寫“整個軟體”。

沒有完成產品配置時可以生成草稿,但草稿會明確標出待填寫項,不能作為可交付接入配置。完成產品與環境配置后應重新生成。

在后臺生成提示詞

  1. 選擇 Go、Python、C#、Java、JavaScript / Node.js、Rust、Ruby、C 或 C++。Web 后端方案使用 Go,不另算一種 SDK 語言。
  2. 選擇 Windows、Linux、macOS 或適用平臺,以及桌面、Web 后端或后臺服務項目。
  3. 使用英文填寫已有項目結構、啟動方式、界面框架和要保護的業務功能。不要填寫密碼、密鑰、客戶資料或私有源碼。
  4. 選擇已有軟體和 sandbox / live 環境。Launch 自動讀取當前商店地址、Launch 與 Licentivo 的產品映射、環境和簽名公鑰。
  5. 檢查預覽中的包版本、安裝命令、文件鏈接和已填寫連接函數,然后復制或下載提示詞。
  6. 把提示詞交給自己的 AI 編程工具,讓它在你的工程中完成修改、編譯和本地測試。

Launch 只在瀏覽器中生成文本。它不會自動連接任何 AI 服務,不會上傳項目,也不會代替開發者執行生成的程序。

提示詞會告訴 AI 在哪里下載 SDK

當前 0.1.6 的九種語言公開安裝驗證已全部通過(9/9),下列注冊表命令和原生下載均已驗證。Java 的 Maven Central 文件及四份簽名、Rust 的 crates.io 精確版本和全部后臺生成的初始化代碼也已完成獨立消費者檢查;v0.1.6 GitHub Release 同時提供原生包和離線文件。

生成的提示詞必須包含與所選語言對應的、固定版本的公開安裝方式:

Go:         go get github.com/spf86/licentivo-launch-sdk/pkg/launchclient@v0.1.6
Python:     python -m pip install licentivo-launch==0.1.6
C# / .NET: dotnet add package Licentivo.Launch --version 0.1.6
Java:       com.licentivo.launch:launch-client:0.1.6
Node.js:    npm install @licentivo/launch@0.1.6
Rust:       cargo add licentivo-launch@=0.1.6
Ruby:       gem install licentivo-launch --version 0.1.6
C / C++:    https://github.com/spf86/licentivo-launch-sdk/releases/tag/v0.1.6

公開源碼、各語言 README 和當前發布狀態位于:

只安裝所選語言的 Launch 包。v0.1.6 已內置官方 Licentivo SDK v0.11.6、預設適配器和鏈接配置,不再單獨安裝第二份官方 SDK。

提示詞會告訴 AI 如何接入

已配置的提示詞包含后臺生成的連接函數。該函數已經填入商店公開地址、Launch 產品與 Licentivo 產品映射、簽名公鑰和支付環境。AI 不需要猜測或手填兩個內部產品編號,也不需要創建 launch-config.json 或 product.json。

服務端的私有 config.yaml 只用于運行 Launch 網站,絕不能放進客戶應用、提示詞或安裝包。

AI 必須按以下生命周期修改客戶軟體:

Connect/connect → Login or Restore → RunFeature → Logout / Close
                                      └──────────→ ReleaseDevice (explicit device unlink only)
  • Connect/connect 創建 Launch 客戶端,并初始化內置官方 SDK;它本身不代表帳號已經登錄或功能已經授權。
  • Login 使用客戶在當前商店注冊的郵箱和密碼取得該帳號的產品憑據。
  • Restore 從安全存儲恢復已記住的會話;沒有會話時顯示登錄,明確拒絕不能當作離線成功。
  • RunFeature 必須包住導出、保存、渲染或后臺任務等真實業務動作。只禁用按鈕不能替代執行位置的檢查。
  • Logout 先調用官方 SDK 統一退出,再清理帳號會話;ReleaseDevice 是同一明確退出流程的兼容入口。Close 普通關閉保留設備綁定。
  • 客戶端對象應在應用運行期間保持存活,以便 SDK 執行心跳、浮動席位和運行時規則。

Web 應用只在可信后端執行授權檢查。Node.js / Electron 將憑據和 SDK 放在主進程或服務端,瀏覽器與渲染進程不保存授權秘密。

AI 應交付什么

提示詞要求 AI 完成并報告以下內容:

  1. 檢查現有項目的語言版本、依賴管理、啟動與退出流程,以及需要保護的真實業務操作。
  2. 使用上面的固定版本命令安裝一個 Launch 包,并核對對應語言 README 中的真實接口。
  3. 加入客戶帳號登錄、錯誤提示和安全會話恢復,不在源碼或日志中保存密碼和完整許可證。
  4. 使用后臺提供的連接函數初始化,不自行發明產品編號、簽名公鑰或配置文件。
  5. 在每個受保護業務動作的執行位置使用 RunFeature 或對應語言方法,并正確處理計次與重試。
  6. 區分帳號失敗、郵箱待驗證、權益同步中、未購買、到期、暫停、設備已滿、網路故障和離線到期。
  7. 實現普通關閉、帳號退出和明確設備釋放,并按商店、帳號、產品和環境隔離快取。
  8. 運行適合該項目的編譯與測試,最后列出修改文件、功能映射、實際結果和客戶驗收步驟。

AI 輸出代碼后,開發者仍需核對功能名與 Licentivo 策略完全一致,并在真實的 sandbox 商店帳號上完成端到端測試。

不納入提示詞的內容

提示詞只包含可公開的商店來源、產品映射、環境、包版本和簽名公鑰。以下內容不得進入提示詞:

  • 客戶郵箱、密碼、登錄會話和刷新令牌;
  • 完整許可證、設備憑據和本地授權快取;
  • Licentivo 管理 API Key;
  • Stripe、PayPal、Waffo 或 Paddle 密鑰;
  • 資料庫連接、master_key 和服務端 config.yaml;
  • 不需要交給外部工具的私有源碼、業務資料或日志。

Launch 的公開配置檢查、AI 草稿和本地編譯都不能證明真實支付、許可證簽發或外部激活已經成功。支付沙箱、商店帳號和 Licentivo 環境需單獨驗收。

接入后的驗收清單

  • 新客戶能夠登錄,未驗證郵箱與錯誤密碼得到明確但不過度泄露資訊的提示。
  • 已購買帳號可以運行目標功能;未購買、到期或暫停帳號無法執行同一業務代碼。
  • 重啟后只有成功恢復會話并通過授權檢查時才能繼續使用。
  • 有效離線策略可以工作,離線許可到期后拒絕;明確的 401/403/404 不降級為離線成功。
  • 功能次數只在業務成功時正確提交,失敗與重試不會重復扣減。
  • 普通關閉保留設備綁定;明確退出先調用官方 SDK 統一退出,保留待撤銷日志并報告真實結果。
  • 浮動席位心跳在應用運行時持續,非正常退出后的回收時間符合當前授權策略。
  • 切換商店、帳號、產品或環境不會復用另一身份的快取。

更完整的自動與外部驗收邊界見 acceptance.md。

在源碼分發包中使用提示詞生成器

licentivo-launch-0.1.6-source.zip 保留下列文件,便于在自己的工具中生成相同結構的提示詞:

  • internal/httpapi/web/integration-prompts.js:不依賴頁面或服務端的提示詞生成模塊;
  • scripts/integration-prompts.test.mjs:本地 Node 測試;
  • internal/httpapi/web/integration-state.js 與 scripts/integration-state.test.mjs:配置草稿隔離和舊驗證結果清理;
  • 本指南、各語言接入包、示例和驗收說明。

模塊導出 integrationTargets 與 buildIntegrationPrompt(options)。選項包括 language、appKind、platform、projectNotes、feature、merchantOrigin、environment 和已驗證的 report,返回 { text, ready, title, code }。不提供 report 時只生成草稿;不能通過手工篡改報告繞過公開配置檢查。

在支持 ES 模塊的開發工具中可以從源碼包根目錄生成本地草稿:

@'
import { readFile, writeFile } from 'node:fs/promises';
const source = await readFile('internal/httpapi/web/integration-prompts.js', 'utf8');
const { buildIntegrationPrompt } = await import(
  'data:text/javascript;base64,' + Buffer.from(source).toString('base64')
);
const prompt = buildIntegrationPrompt({
  language: 'python',
  appKind: 'desktop',
  platform: 'windows',
  projectNotes: 'Existing Python desktop application. Add account sign-in and protect report exports.',
  feature: 'export'
});
await writeFile('integration-prompt.md', prompt.text, 'utf8');
console.log(prompt.title);
'@ | node --input-type=module

這個命令只生成未配置草稿,不調用 AI 或授權服務。真實接入應回到自己的 Launch 實例,選擇已有軟體和環境重新生成帶公開配置的版本。

驗證本地生成器:

node --test scripts/integration-prompts.test.mjs scripts/integration-state.test.mjs