使用 AI 接入 Licentivo Launch
當前未發布改動采用帳號身份交換,具體職責和遷移約束見 購買期限與帳號 SDK 邊界。Launch 計算購買期限;Licentivo SDK 執行授權。
Launch 后臺的 運營工具 → AI 快速接入 會生成一份可交給 AI 編程工具的英文任務說明。它使用當前商店、已有軟體和已發布套餐的真實公開配置,并要求 AI 安裝公開的 Launch 客戶端包、調用真實 API、把權限檢查放到業務操作中,再完成接入測試。
程序接入頁的 接入檢查與代碼 / AI 快速接入 導航也可進入同一功能。手動開發不需要使用 AI,可直接閱讀 九種語言手動接入指南。
生成前準備
- 在 Launch 中創建軟體和銷售套餐,并把套餐關聯到 Licentivo 產品與授權策略。
- 將套餐發布到要測試的
sandbox或live環境。 - 確認 Launch 的公開地址可被客戶軟體訪問,正式環境使用 HTTPS。
- 在 程序接入 → 接入檢查與代碼 讀取產品資訊,確認產品映射和簽名公鑰通過檢查。
- 明確要保護的真實業務動作,例如
export、save或render,不要只寫“整個軟體”。
沒有完成產品配置時可以生成草稿,但草稿會明確標出待填寫項,不能作為可交付接入配置。完成產品與環境配置后應重新生成。
在后臺生成提示詞
- 選擇 Go、Python、C#、Java、JavaScript / Node.js、Rust、Ruby、C 或 C++。Web 后端方案使用 Go,不另算一種 SDK 語言。
- 選擇 Windows、Linux、macOS 或適用平臺,以及桌面、Web 后端或后臺服務項目。
- 使用英文填寫已有項目結構、啟動方式、界面框架和要保護的業務功能。不要填寫密碼、密鑰、客戶資料或私有源碼。
- 選擇已有軟體和
sandbox/live環境。Launch 自動讀取當前商店地址、Launch 與 Licentivo 的產品映射、環境和簽名公鑰。 - 檢查預覽中的包版本、安裝命令、文件鏈接和已填寫連接函數,然后復制或下載提示詞。
- 把提示詞交給自己的 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 完成并報告以下內容:
- 檢查現有項目的語言版本、依賴管理、啟動與退出流程,以及需要保護的真實業務操作。
- 使用上面的固定版本命令安裝一個 Launch 包,并核對對應語言 README 中的真實接口。
- 加入客戶帳號登錄、錯誤提示和安全會話恢復,不在源碼或日志中保存密碼和完整許可證。
- 使用后臺提供的連接函數初始化,不自行發明產品編號、簽名公鑰或配置文件。
- 在每個受保護業務動作的執行位置使用
RunFeature或對應語言方法,并正確處理計次與重試。 - 區分帳號失敗、郵箱待驗證、權益同步中、未購買、到期、暫停、設備已滿、網路故障和離線到期。
- 實現普通關閉、帳號退出和明確設備釋放,并按商店、帳號、產品和環境隔離快取。
- 運行適合該項目的編譯與測試,最后列出修改文件、功能映射、實際結果和客戶驗收步驟。
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