@lark-base-open/base-database-cli 1.3.9 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +75 -0
- package/README.md +119 -15
- package/THIRD_PARTY_LICENSES.json +1662 -0
- package/config-schema.json +64 -3
- package/data/template-hmr-scripts.json +9 -0
- package/data/template-index-html/17e698eef687ece8f1628e3e2c4801da5e7233faa87076b3424acde8df57b825.html +24 -0
- package/dist/agent-tools-guide.d.ts +29 -0
- package/dist/agent-tools-guide.d.ts.map +1 -0
- package/dist/agent-tools-guide.js +169 -0
- package/dist/agent-tools-guide.js.map +1 -0
- package/dist/agent-tools-skill.d.ts +16 -0
- package/dist/agent-tools-skill.d.ts.map +1 -0
- package/dist/agent-tools-skill.js +183 -0
- package/dist/agent-tools-skill.js.map +1 -0
- package/dist/agent-tools.d.ts +20 -0
- package/dist/agent-tools.d.ts.map +1 -0
- package/dist/agent-tools.js +137 -0
- package/dist/agent-tools.js.map +1 -0
- package/dist/ai-functions.d.ts +10 -0
- package/dist/ai-functions.d.ts.map +1 -1
- package/dist/ai-functions.js +264 -212
- package/dist/ai-functions.js.map +1 -1
- package/dist/app-builder/core.d.mts +37 -0
- package/dist/app-builder/core.d.mts.map +1 -0
- package/dist/app-builder/core.mjs +673 -0
- package/dist/app-builder/core.mjs.map +1 -0
- package/dist/app-builder/package.json +1 -0
- package/dist/app-builder/schema.d.ts +4 -0
- package/dist/app-builder/schema.d.ts.map +1 -0
- package/dist/app-builder/schema.js +72 -0
- package/dist/app-builder/schema.js.map +1 -0
- package/dist/archive.d.ts +22 -2
- package/dist/archive.d.ts.map +1 -1
- package/dist/archive.js +311 -74
- package/dist/archive.js.map +1 -1
- package/dist/auth.d.ts +2 -2
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +13 -8
- package/dist/auth.js.map +1 -1
- package/dist/build-server.d.ts +25 -0
- package/dist/build-server.d.ts.map +1 -0
- package/dist/build-server.js +32 -0
- package/dist/build-server.js.map +1 -0
- package/dist/business-update-notice.d.ts +37 -0
- package/dist/business-update-notice.d.ts.map +1 -0
- package/dist/business-update-notice.js +24 -0
- package/dist/business-update-notice.js.map +1 -0
- package/dist/check.d.ts +11 -0
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +85 -15
- package/dist/check.js.map +1 -1
- package/dist/cloud-build-diagnostic.d.ts +9 -0
- package/dist/cloud-build-diagnostic.d.ts.map +1 -0
- package/dist/cloud-build-diagnostic.js +65 -0
- package/dist/cloud-build-diagnostic.js.map +1 -0
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +41 -11
- package/dist/config.js.map +1 -1
- package/dist/contract-extractor.d.ts +21 -0
- package/dist/contract-extractor.d.ts.map +1 -0
- package/dist/contract-extractor.js +260 -0
- package/dist/contract-extractor.js.map +1 -0
- package/dist/contract-worker.d.ts +12 -0
- package/dist/contract-worker.d.ts.map +1 -0
- package/dist/contract-worker.js +90 -0
- package/dist/contract-worker.js.map +1 -0
- package/dist/dependency-policy.d.ts.map +1 -1
- package/dist/dependency-policy.js +6 -1
- package/dist/dependency-policy.js.map +1 -1
- package/dist/deploy.d.ts +20 -1
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +181 -52
- package/dist/deploy.js.map +1 -1
- package/dist/dev-bootstrap.d.ts +5 -0
- package/dist/dev-bootstrap.d.ts.map +1 -0
- package/dist/dev-bootstrap.js +185 -0
- package/dist/dev-bootstrap.js.map +1 -0
- package/dist/dev-events.d.ts +24 -0
- package/dist/dev-events.d.ts.map +1 -0
- package/dist/dev-events.js +67 -0
- package/dist/dev-events.js.map +1 -0
- package/dist/dev-pairing.d.ts +4 -0
- package/dist/dev-pairing.d.ts.map +1 -0
- package/dist/dev-pairing.js +54 -0
- package/dist/dev-pairing.js.map +1 -0
- package/dist/dev-url.d.ts +4 -0
- package/dist/dev-url.d.ts.map +1 -0
- package/dist/dev-url.js +29 -0
- package/dist/dev-url.js.map +1 -0
- package/dist/dev-vite.d.ts +9 -0
- package/dist/dev-vite.d.ts.map +1 -0
- package/dist/dev-vite.js +237 -0
- package/dist/dev-vite.js.map +1 -0
- package/dist/dev-watch.d.ts +33 -0
- package/dist/dev-watch.d.ts.map +1 -0
- package/dist/dev-watch.js +246 -0
- package/dist/dev-watch.js.map +1 -0
- package/dist/dev.d.ts +24 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +244 -0
- package/dist/dev.js.map +1 -0
- package/dist/development-pairing.generated.d.ts +12 -0
- package/dist/development-pairing.generated.d.ts.map +1 -0
- package/dist/development-pairing.generated.js +13 -0
- package/dist/development-pairing.generated.js.map +1 -0
- package/dist/diagnostic-platforms.d.ts +3 -0
- package/dist/diagnostic-platforms.d.ts.map +1 -0
- package/dist/diagnostic-platforms.js +3 -0
- package/dist/diagnostic-platforms.js.map +1 -0
- package/dist/diagnostic-schema.d.ts +151 -0
- package/dist/diagnostic-schema.d.ts.map +1 -0
- package/dist/diagnostic-schema.js +129 -0
- package/dist/diagnostic-schema.js.map +1 -0
- package/dist/diagnostics.d.ts +78 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +333 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/distribution-commands.d.ts.map +1 -1
- package/dist/distribution-commands.js +6 -2
- package/dist/distribution-commands.js.map +1 -1
- package/dist/distribution-npm.d.ts +2 -2
- package/dist/distribution-npm.d.ts.map +1 -1
- package/dist/distribution-npm.js +14 -1
- package/dist/distribution-npm.js.map +1 -1
- package/dist/environment-variables.d.ts.map +1 -1
- package/dist/environment-variables.js +2 -1
- package/dist/environment-variables.js.map +1 -1
- package/dist/function-contracts.d.ts +40 -0
- package/dist/function-contracts.d.ts.map +1 -0
- package/dist/function-contracts.js +357 -0
- package/dist/function-contracts.js.map +1 -0
- package/dist/function-description.d.ts +11 -4
- package/dist/function-description.d.ts.map +1 -1
- package/dist/function-description.js +22 -12
- package/dist/function-description.js.map +1 -1
- package/dist/function-input-types.d.ts +6 -4
- package/dist/function-input-types.d.ts.map +1 -1
- package/dist/function-input-types.js +97 -135
- package/dist/function-input-types.js.map +1 -1
- package/dist/function-params.d.ts +53 -0
- package/dist/function-params.d.ts.map +1 -0
- package/dist/function-params.js +184 -0
- package/dist/function-params.js.map +1 -0
- package/dist/function-schema.d.ts +14 -0
- package/dist/function-schema.d.ts.map +1 -1
- package/dist/function-schema.js +99 -9
- package/dist/function-schema.js.map +1 -1
- package/dist/init-journal.d.ts +1 -0
- package/dist/init-journal.d.ts.map +1 -1
- package/dist/init-journal.js +21 -7
- package/dist/init-journal.js.map +1 -1
- package/dist/init.d.ts +1 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +55 -5
- package/dist/init.js.map +1 -1
- package/dist/lark-cli-error.d.ts +13 -2
- package/dist/lark-cli-error.d.ts.map +1 -1
- package/dist/lark-cli-error.js +54 -13
- package/dist/lark-cli-error.js.map +1 -1
- package/dist/lark-cli-passthrough.d.ts +9 -0
- package/dist/lark-cli-passthrough.d.ts.map +1 -0
- package/dist/lark-cli-passthrough.js +101 -0
- package/dist/lark-cli-passthrough.js.map +1 -0
- package/dist/lark-cli.d.ts +5 -2
- package/dist/lark-cli.d.ts.map +1 -1
- package/dist/lark-cli.js +96 -29
- package/dist/lark-cli.js.map +1 -1
- package/dist/legacy-function-input-renderer.d.ts +6 -0
- package/dist/legacy-function-input-renderer.d.ts.map +1 -0
- package/dist/legacy-function-input-renderer.js +175 -0
- package/dist/legacy-function-input-renderer.js.map +1 -0
- package/dist/link-guard-check.d.ts +12 -0
- package/dist/link-guard-check.d.ts.map +1 -0
- package/dist/link-guard-check.js +138 -0
- package/dist/link-guard-check.js.map +1 -0
- package/dist/managed-agent-docs.d.ts +14 -0
- package/dist/managed-agent-docs.d.ts.map +1 -0
- package/dist/managed-agent-docs.js +172 -0
- package/dist/managed-agent-docs.js.map +1 -0
- package/dist/mutation-schema.d.ts +6 -0
- package/dist/mutation-schema.d.ts.map +1 -1
- package/dist/mutation-schema.js +6 -0
- package/dist/mutation-schema.js.map +1 -1
- package/dist/mutation.d.ts +4 -1
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +17 -2
- package/dist/mutation.js.map +1 -1
- package/dist/npm.d.ts +1 -0
- package/dist/npm.d.ts.map +1 -1
- package/dist/npm.js +28 -0
- package/dist/npm.js.map +1 -1
- package/dist/preview-receipt.d.ts +0 -2
- package/dist/preview-receipt.d.ts.map +1 -1
- package/dist/preview-receipt.js +0 -28
- package/dist/preview-receipt.js.map +1 -1
- package/dist/process.d.ts +1 -0
- package/dist/process.d.ts.map +1 -1
- package/dist/process.js +25 -0
- package/dist/process.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +239 -26
- package/dist/program.js.map +1 -1
- package/dist/project-build.d.ts +2 -1
- package/dist/project-build.d.ts.map +1 -1
- package/dist/project-build.js +53 -16
- package/dist/project-build.js.map +1 -1
- package/dist/project-capabilities.d.ts +8 -0
- package/dist/project-capabilities.d.ts.map +1 -0
- package/dist/project-capabilities.js +47 -0
- package/dist/project-capabilities.js.map +1 -0
- package/dist/project-context.d.ts +66 -0
- package/dist/project-context.d.ts.map +1 -1
- package/dist/project-context.js +68 -6
- package/dist/project-context.js.map +1 -1
- package/dist/project-layout.d.ts +11 -0
- package/dist/project-layout.d.ts.map +1 -1
- package/dist/project-layout.js +63 -1
- package/dist/project-layout.js.map +1 -1
- package/dist/public-exports.d.ts +5 -0
- package/dist/public-exports.d.ts.map +1 -0
- package/dist/public-exports.js +76 -0
- package/dist/public-exports.js.map +1 -0
- package/dist/public-sql-error.d.ts +3 -1
- package/dist/public-sql-error.d.ts.map +1 -1
- package/dist/public-sql-error.js +5 -2
- package/dist/public-sql-error.js.map +1 -1
- package/dist/pull.d.ts +1 -0
- package/dist/pull.d.ts.map +1 -1
- package/dist/pull.js +103 -20
- package/dist/pull.js.map +1 -1
- package/dist/sdk-codegen.d.ts +16 -0
- package/dist/sdk-codegen.d.ts.map +1 -0
- package/dist/sdk-codegen.js +181 -0
- package/dist/sdk-codegen.js.map +1 -0
- package/dist/sdk-install.d.ts +4 -0
- package/dist/sdk-install.d.ts.map +1 -0
- package/dist/sdk-install.js +33 -0
- package/dist/sdk-install.js.map +1 -0
- package/dist/skill-frontmatter.d.ts +5 -0
- package/dist/skill-frontmatter.d.ts.map +1 -0
- package/dist/skill-frontmatter.js +28 -0
- package/dist/skill-frontmatter.js.map +1 -0
- package/dist/skill.d.ts +2 -1
- package/dist/skill.d.ts.map +1 -1
- package/dist/skill.js +18 -12
- package/dist/skill.js.map +1 -1
- package/dist/source-format.d.ts +10 -0
- package/dist/source-format.d.ts.map +1 -0
- package/dist/source-format.js +49 -0
- package/dist/source-format.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/unified-functions.d.ts +22 -0
- package/dist/unified-functions.d.ts.map +1 -0
- package/dist/unified-functions.js +114 -0
- package/dist/unified-functions.js.map +1 -0
- package/dist/updates.d.ts +13 -1
- package/dist/updates.d.ts.map +1 -1
- package/dist/updates.js +65 -29
- package/dist/updates.js.map +1 -1
- package/dist/workspace-fingerprint.d.ts.map +1 -1
- package/dist/workspace-fingerprint.js +5 -0
- package/dist/workspace-fingerprint.js.map +1 -1
- package/package.json +17 -5
- package/skills/lark-base-database/SKILL.md +21 -55
- package/skills/lark-base-database/references/agent-tool-design.md +181 -0
- package/skills/lark-base-database/references/agent-tools.md +101 -0
- package/skills/lark-base-database/references/ai-function.md +80 -186
- package/skills/lark-base-database/references/database-function-limitations.md +12 -4
- package/skills/lark-base-database/references/database-function.md +49 -21
- package/skills/lark-base-database/references/development.md +81 -109
- package/skills/lark-base-database/references/environment-variables.md +2 -2
- package/skills/lark-base-database/references/faas.md +43 -16
- package/skills/lark-base-database/references/file-transfer.md +10 -33
- package/skills/lark-base-database/references/frontend-design-guide.md +1 -1
- package/skills/lark-base-database/references/legacy-ai-function.md +120 -0
- package/skills/lark-base-database/references/legacy-development.md +156 -0
- package/skills/lark-base-database/references/legacy-file-transfer.md +68 -0
- package/skills/lark-base-database/references/mutations.md +38 -29
- package/skills/lark-base-database/references/notifications.md +1 -1
- package/skills/lark-base-database/references/permission-design.md +11 -5
- package/skills/lark-base-database/references/release.md +22 -7
- package/skills/lark-base-database/references/verification.md +55 -16
- package/skills/lark-base-database/references/workspace-migration.md +86 -0
- package/skills/lark-base-database/references/workspace.md +55 -44
- package/templates/database-starter/README.md +2 -0
- package/templates/database-starter/database-functions/README.md +2 -2
- package/templates/database-starter/mutations/README.md +2 -2
- package/templates/database-starter/page/README.md +5 -4
- package/templates/database-starter/page/src/examples/ai-function/TextStreamOperation.tsx +6 -6
- package/templates/database-starter/page/src/lib/attachment-image.tsx +19 -5
- package/templates/database-starter/page/src/lib/database-runtime-attachment.test.ts +124 -5
- package/templates/database-starter/page/src/lib/database-runtime.test.ts +2 -2
- package/templates/database-starter/page/src/lib/database-runtime.ts +77 -13
- package/templates/database-starter/server-functions/scripts/run-tsc.mjs +3 -2
- package/templates/database-starter-v2/README.md +25 -0
- package/templates/database-starter-v2/base-app.config.ts +10 -0
- package/templates/database-starter-v2/database-functions/README.md +1 -0
- package/templates/database-starter-v2/gitignore +6 -0
- package/templates/database-starter-v2/mutations/README.md +1 -0
- package/templates/database-starter-v2/package-lock.json +2239 -0
- package/templates/database-starter-v2/package.json +18 -0
- package/templates/database-starter-v2/page/index.html +2 -0
- package/templates/database-starter-v2/page/package.json +25 -0
- package/templates/database-starter-v2/page/src/App.tsx +12 -0
- package/templates/database-starter-v2/page/src/generated/README.md +1 -0
- package/templates/database-starter-v2/page/src/index.css +1 -0
- package/templates/database-starter-v2/page/src/lib/date-time.ts +61 -0
- package/templates/database-starter-v2/page/src/main.tsx +6 -0
- package/templates/database-starter-v2/page/tsconfig.json +19 -0
- package/templates/database-starter-v2/page/vite.config.ts +3 -0
- package/templates/database-starter-v2/prettierignore +3 -0
- package/templates/database-starter-v2/server/functions/README.md +1 -0
- package/templates/database-starter-v2/server/functions/hello/contract.ts +5 -0
- package/templates/database-starter-v2/server/functions/hello/index.ts +7 -0
- package/templates/database-starter-v2/server/functions/hello/meta.json +1 -0
- package/templates/database-starter-v2/server/generated/runtime-profile.ts +5 -0
- package/templates/database-starter-v2/server/package.json +17 -0
- package/templates/database-starter-v2/server/tsconfig.json +14 -0
package/dist/preview-receipt.js
CHANGED
|
@@ -6,33 +6,6 @@ const PREVIEW_RECEIPT_VERSION = 2;
|
|
|
6
6
|
function statePath(workspace, name) {
|
|
7
7
|
return join(workspace, '.base-database-cli/state', name);
|
|
8
8
|
}
|
|
9
|
-
function builderTurnContext() {
|
|
10
|
-
const contextPath = process.env.BASE_SITE_BUILDER_TURN_CONTEXT_FILE?.trim();
|
|
11
|
-
if (!contextPath)
|
|
12
|
-
return undefined;
|
|
13
|
-
let value;
|
|
14
|
-
try {
|
|
15
|
-
value = JSON.parse(readFileSync(contextPath, 'utf8'));
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
throw new Error('Builder turn context is unavailable or invalid');
|
|
19
|
-
}
|
|
20
|
-
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
21
|
-
throw new Error('Builder turn context must be an object');
|
|
22
|
-
}
|
|
23
|
-
const context = value;
|
|
24
|
-
if (typeof context.builderTurnId !== 'string' ||
|
|
25
|
-
context.builderTurnId.trim() === '' ||
|
|
26
|
-
context.builderTurnId.length > 256 ||
|
|
27
|
-
!Number.isSafeInteger(context.builderTurnGeneration) ||
|
|
28
|
-
(context.builderTurnGeneration ?? 0) < 1) {
|
|
29
|
-
throw new Error('Builder turn context is missing a valid turn ID or generation');
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
builderTurnId: context.builderTurnId,
|
|
33
|
-
builderTurnGeneration: context.builderTurnGeneration,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
9
|
function receiptForPreview(artifact, workspaceInput) {
|
|
37
10
|
return {
|
|
38
11
|
...artifact,
|
|
@@ -40,7 +13,6 @@ function receiptForPreview(artifact, workspaceInput) {
|
|
|
40
13
|
workspaceInputFingerprint: workspaceInput.sha256,
|
|
41
14
|
workspaceInputFingerprintAlgorithm: workspaceInput.algorithm,
|
|
42
15
|
workspaceInputFileCount: workspaceInput.fileCount,
|
|
43
|
-
...(builderTurnContext() ?? {}),
|
|
44
16
|
};
|
|
45
17
|
}
|
|
46
18
|
function writeJSONAtomically(path, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview-receipt.js","sourceRoot":"","sources":["../src/preview-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,MAAM,EACN,QAAQ,EACR,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACL,sCAAsC,EACtC,6CAA6C,EAC7C,qCAAqC,EACrC,0BAA0B,EAC1B,gCAAgC,EAChC,yBAAyB,GAE1B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,uBAAuB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"preview-receipt.js","sourceRoot":"","sources":["../src/preview-receipt.ts"],"names":[],"mappings":"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"}
|
package/dist/process.d.ts
CHANGED
package/dist/process.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"AAEA,qBAAa,qBAAsB,SAAQ,KAAK;IAG5C,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAChC,QAAQ,CAAC,MAAM;IAJjB,YACE,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,MAAM,SAAK,EAIrB;CACF;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GACL,MAAM,CAmBR;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"AAEA,qBAAa,qBAAsB,SAAQ,KAAK;IAG5C,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAChC,QAAQ,CAAC,MAAM;IAJjB,YACE,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,MAAM,SAAK,EAIrB;CACF;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GACL,MAAM,CAmBR;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACjB,GACL,OAAO,CAAC,IAAI,CAAC,CA4Df"}
|
package/dist/process.js
CHANGED
|
@@ -32,16 +32,39 @@ export function runCommand(command, args, options = {}) {
|
|
|
32
32
|
}
|
|
33
33
|
export function runCommandAsync(command, args, options = {}) {
|
|
34
34
|
return new Promise((resolve, reject) => {
|
|
35
|
+
if (options.signal?.aborted) {
|
|
36
|
+
reject(new Error('Command aborted'));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
35
39
|
const captureOutput = options.captureOutput === true;
|
|
36
40
|
const child = spawn(command, args, {
|
|
37
41
|
cwd: options.cwd,
|
|
38
42
|
env: options.env,
|
|
43
|
+
detached: Boolean(options.signal) && process.platform !== 'win32',
|
|
39
44
|
stdio: captureOutput
|
|
40
45
|
? ['inherit', 'pipe', 'pipe']
|
|
41
46
|
: options.captureStderr
|
|
42
47
|
? ['inherit', 'inherit', 'pipe']
|
|
43
48
|
: 'inherit',
|
|
44
49
|
});
|
|
50
|
+
let killTimer;
|
|
51
|
+
const kill = (signal) => {
|
|
52
|
+
try {
|
|
53
|
+
if (process.platform !== 'win32' && child.pid)
|
|
54
|
+
process.kill(-child.pid, signal);
|
|
55
|
+
else
|
|
56
|
+
child.kill(signal);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
if (error.code !== 'ESRCH')
|
|
60
|
+
child.kill(signal);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const abort = () => {
|
|
64
|
+
kill('SIGTERM');
|
|
65
|
+
killTimer = setTimeout(() => kill('SIGKILL'), 2000);
|
|
66
|
+
};
|
|
67
|
+
options.signal?.addEventListener('abort', abort, { once: true });
|
|
45
68
|
let stdout = '';
|
|
46
69
|
let stderr = '';
|
|
47
70
|
child.stdout?.on('data', (chunk) => {
|
|
@@ -54,6 +77,8 @@ export function runCommandAsync(command, args, options = {}) {
|
|
|
54
77
|
});
|
|
55
78
|
child.once('error', reject);
|
|
56
79
|
child.once('close', (code, signal) => {
|
|
80
|
+
clearTimeout(killTimer);
|
|
81
|
+
options.signal?.removeEventListener('abort', abort);
|
|
57
82
|
if (code === 0) {
|
|
58
83
|
resolve();
|
|
59
84
|
return;
|
package/dist/process.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAGnC,MAAM;IACN,QAAQ;IACR,MAAM;IAJjB,YACE,OAAe,EACN,MAAc,EACd,QAAuB,EACvB,MAAM,GAAG,EAAE;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;sBAJN,MAAM;wBACN,QAAQ;sBACR,MAAM;QAGf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CACxB,OAAe,EACf,IAAc,EACd,OAAO,GAKH,EAAE;IAEN,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;QACtC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;aAC1C,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,MAAM,IAAI,GAAG,OAAO,uBAAuB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,IAAc,EACd,OAAO,
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAC;AAelD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAyBvD,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAaD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CA85BT;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6D7D"}
|
package/dist/program.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
import { SDKCodegenError } from './sdk-codegen.js';
|
|
2
|
+
import { CloudBuildError, localBuilderInfo } from './cloud-build-diagnostic.js';
|
|
3
|
+
import { FunctionDeclarationError } from './archive.js';
|
|
4
|
+
import { devProject } from './dev.js';
|
|
5
|
+
import { DIAGNOSTIC_PLATFORMS } from './diagnostic-platforms.js';
|
|
6
|
+
import { resolve } from 'node:path';
|
|
7
|
+
import { diagnosticSummary, queryDiagnostics, importDiagnostics, } from './diagnostics.js';
|
|
8
|
+
import { prepareFunctionContracts } from './function-contracts.js';
|
|
9
|
+
import { LarkCliError } from './lark-cli-error.js';
|
|
10
|
+
import { functionEnv } from './unified-functions.js';
|
|
1
11
|
import { readFileSync } from 'node:fs';
|
|
2
|
-
import { Command, Option } from 'commander';
|
|
3
|
-
import { debugAIFunction, getAIFunction, getAIFunctionTask, getAIFunctionUsage, listAIFunctions, syncAIFunctions, validateAIFunction, } from './ai-functions.js';
|
|
12
|
+
import { Command, Help, Option } from 'commander';
|
|
13
|
+
import { debugAIFunction, getAIFunction, pullAIFunction, getAIFunctionTask, getAIFunctionUsage, listAIFunctions, syncAIFunctions, validateAIFunction, } from './ai-functions.js';
|
|
4
14
|
import { doctor, login, logout, whoami } from './auth.js';
|
|
5
15
|
import { CheckFailureError, checkProject } from './check.js';
|
|
6
16
|
import { deploymentStatus, deployProject } from './deploy.js';
|
|
@@ -8,10 +18,13 @@ import { clearEnvironmentVariable, declareEnvironmentVariable, ENVIRONMENT_VARIA
|
|
|
8
18
|
import { initializeProject } from './init.js';
|
|
9
19
|
import { InitFailureError } from './init-journal.js';
|
|
10
20
|
import { runProjectLarkCli } from './lark-cli.js';
|
|
21
|
+
import { LarkCliPassthroughError } from './lark-cli-passthrough.js';
|
|
11
22
|
import { validateLarkProfile } from './profile-name.js';
|
|
12
23
|
import { pullProject } from './pull.js';
|
|
13
24
|
import { getProjectContext, summarizeProjectContext, } from './project-context.js';
|
|
14
25
|
import { installSkill } from './skill.js';
|
|
26
|
+
import { installAgentToolsSkill } from './agent-tools-skill.js';
|
|
27
|
+
import { businessUpdateNotice } from './business-update-notice.js';
|
|
15
28
|
function printJson(value) {
|
|
16
29
|
process.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
|
|
17
30
|
}
|
|
@@ -50,20 +63,76 @@ export function createBaseDatabaseProgram(options) {
|
|
|
50
63
|
.option('--profile <name>', 'Use an existing lark-cli profile (overrides project selection)', validateLarkProfile)
|
|
51
64
|
.showSuggestionAfterError()
|
|
52
65
|
.showHelpAfterError();
|
|
66
|
+
const printJson = (value) => {
|
|
67
|
+
const update = businessUpdateNotice(program);
|
|
68
|
+
process.stdout.write(`${JSON.stringify(update ? { ...value, update } : value, null, 2)}\n`);
|
|
69
|
+
};
|
|
53
70
|
const selectedLarkProfile = () => program.opts().profile;
|
|
71
|
+
program
|
|
72
|
+
.command('dev')
|
|
73
|
+
.description('Start loopback Vite and print the editor development URL (preview only)')
|
|
74
|
+
.argument('[directory]', 'Project directory', '.')
|
|
75
|
+
.option('--deploy-preview', 'Allow whole-application Preview deployment after FaaS changes', false)
|
|
76
|
+
.option('--port <number>', 'Loopback port 43100–43109', Number)
|
|
77
|
+
.option('--host-origin <origin>', 'Exact HTTPS origin of the editor host')
|
|
78
|
+
.option('--reset-pairing', 'Regenerate this project’s local pairing token', false)
|
|
79
|
+
.option('--skip-bootstrap-check', 'Skip static SDK startBaseApp entry check (advanced escape hatch)', false)
|
|
80
|
+
.option('--json', 'Machine-readable JSON events (one JSON event per line)', false)
|
|
81
|
+
.addOption(environmentOption())
|
|
82
|
+
.action(async (directory, opts) => devProject({
|
|
83
|
+
...opts,
|
|
84
|
+
directory,
|
|
85
|
+
skipBootstrapCheck: opts.skipBootstrapCheck,
|
|
86
|
+
runtimeProfile: runtimeProfile(opts.env),
|
|
87
|
+
larkProfile: selectedLarkProfile(),
|
|
88
|
+
}));
|
|
89
|
+
const diagnostics = program
|
|
90
|
+
.command('diagnostics')
|
|
91
|
+
.description('Summarize local diagnostics with explicit source coverage')
|
|
92
|
+
.argument('[directory]', 'Project directory', '.')
|
|
93
|
+
.option('--app-token <id>', 'Filter application token')
|
|
94
|
+
.addOption(new Option('--project-env <environment>', 'Filter project environment').choices(['preview', 'prod']))
|
|
95
|
+
.addOption(new Option('--platform-env <environment>', 'Filter platform environment').choices([...DIAGNOSTIC_PLATFORMS]))
|
|
96
|
+
.option('--since <RFC3339>', 'Window start (default: 24 hours before end)')
|
|
97
|
+
.option('--until <RFC3339>', 'Window end (default: now)')
|
|
98
|
+
.option('--json', 'Machine-readable JSON', false)
|
|
99
|
+
.action((directory, opts) => {
|
|
100
|
+
const report = queryDiagnostics(resolve(directory), opts);
|
|
101
|
+
if (opts.json)
|
|
102
|
+
printJson(report);
|
|
103
|
+
else
|
|
104
|
+
process.stdout.write(diagnosticSummary(report));
|
|
105
|
+
});
|
|
106
|
+
diagnostics
|
|
107
|
+
.command('import <file> [directory]', { hidden: true })
|
|
108
|
+
.description('Import sanitized diagnostic v1 records or agent-browser console JSON')
|
|
109
|
+
.action((file, directory = '.') => printJson(importDiagnostics(resolve(directory), resolve(file))));
|
|
110
|
+
program
|
|
111
|
+
.command('contracts')
|
|
112
|
+
.description('Manage defineFunction contracts')
|
|
113
|
+
.command('generate [directory]')
|
|
114
|
+
.description('Generate isolated contracts, metadata and typed Page clients')
|
|
115
|
+
.option('--runtime-only', 'Omit backend discovery schemas (does not change identity or FG)')
|
|
116
|
+
.action(async (directory = '.', opts) => printJson(await prepareFunctionContracts(resolve(directory), {
|
|
117
|
+
write: true,
|
|
118
|
+
runtimeOnly: opts.runtimeOnly,
|
|
119
|
+
profile: defaultProfile.name,
|
|
120
|
+
})));
|
|
54
121
|
const auth = program
|
|
55
122
|
.command('auth')
|
|
56
123
|
.description('Manage lark-cli user access');
|
|
57
124
|
auth
|
|
58
125
|
.command('login')
|
|
126
|
+
.option('--json', 'Machine-readable JSON', false)
|
|
59
127
|
.description('Authorize the selected lark-cli profile for database applications')
|
|
60
128
|
.addOption(environmentOption())
|
|
61
|
-
.action(async (commandOptions) => login(runtimeProfile(commandOptions.env), selectedLarkProfile()));
|
|
129
|
+
.action(async (commandOptions) => login(runtimeProfile(commandOptions.env), selectedLarkProfile(), commandOptions.json));
|
|
62
130
|
auth
|
|
63
131
|
.command('logout')
|
|
132
|
+
.option('--json', 'Machine-readable JSON', false)
|
|
64
133
|
.description('Revoke the selected lark-cli profile authorization')
|
|
65
134
|
.addOption(environmentOption())
|
|
66
|
-
.action(async (commandOptions) => logout(runtimeProfile(commandOptions.env), selectedLarkProfile()));
|
|
135
|
+
.action(async (commandOptions) => logout(runtimeProfile(commandOptions.env), selectedLarkProfile(), commandOptions.json));
|
|
67
136
|
auth
|
|
68
137
|
.command('whoami')
|
|
69
138
|
.description('Show the authorized user and scopes of the selected profile')
|
|
@@ -77,10 +146,10 @@ export function createBaseDatabaseProgram(options) {
|
|
|
77
146
|
if (options.includeSkillCommand !== false) {
|
|
78
147
|
const skill = program
|
|
79
148
|
.command('skill')
|
|
80
|
-
.description('Manage the
|
|
149
|
+
.description('Manage the developer Skill for building applications');
|
|
81
150
|
skill
|
|
82
151
|
.command('install')
|
|
83
|
-
.description('Install
|
|
152
|
+
.description('Install the bundled developer Skill for building and publishing applications')
|
|
84
153
|
.addOption(new Option('--target <target>', 'Agent skills location')
|
|
85
154
|
.choices(['codex', 'agents', 'claude', 'all'])
|
|
86
155
|
.default('codex'))
|
|
@@ -98,11 +167,29 @@ export function createBaseDatabaseProgram(options) {
|
|
|
98
167
|
printJson({ ok: true, installed });
|
|
99
168
|
});
|
|
100
169
|
}
|
|
170
|
+
program
|
|
171
|
+
.command('agent-tools')
|
|
172
|
+
.description('Manage tools for external Agents')
|
|
173
|
+
.command('skill')
|
|
174
|
+
.description('Manage a published site Skill for external Agents')
|
|
175
|
+
.command('install')
|
|
176
|
+
.description('Install a published site Skill for calling its business functions (project or --site)')
|
|
177
|
+
.option('--site <site>', 'Published site baseAppUrl or token; works outside a project directory')
|
|
178
|
+
.addOption(new Option('--target <target>', 'Agent skills location')
|
|
179
|
+
.choices(['codex', 'agents', 'claude', 'all'])
|
|
180
|
+
.default('codex'))
|
|
181
|
+
.option('--dir <directory>', 'Custom Agent skills root')
|
|
182
|
+
.option('--force', 'Replace an existing installation', false)
|
|
183
|
+
.action(async (opts) => {
|
|
184
|
+
if (opts.dir && opts.target !== 'codex')
|
|
185
|
+
throw new Error('Use either --target or --dir, not both');
|
|
186
|
+
printJson(await installAgentToolsSkill({ target: opts.target, directory: opts.dir, force: opts.force }, defaultProfile, opts.site, selectedLarkProfile()));
|
|
187
|
+
});
|
|
101
188
|
program
|
|
102
189
|
.command('context')
|
|
103
190
|
.description('Print a local, read-only database project context snapshot')
|
|
104
191
|
.argument('[directory]', 'Project directory', '.')
|
|
105
|
-
.option('--json', '
|
|
192
|
+
.option('--json', 'Machine-readable JSON (default)', false)
|
|
106
193
|
.option('--summary', 'Omit workspace paths, fingerprints and per-resource details', false)
|
|
107
194
|
.addHelpText('after', '\nReads only local project configuration, Catalog, Function metadata and receipts. Does not authenticate, contact application APIs, build or deploy.')
|
|
108
195
|
.action((directory, commandOptions) => {
|
|
@@ -116,7 +203,7 @@ export function createBaseDatabaseProgram(options) {
|
|
|
116
203
|
});
|
|
117
204
|
program
|
|
118
205
|
.command('init')
|
|
119
|
-
.description('Scaffold a
|
|
206
|
+
.description('Scaffold a workspace application using a new or existing Base')
|
|
120
207
|
.argument('[directory]', 'Project directory', '.')
|
|
121
208
|
.option('--schema <file>', 'Create a Base from this schema JSON file')
|
|
122
209
|
.option('--base-token <token>', 'Reuse and bind every table in an existing Base')
|
|
@@ -165,8 +252,9 @@ export function createBaseDatabaseProgram(options) {
|
|
|
165
252
|
.option('--no-install', 'Reuse Page/FaaS dependencies; fail if missing')
|
|
166
253
|
.option('--force-install', 'Reinstall Page and FaaS dependencies', false)
|
|
167
254
|
.option('--force-build', 'Ignore successful Page/FaaS build cache', false)
|
|
168
|
-
.option('--
|
|
169
|
-
.
|
|
255
|
+
.option('--skip-ai-functions', 'Check agent-tools for a deployment without AI synchronization', false)
|
|
256
|
+
.option('--json', 'Machine-readable JSON (success or failure; captures build output)', false)
|
|
257
|
+
.addHelpText('after', '\nUses the same npm installer and build scripts as deploy. Workspace/SDK projects validate existing contracts; run contracts generate when CONTRACT_STALE. Only classic projects without the App SDK regenerate Page input types, using explicit functionInputs or the default positional classic contract. The command may install dependencies and write local build output; does not contact application APIs, change bindings, upload artifacts or publish. Server-side Database Function query validation is not run.')
|
|
170
258
|
.action(async (directory, commandOptions) => {
|
|
171
259
|
try {
|
|
172
260
|
printJson(await checkProject({
|
|
@@ -174,6 +262,7 @@ export function createBaseDatabaseProgram(options) {
|
|
|
174
262
|
install: commandOptions.install,
|
|
175
263
|
forceInstall: commandOptions.forceInstall,
|
|
176
264
|
forceBuild: commandOptions.forceBuild,
|
|
265
|
+
skipAIFunctions: commandOptions.skipAiFunctions,
|
|
177
266
|
json: commandOptions.json,
|
|
178
267
|
runtimeProfile: defaultProfile,
|
|
179
268
|
}));
|
|
@@ -188,6 +277,7 @@ export function createBaseDatabaseProgram(options) {
|
|
|
188
277
|
program
|
|
189
278
|
.command('deploy')
|
|
190
279
|
.description('Build and publish the current database application')
|
|
280
|
+
.option('--json', 'Machine-readable JSON (captures build output)', false)
|
|
191
281
|
.argument('[directory]', 'Project directory', '.')
|
|
192
282
|
.option('--no-install', 'Reuse installed Page and FaaS dependencies')
|
|
193
283
|
.option('--force-install', 'Reinstall Page and FaaS dependencies', false)
|
|
@@ -204,6 +294,7 @@ export function createBaseDatabaseProgram(options) {
|
|
|
204
294
|
install: commandOptions.install,
|
|
205
295
|
forceInstall: commandOptions.forceInstall,
|
|
206
296
|
production: commandOptions.production,
|
|
297
|
+
captureOutput: commandOptions.json,
|
|
207
298
|
yes: commandOptions.yes,
|
|
208
299
|
skipAIFunctions: commandOptions.skipAiFunctions,
|
|
209
300
|
runtimeProfile: defaultProfile,
|
|
@@ -316,23 +407,46 @@ export function createBaseDatabaseProgram(options) {
|
|
|
316
407
|
.description('Manage AI Functions (function_type=4) declared under ai/');
|
|
317
408
|
aiFunctions
|
|
318
409
|
.command('list')
|
|
319
|
-
.description('List AI
|
|
410
|
+
.description('List AI Function contracts; prod reads published functions only')
|
|
411
|
+
.option('--env <env>', 'Function version (preview|prod)', 'preview')
|
|
412
|
+
.argument('[directory]', 'Project directory', '.')
|
|
413
|
+
.action(async (directory, options) => printJson(await listAIFunctions({
|
|
414
|
+
directory,
|
|
415
|
+
env: functionEnv(options.env),
|
|
416
|
+
larkProfile: selectedLarkProfile(),
|
|
417
|
+
runtimeProfile: defaultProfile,
|
|
418
|
+
})));
|
|
419
|
+
aiFunctions
|
|
420
|
+
.command('get')
|
|
421
|
+
.description('Read an AI Function contract and preview config')
|
|
422
|
+
.option('--env <env>', 'Function version (preview|prod)', 'preview')
|
|
423
|
+
.argument('<function-key>', 'AI Function key')
|
|
320
424
|
.argument('[directory]', 'Project directory', '.')
|
|
321
|
-
.action(async (directory) => printJson(await
|
|
425
|
+
.action(async (functionKey, directory, options) => printJson(await getAIFunction(functionKey, {
|
|
426
|
+
directory,
|
|
427
|
+
env: functionEnv(options.env),
|
|
428
|
+
larkProfile: selectedLarkProfile(),
|
|
429
|
+
runtimeProfile: defaultProfile,
|
|
430
|
+
})));
|
|
322
431
|
aiFunctions
|
|
323
432
|
.command('pull')
|
|
324
|
-
.description('
|
|
433
|
+
.description('Restore one preview AI Function to ai/<key>/meta.json')
|
|
325
434
|
.argument('<function-key>', 'AI Function key')
|
|
326
435
|
.argument('[directory]', 'Project directory', '.')
|
|
327
|
-
.action(async (functionKey, directory) => printJson(await
|
|
436
|
+
.action(async (functionKey, directory) => printJson(await pullAIFunction(functionKey, {
|
|
328
437
|
directory,
|
|
438
|
+
larkProfile: selectedLarkProfile(),
|
|
329
439
|
runtimeProfile: defaultProfile,
|
|
330
440
|
})));
|
|
331
441
|
aiFunctions
|
|
332
442
|
.command('sync')
|
|
333
443
|
.description('Full-cover sync local ai/ declarations to the application')
|
|
334
444
|
.argument('[directory]', 'Project directory', '.')
|
|
335
|
-
.action(async (directory) => printJson(await syncAIFunctions({
|
|
445
|
+
.action(async (directory) => printJson(await syncAIFunctions({
|
|
446
|
+
directory,
|
|
447
|
+
larkProfile: selectedLarkProfile(),
|
|
448
|
+
runtimeProfile: defaultProfile,
|
|
449
|
+
})));
|
|
336
450
|
aiFunctions
|
|
337
451
|
.command('validate')
|
|
338
452
|
.description('Static-validate one local AI Function before saving')
|
|
@@ -340,6 +454,7 @@ export function createBaseDatabaseProgram(options) {
|
|
|
340
454
|
.argument('[directory]', 'Project directory', '.')
|
|
341
455
|
.action(async (functionKey, directory) => printJson(await validateAIFunction(functionKey, {
|
|
342
456
|
directory,
|
|
457
|
+
larkProfile: selectedLarkProfile(),
|
|
343
458
|
runtimeProfile: defaultProfile,
|
|
344
459
|
})));
|
|
345
460
|
aiFunctions
|
|
@@ -348,32 +463,44 @@ export function createBaseDatabaseProgram(options) {
|
|
|
348
463
|
.argument('<function-key>', 'AI Function key')
|
|
349
464
|
.argument('[directory]', 'Project directory', '.')
|
|
350
465
|
.option('--env <env>', 'Runtime env (preview|prod)', 'preview')
|
|
351
|
-
.option('--
|
|
352
|
-
.option('--
|
|
353
|
-
.option('--
|
|
466
|
+
.option('--params <json>', 'AI parameters JSON object')
|
|
467
|
+
.option('--variables <json>', 'Deprecated alias for --params')
|
|
468
|
+
.option('--messages <json>', 'Messages JSON array (text/vision)')
|
|
469
|
+
.option('--input <json>', 'Input JSON object (image/video)')
|
|
354
470
|
.action(async (functionKey, directory, commandOptions) => {
|
|
355
|
-
const env = commandOptions.env
|
|
471
|
+
const env = functionEnv(commandOptions.env);
|
|
356
472
|
printJson(await debugAIFunction(functionKey, {
|
|
357
473
|
directory,
|
|
358
474
|
env,
|
|
359
|
-
input:
|
|
360
|
-
|
|
475
|
+
input: commandOptions.input === undefined
|
|
476
|
+
? undefined
|
|
477
|
+
: JSON.parse(commandOptions.input),
|
|
478
|
+
messages: commandOptions.messages === undefined
|
|
479
|
+
? undefined
|
|
480
|
+
: JSON.parse(commandOptions.messages),
|
|
481
|
+
larkProfile: selectedLarkProfile(),
|
|
361
482
|
runtimeProfile: defaultProfile,
|
|
362
|
-
|
|
483
|
+
params: commandOptions.params === undefined
|
|
484
|
+
? undefined
|
|
485
|
+
: JSON.parse(commandOptions.params),
|
|
486
|
+
variables: commandOptions.variables === undefined
|
|
487
|
+
? undefined
|
|
488
|
+
: JSON.parse(commandOptions.variables),
|
|
363
489
|
}));
|
|
364
490
|
});
|
|
365
491
|
aiFunctions
|
|
366
492
|
.command('task')
|
|
367
|
-
.description('
|
|
493
|
+
.description('Query original task_id (query success is not generation success); use the submission env')
|
|
368
494
|
.argument('<function-key>', 'AI Function key')
|
|
369
495
|
.argument('<task-id>', 'Media task ID')
|
|
370
496
|
.argument('[directory]', 'Project directory', '.')
|
|
371
497
|
.option('--env <env>', 'Runtime env (preview|prod)', 'preview')
|
|
372
498
|
.action(async (functionKey, taskId, directory, commandOptions) => {
|
|
373
|
-
const env = commandOptions.env
|
|
499
|
+
const env = functionEnv(commandOptions.env);
|
|
374
500
|
printJson(await getAIFunctionTask(functionKey, taskId, {
|
|
375
501
|
directory,
|
|
376
502
|
env,
|
|
503
|
+
larkProfile: selectedLarkProfile(),
|
|
377
504
|
runtimeProfile: defaultProfile,
|
|
378
505
|
}));
|
|
379
506
|
});
|
|
@@ -395,19 +522,105 @@ export function createBaseDatabaseProgram(options) {
|
|
|
395
522
|
from: commandOptions.from,
|
|
396
523
|
functionKey: commandOptions.functionKey,
|
|
397
524
|
model: commandOptions.model,
|
|
525
|
+
larkProfile: selectedLarkProfile(),
|
|
398
526
|
runtimeProfile: defaultProfile,
|
|
399
527
|
to: commandOptions.to,
|
|
400
528
|
}));
|
|
401
529
|
});
|
|
530
|
+
// Preserve workflow order in help, independently of implementation grouping.
|
|
531
|
+
const workflow = [
|
|
532
|
+
'init',
|
|
533
|
+
'pull',
|
|
534
|
+
'dev',
|
|
535
|
+
'check',
|
|
536
|
+
'deploy',
|
|
537
|
+
'deployments',
|
|
538
|
+
'contracts',
|
|
539
|
+
'ai-functions',
|
|
540
|
+
'environment-variables',
|
|
541
|
+
'lark-cli',
|
|
542
|
+
'context',
|
|
543
|
+
'diagnostics',
|
|
544
|
+
'auth',
|
|
545
|
+
'doctor',
|
|
546
|
+
'skill',
|
|
547
|
+
'agent-tools',
|
|
548
|
+
'install',
|
|
549
|
+
'check-update',
|
|
550
|
+
'update',
|
|
551
|
+
];
|
|
552
|
+
program.configureHelp({
|
|
553
|
+
sortSubcommands: false,
|
|
554
|
+
visibleCommands(command) {
|
|
555
|
+
const commands = Help.prototype.visibleCommands.call(this, command);
|
|
556
|
+
const rank = (name) => workflow.includes(name) ? workflow.indexOf(name) : workflow.length;
|
|
557
|
+
return command === program
|
|
558
|
+
? commands.sort((a, b) => rank(a.name()) - rank(b.name()))
|
|
559
|
+
: commands;
|
|
560
|
+
},
|
|
561
|
+
});
|
|
562
|
+
const jsonOutput = (command) => {
|
|
563
|
+
// lark-cli forwards its arguments, including --json, to the upstream CLI.
|
|
564
|
+
if (!command.commands.length &&
|
|
565
|
+
command.name() !== 'lark-cli' &&
|
|
566
|
+
!command.options.some((option) => option.long === '--json'))
|
|
567
|
+
command.option('--json', 'Machine-readable JSON (default)');
|
|
568
|
+
for (const child of command.commands)
|
|
569
|
+
jsonOutput(child);
|
|
570
|
+
};
|
|
571
|
+
for (const command of program.commands)
|
|
572
|
+
jsonOutput(command);
|
|
402
573
|
return program;
|
|
403
574
|
}
|
|
404
575
|
export function runBaseDatabaseProgram(program) {
|
|
405
576
|
program.parseAsync().catch((error) => {
|
|
577
|
+
const update = businessUpdateNotice(program);
|
|
578
|
+
const withUpdate = (value) => update ? { ...value, update } : value;
|
|
579
|
+
// `lark-cli -- api` 失败:按 lark-cli 原样输出两个流并透传退出码。
|
|
580
|
+
if (error instanceof LarkCliPassthroughError) {
|
|
581
|
+
if (error.stdout)
|
|
582
|
+
process.stdout.write(error.stdout);
|
|
583
|
+
if (error.stderr)
|
|
584
|
+
process.stderr.write(error.stderr);
|
|
585
|
+
process.exitCode = error.exitCode;
|
|
586
|
+
return;
|
|
587
|
+
}
|
|
588
|
+
if (error instanceof CloudBuildError) {
|
|
589
|
+
printJson(withUpdate({
|
|
590
|
+
ok: false,
|
|
591
|
+
outcome: 'failed',
|
|
592
|
+
diagnostics: error.diagnostics,
|
|
593
|
+
...localBuilderInfo(),
|
|
594
|
+
}));
|
|
595
|
+
process.stderr.write(`${program.name()}: ${error.message}\n`);
|
|
596
|
+
process.exitCode = 1;
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
406
599
|
if (error instanceof JsonOutputError)
|
|
407
|
-
printJson(error.output);
|
|
600
|
+
printJson(withUpdate(error.output));
|
|
408
601
|
else {
|
|
602
|
+
if (error instanceof SDKCodegenError)
|
|
603
|
+
printJson(withUpdate({ ok: false, error: error.toJSON() }));
|
|
604
|
+
if (error instanceof FunctionDeclarationError)
|
|
605
|
+
printJson(withUpdate({
|
|
606
|
+
ok: false,
|
|
607
|
+
error: {
|
|
608
|
+
code: error.code,
|
|
609
|
+
message: error.message,
|
|
610
|
+
functions: error.functions,
|
|
611
|
+
},
|
|
612
|
+
}));
|
|
409
613
|
if (error instanceof InitFailureError)
|
|
410
|
-
printJson(error.report);
|
|
614
|
+
printJson(withUpdate(error.report));
|
|
615
|
+
if (error instanceof LarkCliError &&
|
|
616
|
+
(error.details.errors || error.details.results)) {
|
|
617
|
+
process.stderr.write(`${JSON.stringify(error.details)}\n`);
|
|
618
|
+
}
|
|
619
|
+
if (update &&
|
|
620
|
+
!(error instanceof InitFailureError) &&
|
|
621
|
+
!(error instanceof SDKCodegenError) &&
|
|
622
|
+
!(error instanceof FunctionDeclarationError))
|
|
623
|
+
process.stderr.write(`${JSON.stringify({ update })}\n`);
|
|
411
624
|
process.stderr.write(`${program.name()}: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
412
625
|
}
|
|
413
626
|
process.exitCode = 1;
|