@lark-base-open/base-database-cli 1.4.8 → 1.5.0
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 +28 -0
- package/README.md +52 -8
- package/dist/archive.d.ts.map +1 -1
- package/dist/archive.js +20 -42
- package/dist/archive.js.map +1 -1
- package/dist/cloud-build-diagnostic.d.ts +9 -1
- package/dist/cloud-build-diagnostic.d.ts.map +1 -1
- package/dist/cloud-build-diagnostic.js +40 -4
- package/dist/cloud-build-diagnostic.js.map +1 -1
- package/dist/dependency-policy.d.ts.map +1 -1
- package/dist/dependency-policy.js +19 -22
- package/dist/dependency-policy.js.map +1 -1
- package/dist/deploy.d.ts +6 -0
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +6 -3
- package/dist/deploy.js.map +1 -1
- package/dist/dev-vite.d.ts +2 -0
- package/dist/dev-vite.d.ts.map +1 -1
- package/dist/dev-vite.js +15 -7
- package/dist/dev-vite.js.map +1 -1
- package/dist/distribution-commands.js +1 -1
- package/dist/distribution-commands.js.map +1 -1
- package/dist/draft-state.js +3 -3
- package/dist/draft-state.js.map +1 -1
- package/dist/init-journal.d.ts +4 -0
- package/dist/init-journal.d.ts.map +1 -1
- package/dist/init-journal.js +10 -2
- 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 +51 -9
- package/dist/init.js.map +1 -1
- package/dist/lark-cli-error.d.ts +1 -1
- package/dist/lark-cli-error.d.ts.map +1 -1
- package/dist/lark-cli-error.js +18 -5
- package/dist/lark-cli-error.js.map +1 -1
- package/dist/lark-cli.d.ts +1 -0
- package/dist/lark-cli.d.ts.map +1 -1
- package/dist/lark-cli.js +21 -3
- package/dist/lark-cli.js.map +1 -1
- package/dist/log-id.d.ts +2 -0
- package/dist/log-id.d.ts.map +1 -0
- package/dist/log-id.js +7 -0
- package/dist/log-id.js.map +1 -0
- package/dist/process.d.ts.map +1 -1
- package/dist/process.js +42 -5
- package/dist/process.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +6 -4
- package/dist/program.js.map +1 -1
- package/dist/pull.d.ts.map +1 -1
- package/dist/pull.js +3 -4
- package/dist/pull.js.map +1 -1
- package/dist/sdk-codegen.js +2 -1
- package/dist/sdk-codegen.js.map +1 -1
- package/dist/skill.d.ts +1 -1
- package/dist/skill.d.ts.map +1 -1
- package/dist/skill.js +1 -0
- package/dist/skill.js.map +1 -1
- package/dist/source-archive-inputs.d.ts +10 -0
- package/dist/source-archive-inputs.d.ts.map +1 -0
- package/dist/source-archive-inputs.js +85 -0
- package/dist/source-archive-inputs.js.map +1 -0
- package/dist/source-format.d.ts +3 -0
- package/dist/source-format.d.ts.map +1 -1
- package/dist/source-format.js +6 -0
- package/dist/source-format.js.map +1 -1
- package/package.json +1 -1
- package/skills/lark-base-database/references/agent-tools.md +1 -1
- package/skills/lark-base-database/references/permission-design.md +1 -1
- package/skills/lark-base-database/references/release.md +11 -0
- package/skills/lark-base-database/references/verification.md +4 -0
- package/skills/lark-base-database/references/workspace.md +11 -3
package/dist/skill.d.ts
CHANGED
package/dist/skill.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAwBA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAwBA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,SAAS,SAAuB,GAC/B,MAAM,EAAE,CAqBV;AAKD,wBAAgB,yBAAyB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAiB7E;AAID,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAO9D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYtE;AAID,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CA0BpE;AAuBD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAuBhE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,mBAAmB,EAC5B,UAAU,GAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAqB,GACzD,MAAM,EAAE,CAsBV;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAoBnE"}
|
package/dist/skill.js
CHANGED
|
@@ -9,6 +9,7 @@ export function skillDestinations(options, skillName = 'lark-base-database') {
|
|
|
9
9
|
codex: join(process.env.CODEX_HOME?.trim() || join(home, '.codex'), 'skills'),
|
|
10
10
|
agents: join(home, '.agents/skills'),
|
|
11
11
|
claude: join(process.env.CLAUDE_CONFIG_DIR?.trim() || join(home, '.claude'), 'skills'),
|
|
12
|
+
workbuddy: join(home, '.codebuddy', 'skills'),
|
|
12
13
|
};
|
|
13
14
|
const roots = options.directory
|
|
14
15
|
? [resolve(options.directory)]
|
package/dist/skill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUrD,MAAM,UAAU,iBAAiB,CAC/B,OAA4B,EAC5B,SAAS,GAAG,oBAAoB;IAEhC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,SAAS,GAAgD;QAC7D,KAAK,EAAE,IAAI,CACT,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EACtD,QAAQ,CACT;QACD,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC;QACpC,MAAM,EAAE,IAAI,CACV,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAC9D,QAAQ,CACT;
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const SOURCE_ARCHIVE_IGNORES: string[];
|
|
2
|
+
export declare const SOURCE_ARCHIVE_SKIPS: string[];
|
|
3
|
+
export declare function sourceArchiveEntryIgnored(name: string, directory: boolean): boolean;
|
|
4
|
+
export declare function sourceArchiveRoots(workspace: string): {
|
|
5
|
+
source: string;
|
|
6
|
+
prefix: string;
|
|
7
|
+
}[];
|
|
8
|
+
export declare function sourceArchiveRootFiles(workspace: string): string[];
|
|
9
|
+
export declare function sourceArchiveConfig(workspace: string): string;
|
|
10
|
+
//# sourceMappingURL=source-archive-inputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-archive-inputs.d.ts","sourceRoot":"","sources":["../src/source-archive-inputs.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,sBAAsB,UAGlC,CAAC;AACF,eAAO,MAAM,oBAAoB,UAGhC,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,OAAO,GACjB,OAAO,CAOT;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM;;;IAyBnD;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CASlE;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ7D"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { lstatSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { readPortableProjectContract } from './config.js';
|
|
4
|
+
import { DATABASE_FUNCTIONS_DIRECTORY, databaseFunctionsDirectory, serverDirectory, } from './project-layout.js';
|
|
5
|
+
const excludedDirectories = new Set([
|
|
6
|
+
'node_modules',
|
|
7
|
+
'dist',
|
|
8
|
+
'.cache',
|
|
9
|
+
'.git',
|
|
10
|
+
'.base-database-cli',
|
|
11
|
+
'.npm',
|
|
12
|
+
'.pnpm-store',
|
|
13
|
+
'coverage',
|
|
14
|
+
'.aws',
|
|
15
|
+
'.ssh',
|
|
16
|
+
]);
|
|
17
|
+
const excludedNames = new Set([
|
|
18
|
+
'.DS_Store',
|
|
19
|
+
'.env',
|
|
20
|
+
'.npmrc',
|
|
21
|
+
'.yarnrc',
|
|
22
|
+
'.yarnrc.yml',
|
|
23
|
+
'.pnpmrc',
|
|
24
|
+
'.netrc',
|
|
25
|
+
]);
|
|
26
|
+
const excludedPrefixes = ['.env.'];
|
|
27
|
+
const excludedSuffixes = ['.pem', '.key'];
|
|
28
|
+
// Both preflight traversal and archiver globs derive their exclusions here.
|
|
29
|
+
const excludedPathPatterns = [
|
|
30
|
+
...[...excludedNames].map((name) => `**/${name}`),
|
|
31
|
+
...excludedPrefixes.map((prefix) => `**/${prefix}*`),
|
|
32
|
+
...excludedSuffixes.map((suffix) => `**/*${suffix}`),
|
|
33
|
+
];
|
|
34
|
+
export const SOURCE_ARCHIVE_IGNORES = [
|
|
35
|
+
...[...excludedDirectories].map((name) => `**/${name}/**`),
|
|
36
|
+
...excludedPathPatterns,
|
|
37
|
+
];
|
|
38
|
+
export const SOURCE_ARCHIVE_SKIPS = [
|
|
39
|
+
...[...excludedDirectories].map((name) => `**/${name}`),
|
|
40
|
+
...excludedPathPatterns,
|
|
41
|
+
];
|
|
42
|
+
export function sourceArchiveEntryIgnored(name, directory) {
|
|
43
|
+
return ((directory && excludedDirectories.has(name)) ||
|
|
44
|
+
excludedNames.has(name) ||
|
|
45
|
+
excludedPrefixes.some((prefix) => name.startsWith(prefix)) ||
|
|
46
|
+
excludedSuffixes.some((suffix) => name.endsWith(suffix)));
|
|
47
|
+
}
|
|
48
|
+
export function sourceArchiveRoots(workspace) {
|
|
49
|
+
// Check before layout discovery: existsSync would hide dangling links, and
|
|
50
|
+
// using a source root as a glob cwd would otherwise follow directory links.
|
|
51
|
+
for (const source of [
|
|
52
|
+
'page',
|
|
53
|
+
'server-functions',
|
|
54
|
+
'server',
|
|
55
|
+
'mutations',
|
|
56
|
+
'ai',
|
|
57
|
+
DATABASE_FUNCTIONS_DIRECTORY,
|
|
58
|
+
'sql',
|
|
59
|
+
]) {
|
|
60
|
+
const info = lstatSync(join(workspace, source), { throwIfNoEntry: false });
|
|
61
|
+
if (info && !info.isDirectory())
|
|
62
|
+
throw new Error(`Project ${source}/ must be a directory`);
|
|
63
|
+
}
|
|
64
|
+
const databaseFunctions = databaseFunctionsDirectory(workspace);
|
|
65
|
+
return [
|
|
66
|
+
...['page', serverDirectory(workspace), 'mutations', 'ai'].map((source) => ({ source, prefix: source })),
|
|
67
|
+
...(databaseFunctions
|
|
68
|
+
? [{ source: databaseFunctions, prefix: DATABASE_FUNCTIONS_DIRECTORY }]
|
|
69
|
+
: []),
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
export function sourceArchiveRootFiles(workspace) {
|
|
73
|
+
return [
|
|
74
|
+
...(serverDirectory(workspace) === 'server'
|
|
75
|
+
? ['package.json', 'package-lock.json']
|
|
76
|
+
: []),
|
|
77
|
+
'base-app.config.ts',
|
|
78
|
+
'README.md',
|
|
79
|
+
'agent-tools.json',
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
export function sourceArchiveConfig(workspace) {
|
|
83
|
+
return (JSON.stringify({ configVersion: 1, ...readPortableProjectContract(workspace) }, null, 2) + '\n');
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=source-archive-inputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-archive-inputs.js","sourceRoot":"","sources":["../src/source-archive-inputs.ts"],"names":[],"mappings":"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"}
|
package/dist/source-format.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export declare const SOURCE_FORMAT = 1;
|
|
2
|
+
export declare const MAX_SOURCE_ARCHIVE_MIB = 50;
|
|
3
|
+
export declare const MAX_SOURCE_ARCHIVE_BYTES: number;
|
|
4
|
+
export declare function compressedSourceArchiveSizeError(size: number): string;
|
|
2
5
|
interface SourceFormat {
|
|
3
6
|
format: number;
|
|
4
7
|
minCli: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-format.d.ts","sourceRoot":"","sources":["../src/source-format.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"source-format.d.ts","sourceRoot":"","sources":["../src/source-format.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,wBAAwB,QAAuC,CAAC;AAG7E,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAe7C;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAgC1E"}
|
package/dist/source-format.js
CHANGED
|
@@ -2,7 +2,13 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
3
|
import { packageRoot } from './assets.js';
|
|
4
4
|
export const SOURCE_FORMAT = 1;
|
|
5
|
+
// Keep publishing and restoring aligned with UploadArtifact on the server.
|
|
6
|
+
export const MAX_SOURCE_ARCHIVE_MIB = 50;
|
|
7
|
+
export const MAX_SOURCE_ARCHIVE_BYTES = MAX_SOURCE_ARCHIVE_MIB * 1024 * 1024;
|
|
5
8
|
const MIN_SOURCE_CLI = '1.4.1';
|
|
9
|
+
export function compressedSourceArchiveSizeError(size) {
|
|
10
|
+
return `Compressed source archive is ${size} bytes, exceeds ${MAX_SOURCE_ARCHIVE_MIB} MiB (${MAX_SOURCE_ARCHIVE_BYTES} bytes)`;
|
|
11
|
+
}
|
|
6
12
|
export function sourceArchiveComment() {
|
|
7
13
|
// 内部分发的共享源码位于 dist/src,包版本在 dist 的上一级。
|
|
8
14
|
const root = existsSync(join(packageRoot, 'package.json'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-format.js","sourceRoot":"","sources":["../src/source-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,cAAc,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"source-format.js","sourceRoot":"","sources":["../src/source-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7E,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,UAAU,gCAAgC,CAAC,IAAY;IAC3D,OAAO,gCAAgC,IAAI,mBAAmB,sBAAsB,SAAS,wBAAwB,SAAS,CAAC;AACjI,CAAC;AAQD,MAAM,UAAU,oBAAoB;IAClC,uCAAuC;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACjD,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,kBAAkB,EAAE;YAClB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,OAAO;SACb;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,EAAE,kBAAkB,CAAC;QACzC,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACrB,MAAM,KAAK,SAAS;YAEpB,OAAO,SAAS,CAAC;QACnB,IACE,CAAC,MAAM;YACP,OAAO,MAAM,KAAK,QAAQ;YAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACrB,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;YACpC,MAAM,CAAC,MAAM,GAAG,CAAC;YACjB,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YACjC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YACrB,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;YAC9B,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;YAElB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;QAC5B,OAAO,CAAC,IAAI,CACV,iGAAiG,CAClG,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -96,6 +96,6 @@ Prod 成员安装命令由 CLI 交付块生成。完整交付条件与回复写
|
|
|
96
96
|
|
|
97
97
|
成员使用 `--site` 安装时,若目标目录中已有另一个站点的同名 Skill,安装器会按站点 token 哈希加短后缀并提示新名称;同一站点重装会覆盖其已记录的安装。未被 CLI 摘要识别的同名目录仍按普通已存在目录处理,用户可先核对目标再显式使用 `--force`。
|
|
98
98
|
|
|
99
|
-
默认安装到 Codex;`--target codex|agents|claude|all` 与 `--dir <path>` 的目标目录语义同 `skill install`,`--dir` 指定 skills 根目录。站点更新后,成员重复执行 `--site` 安装命令即可更新同一站点已记录的安装;未被摘要识别的目录仍需核对目标,并在用户授权下使用 `--force`。工程安装(不带 `--site`)如目标目录已存在,无论是否保存过摘要,都须先核对目标,并在用户授权下加 `--force` 重新安装。
|
|
99
|
+
默认安装到 Codex;`--target codex|agents|claude|workbuddy|all` 与 `--dir <path>` 的目标目录语义同 `skill install`,`--dir` 指定 skills 根目录。站点更新后,成员重复执行 `--site` 安装命令即可更新同一站点已记录的安装;未被摘要识别的目录仍需核对目标,并在用户授权下使用 `--force`。工程安装(不带 `--site`)如目标目录已存在,无论是否保存过摘要,都须先核对目标,并在用户授权下加 `--force` 重新安装。
|
|
100
100
|
|
|
101
101
|
安装成功后,按[调用站点函数](#调用站点函数)分页读取实时列表,确认 `data.apiVersion=2`,只从 `agentTool=true` 的函数中选一个真实只读函数,读取其最新说明后实际调用并核对业务结果;仅列表未回写 `2` 时改从同站点 Skill 清单选择,再读取实时说明和调用。无可用只读函数则说明自检未完成,不用写入或 AI 函数代替。本地文件写入、客户端发现、远端调用分别报告实际验证结果。
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
|
|
33
33
|
**判定**:对每张要 bind 的表问——它最敏感的字段被分享范围内任何人读到、最关键的记录被任何人改掉或删掉,业务能否接受?
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
**设计目标**:绑定范围应只包含业务可接受暴露的表。已有 Base 用 `init --base-token --table-ids <逗号分隔的表 ID>` 限定范围;省略 `--table-ids` 会绑定全部表。指定 `--app-token` 复用已有应用时,先核对该应用原有绑定;`bind_base` 会追加表,不会移除旧绑定,不能把本次选表当作权限收缩。执行前按[工程与环境](workspace.md#需求与-base-定位)核对真实表 ID 和权限范围。读判定不通过时,排除不应绑定的表,或重新选择 Base;写判定不通过时,审查每个已发布 Mutation/FaaS:是否固定表和字段、是否核验可信身份、是否允许修改角色来源。不能暴露通用 patch 或动态路由。
|
|
36
36
|
|
|
37
37
|
## 读路径:Database Function 就是策略面
|
|
38
38
|
|
|
@@ -27,6 +27,17 @@ README 不放客户真实数据、凭证、token 或内部调试日志。CLI 在
|
|
|
27
27
|
|
|
28
28
|
README、源码、配置和部署依赖属于 Preview 制品输入,变化后先重发 Preview 再确认 Prod。workflow 定义及独立验收材料不作为部署输入;它们仍须按任务约定完成,不能据未纳入指纹省略验收。
|
|
29
29
|
|
|
30
|
+
## 源码包大小
|
|
31
|
+
|
|
32
|
+
发布源码包 `site.zip` 需要同时满足两道上限;恰好等于上限允许:
|
|
33
|
+
|
|
34
|
+
| 统计对象 | 上限 |
|
|
35
|
+
| --- | --- |
|
|
36
|
+
| 压缩后的 ZIP 文件 | 50 MiB(52,428,800 字节) |
|
|
37
|
+
| 服务端校验的归档内全部条目解压后的内容累计 | 200 MiB(209,715,200 字节) |
|
|
38
|
+
|
|
39
|
+
200 MiB 按实际进入归档的内容统计,不是整个本地工作目录的占用;预扫与打包共用文件范围和忽略规则,排除的 `node_modules/`、`dist/`、`.cache/`、`.git/`、`coverage/` 等不计入。提高压缩率只能减小 ZIP 文件,不能降低解压后的累计内容大小。接近或超过上限时,减少随包源码或静态资源,或将大型素材改为外部资源引用,再重新发布 Preview。
|
|
40
|
+
|
|
30
41
|
## 发布前
|
|
31
42
|
|
|
32
43
|
确认工程与应用一致并保留需求外 Function。涉及视觉的变更按[前端设计指南](frontend-design-guide.md#交付前自检)检查;涉及通知先按[通知集成](notifications.md)确定路由、资源范围和启停策略。
|
|
@@ -29,6 +29,8 @@ base-database-cli deployments status <publish-id> --wait
|
|
|
29
29
|
|
|
30
30
|
返回的 `statusText` 为 `pending`、`processing`、`succeeded`、`failed` 或 `unknown`,对应数字 `status` 的 `0`、`1`、`10`、`20`。查询成功不等于发布成功,按 `statusText` 判断;成功后使用返回的 `baseAppUrl`。失败、未知状态或再次超时先保存证据,再决定修复,不自动再次 deploy。没有 publish ID 时先检查已有输出和任务记录,不通过创建新发布寻找结果。
|
|
31
31
|
|
|
32
|
+
失败状态保留公开原因和构建诊断;实际输出提供 `failureLogId` 时,它指向原失败,`queryLogId` 指向本次状态查询。输出可能只有文案或部分编号,按实际返回收集,不把查询编号当作原失败编号,也不因缺少新字段而重复发布。
|
|
33
|
+
|
|
32
34
|
## 验证方法
|
|
33
35
|
|
|
34
36
|
通过 `base-database-cli lark-cli -- api ... --json` 调用 Function 时,输出外层是 lark-cli 的 `ok`/`data`;`ok:true` 时 `data` 才是 Function 的 `{code,msg,data}` 信封,非零业务码会以 `ok:false` 加 `error` 返回。按[开发期与运行态输出](development.md#开发期与运行态输出)逐层判定,不把外层 `ok` 当作业务成功,也不因缺少顶层 `code` 判定协议不符。
|
|
@@ -60,6 +62,8 @@ base-database-cli deployments status <publish-id> --wait
|
|
|
60
62
|
|
|
61
63
|
保存环境、应用、阶段、必要的 method/path、publish ID、HTTP/业务码、脱敏摘要与 LogID/Edge request ID;访问 URL 返回 404/5xx 时保存真实 URL 和响应证据。不记录凭证、完整 headers、堆栈或与问题无关的数据,不猜替代域名或回退其他环境。
|
|
62
64
|
|
|
65
|
+
Base 创建或绑定问题同时保存已有的 Base ID 与初始化回执路径;尚未取得数值 Base ID 时记录已有资源引用和 LogID,不为补编号而重新创建。发布问题优先保存 appToken、publish ID 和失败/查询 LogID;没有关联 Base 的错误不要求补 Base ID。权限错误按提示联系 Base 所有者或应用所有者,能力/组织限制联系管理员或技术支持,修复后再执行对应操作。
|
|
66
|
+
|
|
63
67
|
输出本次检查范围、证据、定位结论、已修复项和未验证项。证据不足时区分推断与已确认事实;按[完成条件](../SKILL.md#完成条件)报告状态。
|
|
64
68
|
|
|
65
69
|
|
|
@@ -47,7 +47,7 @@ CI 跳过更新检查;其他环境正常检查。检查失败不阻塞任务
|
|
|
47
47
|
- `status=current|skipped`:不向用户播报更新检查,继续任务。
|
|
48
48
|
- `status=unavailable`:静默继续任务,不为更新检查申请额外权限。
|
|
49
49
|
- `status=available`:先确认上述全局入口可用;不可用时按下文说明更新限制并继续任务。可用时说明当前版本和可更新版本,以及会同步已安装的用户级 Lark Base Database Skill,再询问是否升级。拒绝后继续已安装版,本会话不再询问;不要自动执行 npm 或更新命令。
|
|
50
|
-
- 确认全局安装入口且用户同意后,执行 `base-database-cli update --version <返回的 latest 精确版本> --skill-dir "<当前 Skill 目录>" --yes`,成功后重新读取该目录的 SKILL.md 和所需 references。升级会现场查找 Codex、Claude、通用 Agent 用户目录中已安装的本 Skill,并同步这些副本及显式传入的当前目录;不扫描项目或历史自定义目录,不补装已删除的副本。
|
|
50
|
+
- 确认全局安装入口且用户同意后,执行 `base-database-cli update --version <返回的 latest 精确版本> --skill-dir "<当前 Skill 目录>" --yes`,成功后重新读取该目录的 SKILL.md 和所需 references。升级会现场查找 Codex、Claude、WorkBuddy、通用 Agent 用户目录中已安装的本 Skill,并同步这些副本及显式传入的当前目录;不扫描项目或历史自定义目录,不补装已删除的副本。
|
|
51
51
|
- `update` 只允许从全局安装的 CLI 执行,不从 npx 临时副本或项目副本执行,也不移除来源检查。全局命令的 PATH 异常时,通过 `npm root -g` 确认 `@lark-base-open/base-database-cli/dist/cli.js` 的实际位置,用 Node 执行该入口并核对版本。没有全局安装时说明更新限制,继续 npx 业务调用;只有用户明确要求全局安装时才进入安装流程,不将更新确认自动扩展为新建全局安装。
|
|
52
52
|
- `skill.status=mismatch`:简短提示当前 Skill 与 CLI 来自不同版本,可通过本次执行预检的同一 CLI 入口运行 `skill install --dir "<当前 Skill 的父目录>" --force` 同步后重读;不因版本号不同中断业务或自动覆盖。`unknown` 表示未找到有效记录,不推断一致,也不阻塞。
|
|
53
53
|
- 更新失败时按实际结果反馈。`skill-update-failed` 表示 CLI 已更新,但部分 Skill 未同步;说明 `installed` 中的成功目录和 `failed` 中的失败目录,按每项 `repair` 参数数组修复后重读,不宣称整体升级成功,不自动降级或反复重试。
|
|
@@ -87,13 +87,15 @@ CLI 自动保存 init、pull 和提交成功后的草稿基线。`REMOTE_SOURCE_
|
|
|
87
87
|
|
|
88
88
|
恢复出的工程是后续本地事实源。普通 deploy 按其中各类 Function 的完整本地集合覆盖远端草稿,因此执行 deploy 前应审阅全部声明。
|
|
89
89
|
|
|
90
|
+
恢复与发布的压缩源码包上限见[源码包大小](release.md#源码包大小);发布还受归档内解压后累计内容大小的限制。
|
|
91
|
+
|
|
90
92
|
## 需求与 Base 定位
|
|
91
93
|
|
|
92
94
|
明确应用名称、一句客观描述、使用者、核心对象及关系、状态流转、页面任务和一条端到端验收路径。描述优先采用用户原文,未提供时根据需求生成使用对象与核心用途,不写营销文案、实现细节或发布状态。
|
|
93
95
|
|
|
94
96
|
用户未指定已有 Base 时,从零设计完整 schema;描述业务表和字段不代表这些资源已经存在。用户指定已有 Base 时,可信 token 直接使用,链接先用 `lark-cli base +url-resolve --url '<url>' --as user`,名称先用 `+title-resolve --title '<keyword>' --as user`;无法唯一定位时再请用户补充,不要求用户重复提供已有信息。
|
|
95
97
|
|
|
96
|
-
|
|
98
|
+
复用已有 Base 前只读确认需要绑定的表与权限边界。`init --base-token` 默认绑定全部表;只需要部分表时,传入逗号分隔的 `--table-ids`,仅绑定已确认的表 ID。从零建模仍只在目标 Base 中建立业务需要的表。不擅自复制、删表或宣称页面隐藏能收缩绑定权限。访问判定见[权限设计](permission-design.md)。
|
|
97
99
|
|
|
98
100
|
已有 Base 初始化只读取表结构,不修改 schema。Catalog 缺少业务必需结构时,只在用户已授权的修改范围内补齐;否则报告缺口和可实现范围。
|
|
99
101
|
|
|
@@ -163,7 +165,9 @@ base-database-cli init . \
|
|
|
163
165
|
--base-token basxxxxxxxx
|
|
164
166
|
```
|
|
165
167
|
|
|
166
|
-
该命令调用只读 Base 接口获取 Base 信息并分页列出全部表。未指定 `--app-token` 时,通过应用创建接口的 `baseBindings`
|
|
168
|
+
该命令调用只读 Base 接口获取 Base 信息并分页列出全部表。未指定 `--app-token` 时,通过应用创建接口的 `baseBindings` 绑定待绑定表;指定时,通过目标应用的 `bind_base` 绑定待绑定表。最后从目标应用获取 Catalog。它不会创建或修改 Base、表、字段和记录。
|
|
169
|
+
|
|
170
|
+
仅绑定指定表时,在命令中加入 `--table-ids tblTasks,tblLogs`。CLI 会先核对所有 ID 属于所选 Base,再只提交这些表用于绑定;新建应用的 Catalog 只包含所选表,复用已有应用的 Catalog 还可能包含它原先绑定的表。空 ID、重复 ID 或不属于该 Base 的 ID 会在绑定前报错。未传此参数时仍绑定全部表;`--schema` 路径不能传 `--table-ids`。恢复初始化时继续使用相同的表 ID 列表。
|
|
167
171
|
|
|
168
172
|
两种路径必须且只能传入 `--schema` 或 `--base-token` 之一,并始终传入非空 `--description`。公开 CLI 的 `--env` 默认且只支持 `online`。建表顺序与等待由 CLI 管理。
|
|
169
173
|
|
|
@@ -197,6 +201,10 @@ package-lock.json # 唯一根依赖锁
|
|
|
197
201
|
|
|
198
202
|
普通 `init` 发现已有回执时会停止。回执中没有 `unknown` 或写入中的 `running` 时,可用原命令和原参数追加 `--resume`;CLI 先核对环境、profile、计划摘要及真实资源 ID,再跳过已确认步骤并补齐尚未开始或有完整逐项结果的字段。任一参数变化、资源漂移、未知写入或不完整字段结果都会在恢复写入前停止。恢复不按名称认领资源、不自动删除或整体回滚;需要放弃原计划时保留原回执,在新的空目录按已确认的 Base/应用重新初始化。
|
|
199
203
|
|
|
204
|
+
创建或绑定失败时,按服务端公开的原因和处理动作继续;兼容性或组织限制由管理员或技术支持确认,不通过反复新建 Base 绕过。准备尚未完成时保留同一个 Base,只有确认应用存在且未绑定后才重试该绑定;单次请求可重试不代表整个 `init` 可以重跑。
|
|
205
|
+
|
|
206
|
+
写入结果未知时,按 CLI 输出的下一步做只读核对;保留回执和已完成的资源,不重复创建、不手动修改回执状态。核对后仍无法确认时,携带 LogID 和已有资源标识联系支持。
|
|
207
|
+
|
|
200
208
|
## 增量修改与追加绑定
|
|
201
209
|
|
|
202
210
|
先读取 `base-database.jsonc`、`catalog.json`、相关源码和本地修改。按需求决定是否需要远端发布状态或最新 schema;只改 UI 不重复拉取全部远端资源。修改保留需求外 Function:Database Function、Mutation、FaaS,以及存在 `ai/` 根时的 AI Function,以本地项目声明全量覆盖远端草稿;AI 的声明目录是 `ai/*/meta.json`,空根表示权威空集合。旧工程缺少整个 `ai/` 根时不覆盖远端 AI,先用公共 `pull` 恢复声明。新增、修改或删除任何 Function 都先改本地事实源,再走公共 check/deploy 流程。
|