@loom-framework/core 0.1.0-alpha.172 → 0.1.0-alpha.174

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 (79) 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 +19 -0
  4. package/dist/backend/auth/rbac.d.ts.map +1 -1
  5. package/dist/backend/auth/rbac.js +1 -0
  6. package/dist/backend/auth/rbac.js.map +1 -1
  7. package/dist/backend/index.d.ts +4 -0
  8. package/dist/backend/index.d.ts.map +1 -1
  9. package/dist/backend/index.js +41 -1
  10. package/dist/backend/index.js.map +1 -1
  11. package/dist/backend/lifecycle/index.d.ts +2 -0
  12. package/dist/backend/lifecycle/index.d.ts.map +1 -0
  13. package/dist/backend/lifecycle/index.js +2 -0
  14. package/dist/backend/lifecycle/index.js.map +1 -0
  15. package/dist/backend/lifecycle/manager.d.ts +50 -0
  16. package/dist/backend/lifecycle/manager.d.ts.map +1 -0
  17. package/dist/backend/lifecycle/manager.js +478 -0
  18. package/dist/backend/lifecycle/manager.js.map +1 -0
  19. package/dist/backend/process/engine.d.ts +1 -1
  20. package/dist/backend/process/engine.d.ts.map +1 -1
  21. package/dist/backend/process/engine.js.map +1 -1
  22. package/dist/backend/process/registry.d.ts +1 -1
  23. package/dist/backend/process/registry.d.ts.map +1 -1
  24. package/dist/backend/process/registry.js.map +1 -1
  25. package/dist/backend/routes/event-routes.js +1 -1
  26. package/dist/backend/routes/event-routes.js.map +1 -1
  27. package/dist/backend/routes/index.d.ts +2 -0
  28. package/dist/backend/routes/index.d.ts.map +1 -1
  29. package/dist/backend/routes/index.js +1 -0
  30. package/dist/backend/routes/index.js.map +1 -1
  31. package/dist/backend/routes/lifecycle-routes.d.ts +10 -0
  32. package/dist/backend/routes/lifecycle-routes.d.ts.map +1 -0
  33. package/dist/backend/routes/lifecycle-routes.js +54 -0
  34. package/dist/backend/routes/lifecycle-routes.js.map +1 -0
  35. package/dist/backend/routes/process-routes.d.ts +2 -0
  36. package/dist/backend/routes/process-routes.d.ts.map +1 -1
  37. package/dist/backend/routes/process-routes.js +50 -3
  38. package/dist/backend/routes/process-routes.js.map +1 -1
  39. package/dist/cli/commands/lifecycle.d.ts +8 -0
  40. package/dist/cli/commands/lifecycle.d.ts.map +1 -0
  41. package/dist/cli/commands/lifecycle.js +167 -0
  42. package/dist/cli/commands/lifecycle.js.map +1 -0
  43. package/dist/cli/commands/process.d.ts.map +1 -1
  44. package/dist/cli/commands/process.js +17 -0
  45. package/dist/cli/commands/process.js.map +1 -1
  46. package/dist/cli/index.d.ts.map +1 -1
  47. package/dist/cli/index.js +2 -0
  48. package/dist/cli/index.js.map +1 -1
  49. package/dist/cli/templates/login-page.d.ts +1 -1
  50. package/dist/cli/templates/login-page.js +1 -1
  51. package/dist/cli/templates/model-management-page.d.ts +1 -1
  52. package/dist/cli/templates/model-management-page.js +1 -1
  53. package/dist/cli/templates/notification-center-page.d.ts +1 -1
  54. package/dist/cli/templates/notification-center-page.js +1 -1
  55. package/dist/cli/templates/notification-detail-page.d.ts +1 -1
  56. package/dist/cli/templates/notification-detail-page.js +1 -1
  57. package/dist/cli/templates/process-management-page.d.ts +1 -1
  58. package/dist/cli/templates/process-management-page.js +1 -1
  59. package/dist/cli/templates/skill-management-page.d.ts +1 -1
  60. package/dist/cli/templates/skill-management-page.js +1 -1
  61. package/dist/cli/templates/user-management-page.d.ts +1 -1
  62. package/dist/cli/templates/user-management-page.js +1 -1
  63. package/dist/config.d.ts +219 -1
  64. package/dist/config.d.ts.map +1 -1
  65. package/dist/config.js +34 -1
  66. package/dist/config.js.map +1 -1
  67. package/dist/types/config.d.ts +2 -0
  68. package/dist/types/config.d.ts.map +1 -1
  69. package/dist/types/event.d.ts +2 -2
  70. package/dist/types/event.d.ts.map +1 -1
  71. package/dist/types/index.d.ts +2 -1
  72. package/dist/types/index.d.ts.map +1 -1
  73. package/dist/types/lifecycle.d.ts +57 -0
  74. package/dist/types/lifecycle.d.ts.map +1 -0
  75. package/dist/types/lifecycle.js +10 -0
  76. package/dist/types/lifecycle.js.map +1 -0
  77. package/dist/types/process.d.ts +25 -0
  78. package/dist/types/process.d.ts.map +1 -1
  79. 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
 
@@ -297,6 +297,25 @@ export default defineConfig({
297
297
  defaultOwner: 'admin', // 必填:默认执行者
298
298
  executionTimeout: '30m', // 可选:执行超时(默认 30m)
299
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` 自动生成,不需要手动编辑
300
319
  server: { // 可选:服务器配置
301
320
  backendPort: 3000, // 后端 API 端口
302
321
  frontendPort: 5173, // 前端 Vite dev server 端口
@@ -1 +1 @@
1
- {"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/backend/auth/rbac.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAwB,MAAM,qBAAqB,CAAC;AAoBjG,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,mBAAmB,CAOxF;AAUD,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,GACjB,mBAAmB,CAcrB;AAED,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAEzG;AAED,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAEjE;AAED,2CAA2C;AAC3C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,cAAc;QACtB,IAAI,CAAC,EAAE;YACL,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,mFAAmF;YACnF,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;KACH;CACF;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,IAGnD,SAAS,cAAc,EAAE,OAAO,YAAY,mBA8D3D"}
1
+ {"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/backend/auth/rbac.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAwB,MAAM,qBAAqB,CAAC;AAoBjG,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,mBAAmB,CAOxF;AAWD,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,GACjB,mBAAmB,CAcrB;AAED,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAEzG;AAED,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAEjE;AAED,2CAA2C;AAC3C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,cAAc;QACtB,IAAI,CAAC,EAAE;YACL,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,mFAAmF;YACnF,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;KACH;CACF;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,IAGnD,SAAS,cAAc,EAAE,OAAO,YAAY,mBA8D3D"}
@@ -38,6 +38,7 @@ const EXEMPT_PATHS = [
38
38
  '/api/v1/auth/login',
39
39
  '/api/v1/auth/register',
40
40
  '/api/v1/auth/refresh',
41
+ '/api/v1/events/notify',
41
42
  ];
42
43
  /** Resolve effective permission for a model given user role and config */
43
44
  export function resolvePermission(model, roleName, config) {
@@ -1 +1 @@
1
- {"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/backend/auth/rbac.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/backend/auth/rbac.ts"],"names":[],"mappings":"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"}
@@ -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({
@@ -233,7 +250,13 @@ export class LoomServer {
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
  }
@@ -333,11 +360,20 @@ export class LoomServer {
333
360
  const port = this.config.server?.backendPort || 3000;
334
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"}