@loom-framework/core 0.1.0-alpha.171 → 0.1.0-alpha.173

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.
Files changed (89) hide show
  1. package/builtin-skills/app-skill/references/process-builder.md +33 -0
  2. package/builtin-skills/app-skill/references/process.md +33 -0
  3. package/builtin-skills/loom/SKILL.md +50 -5
  4. package/builtin-skills/loom/references/data-model.md +3 -2
  5. package/dist/backend/index.d.ts +4 -0
  6. package/dist/backend/index.d.ts.map +1 -1
  7. package/dist/backend/index.js +44 -4
  8. package/dist/backend/index.js.map +1 -1
  9. package/dist/backend/lifecycle/index.d.ts +2 -0
  10. package/dist/backend/lifecycle/index.d.ts.map +1 -0
  11. package/dist/backend/lifecycle/index.js +2 -0
  12. package/dist/backend/lifecycle/index.js.map +1 -0
  13. package/dist/backend/lifecycle/manager.d.ts +50 -0
  14. package/dist/backend/lifecycle/manager.d.ts.map +1 -0
  15. package/dist/backend/lifecycle/manager.js +478 -0
  16. package/dist/backend/lifecycle/manager.js.map +1 -0
  17. package/dist/backend/process/engine.d.ts +1 -1
  18. package/dist/backend/process/engine.d.ts.map +1 -1
  19. package/dist/backend/process/engine.js.map +1 -1
  20. package/dist/backend/process/registry.d.ts +1 -1
  21. package/dist/backend/process/registry.d.ts.map +1 -1
  22. package/dist/backend/process/registry.js.map +1 -1
  23. package/dist/backend/routes/index.d.ts +2 -0
  24. package/dist/backend/routes/index.d.ts.map +1 -1
  25. package/dist/backend/routes/index.js +1 -0
  26. package/dist/backend/routes/index.js.map +1 -1
  27. package/dist/backend/routes/lifecycle-routes.d.ts +10 -0
  28. package/dist/backend/routes/lifecycle-routes.d.ts.map +1 -0
  29. package/dist/backend/routes/lifecycle-routes.js +54 -0
  30. package/dist/backend/routes/lifecycle-routes.js.map +1 -0
  31. package/dist/backend/routes/process-routes.d.ts +2 -0
  32. package/dist/backend/routes/process-routes.d.ts.map +1 -1
  33. package/dist/backend/routes/process-routes.js +50 -3
  34. package/dist/backend/routes/process-routes.js.map +1 -1
  35. package/dist/cli/commands/dev.d.ts.map +1 -1
  36. package/dist/cli/commands/dev.js +18 -1
  37. package/dist/cli/commands/dev.js.map +1 -1
  38. package/dist/cli/commands/init.d.ts.map +1 -1
  39. package/dist/cli/commands/init.js +15 -2
  40. package/dist/cli/commands/init.js.map +1 -1
  41. package/dist/cli/commands/lifecycle.d.ts +8 -0
  42. package/dist/cli/commands/lifecycle.d.ts.map +1 -0
  43. package/dist/cli/commands/lifecycle.js +167 -0
  44. package/dist/cli/commands/lifecycle.js.map +1 -0
  45. package/dist/cli/commands/process.d.ts.map +1 -1
  46. package/dist/cli/commands/process.js +17 -0
  47. package/dist/cli/commands/process.js.map +1 -1
  48. package/dist/cli/commands/serve.js +2 -2
  49. package/dist/cli/commands/serve.js.map +1 -1
  50. package/dist/cli/index.d.ts.map +1 -1
  51. package/dist/cli/index.js +2 -0
  52. package/dist/cli/index.js.map +1 -1
  53. package/dist/cli/templates/login-page.d.ts +1 -1
  54. package/dist/cli/templates/login-page.js +1 -1
  55. package/dist/cli/templates/loom-config.d.ts +2 -0
  56. package/dist/cli/templates/loom-config.d.ts.map +1 -1
  57. package/dist/cli/templates/loom-config.js +7 -0
  58. package/dist/cli/templates/loom-config.js.map +1 -1
  59. package/dist/cli/templates/model-management-page.d.ts +1 -1
  60. package/dist/cli/templates/model-management-page.js +1 -1
  61. package/dist/cli/templates/notification-center-page.d.ts +1 -1
  62. package/dist/cli/templates/notification-center-page.js +1 -1
  63. package/dist/cli/templates/notification-detail-page.d.ts +1 -1
  64. package/dist/cli/templates/notification-detail-page.js +1 -1
  65. package/dist/cli/templates/process-management-page.d.ts +1 -1
  66. package/dist/cli/templates/process-management-page.js +1 -1
  67. package/dist/cli/templates/skill-management-page.d.ts +1 -1
  68. package/dist/cli/templates/skill-management-page.js +1 -1
  69. package/dist/cli/templates/user-management-page.d.ts +1 -1
  70. package/dist/cli/templates/user-management-page.js +1 -1
  71. package/dist/cli/templates/vite-config.d.ts +5 -1
  72. package/dist/cli/templates/vite-config.d.ts.map +1 -1
  73. package/dist/cli/templates/vite-config.js +5 -3
  74. package/dist/cli/templates/vite-config.js.map +1 -1
  75. package/dist/config.d.ts +229 -6
  76. package/dist/config.d.ts.map +1 -1
  77. package/dist/config.js +36 -2
  78. package/dist/config.js.map +1 -1
  79. package/dist/types/config.d.ts +5 -1
  80. package/dist/types/config.d.ts.map +1 -1
  81. package/dist/types/index.d.ts +2 -1
  82. package/dist/types/index.d.ts.map +1 -1
  83. package/dist/types/lifecycle.d.ts +57 -0
  84. package/dist/types/lifecycle.d.ts.map +1 -0
  85. package/dist/types/lifecycle.js +10 -0
  86. package/dist/types/lifecycle.js.map +1 -0
  87. package/dist/types/process.d.ts +25 -0
  88. package/dist/types/process.d.ts.map +1 -1
  89. package/package.json +1 -1
@@ -35,6 +35,7 @@ Identify:
35
35
  | Periodic schedule | `--cron` | `0 9 * * 1-5` (weekdays 9am) |
36
36
  | On data change | `--on-event` | `data:create:tasks` |
37
37
  | On user action | `--on-event` | `user:created` |
38
+ | External data source | `--source` | `--source "bash feeders/my-feeder.sh"` |
38
39
  | Manual only | Neither | Just `loom process run` |
39
40
 
40
41
  ### 3. Create the Process
@@ -78,6 +79,38 @@ loom process add --name "weekly-report" \
78
79
  loom process metrics-set-view-config weekly-report --config @./view-config.json
79
80
  ```
80
81
 
82
+ ### Event-triggered process with Feeder source
83
+
84
+ When the process needs a persistent data source (e.g., DingTalk messages, webhooks), use `--source` to declare a Feeder script:
85
+
86
+ ```bash
87
+ # Step 1: Generate scaffold (if full mode)
88
+ loom process generate ingest --description "AI semantic router for incoming messages"
89
+
90
+ # Step 2: Edit PROCESS.md with routing logic
91
+ # ...
92
+
93
+ # Step 3: Register with Feeder source
94
+ loom process add --name "ingest" \
95
+ --on-event "dingtalk:mention" \
96
+ --source "bash examples/feeders/dingtalk-mention.sh" \
97
+ --process "ingest" \
98
+ --owner admin
99
+ ```
100
+
101
+ **When to use `--source`:**
102
+ - Process needs a persistent external data source (DingTalk, Git webhook, scanner, etc.)
103
+ - The Feeder should run as long as the Loom instance is running
104
+ - You want auto-restart and backoff for the Feeder
105
+
106
+ **Feeder script requirements:**
107
+ - Trap SIGTERM/SIGINT and exit 0 for graceful shutdown
108
+ - Use `$LOOM_SERVER_URL` instead of hardcoded URLs
109
+ - Exit code 0 = normal stop (no restart); non-zero = crash (auto-restart)
110
+ - Write data to `POST $LOOM_SERVER_URL/api/v1/events/notify`
111
+
112
+ **Cleanup:** Removing the process with `loom process remove` automatically stops the Feeder if no other process subscribes to the same event pattern.
113
+
81
114
  ### 4. Verify
82
115
 
83
116
  ```bash
@@ -54,6 +54,7 @@ loom process add --name "health-check" \
54
54
  | `--owner` | No | Owner username (default: from processes config) |
55
55
  | `--owner-token` | No | Direct JWT token (bypasses runtime resolution) |
56
56
  | `--metrics-config` | No | Path to metrics DashboardWidget config JSON |
57
+ | `--source` | No | Feeder script command (auto-registers lifecycle script + event subscription) |
57
58
  | `--token` | No | Auth token (or set LOOM_TOKEN) |
58
59
  | `--server` | No | Server URL (or set LOOM_SERVER, default: http://localhost:3000) |
59
60
 
@@ -265,6 +266,38 @@ user:created — When a user is created
265
266
  process:completed:xxx — When process xxx completes
266
267
  ```
267
268
 
269
+ ### Source (Feeder)
270
+ When a process needs a persistent external data source, use `--source` to declare a Feeder script. The script starts when the Loom instance becomes ready and stops when the instance shuts down.
271
+
272
+ ```bash
273
+ loom process add --name ingest \
274
+ --on-event "dingtalk:mention" \
275
+ --source "bash examples/feeders/dingtalk-mention.sh" \
276
+ --process "ingest" \
277
+ --owner admin
278
+ ```
279
+
280
+ This single command:
281
+ 1. Registers the Process definition with a `source` field
282
+ 2. Auto-starts the Feeder via LifecycleManager
283
+ 3. Auto-registers the event subscription if not already present
284
+
285
+ Removing the process with `loom process remove` automatically cleans up the Feeder if no other process subscribes to the same event pattern.
286
+
287
+ **Feeder script contract:**
288
+ - Trap SIGTERM/SIGINT and exit with code 0 for graceful shutdown
289
+ - Use `$LOOM_SERVER_URL` instead of hardcoded URLs
290
+ - Exit code 0 = normal (no restart); non-zero = crash (auto-restart with backoff)
291
+ - One script instance per name
292
+
293
+ **Lifecycle event patterns:**
294
+ | Pattern | When |
295
+ |---------|------|
296
+ | `lifecycle:started:{name}` | Feeder script started |
297
+ | `lifecycle:failed:{name}` | Feeder script exited abnormally |
298
+ | `lifecycle:circuit_open:{name}` | Feeder reached max restarts |
299
+ | `lifecycle:restart:{name}` | Feeder restarting with backoff |
300
+
268
301
  ### Manual
269
302
  `loom process run <name>` — immediate execution, works even when paused.
270
303
 
@@ -32,9 +32,19 @@ Loom 是**配置驱动的 AI 平台开发框架**——你描述需求,AI 通
32
32
  ### 1. 创建项目
33
33
 
34
34
  ```bash
35
- npx -p @loom-framework/core loom init <name> --description <desc> --adapter <filesystem|sqlite>
35
+ npx -p @loom-framework/core loom init <name> --description <desc> --adapter <filesystem|sqlite> --backend-port <backend-port> --frontend-port <frontend-port>
36
36
  ```
37
37
 
38
+ **多实例并行**:每个 Loom 实例同时占用**后端端口**(Fastify)和**前端端口**(Vite dev server)。建议后端从 :3000 起自增,前端从 :5173 起自增,相邻实例使用连续端口方便管理:
39
+
40
+ | 实例 | 后端端口 | 前端端口 |
41
+ |------|---------|---------|
42
+ | my-app | 3000 | 5173 |
43
+ | my-app-2 | 3001 | 5174 |
44
+ | my-app-3 | 3002 | 5175 |
45
+
46
+ `loom init` 时**必须显式指定两个端口**。如果启动时报 `EADDRINUSE`,说明端口被占用,请换端口重新 `init`。
47
+
38
48
  项目初始化时自动生成系统管理页面(模型管理、技能管理、用户管理、过程管理、通知中心),并以子菜单形式接入导航。同时自动安装以下内置 Skill:
39
49
 
40
50
  | Skill | 触发场景 | 说明 |
@@ -123,11 +133,20 @@ loom generate capabilities
123
133
  ### 6. 启动开发
124
134
 
125
135
  ```bash
126
- loom dev
136
+ loom dev # 启动前后端
137
+ loom dev --backend-only # 只启动后端
138
+ loom dev --frontend-only # 只启动前端
139
+ loom dev --frontend-port 8080 # 临时覆盖前端端口
127
140
  ```
128
141
 
129
- - 前端:http://localhost:5173
130
- - 后端:http://localhost:3000
142
+ - **前端端口**:由 `loom.config.ts` 的 `server.frontendPort` 决定。`loom init` 时自动根据 `--frontend-port` 写入,`loom dev` 无需再传端口
143
+ - **后端端口**:由 `loom.config.ts` 的 `server.backendPort` 决定。后端启动时自动读取
144
+ - `--frontend-port`:作为 Vite CLI `--port` 参数传入,**临时覆盖**配置文件中的值
145
+
146
+ **多实例并行开发**:每个实例独立运行前后端,端口互不冲突。例如:
147
+ - my-app:后端 `:3000` + 前端 `:5173`
148
+ - my-app-2:后端 `:3001` + 前端 `:5174`
149
+ - my-app-3:后端 `:3002` + 前端 `:5175`
131
150
 
132
151
  ### 迭代:修改配置后的处理
133
152
 
@@ -167,7 +186,7 @@ loom generate page <Name> --model <model-name> --force
167
186
 
168
187
  | 命令 | 说明 |
169
188
  |------|------|
170
- | `loom dev` | 启动开发环境(`--backend-only` `--frontend-only`) |
189
+ | `loom dev` | 启动开发环境(`--backend-only` `--frontend-only` `--frontend-port`) |
171
190
  | `loom build` | 生产构建 |
172
191
  | `loom generate page <name> --model <model>` | 生成 CRUD 页面(含 aiButtons 则自动集成 AI 按钮) |
173
192
  | `loom generate page <name> --model <model> --force` | 重建页面(默认方式,自动备份旧文件到 `.loom/backup/`) |
@@ -278,6 +297,31 @@ export default defineConfig({
278
297
  defaultOwner: 'admin', // 必填:默认执行者
279
298
  executionTimeout: '30m', // 可选:执行超时(默认 30m)
280
299
  },
300
+ lifecycle: { // 可选:生命周期脚本管理(Feeder 自动拉起等)
301
+ enabled: true, // 可选,是否启用(默认 true)
302
+ onReady: [ // 服务器就绪后启动的脚本列表
303
+ {
304
+ name: 'my-feeder', // 必填:唯一标识
305
+ command: 'bash examples/feeders/my-feeder.sh', // 必填:执行命令
306
+ env: {}, // 可选:环境变量
307
+ restart: true, // 可选:异常退出是否重启(默认 true)
308
+ maxRestarts: 5, // 可选:重启窗口内最大重启次数(默认 5)
309
+ backoffInitialMs: 1000, // 可选:初始退避延迟毫秒(默认 1000)
310
+ backoffMaxMs: 30000, // 可选:最大退避延迟毫秒(默认 30000)
311
+ backoffMultiplier: 2.0, // 可选:退避乘数(默认 2.0)
312
+ memoryLimitMb: 512, // 可选:内存限制 MB(默认 512)
313
+ shutdownTimeoutMs: 5000, // 可选:优雅关闭等待毫秒(默认 5000)
314
+ enabled: true, // 可选:是否启用(默认 true)
315
+ },
316
+ ],
317
+ },
318
+ // 此配置通常由 `loom process add --source` 自动生成,不需要手动编辑
319
+ server: { // 可选:服务器配置
320
+ backendPort: 3000, // 后端 API 端口
321
+ frontendPort: 5173, // 前端 Vite dev server 端口
322
+ host: '127.0.0.1', // 监听地址(仅本地,如需外部访问改为 '0.0.0.0')
323
+ cors: true, // 是否启用 CORS
324
+ },
281
325
  });
282
326
  ```
283
327
 
@@ -305,4 +349,5 @@ AI 相关:`POST /api/v1/chat`(SSE 流式对话)、`GET /api/v1/sessions`
305
349
  ## 常见问题
306
350
 
307
351
  - **better-sqlite3 加载失败**:Node.js 版本缺少预编译包。修复:(1) `cd node_modules/better-sqlite3 && npx node-gyp rebuild`,或 (2) 将 `defaultAdapter` 改为 `'filesystem'`
352
+ - **端口冲突(EADDRINUSE)**:启动 `loom dev` 时如果端口已被占用,Node.js 会抛出 `EADDRINUSE` 错误。解决方式:换端口重新执行 `loom init <name> --backend-port <new-port> --frontend-port <new-frontend-port>`。
308
353
  - **`loom` 命令报错 "No loom.config.ts found"**:在项目目录下运行命令
@@ -111,8 +111,9 @@ Models can be managed via the Model Management page (System Settings → Model M
111
111
 
112
112
  ```typescript
113
113
  server: {
114
- port: 3000, // default 3000
115
- host: '0.0.0.0',
114
+ backendPort: 3000, // default 3000
115
+ frontendPort: 5173, // default 5173
116
+ host: '127.0.0.1', // default 127.0.0.1 (local only)
116
117
  cors: true, // default true
117
118
  staticDir: './dist/frontend',
118
119
  }
@@ -16,6 +16,7 @@ import { TokenStore } from './auth/token-store.js';
16
16
  import { EventBus } from './events/event-bus.js';
17
17
  import { EventRegistry } from './events/event-registry.js';
18
18
  import { ProcessEngine } from './process/engine.js';
19
+ import { LifecycleManager } from './lifecycle/index.js';
19
20
  import { NotificationStorage } from './notifications/notification-storage.js';
20
21
  export interface LoomServerOptions {
21
22
  /** Project root directory containing loom.config.ts */
@@ -41,6 +42,7 @@ export declare class LoomServer {
41
42
  private eventBus?;
42
43
  private eventRegistry?;
43
44
  private processEngine?;
45
+ private lifecycleManager?;
44
46
  private notificationStorage?;
45
47
  private projectRoot;
46
48
  private options;
@@ -73,6 +75,8 @@ export declare class LoomServer {
73
75
  getEventRegistry(): EventRegistry | undefined;
74
76
  /** Expose process engine for testing */
75
77
  getProcessEngine(): ProcessEngine | undefined;
78
+ /** Expose lifecycle manager for testing */
79
+ getLifecycleManager(): LifecycleManager | undefined;
76
80
  /** Expose notification storage for testing */
77
81
  getNotificationStorage(): NotificationStorage | undefined;
78
82
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAM9B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAUvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAK9E,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACrC,kEAAkE;IAClE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAClD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAoB;gBAEvB,OAAO,EAAE,iBAAiB;IAKtC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8SjC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,0CAA0C;IAC1C,UAAU,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC;IAIxC,gCAAgC;IAChC,SAAS,IAAI,UAAU;IAIvB,iCAAiC;IACjC,UAAU,IAAI,WAAW;IAIzB,oCAAoC;IACpC,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC,qCAAqC;IACrC,aAAa,IAAI,UAAU,GAAG,SAAS;IAIvC,mCAAmC;IACnC,WAAW,IAAI,QAAQ,GAAG,SAAS;IAInC,wCAAwC;IACxC,gBAAgB,IAAI,aAAa,GAAG,SAAS;IAI7C,wCAAwC;IACxC,gBAAgB,IAAI,aAAa,GAAG,SAAS;IAI7C,8CAA8C;IAC9C,sBAAsB,IAAI,mBAAmB,GAAG,SAAS;IAIzD;;;OAGG;YACW,WAAW;CAqB1B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAK1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAM9B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAUvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAK9E,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACrC,kEAAkE;IAClE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAClD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAoB;gBAEvB,OAAO,EAAE,iBAAiB;IAKtC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgVjC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,0CAA0C;IAC1C,UAAU,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC;IAIxC,gCAAgC;IAChC,SAAS,IAAI,UAAU;IAIvB,iCAAiC;IACjC,UAAU,IAAI,WAAW;IAIzB,oCAAoC;IACpC,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC,qCAAqC;IACrC,aAAa,IAAI,UAAU,GAAG,SAAS;IAIvC,mCAAmC;IACnC,WAAW,IAAI,QAAQ,GAAG,SAAS;IAInC,wCAAwC;IACxC,gBAAgB,IAAI,aAAa,GAAG,SAAS;IAI7C,wCAAwC;IACxC,gBAAgB,IAAI,aAAa,GAAG,SAAS;IAI7C,2CAA2C;IAC3C,mBAAmB,IAAI,gBAAgB,GAAG,SAAS;IAInD,8CAA8C;IAC9C,sBAAsB,IAAI,mBAAmB,GAAG,SAAS;IAIzD;;;OAGG;YACW,WAAW;CAqB1B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAK1E"}
@@ -16,7 +16,7 @@ import { createAdapter } from '../adapters/factory.js';
16
16
  import { ClaudeCodeEngine } from './ai/engine.js';
17
17
  import { SessionManager } from './ai/session-manager.js';
18
18
  import { AIInteractionLogger } from './observe/index.js';
19
- import { registerDataRoutes, registerHealthRoute, registerUploadRoutes, registerChatRoutes, registerSkillRoutes, registerAIConfigRoutes, registerAuthRoutes, registerEventRoutes, registerProcessRoutes, registerNotificationRoutes } from './routes/index.js';
19
+ import { registerDataRoutes, registerHealthRoute, registerUploadRoutes, registerChatRoutes, registerSkillRoutes, registerAIConfigRoutes, registerAuthRoutes, registerEventRoutes, registerProcessRoutes, registerNotificationRoutes, registerLifecycleRoutes } from './routes/index.js';
20
20
  import { createAuthMiddleware } from './auth/rbac.js';
21
21
  import { issueServiceToken } from './auth/service-token.js';
22
22
  import { UserStore } from './auth/user-store.js';
@@ -26,6 +26,7 @@ import { EventBus } from './events/event-bus.js';
26
26
  import { EventEmittingAdapter } from './events/event-emitting-adapter.js';
27
27
  import { EventRegistry } from './events/event-registry.js';
28
28
  import { ProcessEngine } from './process/engine.js';
29
+ import { LifecycleManager } from './lifecycle/index.js';
29
30
  import { NotificationStorage } from './notifications/notification-storage.js';
30
31
  import { interpolate } from './notifications/interpolate.js';
31
32
  import { LoomPaths } from './loom-paths.js';
@@ -41,6 +42,7 @@ export class LoomServer {
41
42
  eventBus;
42
43
  eventRegistry;
43
44
  processEngine;
45
+ lifecycleManager;
44
46
  notificationStorage;
45
47
  projectRoot;
46
48
  options;
@@ -215,6 +217,21 @@ export class LoomServer {
215
217
  if (this.eventBus) {
216
218
  registerEventRoutes(this.fastify, { eventBus: this.eventBus, eventRegistry: this.eventRegistry });
217
219
  }
220
+ // Initialize LifecycleManager (only when lifecycle config exists and not explicitly disabled)
221
+ // Created before ProcessEngine so that it can be passed to process routes
222
+ if (this.config.lifecycle && this.config.lifecycle.enabled !== false) {
223
+ this.lifecycleManager = new LifecycleManager(this.config.lifecycle, this.eventBus, this.projectRoot, this.config.server?.backendPort || 3000);
224
+ registerLifecycleRoutes(this.fastify, { manager: this.lifecycleManager });
225
+ // Register lifecycle event patterns for discoverability
226
+ if (this.eventRegistry) {
227
+ for (const script of this.config.lifecycle.onReady) {
228
+ this.eventRegistry.register(`lifecycle:started:${script.name}`, 'lifecycle', `Lifecycle script ${script.name} started`, '{ name, pid }');
229
+ this.eventRegistry.register(`lifecycle:failed:${script.name}`, 'lifecycle', `Lifecycle script ${script.name} failed`, '{ name, error, exitCode }');
230
+ this.eventRegistry.register(`lifecycle:circuit_open:${script.name}`, 'lifecycle', `Lifecycle script ${script.name} reached max restarts`, '{ name, restartCount }');
231
+ this.eventRegistry.register(`lifecycle:restart:${script.name}`, 'lifecycle', `Lifecycle script ${script.name} restarting`, '{ name, backoffMs }');
232
+ }
233
+ }
234
+ }
218
235
  // Initialize ProcessEngine (only when processes config exists and not explicitly disabled)
219
236
  if (this.config.processes && this.config.processes.enabled !== false) {
220
237
  this.processEngine = new ProcessEngine({
@@ -226,14 +243,20 @@ export class LoomServer {
226
243
  eventRegistry: this.eventRegistry,
227
244
  authConfig: this.config.auth,
228
245
  userStore: this.userStore,
229
- serverUrl: `http://localhost:${this.config.server?.port || 3000}`,
246
+ serverUrl: `http://localhost:${this.config.server?.backendPort || 3000}`,
230
247
  });
231
248
  await this.processEngine.initialize();
232
249
  registerProcessRoutes(this.fastify, {
233
250
  engine: this.processEngine,
234
251
  paths,
235
252
  eventBus: this.eventBus,
253
+ lifecycleManager: this.lifecycleManager,
236
254
  });
255
+ // Auto-register feeder scripts from ProcessRegistry into LifecycleManager
256
+ if (this.lifecycleManager) {
257
+ const allProcesses = await this.processEngine.listProcesses();
258
+ this.lifecycleManager.syncFromProcessRegistry(allProcesses);
259
+ }
237
260
  }
238
261
  // Register declarative subscriptions from events config
239
262
  if (this.eventBus && this.config.events?.subscriptions) {
@@ -314,6 +337,10 @@ export class LoomServer {
314
337
  }
315
338
  // Graceful shutdown handlers
316
339
  const cleanup = async () => {
340
+ // Stop lifecycle scripts first
341
+ if (this.lifecycleManager) {
342
+ await this.lifecycleManager.stopAll();
343
+ }
317
344
  if (this.processEngine) {
318
345
  await this.processEngine.shutdown();
319
346
  }
@@ -330,14 +357,23 @@ export class LoomServer {
330
357
  * Start listening
331
358
  */
332
359
  async start() {
333
- const port = this.config.server?.port || 3000;
334
- const host = this.config.server?.host || '0.0.0.0';
360
+ const port = this.config.server?.backendPort || 3000;
361
+ const host = this.config.server?.host || '127.0.0.1';
335
362
  await this.fastify.listen({ port, host });
363
+ // Start lifecycle scripts after server is ready
364
+ if (this.lifecycleManager) {
365
+ await this.lifecycleManager.startAll();
366
+ this.fastify.log.info('[Lifecycle] All onReady scripts started');
367
+ }
336
368
  }
337
369
  /**
338
370
  * Stop the server
339
371
  */
340
372
  async stop() {
373
+ // Stop lifecycle scripts first
374
+ if (this.lifecycleManager) {
375
+ await this.lifecycleManager.stopAll();
376
+ }
341
377
  if (this.processEngine) {
342
378
  await this.processEngine.shutdown();
343
379
  }
@@ -379,6 +415,10 @@ export class LoomServer {
379
415
  getProcessEngine() {
380
416
  return this.processEngine;
381
417
  }
418
+ /** Expose lifecycle manager for testing */
419
+ getLifecycleManager() {
420
+ return this.lifecycleManager;
421
+ }
382
422
  /** Expose notification storage for testing */
383
423
  getNotificationStorage() {
384
424
  return this.notificationStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { LifecycleManager } from './manager.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backend/lifecycle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { LifecycleManager } from './manager.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backend/lifecycle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * LifecycleManager — manages long-running lifecycle scripts with
3
+ * auto-restart, exponential backoff, memory limits, and graceful shutdown.
4
+ */
5
+ import type { LifecycleScript, LifecycleConfig, LifecycleScriptInfo } from '../../types/lifecycle.js';
6
+ import type { ProcessDefinition } from '../../types/process.js';
7
+ import type { EventBus } from '../events/event-bus.js';
8
+ export declare class LifecycleManager {
9
+ private config;
10
+ private eventBus;
11
+ private projectRoot;
12
+ private serverPort;
13
+ private processes;
14
+ constructor(config: LifecycleConfig, eventBus: EventBus | undefined, projectRoot: string, serverPort?: number);
15
+ /** Start all enabled lifecycle scripts. */
16
+ startAll(): Promise<void>;
17
+ /** Stop all running lifecycle scripts in parallel. */
18
+ stopAll(): Promise<void>;
19
+ /** Manually start a single script by name. */
20
+ start(name: string): Promise<void>;
21
+ /** Manually stop a single script by name. */
22
+ stop(name: string): Promise<void>;
23
+ /** Restart a single script by name. */
24
+ restart(name: string): Promise<void>;
25
+ /** Return status info for all managed scripts. */
26
+ listStatus(): LifecycleScriptInfo[];
27
+ /** Return status info for a single script. */
28
+ getStatus(name: string): LifecycleScriptInfo | undefined;
29
+ /** Dynamically add a script at runtime. */
30
+ addScript(script: LifecycleScript): void;
31
+ /**
32
+ * Sync lifecycle scripts from ProcessRegistry.
33
+ * For each Process with a `source` field, auto-register a LifecycleScript
34
+ * with name = `${processName}-feeder` and command = source.command.
35
+ * Skips if a script with that name already exists.
36
+ */
37
+ syncFromProcessRegistry(processes: ProcessDefinition[]): void;
38
+ /** Dynamically remove a script and stop it if running. */
39
+ removeScript(name: string): Promise<void>;
40
+ private spawnProcess;
41
+ private handleCrash;
42
+ private stopProcess;
43
+ private startMemoryCheck;
44
+ private checkMemory;
45
+ private clearTimers;
46
+ private clearBackoff;
47
+ private clearMemoryCheck;
48
+ private toScriptInfo;
49
+ }
50
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/backend/lifecycle/manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAEf,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAwCvD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAA0C;gBAE/C,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAwB7G,2CAA2C;IACrC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAY/B,sDAAsD;IAChD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B,8CAA8C;IACxC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxC,6CAA6C;IACvC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvC,uCAAuC;IACjC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1C,kDAAkD;IAClD,UAAU,IAAI,mBAAmB,EAAE;IAQnC,8CAA8C;IAC9C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAMxD,2CAA2C;IAC3C,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAgBxC;;;;;OAKG;IACH,uBAAuB,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAsB7D,0DAA0D;IACpD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/C,OAAO,CAAC,YAAY;IAqHpB,OAAO,CAAC,WAAW;YAoEL,WAAW;IAoEzB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,WAAW;IAyDnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,YAAY;CAarB"}