@loom-framework/core 0.1.0-alpha.8 → 0.1.0-alpha.81
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/dist/adapter-base.d.ts +29 -0
- package/dist/adapter-base.d.ts.map +1 -0
- package/dist/adapter-base.js +62 -0
- package/dist/adapter-base.js.map +1 -0
- package/dist/adapter-factory.d.ts +8 -0
- package/dist/adapter-factory.d.ts.map +1 -0
- package/dist/adapter-factory.js +25 -0
- package/dist/adapter-factory.js.map +1 -0
- package/dist/adapter-filesystem.d.ts +6 -11
- package/dist/adapter-filesystem.d.ts.map +1 -1
- package/dist/adapter-filesystem.js +56 -41
- package/dist/adapter-filesystem.js.map +1 -1
- package/dist/adapter-sqlite.d.ts +6 -23
- package/dist/adapter-sqlite.d.ts.map +1 -1
- package/dist/adapter-sqlite.js +65 -50
- package/dist/adapter-sqlite.js.map +1 -1
- package/dist/backend/ai/button-resolver.d.ts +18 -0
- package/dist/backend/ai/button-resolver.d.ts.map +1 -0
- package/dist/backend/ai/button-resolver.js +58 -0
- package/dist/backend/ai/button-resolver.js.map +1 -0
- package/dist/backend/ai/engine.d.ts +52 -0
- package/dist/backend/ai/engine.d.ts.map +1 -0
- package/dist/backend/ai/engine.js +186 -0
- package/dist/backend/ai/engine.js.map +1 -0
- package/dist/backend/ai/index.d.ts +11 -0
- package/dist/backend/ai/index.d.ts.map +1 -0
- package/dist/backend/ai/index.js +8 -0
- package/dist/backend/ai/index.js.map +1 -0
- package/dist/backend/ai/output-parser.d.ts +29 -0
- package/dist/backend/ai/output-parser.d.ts.map +1 -0
- package/dist/backend/ai/output-parser.js +247 -0
- package/dist/backend/ai/output-parser.js.map +1 -0
- package/dist/backend/ai/session-manager.d.ts +103 -0
- package/dist/backend/ai/session-manager.d.ts.map +1 -0
- package/dist/backend/ai/session-manager.js +298 -0
- package/dist/backend/ai/session-manager.js.map +1 -0
- package/dist/backend/index.d.ts +61 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +161 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/observe/index.d.ts +6 -0
- package/dist/backend/observe/index.d.ts.map +1 -0
- package/dist/backend/observe/index.js +5 -0
- package/dist/backend/observe/index.js.map +1 -0
- package/dist/backend/observe/logger.d.ts +28 -0
- package/dist/backend/observe/logger.d.ts.map +1 -0
- package/dist/backend/observe/logger.js +80 -0
- package/dist/backend/observe/logger.js.map +1 -0
- package/dist/backend/observe/types.d.ts +26 -0
- package/dist/backend/observe/types.d.ts.map +1 -0
- package/dist/backend/observe/types.js +7 -0
- package/dist/backend/observe/types.js.map +1 -0
- package/dist/backend/routes/chat.d.ts +31 -0
- package/dist/backend/routes/chat.d.ts.map +1 -0
- package/dist/backend/routes/chat.js +426 -0
- package/dist/backend/routes/chat.js.map +1 -0
- package/dist/backend/routes/data.d.ts +13 -0
- package/dist/backend/routes/data.d.ts.map +1 -0
- package/dist/backend/routes/data.js +134 -0
- package/dist/backend/routes/data.js.map +1 -0
- package/dist/backend/routes/health.d.ts +7 -0
- package/dist/backend/routes/health.d.ts.map +1 -0
- package/dist/backend/routes/health.js +15 -0
- package/dist/backend/routes/health.js.map +1 -0
- package/dist/backend/routes/index.d.ts +11 -0
- package/dist/backend/routes/index.d.ts.map +1 -0
- package/dist/backend/routes/index.js +9 -0
- package/dist/backend/routes/index.js.map +1 -0
- package/dist/backend/routes/skills.d.ts +16 -0
- package/dist/backend/routes/skills.d.ts.map +1 -0
- package/dist/backend/routes/skills.js +590 -0
- package/dist/backend/routes/skills.js.map +1 -0
- package/dist/backend/routes/upload.d.ts +24 -0
- package/dist/backend/routes/upload.d.ts.map +1 -0
- package/dist/backend/routes/upload.js +67 -0
- package/dist/backend/routes/upload.js.map +1 -0
- package/dist/bin.d.ts +8 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +12 -0
- package/dist/bin.js.map +1 -0
- package/dist/capability-generator.d.ts +21 -6
- package/dist/capability-generator.d.ts.map +1 -1
- package/dist/capability-generator.js +88 -261
- package/dist/capability-generator.js.map +1 -1
- package/dist/cli/commands/build.d.ts +11 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +170 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/data.d.ts +12 -0
- package/dist/cli/commands/data.d.ts.map +1 -0
- package/dist/cli/commands/data.js +158 -0
- package/dist/cli/commands/data.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +9 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +114 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/generate-capabilities.d.ts +8 -0
- package/dist/cli/commands/generate-capabilities.d.ts.map +1 -0
- package/dist/cli/commands/generate-capabilities.js +40 -0
- package/dist/cli/commands/generate-capabilities.js.map +1 -0
- package/dist/cli/commands/generate-cli-command.d.ts +8 -0
- package/dist/cli/commands/generate-cli-command.d.ts.map +1 -0
- package/dist/cli/commands/generate-cli-command.js +64 -0
- package/dist/cli/commands/generate-cli-command.js.map +1 -0
- package/dist/cli/commands/generate-dashboard.d.ts +9 -0
- package/dist/cli/commands/generate-dashboard.d.ts.map +1 -0
- package/dist/cli/commands/generate-dashboard.js +452 -0
- package/dist/cli/commands/generate-dashboard.js.map +1 -0
- package/dist/cli/commands/generate-page.d.ts +9 -0
- package/dist/cli/commands/generate-page.d.ts.map +1 -0
- package/dist/cli/commands/generate-page.js +518 -0
- package/dist/cli/commands/generate-page.js.map +1 -0
- package/dist/cli/commands/generate-skill.d.ts +8 -0
- package/dist/cli/commands/generate-skill.d.ts.map +1 -0
- package/dist/cli/commands/generate-skill.js +75 -0
- package/dist/cli/commands/generate-skill.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +6 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +19 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +8 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +539 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/observe.d.ts +9 -0
- package/dist/cli/commands/observe.d.ts.map +1 -0
- package/dist/cli/commands/observe.js +142 -0
- package/dist/cli/commands/observe.js.map +1 -0
- package/dist/cli/commands/skill.d.ts +9 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +186 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring.d.ts +17 -0
- package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring.js +132 -0
- package/dist/cli/helpers/app-tsx-wiring.js.map +1 -0
- package/dist/cli/helpers/duration.d.ts +5 -0
- package/dist/cli/helpers/duration.d.ts.map +1 -0
- package/dist/cli/helpers/duration.js +19 -0
- package/dist/cli/helpers/duration.js.map +1 -0
- package/dist/cli/helpers/field-template.d.ts +10 -0
- package/dist/cli/helpers/field-template.d.ts.map +1 -0
- package/dist/cli/helpers/field-template.js +100 -0
- package/dist/cli/helpers/field-template.js.map +1 -0
- package/dist/cli/helpers/naming.d.ts +12 -0
- package/dist/cli/helpers/naming.d.ts.map +1 -0
- package/dist/cli/helpers/naming.js +25 -0
- package/dist/cli/helpers/naming.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +33 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils.d.ts +10 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +31 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/config.d.ts +118 -42
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +59 -10
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/server-bin.d.ts +12 -0
- package/dist/server-bin.d.ts.map +1 -0
- package/dist/server-bin.js +75 -0
- package/dist/server-bin.js.map +1 -0
- package/dist/types.d.ts +71 -20
- package/dist/types.d.ts.map +1 -1
- package/package.json +25 -10
- package/templates/app-skill/SKILL.md +27 -0
- package/templates/app-skill/references/data-semantics.md +44 -0
- package/templates/app-skill/references/models.md +31 -0
- package/templates/loom-skill/SKILL.md +153 -0
- package/templates/loom-skill/references/README.md +128 -0
- package/templates/loom-skill/references/dashboard.md +161 -0
- package/templates/loom-skill/references/data-model.md +78 -0
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAGlC,mCAAmC;AAEnC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7B,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;IACrC,UAAU,EAAE,UAAU,EAAE,MAAM;CAC/B,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Loom Core - Main Entry Point
|
|
3
3
|
*/
|
|
4
|
-
export type { FieldType, FieldDefinition, IndexDefinition, FilesystemAdapterConfig, SQLiteAdapterConfig, ModelAdapterConfig, ModelSchema, AIButtonConfig, ClaudeCodeConfig, AIConfig, ServerConfig, DataConfig, LoomConfig, DataAdapter, ReadOptions, CommandOption, CommandDefinition, CommandContext, AIEngine, AICallOptions, AIUsage, AIChunk,
|
|
5
|
-
export { defineConfig, loadConfig, resolveConfigPath, getModelSchema, validateModelUniqueness, LoomConfigSchema } from './config.js';
|
|
4
|
+
export type { FieldType, FieldDefinition, IndexDefinition, FilesystemAdapterConfig, SQLiteAdapterConfig, ModelAdapterConfig, ModelSchema, AIButtonConfig, ClaudeCodeConfig, AIConfig, ServerConfig, DataConfig, LoomConfig, DataAdapter, DataRecord, ReadOptions, CommandOption, CommandDefinition, CommandContext, AIEngine, AICallOptions, AIUsage, AIChunk, UserMessageEvent, AssistantChunkEvent, AssistantCompleteEvent, ToolCallEvent, ChatEvent, DashboardWidgetType, DashboardAggregate, DashboardDateInterval, DashboardWidget, DashboardLayoutRow, DashboardConfig, } from './types.js';
|
|
5
|
+
export { defineConfig, loadConfig, resolveConfigPath, getModelSchema, validateModelUniqueness, LoomConfigSchema, loadDashboardConfig, DashboardConfigSchema } from './config.js';
|
|
6
|
+
export { BaseAdapter } from './adapter-base.js';
|
|
7
|
+
export { createAdapter } from './adapter-factory.js';
|
|
6
8
|
export { FileSystemAdapter } from './adapter-filesystem.js';
|
|
7
9
|
export type { FileSystemAdapterOptions } from './adapter-filesystem.js';
|
|
8
10
|
export { SQLiteAdapter } from './adapter-sqlite.js';
|
|
@@ -10,4 +12,7 @@ export type { SQLiteAdapterOptions } from './adapter-sqlite.js';
|
|
|
10
12
|
export { generateCapabilities } from './capability-generator.js';
|
|
11
13
|
export type { GenerateResult } from './capability-generator.js';
|
|
12
14
|
export { defineCommand } from './commands.js';
|
|
15
|
+
export { LoomServer, startServer } from './backend/index.js';
|
|
16
|
+
export type { LoomServerOptions } from './backend/index.js';
|
|
17
|
+
export { createProgram, run } from './cli/index.js';
|
|
13
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,aAAa,EACb,OAAO,EACP,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,aAAa,EACb,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACX,SAAS,EACX,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGjL,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,12 +2,18 @@
|
|
|
2
2
|
* Loom Core - Main Entry Point
|
|
3
3
|
*/
|
|
4
4
|
// Config
|
|
5
|
-
export { defineConfig, loadConfig, resolveConfigPath, getModelSchema, validateModelUniqueness, LoomConfigSchema } from './config.js';
|
|
5
|
+
export { defineConfig, loadConfig, resolveConfigPath, getModelSchema, validateModelUniqueness, LoomConfigSchema, loadDashboardConfig, DashboardConfigSchema } from './config.js';
|
|
6
6
|
// DataAdapter
|
|
7
|
+
export { BaseAdapter } from './adapter-base.js';
|
|
8
|
+
export { createAdapter } from './adapter-factory.js';
|
|
7
9
|
export { FileSystemAdapter } from './adapter-filesystem.js';
|
|
8
10
|
export { SQLiteAdapter } from './adapter-sqlite.js';
|
|
9
11
|
// Capability Generator
|
|
10
12
|
export { generateCapabilities } from './capability-generator.js';
|
|
11
13
|
// Command Framework
|
|
12
14
|
export { defineCommand } from './commands.js';
|
|
15
|
+
// Backend
|
|
16
|
+
export { LoomServer, startServer } from './backend/index.js';
|
|
17
|
+
// CLI
|
|
18
|
+
export { createProgram, run } from './cli/index.js';
|
|
13
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwCH,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEjL,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,uBAAuB;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7D,MAAM;AACN,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* loom-server CLI Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* loom-server # Serve from current directory
|
|
7
|
+
* loom-server /path/to/project # Serve from specified directory
|
|
8
|
+
* loom-server --port 8080 # Custom port
|
|
9
|
+
* loom-server --host 127.0.0.1 # Custom host
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=server-bin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-bin.d.ts","sourceRoot":"","sources":["../src/server-bin.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* loom-server CLI Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* loom-server # Serve from current directory
|
|
7
|
+
* loom-server /path/to/project # Serve from specified directory
|
|
8
|
+
* loom-server --port 8080 # Custom port
|
|
9
|
+
* loom-server --host 127.0.0.1 # Custom host
|
|
10
|
+
*/
|
|
11
|
+
const args = process.argv.slice(2);
|
|
12
|
+
let projectRoot = process.cwd();
|
|
13
|
+
let port;
|
|
14
|
+
let host;
|
|
15
|
+
for (let i = 0; i < args.length; i++) {
|
|
16
|
+
const arg = args[i];
|
|
17
|
+
switch (arg) {
|
|
18
|
+
case '--port':
|
|
19
|
+
case '-p':
|
|
20
|
+
port = parseInt(args[++i], 10);
|
|
21
|
+
break;
|
|
22
|
+
case '--host':
|
|
23
|
+
case '-h':
|
|
24
|
+
host = args[++i];
|
|
25
|
+
break;
|
|
26
|
+
case '--help':
|
|
27
|
+
console.log(`
|
|
28
|
+
loom-server - Start a Loom backend server
|
|
29
|
+
|
|
30
|
+
Usage:
|
|
31
|
+
loom-server [project-root] [options]
|
|
32
|
+
|
|
33
|
+
Options:
|
|
34
|
+
--port, -p <number> Server port (default: 3000)
|
|
35
|
+
--host, -h <string> Server host (default: 0.0.0.0)
|
|
36
|
+
--help Show this help message
|
|
37
|
+
|
|
38
|
+
Examples:
|
|
39
|
+
loom-server
|
|
40
|
+
loom-server ./my-project
|
|
41
|
+
loom-server --port 8080 --host 127.0.0.1
|
|
42
|
+
`);
|
|
43
|
+
process.exit(0);
|
|
44
|
+
default:
|
|
45
|
+
// Treat as project root path
|
|
46
|
+
if (!arg.startsWith('-')) {
|
|
47
|
+
projectRoot = arg;
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const serverConfig = {};
|
|
53
|
+
if (port !== undefined)
|
|
54
|
+
serverConfig.port = port;
|
|
55
|
+
if (host !== undefined)
|
|
56
|
+
serverConfig.host = host;
|
|
57
|
+
try {
|
|
58
|
+
const { LoomServer } = await import('./backend/index.js');
|
|
59
|
+
const server = new LoomServer({
|
|
60
|
+
projectRoot,
|
|
61
|
+
serverConfig,
|
|
62
|
+
});
|
|
63
|
+
await server.initialize();
|
|
64
|
+
await server.start();
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
if (error instanceof Error && error.message.includes('No loom.config.ts found')) {
|
|
68
|
+
console.error(`Error: No loom.config.ts found in ${projectRoot}`);
|
|
69
|
+
console.error('Create one with: loom init <name>');
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=server-bin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-bin.js","sourceRoot":"","sources":["../src/server-bin.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAEH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAwB,CAAC;AAC7B,IAAI,IAAwB,CAAC;AAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACjB,MAAM;QACR,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAejB,CAAC,CAAC;YACG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB;YACE,6BAA6B;YAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,WAAW,GAAG,GAAG,CAAC;YACpB,CAAC;YACD,MAAM;IACV,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAA4B,EAAE,CAAC;AACjD,IAAI,IAAI,KAAK,SAAS;IAAE,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;AACjD,IAAI,IAAI,KAAK,SAAS;IAAE,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;AAEjD,IAAI,CAAC;IACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;QAC5B,WAAW;QACX,YAAY;KACb,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAChF,OAAO,CAAC,KAAK,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,CAAC;AACd,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -31,7 +31,28 @@ export interface ModelAdapterConfig {
|
|
|
31
31
|
filesystem?: FilesystemAdapterConfig;
|
|
32
32
|
sqlite?: SQLiteAdapterConfig;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Data model definition.
|
|
36
|
+
*
|
|
37
|
+
* Rule: the model name becomes the React component name in generated pages.
|
|
38
|
+
* It must start with a letter and contain only letters, digits, or underscores.
|
|
39
|
+
* Use camelCase or snake_case — no hyphens allowed.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* { name: 'wrongQuestions', ... } // camelCase → WrongQuestions component
|
|
44
|
+
* { name: 'wrong_questions', ... } // snake_case → WrongQuestions component
|
|
45
|
+
* { name: 'users', ... } // simple → Users component
|
|
46
|
+
*
|
|
47
|
+
* // Invalid: hyphens are not allowed
|
|
48
|
+
* { name: 'wrong-questions', ... } // ✗ use wrong_questions or wrongQuestions instead
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
34
51
|
export interface ModelSchema {
|
|
52
|
+
/**
|
|
53
|
+
* Model name — will be used as the React component name in generated pages.
|
|
54
|
+
* Must start with a letter and contain only letters, digits, or underscores (no hyphens).
|
|
55
|
+
*/
|
|
35
56
|
name: string;
|
|
36
57
|
fields: FieldDefinition[];
|
|
37
58
|
indexes?: IndexDefinition[];
|
|
@@ -42,12 +63,8 @@ export interface AIButtonConfig {
|
|
|
42
63
|
id: string;
|
|
43
64
|
label: string;
|
|
44
65
|
icon?: string;
|
|
45
|
-
/**
|
|
46
|
-
prompt
|
|
47
|
-
/** Dynamic prompt template with {{var}} placeholders */
|
|
48
|
-
promptTemplate?: string;
|
|
49
|
-
/** Required context variables for promptTemplate */
|
|
50
|
-
contextVars?: string[];
|
|
66
|
+
/** Prompt text, supports {{var}} placeholders that are replaced with current row field values */
|
|
67
|
+
prompt: string;
|
|
51
68
|
/** Which page this button appears on */
|
|
52
69
|
placement?: string;
|
|
53
70
|
}
|
|
@@ -56,7 +73,6 @@ export interface ClaudeCodeConfig {
|
|
|
56
73
|
pluginRoot?: string;
|
|
57
74
|
timeout?: number;
|
|
58
75
|
skipPermissions?: boolean;
|
|
59
|
-
defaultModel?: string;
|
|
60
76
|
}
|
|
61
77
|
export interface AIConfig {
|
|
62
78
|
engine?: string;
|
|
@@ -86,17 +102,23 @@ export interface LoomConfig {
|
|
|
86
102
|
server?: ServerConfig;
|
|
87
103
|
aiButtons?: AIButtonConfig[];
|
|
88
104
|
}
|
|
105
|
+
export interface SortOption {
|
|
106
|
+
field: string;
|
|
107
|
+
order: 'asc' | 'desc';
|
|
108
|
+
}
|
|
89
109
|
export interface ReadOptions {
|
|
90
110
|
id?: string;
|
|
91
111
|
filter?: Record<string, unknown>;
|
|
112
|
+
sort?: SortOption;
|
|
92
113
|
limit?: number;
|
|
93
114
|
offset?: number;
|
|
94
115
|
}
|
|
116
|
+
export type DataRecord = Record<string, unknown>;
|
|
95
117
|
export interface DataAdapter {
|
|
96
118
|
readonly name: string;
|
|
97
|
-
read(model: string, options?: ReadOptions): Promise<
|
|
98
|
-
write(model: string, data:
|
|
99
|
-
update(model: string, id: string, data:
|
|
119
|
+
read(model: string, options?: ReadOptions): Promise<DataRecord | DataRecord[] | null>;
|
|
120
|
+
write(model: string, data: DataRecord): Promise<DataRecord>;
|
|
121
|
+
update(model: string, id: string, data: DataRecord): Promise<DataRecord>;
|
|
100
122
|
delete(model: string, id: string): Promise<void>;
|
|
101
123
|
getSchema(model: string): Promise<ModelSchema | undefined>;
|
|
102
124
|
listModels(): Promise<string[]>;
|
|
@@ -125,7 +147,6 @@ export interface CommandContext {
|
|
|
125
147
|
export interface AICallOptions {
|
|
126
148
|
sessionId: string;
|
|
127
149
|
resumeSessionId?: string;
|
|
128
|
-
model?: string;
|
|
129
150
|
files?: Array<{
|
|
130
151
|
name: string;
|
|
131
152
|
path: string;
|
|
@@ -138,7 +159,7 @@ export interface AIUsage {
|
|
|
138
159
|
contextWindow: number;
|
|
139
160
|
}
|
|
140
161
|
export interface AIChunk {
|
|
141
|
-
type: 'content' | 'session_info' | 'error' | 'done' | 'tool_call' | 'tool_result';
|
|
162
|
+
type: 'content' | 'thinking' | 'session_info' | 'error' | 'done' | 'tool_call' | 'tool_result';
|
|
142
163
|
content?: string;
|
|
143
164
|
sessionId?: string;
|
|
144
165
|
usage?: AIUsage;
|
|
@@ -152,12 +173,6 @@ export interface AIEngine {
|
|
|
152
173
|
readonly name: string;
|
|
153
174
|
call(prompt: string, options: AICallOptions): AsyncGenerator<AIChunk>;
|
|
154
175
|
}
|
|
155
|
-
export interface ActiveSession {
|
|
156
|
-
id: string;
|
|
157
|
-
claudeSessionId?: string;
|
|
158
|
-
lastActivity: number;
|
|
159
|
-
createdAt: number;
|
|
160
|
-
}
|
|
161
176
|
export interface UserMessageEvent {
|
|
162
177
|
type: 'user_message';
|
|
163
178
|
content: string;
|
|
@@ -198,7 +213,43 @@ export interface ToolCallEvent {
|
|
|
198
213
|
result?: unknown;
|
|
199
214
|
error?: string;
|
|
200
215
|
}
|
|
201
|
-
/** @deprecated Use ChatEvent instead */
|
|
202
|
-
export type WebSocketEvent = ChatEvent;
|
|
203
216
|
export type ChatEvent = UserMessageEvent | AssistantChunkEvent | AssistantCompleteEvent | ToolCallEvent;
|
|
217
|
+
export type DashboardWidgetType = 'stat' | 'pie' | 'ring' | 'bar' | 'line' | 'area' | 'scatter' | 'radar' | 'funnel' | 'treemap' | 'gauge' | 'liquid' | 'heatmap' | 'stacked_bar' | 'grouped_bar';
|
|
218
|
+
export type DashboardAggregate = 'count' | 'sum' | 'avg' | 'min' | 'max' | 'ratio';
|
|
219
|
+
export type DashboardDateInterval = 'day' | 'week' | 'month';
|
|
220
|
+
export interface DashboardWidget {
|
|
221
|
+
/** Widget type */
|
|
222
|
+
type: DashboardWidgetType;
|
|
223
|
+
/** Display title in business language */
|
|
224
|
+
title: string;
|
|
225
|
+
/** Data model name from loom.config.ts */
|
|
226
|
+
model: string;
|
|
227
|
+
/** Ant Design Grid Col span (1-24), omitted means auto-equal-split */
|
|
228
|
+
span?: number;
|
|
229
|
+
/** Group by field for chart data aggregation */
|
|
230
|
+
groupBy?: string;
|
|
231
|
+
/** Second group-by field for 2D charts (heatmap, stacked_bar, grouped_bar) */
|
|
232
|
+
crossGroupBy?: string;
|
|
233
|
+
/** Aggregate function: count (default) | sum | avg | min | max | ratio */
|
|
234
|
+
aggregate?: DashboardAggregate;
|
|
235
|
+
/** Numeric field for sum/avg/min/max aggregation (not needed for count) */
|
|
236
|
+
field?: string;
|
|
237
|
+
/** Filter conditions for data before aggregation */
|
|
238
|
+
filter?: Record<string, unknown>;
|
|
239
|
+
/** Date interval for groupBy on date fields: day | week | month */
|
|
240
|
+
interval?: DashboardDateInterval;
|
|
241
|
+
}
|
|
242
|
+
export interface DashboardLayoutRow {
|
|
243
|
+
row: DashboardWidget[];
|
|
244
|
+
}
|
|
245
|
+
export interface DashboardConfig {
|
|
246
|
+
/** Dashboard identifier, used as page name (same naming rules as model) */
|
|
247
|
+
name: string;
|
|
248
|
+
/** Display label for sidebar navigation */
|
|
249
|
+
description?: string;
|
|
250
|
+
/** Data models included in this dashboard */
|
|
251
|
+
models: string[];
|
|
252
|
+
/** Layout definition: array of rows, each row contains widgets */
|
|
253
|
+
layout: DashboardLayoutRow[];
|
|
254
|
+
}
|
|
204
255
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,UAAU,GACV,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loom-framework/core",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
4
|
-
"description": "Loom framework
|
|
3
|
+
"version": "0.1.0-alpha.81",
|
|
4
|
+
"description": "Loom framework - DataAdapter, Capability Generator, config system, backend server, CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -11,24 +11,39 @@
|
|
|
11
11
|
"types": "./dist/index.d.ts"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
|
+
"bin": {
|
|
15
|
+
"loom": "dist/bin.js",
|
|
16
|
+
"core": "dist/bin.js",
|
|
17
|
+
"loom-server": "dist/server-bin.js"
|
|
18
|
+
},
|
|
14
19
|
"files": [
|
|
15
|
-
"dist"
|
|
20
|
+
"dist",
|
|
21
|
+
"templates"
|
|
16
22
|
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc",
|
|
25
|
+
"dev": "tsc --watch",
|
|
26
|
+
"clean": "rm -rf dist",
|
|
27
|
+
"lint": "tsc --noEmit"
|
|
28
|
+
},
|
|
17
29
|
"dependencies": {
|
|
30
|
+
"@fastify/cors": "^10.0.0",
|
|
31
|
+
"@fastify/static": "^8.0.0",
|
|
32
|
+
"adm-zip": "^0.5.17",
|
|
33
|
+
"chalk": "^5.3.0",
|
|
34
|
+
"commander": "^12.1.0",
|
|
35
|
+
"fastify": "^5.2.0",
|
|
36
|
+
"glob": "^11.0.0",
|
|
18
37
|
"jiti": "^2.6.1",
|
|
38
|
+
"ora": "^8.0.0",
|
|
19
39
|
"zod": "^3.23.0"
|
|
20
40
|
},
|
|
21
41
|
"optionalDependencies": {
|
|
22
42
|
"better-sqlite3": "^12.8.0"
|
|
23
43
|
},
|
|
24
44
|
"devDependencies": {
|
|
45
|
+
"@types/adm-zip": "^0.5.8",
|
|
25
46
|
"@types/better-sqlite3": "^7.6.13",
|
|
26
47
|
"typescript": "^5.6.0"
|
|
27
|
-
},
|
|
28
|
-
"scripts": {
|
|
29
|
-
"build": "tsc",
|
|
30
|
-
"dev": "tsc --watch",
|
|
31
|
-
"clean": "rm -rf dist",
|
|
32
|
-
"lint": "tsc --noEmit"
|
|
33
48
|
}
|
|
34
|
-
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: {{projectName}}-data
|
|
3
|
+
description: |
|
|
4
|
+
[阅读 references/models.md 中的数据模型和 AI 按钮定义,编写触发短语。
|
|
5
|
+
包含:用户语言中的常见增删改查动词、各数据模型相关的操作、AI 按钮的标签。
|
|
6
|
+
格式:"This skill should be used when the user asks to '短语1', '短语2',
|
|
7
|
+
or any request about <此项目管理的内容> in the {{projectName}} project."]
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# {{projectName}} — App Skill
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
[阅读 references/models.md,用2-3句话描述:项目做什么、管理哪些数据模型、用户如何通过 AI 对话与数据交互。]
|
|
16
|
+
|
|
17
|
+
## Usage Scenarios
|
|
18
|
+
|
|
19
|
+
[**必须加载 references/models.md 和 references/data-semantics.md**,这两个文件包含从 loom.config.ts 动态注入的项目特定信息,不加载则无法生成正确内容。
|
|
20
|
+
- models.md — 当前项目的数据模型字段表(字段名、类型、enum 取值、默认值)、AI 按钮定义(id、label、prompt、placement)、CLI 命令语法(read/write/update/delete,不要使用 create/list 等不存在的命令)。
|
|
21
|
+
- data-semantics.md — 当前项目的数据模型名称列表、write 的 --data JSON 构造规则(字段类型格式、enum 取值约束、贴合业务的真实示例值)、read 的 --filter JSON 构造规则(优先用 enum/boolean 字段筛选、跨模型关联查询)。
|
|
22
|
+
再生成8-10个典型用户请求,每个格式:用户说的话 → 对应的 `loom data` CLI 命令。每个数据模型至少包含一个场景。]
|
|
23
|
+
|
|
24
|
+
## Technical Reference
|
|
25
|
+
|
|
26
|
+
- 数据模型结构、CLI 语法和操作规范:**references/models.md**
|
|
27
|
+
- 语义引导(示例数据生成、筛选选择、关系推断):**references/data-semantics.md**
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# 数据语义引导
|
|
2
|
+
|
|
3
|
+
> 本文件由 `loom generate capabilities` 自动生成。请勿手动编辑 — 重新生成时将被覆盖。
|
|
4
|
+
|
|
5
|
+
生成 `loom data` CLI 命令时,阅读 `loom.config.ts` 获取数据模型定义,并遵循以下规则生成贴合业务的输出。
|
|
6
|
+
|
|
7
|
+
注:本文中的"数据模型"指 loom.config.ts 中定义的数据结构(如 wrong_questions、review_plans),而非大语言模型。
|
|
8
|
+
|
|
9
|
+
## 示例数据生成
|
|
10
|
+
|
|
11
|
+
构造 write 命令的 `--data` JSON 时:
|
|
12
|
+
|
|
13
|
+
- 根据字段名、类型、描述和枚举值生成**贴合业务的真实值**。
|
|
14
|
+
例如名为 `questionContent`、描述为"题目内容"的字段,应填真实题目如 `"3+5=?"`,而非 `"value"`。
|
|
15
|
+
- 遵守 **FieldType**:`number` → 不加引号的数字(`1`),`boolean` → 不加引号的布尔值(`false`),
|
|
16
|
+
`date` → ISO 日期字符串(`"2026-01-15"`),`string[]` → JSON 数组(`["标签1"]`),`json` → JSON 对象(`{}`)。
|
|
17
|
+
- 有 **enum** 时必须使用枚举值 — 这是该字段唯一切合法的取值。
|
|
18
|
+
- write 命令只需包含**必填字段**,可选字段可省略。
|
|
19
|
+
- update 命令只需传入**要变更的字段**。
|
|
20
|
+
|
|
21
|
+
## 筛选条件选择
|
|
22
|
+
|
|
23
|
+
构造 read 命令的 `--filter` JSON 时:
|
|
24
|
+
|
|
25
|
+
- **优先使用 enum 和 boolean 字段**做筛选 — 它们能产生最有意义的分区
|
|
26
|
+
(如 `{"subject": "数学"}`、`{"mastered": false}`)。
|
|
27
|
+
- 选择**业务含义最丰富的筛选条件**,而非按字母序取第一个字段。
|
|
28
|
+
- 可组合多个筛选:`{"subject": "数学", "mastered": false}`。
|
|
29
|
+
- 数据量大时使用 `--limit` 避免输出过多。
|
|
30
|
+
|
|
31
|
+
## 跨数据模型关联
|
|
32
|
+
|
|
33
|
+
当字段名以 `Id` 结尾(如 `wrongQuestionId`)时,通常引用的是另一个数据模型的记录。
|
|
34
|
+
|
|
35
|
+
- 查询关联记录:`loom data read <目标数据模型> --id <值>`。
|
|
36
|
+
- 查询指向某条记录的所有关联:`loom data read <数据模型> --filter '{"<外键字段>": "<id>"}'`。
|
|
37
|
+
- 常见命名模式:`parentId` → 自引用,`<数据模型名>Id` → 引用该数据模型。
|
|
38
|
+
|
|
39
|
+
<!-- MODEL_NAMES -->
|
|
40
|
+
|
|
41
|
+
## AI 按钮校验
|
|
42
|
+
|
|
43
|
+
执行 AI 按钮操作前,验证 prompt 中所有 `{{var}}` 占位符是否对应目标数据模型上的实际字段。
|
|
44
|
+
如果变量引用了不存在的字段,告知用户并建议添加该字段或更新 prompt。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 数据模型与 CLI 参考
|
|
2
|
+
|
|
3
|
+
> 本文件由 `loom generate capabilities` 自动生成。请勿手动编辑 — 重新生成时将被覆盖。
|
|
4
|
+
|
|
5
|
+
## 数据模型
|
|
6
|
+
|
|
7
|
+
<!-- DATA_MODELS -->
|
|
8
|
+
|
|
9
|
+
## CLI 命令
|
|
10
|
+
|
|
11
|
+
所有数据操作使用 `loom data` CLI 命令,需在项目根目录下执行。
|
|
12
|
+
|
|
13
|
+
| 命令 | 说明 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| `loom data read <model> [--id <id>] [--filter <json>] [--limit <n>]` | 读取记录 |
|
|
16
|
+
| `loom data write <model> --data '<json>'` | 创建记录 |
|
|
17
|
+
| `loom data update <model> --id <id> --data '<json>'` | 更新记录 |
|
|
18
|
+
| `loom data delete <model> --id <id>` | 删除记录 |
|
|
19
|
+
| `loom data schema [model]` | 查看数据模型结构 |
|
|
20
|
+
|
|
21
|
+
<!-- AI_BUTTONS -->
|
|
22
|
+
|
|
23
|
+
## 操作规范
|
|
24
|
+
|
|
25
|
+
1. 所有数据操作必须使用 `loom data` CLI 命令,不要直接访问文件或数据库。
|
|
26
|
+
2. 命令在项目根目录下执行。
|
|
27
|
+
3. 执行删除等不可逆操作前,需与用户确认。
|
|
28
|
+
4. 创建/更新时确保必填字段齐全。不确定时用 `loom data schema <model>` 查看。
|
|
29
|
+
5. `update` 只需传入要修改的字段,未指定的字段保持不变。
|
|
30
|
+
6. CLI 输出格式为 JSON — 解析输出以理解数据结构。
|
|
31
|
+
7. 数据变更后,告知用户页面会自动刷新。
|