feat(sdk): add developer project tooling

docs(rfc): propose SDK developer project tooling

feat: rename / docs

ci: fix windows gates

docs: revert
This commit is contained in:
imccyu
2026-07-15 18:17:38 +08:00
parent 5a8466b774
commit 42b07a7022
115 changed files with 11315 additions and 27 deletions

View File

@@ -0,0 +1 @@
Created {{name}} in {{directory}}

View File

@@ -0,0 +1 @@
Run {{packageManager}} {{installArgs}} and then build the project?

View File

@@ -0,0 +1 @@
Next: cd {{directory}} && {{packageManager}} start

View File

@@ -0,0 +1,2 @@
Project files are ready, but setup failed: {{error}}
Retry: cd {{directory}} && {{packageManager}} {{installArgs}} && {{packageManager}} {{buildArgs}}

View File

@@ -0,0 +1,11 @@
Usage: create-sdk [directory] [options]
Options:
--description <text>
--provider <deepseek|custom>
--base-url <url>
--api-key <key>
--model <name>
--interface <acp|stdio|embed>
--pm <npm|pnpm|yarn>
--install / --no-install

View File

@@ -0,0 +1,59 @@
/**
* Package-owned terminal templates for create-sdk.
*
* @module @deepseek-ai/create-sdk/templates/create-templates
*/
import {
TextTemplate,
type PackageManager,
type PackageManagerName,
} from '@deepseek-ai/dsh-helper'
interface CreatedTemplateModel {
name: string
directory: string
}
interface NextStepsTemplateModel {
directory: string
packageManager: PackageManagerName
}
interface SetupFailureTemplateModel extends PackageManagerTemplateModel {
directory: string
error: string
}
/** Package-manager execution data consumed by create-sdk templates. */
export interface PackageManagerTemplateModel {
packageManager: PackageManagerName
installArgs: string
buildArgs: string
}
/**
* Map package-manager execution data into terminal-template fields.
* @param manager - selected package-manager strategy.
* @returns executable name and operation arguments.
*/
export function packageManagerTemplateModel(manager: PackageManager): PackageManagerTemplateModel {
return {
packageManager: manager.name,
installArgs: manager.installCommand().join(' '),
buildArgs: manager.buildCommand().join(' '),
}
}
/** Compiled create-sdk terminal templates. */
export const CREATE_TEMPLATES = {
usage: TextTemplate.fromFile<Record<string, never>>(new URL('./assets/usage.txt.tpl', import.meta.url)),
created: TextTemplate.fromFile<CreatedTemplateModel>(new URL('./assets/created.txt.tpl', import.meta.url)),
nextSteps: TextTemplate.fromFile<NextStepsTemplateModel>(new URL('./assets/next-steps.txt.tpl', import.meta.url)),
setupFailure: TextTemplate.fromFile<SetupFailureTemplateModel>(
new URL('./assets/setup-failure.txt.tpl', import.meta.url),
),
installQuestion: TextTemplate.fromFile<PackageManagerTemplateModel>(
new URL('./assets/install-question.txt.tpl', import.meta.url),
),
} as const