@cleocode/core 2026.3.43 → 2026.3.45

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 (183) hide show
  1. package/dist/admin/export-tasks.d.ts.map +1 -1
  2. package/dist/admin/import-tasks.d.ts +10 -2
  3. package/dist/admin/import-tasks.d.ts.map +1 -1
  4. package/dist/agents/agent-schema.d.ts +358 -0
  5. package/dist/agents/agent-schema.d.ts.map +1 -0
  6. package/dist/agents/capacity.d.ts +57 -0
  7. package/dist/agents/capacity.d.ts.map +1 -0
  8. package/dist/agents/index.d.ts +17 -0
  9. package/dist/agents/index.d.ts.map +1 -0
  10. package/dist/agents/registry.d.ts +115 -0
  11. package/dist/agents/registry.d.ts.map +1 -0
  12. package/dist/agents/retry.d.ts +83 -0
  13. package/dist/agents/retry.d.ts.map +1 -0
  14. package/dist/hooks/index.d.ts +4 -1
  15. package/dist/hooks/index.d.ts.map +1 -1
  16. package/dist/hooks/payload-schemas.d.ts +214 -0
  17. package/dist/hooks/payload-schemas.d.ts.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +16937 -2371
  21. package/dist/index.js.map +4 -4
  22. package/dist/inject/index.d.ts.map +1 -1
  23. package/dist/intelligence/impact.d.ts +51 -0
  24. package/dist/intelligence/impact.d.ts.map +1 -0
  25. package/dist/intelligence/index.d.ts +15 -0
  26. package/dist/intelligence/index.d.ts.map +1 -0
  27. package/dist/intelligence/patterns.d.ts +66 -0
  28. package/dist/intelligence/patterns.d.ts.map +1 -0
  29. package/dist/intelligence/prediction.d.ts +51 -0
  30. package/dist/intelligence/prediction.d.ts.map +1 -0
  31. package/dist/intelligence/types.d.ts +221 -0
  32. package/dist/intelligence/types.d.ts.map +1 -0
  33. package/dist/internal.d.ts +12 -1
  34. package/dist/internal.d.ts.map +1 -1
  35. package/dist/issue/template-parser.d.ts +8 -2
  36. package/dist/issue/template-parser.d.ts.map +1 -1
  37. package/dist/lifecycle/pipeline.d.ts +2 -2
  38. package/dist/lifecycle/pipeline.d.ts.map +1 -1
  39. package/dist/lifecycle/state-machine.d.ts +1 -1
  40. package/dist/lifecycle/state-machine.d.ts.map +1 -1
  41. package/dist/memory/brain-lifecycle.d.ts.map +1 -1
  42. package/dist/memory/brain-retrieval.d.ts.map +1 -1
  43. package/dist/memory/brain-row-types.d.ts +40 -6
  44. package/dist/memory/brain-row-types.d.ts.map +1 -1
  45. package/dist/memory/brain-search.d.ts.map +1 -1
  46. package/dist/memory/brain-similarity.d.ts.map +1 -1
  47. package/dist/memory/claude-mem-migration.d.ts.map +1 -1
  48. package/dist/nexus/discover.d.ts.map +1 -1
  49. package/dist/nexus/index.d.ts +2 -0
  50. package/dist/nexus/index.d.ts.map +1 -1
  51. package/dist/nexus/transfer-types.d.ts +123 -0
  52. package/dist/nexus/transfer-types.d.ts.map +1 -0
  53. package/dist/nexus/transfer.d.ts +31 -0
  54. package/dist/nexus/transfer.d.ts.map +1 -0
  55. package/dist/orchestration/bootstrap.d.ts.map +1 -1
  56. package/dist/orchestration/skill-ops.d.ts +4 -4
  57. package/dist/orchestration/skill-ops.d.ts.map +1 -1
  58. package/dist/otel/index.d.ts +1 -1
  59. package/dist/otel/index.d.ts.map +1 -1
  60. package/dist/sessions/briefing.d.ts.map +1 -1
  61. package/dist/sessions/handoff.d.ts.map +1 -1
  62. package/dist/sessions/index.d.ts +1 -1
  63. package/dist/sessions/index.d.ts.map +1 -1
  64. package/dist/sessions/types.d.ts +8 -42
  65. package/dist/sessions/types.d.ts.map +1 -1
  66. package/dist/signaldock/signaldock-transport.d.ts +1 -1
  67. package/dist/signaldock/signaldock-transport.d.ts.map +1 -1
  68. package/dist/skills/injection/subagent.d.ts +3 -3
  69. package/dist/skills/injection/subagent.d.ts.map +1 -1
  70. package/dist/skills/manifests/contribution.d.ts +2 -2
  71. package/dist/skills/manifests/contribution.d.ts.map +1 -1
  72. package/dist/skills/orchestrator/spawn.d.ts +6 -6
  73. package/dist/skills/orchestrator/spawn.d.ts.map +1 -1
  74. package/dist/skills/orchestrator/startup.d.ts +1 -1
  75. package/dist/skills/orchestrator/startup.d.ts.map +1 -1
  76. package/dist/skills/orchestrator/validator.d.ts +2 -2
  77. package/dist/skills/orchestrator/validator.d.ts.map +1 -1
  78. package/dist/skills/precedence-types.d.ts +24 -1
  79. package/dist/skills/precedence-types.d.ts.map +1 -1
  80. package/dist/skills/types.d.ts +70 -4
  81. package/dist/skills/types.d.ts.map +1 -1
  82. package/dist/store/brain-sqlite.d.ts +4 -1
  83. package/dist/store/brain-sqlite.d.ts.map +1 -1
  84. package/dist/store/export.d.ts +5 -4
  85. package/dist/store/export.d.ts.map +1 -1
  86. package/dist/store/nexus-sqlite.d.ts +4 -1
  87. package/dist/store/nexus-sqlite.d.ts.map +1 -1
  88. package/dist/store/sqlite.d.ts +4 -1
  89. package/dist/store/sqlite.d.ts.map +1 -1
  90. package/dist/store/tasks-schema.d.ts +14 -4
  91. package/dist/store/tasks-schema.d.ts.map +1 -1
  92. package/dist/store/typed-query.d.ts +12 -0
  93. package/dist/store/typed-query.d.ts.map +1 -0
  94. package/dist/store/validation-schemas.d.ts +2423 -50
  95. package/dist/store/validation-schemas.d.ts.map +1 -1
  96. package/dist/system/inject-generate.d.ts.map +1 -1
  97. package/dist/validation/doctor/checks.d.ts +5 -0
  98. package/dist/validation/doctor/checks.d.ts.map +1 -1
  99. package/dist/validation/engine.d.ts +10 -10
  100. package/dist/validation/engine.d.ts.map +1 -1
  101. package/dist/validation/index.d.ts +6 -2
  102. package/dist/validation/index.d.ts.map +1 -1
  103. package/dist/validation/protocol-common.d.ts +10 -2
  104. package/dist/validation/protocol-common.d.ts.map +1 -1
  105. package/migrations/drizzle-tasks/20260320013731_wave0-schema-hardening/migration.sql +84 -0
  106. package/migrations/drizzle-tasks/20260320013731_wave0-schema-hardening/snapshot.json +4060 -0
  107. package/migrations/drizzle-tasks/20260320020000_agent-dimension/migration.sql +35 -0
  108. package/migrations/drizzle-tasks/20260320020000_agent-dimension/snapshot.json +4312 -0
  109. package/package.json +2 -2
  110. package/src/admin/export-tasks.ts +2 -5
  111. package/src/admin/import-tasks.ts +53 -29
  112. package/src/agents/__tests__/capacity.test.ts +219 -0
  113. package/src/agents/__tests__/registry.test.ts +457 -0
  114. package/src/agents/__tests__/retry.test.ts +289 -0
  115. package/src/agents/agent-schema.ts +107 -0
  116. package/src/agents/capacity.ts +151 -0
  117. package/src/agents/index.ts +68 -0
  118. package/src/agents/registry.ts +449 -0
  119. package/src/agents/retry.ts +255 -0
  120. package/src/hooks/index.ts +20 -1
  121. package/src/hooks/payload-schemas.ts +199 -0
  122. package/src/index.ts +69 -0
  123. package/src/inject/index.ts +14 -14
  124. package/src/intelligence/__tests__/impact.test.ts +453 -0
  125. package/src/intelligence/__tests__/patterns.test.ts +450 -0
  126. package/src/intelligence/__tests__/prediction.test.ts +418 -0
  127. package/src/intelligence/impact.ts +638 -0
  128. package/src/intelligence/index.ts +47 -0
  129. package/src/intelligence/patterns.ts +621 -0
  130. package/src/intelligence/prediction.ts +621 -0
  131. package/src/intelligence/types.ts +273 -0
  132. package/src/internal.ts +89 -2
  133. package/src/issue/template-parser.ts +65 -4
  134. package/src/lifecycle/pipeline.ts +14 -7
  135. package/src/lifecycle/state-machine.ts +6 -2
  136. package/src/memory/brain-lifecycle.ts +5 -11
  137. package/src/memory/brain-retrieval.ts +44 -38
  138. package/src/memory/brain-row-types.ts +43 -6
  139. package/src/memory/brain-search.ts +53 -32
  140. package/src/memory/brain-similarity.ts +9 -8
  141. package/src/memory/claude-mem-migration.ts +4 -3
  142. package/src/nexus/__tests__/nexus-e2e.test.ts +1481 -0
  143. package/src/nexus/__tests__/transfer.test.ts +446 -0
  144. package/src/nexus/discover.ts +1 -0
  145. package/src/nexus/index.ts +14 -0
  146. package/src/nexus/transfer-types.ts +129 -0
  147. package/src/nexus/transfer.ts +314 -0
  148. package/src/orchestration/bootstrap.ts +11 -17
  149. package/src/orchestration/skill-ops.ts +52 -32
  150. package/src/otel/index.ts +48 -4
  151. package/src/sessions/__tests__/briefing.test.ts +31 -2
  152. package/src/sessions/briefing.ts +27 -42
  153. package/src/sessions/handoff.ts +52 -86
  154. package/src/sessions/index.ts +5 -1
  155. package/src/sessions/types.ts +9 -43
  156. package/src/signaldock/signaldock-transport.ts +5 -2
  157. package/src/skills/injection/subagent.ts +10 -16
  158. package/src/skills/manifests/contribution.ts +5 -13
  159. package/src/skills/orchestrator/__tests__/spawn-tier.test.ts +44 -30
  160. package/src/skills/orchestrator/spawn.ts +18 -31
  161. package/src/skills/orchestrator/startup.ts +78 -65
  162. package/src/skills/orchestrator/validator.ts +26 -31
  163. package/src/skills/precedence-types.ts +24 -1
  164. package/src/skills/types.ts +72 -5
  165. package/src/store/__tests__/test-db-helper.d.ts +4 -4
  166. package/src/store/__tests__/test-db-helper.js +5 -16
  167. package/src/store/__tests__/test-db-helper.ts +5 -18
  168. package/src/store/brain-sqlite.ts +7 -3
  169. package/src/store/chain-schema.ts +1 -1
  170. package/src/store/export.ts +22 -12
  171. package/src/store/nexus-sqlite.ts +7 -3
  172. package/src/store/sqlite.ts +9 -3
  173. package/src/store/tasks-schema.ts +65 -8
  174. package/src/store/typed-query.ts +17 -0
  175. package/src/store/validation-schemas.ts +347 -23
  176. package/src/system/inject-generate.ts +9 -23
  177. package/src/validation/doctor/checks.ts +24 -2
  178. package/src/validation/engine.ts +11 -11
  179. package/src/validation/index.ts +131 -3
  180. package/src/validation/protocol-common.ts +54 -3
  181. package/dist/tasks/reparent.d.ts +0 -38
  182. package/dist/tasks/reparent.d.ts.map +0 -1
  183. package/src/tasks/reparent.ts +0 -134
@@ -1 +1 @@
1
- {"version":3,"file":"export-tasks.d.ts","sourceRoot":"","sources":["../../src/admin/export-tasks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkFH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+F9F"}
1
+ {"version":3,"file":"export-tasks.d.ts","sourceRoot":"","sources":["../../src/admin/export-tasks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkFH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4F9F"}
@@ -3,10 +3,12 @@
3
3
  *
4
4
  * Extracted from CLI import-tasks command for dispatch layer access.
5
5
  *
6
- * @task T5323, T5328
6
+ * @task T5323, T5328, T046
7
7
  * @epic T4545
8
8
  */
9
9
  import type { TaskStatus } from '@cleocode/contracts';
10
+ import type { ImportFromPackageOptions, ImportFromPackageResult } from '../nexus/transfer-types.js';
11
+ import type { ExportPackage } from '../store/export.js';
10
12
  type OnConflict = 'duplicate' | 'rename' | 'skip' | 'fail';
11
13
  type OnMissingDep = 'strip' | 'placeholder' | 'fail';
12
14
  export interface ImportTasksParams {
@@ -36,7 +38,13 @@ export interface ImportTasksResult {
36
38
  };
37
39
  }
38
40
  /**
39
- * Import tasks from a cross-project export package with ID remapping.
41
+ * Import tasks from an in-memory ExportPackage with ID remapping.
42
+ * Core logic extracted from importTasksPackage for reuse by transfer engine.
43
+ */
44
+ export declare function importFromPackage(exportPkg: ExportPackage, options?: ImportFromPackageOptions): Promise<ImportFromPackageResult>;
45
+ /**
46
+ * Import tasks from a cross-project export package file with ID remapping.
47
+ * Thin wrapper around importFromPackage that handles file I/O.
40
48
  */
41
49
  export declare function importTasksPackage(params: ImportTasksParams): Promise<ImportTasksResult>;
42
50
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"import-tasks.d.ts","sourceRoot":"","sources":["../../src/admin/import-tasks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAQ,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAU5D,KAAK,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAC3D,KAAK,YAAY,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;AA6BrD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC3D,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4I9F"}
1
+ {"version":3,"file":"import-tasks.d.ts","sourceRoot":"","sources":["../../src/admin/import-tasks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAQ,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQxD,KAAK,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAC3D,KAAK,YAAY,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;AA6BrD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC3D,CAAC;CACH;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,aAAa,EACxB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CA4HlC;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6B9F"}
@@ -0,0 +1,358 @@
1
+ /**
2
+ * Drizzle ORM schema for the CLEO Agent dimension.
3
+ *
4
+ * Defines the `agent_instances` table that tracks live agent processes,
5
+ * their health (heartbeat protocol), capacity, and error history.
6
+ *
7
+ * This is the DB-backed runtime registry -- distinct from the file-based
8
+ * skill agent registry in `skills/agents/registry.ts` which tracks
9
+ * installed agent *definitions*. This table tracks running agent *instances*.
10
+ *
11
+ * @module agents/agent-schema
12
+ */
13
+ /** Agent instance status values matching DB CHECK constraint. */
14
+ export declare const AGENT_INSTANCE_STATUSES: readonly ["starting", "active", "idle", "error", "crashed", "stopped"];
15
+ /** Agent type values for classification. */
16
+ export declare const AGENT_TYPES: readonly ["orchestrator", "executor", "researcher", "architect", "validator", "documentor", "custom"];
17
+ export declare const agentInstances: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
18
+ name: "agent_instances";
19
+ schema: undefined;
20
+ columns: {
21
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
22
+ name: string;
23
+ tableName: "agent_instances";
24
+ dataType: "string";
25
+ data: string;
26
+ driverParam: string;
27
+ notNull: true;
28
+ hasDefault: false;
29
+ isPrimaryKey: true;
30
+ isAutoincrement: false;
31
+ hasRuntimeDefault: false;
32
+ enumValues: [string, ...string[]];
33
+ baseColumn: never;
34
+ identity: undefined;
35
+ generated: undefined;
36
+ }, {}>;
37
+ agentType: import("drizzle-orm/sqlite-core").SQLiteColumn<{
38
+ name: string;
39
+ tableName: "agent_instances";
40
+ dataType: "string enum";
41
+ data: "orchestrator" | "executor" | "researcher" | "architect" | "validator" | "documentor" | "custom";
42
+ driverParam: string;
43
+ notNull: true;
44
+ hasDefault: false;
45
+ isPrimaryKey: false;
46
+ isAutoincrement: false;
47
+ hasRuntimeDefault: false;
48
+ enumValues: ["orchestrator", "executor", "researcher", "architect", "validator", "documentor", "custom"];
49
+ baseColumn: never;
50
+ identity: undefined;
51
+ generated: undefined;
52
+ }, {}>;
53
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
54
+ name: string;
55
+ tableName: "agent_instances";
56
+ dataType: "string enum";
57
+ data: "error" | "starting" | "active" | "idle" | "crashed" | "stopped";
58
+ driverParam: string;
59
+ notNull: true;
60
+ hasDefault: true;
61
+ isPrimaryKey: false;
62
+ isAutoincrement: false;
63
+ hasRuntimeDefault: false;
64
+ enumValues: ["starting", "active", "idle", "error", "crashed", "stopped"];
65
+ baseColumn: never;
66
+ identity: undefined;
67
+ generated: undefined;
68
+ }, {}>;
69
+ sessionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
70
+ name: string;
71
+ tableName: "agent_instances";
72
+ dataType: "string";
73
+ data: string;
74
+ driverParam: string;
75
+ notNull: false;
76
+ hasDefault: false;
77
+ isPrimaryKey: false;
78
+ isAutoincrement: false;
79
+ hasRuntimeDefault: false;
80
+ enumValues: [string, ...string[]];
81
+ baseColumn: never;
82
+ identity: undefined;
83
+ generated: undefined;
84
+ }, {}>;
85
+ taskId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
86
+ name: string;
87
+ tableName: "agent_instances";
88
+ dataType: "string";
89
+ data: string;
90
+ driverParam: string;
91
+ notNull: false;
92
+ hasDefault: false;
93
+ isPrimaryKey: false;
94
+ isAutoincrement: false;
95
+ hasRuntimeDefault: false;
96
+ enumValues: [string, ...string[]];
97
+ baseColumn: never;
98
+ identity: undefined;
99
+ generated: undefined;
100
+ }, {}>;
101
+ startedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
102
+ name: string;
103
+ tableName: "agent_instances";
104
+ dataType: "string";
105
+ data: string;
106
+ driverParam: string;
107
+ notNull: true;
108
+ hasDefault: true;
109
+ isPrimaryKey: false;
110
+ isAutoincrement: false;
111
+ hasRuntimeDefault: false;
112
+ enumValues: [string, ...string[]];
113
+ baseColumn: never;
114
+ identity: undefined;
115
+ generated: undefined;
116
+ }, {}>;
117
+ lastHeartbeat: import("drizzle-orm/sqlite-core").SQLiteColumn<{
118
+ name: string;
119
+ tableName: "agent_instances";
120
+ dataType: "string";
121
+ data: string;
122
+ driverParam: string;
123
+ notNull: true;
124
+ hasDefault: true;
125
+ isPrimaryKey: false;
126
+ isAutoincrement: false;
127
+ hasRuntimeDefault: false;
128
+ enumValues: [string, ...string[]];
129
+ baseColumn: never;
130
+ identity: undefined;
131
+ generated: undefined;
132
+ }, {}>;
133
+ stoppedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
134
+ name: string;
135
+ tableName: "agent_instances";
136
+ dataType: "string";
137
+ data: string;
138
+ driverParam: string;
139
+ notNull: false;
140
+ hasDefault: false;
141
+ isPrimaryKey: false;
142
+ isAutoincrement: false;
143
+ hasRuntimeDefault: false;
144
+ enumValues: [string, ...string[]];
145
+ baseColumn: never;
146
+ identity: undefined;
147
+ generated: undefined;
148
+ }, {}>;
149
+ errorCount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
150
+ name: string;
151
+ tableName: "agent_instances";
152
+ dataType: "number int53";
153
+ data: number;
154
+ driverParam: number;
155
+ notNull: true;
156
+ hasDefault: true;
157
+ isPrimaryKey: false;
158
+ isAutoincrement: false;
159
+ hasRuntimeDefault: false;
160
+ enumValues: undefined;
161
+ baseColumn: never;
162
+ identity: undefined;
163
+ generated: undefined;
164
+ }, {}>;
165
+ totalTasksCompleted: import("drizzle-orm/sqlite-core").SQLiteColumn<{
166
+ name: string;
167
+ tableName: "agent_instances";
168
+ dataType: "number int53";
169
+ data: number;
170
+ driverParam: number;
171
+ notNull: true;
172
+ hasDefault: true;
173
+ isPrimaryKey: false;
174
+ isAutoincrement: false;
175
+ hasRuntimeDefault: false;
176
+ enumValues: undefined;
177
+ baseColumn: never;
178
+ identity: undefined;
179
+ generated: undefined;
180
+ }, {}>;
181
+ capacity: import("drizzle-orm/sqlite-core").SQLiteColumn<{
182
+ name: string;
183
+ tableName: "agent_instances";
184
+ dataType: "string";
185
+ data: string;
186
+ driverParam: string;
187
+ notNull: true;
188
+ hasDefault: true;
189
+ isPrimaryKey: false;
190
+ isAutoincrement: false;
191
+ hasRuntimeDefault: false;
192
+ enumValues: [string, ...string[]];
193
+ baseColumn: never;
194
+ identity: undefined;
195
+ generated: undefined;
196
+ }, {}>;
197
+ metadataJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
198
+ name: string;
199
+ tableName: "agent_instances";
200
+ dataType: "string";
201
+ data: string;
202
+ driverParam: string;
203
+ notNull: false;
204
+ hasDefault: true;
205
+ isPrimaryKey: false;
206
+ isAutoincrement: false;
207
+ hasRuntimeDefault: false;
208
+ enumValues: [string, ...string[]];
209
+ baseColumn: never;
210
+ identity: undefined;
211
+ generated: undefined;
212
+ }, {}>;
213
+ parentAgentId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
214
+ name: string;
215
+ tableName: "agent_instances";
216
+ dataType: "string";
217
+ data: string;
218
+ driverParam: string;
219
+ notNull: false;
220
+ hasDefault: false;
221
+ isPrimaryKey: false;
222
+ isAutoincrement: false;
223
+ hasRuntimeDefault: false;
224
+ enumValues: [string, ...string[]];
225
+ baseColumn: never;
226
+ identity: undefined;
227
+ generated: undefined;
228
+ }, {}>;
229
+ };
230
+ dialect: "sqlite";
231
+ }>;
232
+ export declare const agentErrorLog: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
233
+ name: "agent_error_log";
234
+ schema: undefined;
235
+ columns: {
236
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
237
+ name: string;
238
+ tableName: "agent_error_log";
239
+ dataType: "number int53";
240
+ data: number;
241
+ driverParam: number;
242
+ notNull: true;
243
+ hasDefault: true;
244
+ isPrimaryKey: true;
245
+ isAutoincrement: false;
246
+ hasRuntimeDefault: false;
247
+ enumValues: undefined;
248
+ baseColumn: never;
249
+ identity: undefined;
250
+ generated: undefined;
251
+ }, {}>;
252
+ agentId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
253
+ name: string;
254
+ tableName: "agent_error_log";
255
+ dataType: "string";
256
+ data: string;
257
+ driverParam: string;
258
+ notNull: true;
259
+ hasDefault: false;
260
+ isPrimaryKey: false;
261
+ isAutoincrement: false;
262
+ hasRuntimeDefault: false;
263
+ enumValues: [string, ...string[]];
264
+ baseColumn: never;
265
+ identity: undefined;
266
+ generated: undefined;
267
+ }, {}>;
268
+ errorType: import("drizzle-orm/sqlite-core").SQLiteColumn<{
269
+ name: string;
270
+ tableName: "agent_error_log";
271
+ dataType: "string enum";
272
+ data: "retriable" | "permanent" | "unknown";
273
+ driverParam: string;
274
+ notNull: true;
275
+ hasDefault: false;
276
+ isPrimaryKey: false;
277
+ isAutoincrement: false;
278
+ hasRuntimeDefault: false;
279
+ enumValues: ["retriable", "permanent", "unknown"];
280
+ baseColumn: never;
281
+ identity: undefined;
282
+ generated: undefined;
283
+ }, {}>;
284
+ message: import("drizzle-orm/sqlite-core").SQLiteColumn<{
285
+ name: string;
286
+ tableName: "agent_error_log";
287
+ dataType: "string";
288
+ data: string;
289
+ driverParam: string;
290
+ notNull: true;
291
+ hasDefault: false;
292
+ isPrimaryKey: false;
293
+ isAutoincrement: false;
294
+ hasRuntimeDefault: false;
295
+ enumValues: [string, ...string[]];
296
+ baseColumn: never;
297
+ identity: undefined;
298
+ generated: undefined;
299
+ }, {}>;
300
+ stack: import("drizzle-orm/sqlite-core").SQLiteColumn<{
301
+ name: string;
302
+ tableName: "agent_error_log";
303
+ dataType: "string";
304
+ data: string;
305
+ driverParam: string;
306
+ notNull: false;
307
+ hasDefault: false;
308
+ isPrimaryKey: false;
309
+ isAutoincrement: false;
310
+ hasRuntimeDefault: false;
311
+ enumValues: [string, ...string[]];
312
+ baseColumn: never;
313
+ identity: undefined;
314
+ generated: undefined;
315
+ }, {}>;
316
+ occurredAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
317
+ name: string;
318
+ tableName: "agent_error_log";
319
+ dataType: "string";
320
+ data: string;
321
+ driverParam: string;
322
+ notNull: true;
323
+ hasDefault: true;
324
+ isPrimaryKey: false;
325
+ isAutoincrement: false;
326
+ hasRuntimeDefault: false;
327
+ enumValues: [string, ...string[]];
328
+ baseColumn: never;
329
+ identity: undefined;
330
+ generated: undefined;
331
+ }, {}>;
332
+ resolved: import("drizzle-orm/sqlite-core").SQLiteColumn<{
333
+ name: string;
334
+ tableName: "agent_error_log";
335
+ dataType: "boolean";
336
+ data: boolean;
337
+ driverParam: number;
338
+ notNull: true;
339
+ hasDefault: true;
340
+ isPrimaryKey: false;
341
+ isAutoincrement: false;
342
+ hasRuntimeDefault: false;
343
+ enumValues: undefined;
344
+ baseColumn: never;
345
+ identity: undefined;
346
+ generated: undefined;
347
+ }, {}>;
348
+ };
349
+ dialect: "sqlite";
350
+ }>;
351
+ export type AgentInstanceRow = typeof agentInstances.$inferSelect;
352
+ export type NewAgentInstanceRow = typeof agentInstances.$inferInsert;
353
+ export type AgentErrorLogRow = typeof agentErrorLog.$inferSelect;
354
+ export type NewAgentErrorLogRow = typeof agentErrorLog.$inferInsert;
355
+ export type AgentInstanceStatus = (typeof AGENT_INSTANCE_STATUSES)[number];
356
+ export type AgentType = (typeof AGENT_TYPES)[number];
357
+ export type AgentErrorType = 'retriable' | 'permanent' | 'unknown';
358
+ //# sourceMappingURL=agent-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-schema.d.ts","sourceRoot":"","sources":["../../src/agents/agent-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,wEAO1B,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,WAAW,uGAQd,CAAC;AAMX,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB1B,CAAC;AAMF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBzB,CAAC;AAMF,MAAM,MAAM,gBAAgB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3E,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Capacity tracking and load balancing for the Agent dimension.
3
+ *
4
+ * Tracks per-agent capacity (0.0-1.0) and provides queries for
5
+ * capacity-aware work distribution.
6
+ *
7
+ * @module agents/capacity
8
+ */
9
+ import { type AgentInstanceRow, type AgentType } from './agent-schema.js';
10
+ /**
11
+ * Update the capacity value for an agent instance.
12
+ *
13
+ * @param id - Agent instance ID
14
+ * @param capacity - New capacity value (0.0 to 1.0)
15
+ * @param cwd - Working directory
16
+ * @returns Updated agent row, or null if not found
17
+ */
18
+ export declare function updateCapacity(id: string, capacity: number, cwd?: string): Promise<AgentInstanceRow | null>;
19
+ /**
20
+ * Get the total available capacity across all active agents.
21
+ *
22
+ * Only considers agents in 'active' or 'idle' status.
23
+ * Returns the sum of all capacity values.
24
+ */
25
+ export declare function getAvailableCapacity(cwd?: string): Promise<number>;
26
+ /**
27
+ * Find the agent with the most available capacity.
28
+ *
29
+ * @param agentType - Optional type filter
30
+ * @param cwd - Working directory
31
+ * @returns Agent with highest capacity, or null if no active agents
32
+ */
33
+ export declare function findLeastLoadedAgent(agentType?: AgentType, cwd?: string): Promise<AgentInstanceRow | null>;
34
+ /**
35
+ * Check if the system is overloaded (total capacity below threshold).
36
+ *
37
+ * @param threshold - Minimum acceptable capacity (default: 0.1)
38
+ * @param cwd - Working directory
39
+ * @returns true if total available capacity is below the threshold
40
+ */
41
+ export declare function isOverloaded(threshold?: number, cwd?: string): Promise<boolean>;
42
+ /** Capacity summary for reporting. */
43
+ export interface CapacitySummary {
44
+ totalCapacity: number;
45
+ activeAgentCount: number;
46
+ averageCapacity: number;
47
+ overloaded: boolean;
48
+ threshold: number;
49
+ }
50
+ /**
51
+ * Get a capacity summary across the entire agent pool.
52
+ *
53
+ * @param threshold - Overload threshold (default: 0.1)
54
+ * @param cwd - Working directory
55
+ */
56
+ export declare function getCapacitySummary(threshold?: number, cwd?: string): Promise<CapacitySummary>;
57
+ //# sourceMappingURL=capacity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacity.d.ts","sourceRoot":"","sources":["../../src/agents/capacity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAkB,MAAM,mBAAmB,CAAC;AAO1F;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAclC;AAMD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGxE;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,CAAC,EAAE,SAAS,EACrB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAqBlC;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,SAAS,GAAE,MAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1F;AAED,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,GAAE,MAAY,EACvB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,eAAe,CAAC,CAY1B"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Agent dimension -- runtime tracking, health monitoring, self-healing, and capacity.
3
+ *
4
+ * This module provides the complete Agent dimension for the BRAIN specification:
5
+ *
6
+ * - **Registry**: CRUD for agent instances (register, deregister, heartbeat, queries)
7
+ * - **Health**: Crash detection via heartbeat protocol, health reports
8
+ * - **Self-Healing**: Retry with exponential backoff, crashed agent recovery
9
+ * - **Capacity**: Load awareness, least-loaded agent selection, overload detection
10
+ *
11
+ * @module agents
12
+ */
13
+ export { AGENT_INSTANCE_STATUSES, AGENT_TYPES, type AgentErrorLogRow, type AgentErrorType, type AgentInstanceRow, type AgentInstanceStatus, type AgentType, agentErrorLog, agentInstances, type NewAgentErrorLogRow, type NewAgentInstanceRow, } from './agent-schema.js';
14
+ export { type CapacitySummary, findLeastLoadedAgent, getAvailableCapacity, getCapacitySummary, isOverloaded, updateCapacity, } from './capacity.js';
15
+ export { type AgentHealthReport, checkAgentHealth, classifyError, deregisterAgent, generateAgentId, getAgentErrorHistory, getAgentInstance, getHealthReport, heartbeat, incrementTasksCompleted, type ListAgentFilters, listAgentInstances, markCrashed, type RegisterAgentOptions, registerAgent, type UpdateStatusOptions, updateAgentStatus, } from './registry.js';
16
+ export { type AgentRecoveryResult, calculateDelay, createRetryPolicy, DEFAULT_RETRY_POLICY, type RetryPolicy, type RetryResult, recoverCrashedAgents, shouldRetry, withRetry, } from './retry.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,aAAa,EACb,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,eAAe,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,WAAW,EACX,KAAK,oBAAoB,EACzB,aAAa,EACb,KAAK,mBAAmB,EACxB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,mBAAmB,EACxB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,oBAAoB,EACpB,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Agent instance registry -- runtime tracking of live agent processes.
3
+ *
4
+ * Provides CRUD operations for the `agent_instances` table:
5
+ * registration, deregistration, heartbeat, status updates, and queries.
6
+ *
7
+ * This is the DB-backed runtime registry for live agent *instances*.
8
+ * The file-based registry in `skills/agents/registry.ts` tracks installed
9
+ * agent *definitions* -- those are complementary, not competing, concepts.
10
+ *
11
+ * @module agents/registry
12
+ */
13
+ import { type AgentErrorLogRow, type AgentErrorType, type AgentInstanceRow, type AgentInstanceStatus, type AgentType } from './agent-schema.js';
14
+ /**
15
+ * Generate a unique agent instance ID.
16
+ * Format: `agt_{YYYYMMDDHHmmss}_{6hex}`
17
+ */
18
+ export declare function generateAgentId(): string;
19
+ /** Options for registering a new agent instance. */
20
+ export interface RegisterAgentOptions {
21
+ agentType: AgentType;
22
+ sessionId?: string;
23
+ taskId?: string;
24
+ parentAgentId?: string;
25
+ metadata?: Record<string, unknown>;
26
+ }
27
+ /**
28
+ * Register a new agent instance in the database.
29
+ * Sets initial status to 'starting' and records the first heartbeat.
30
+ */
31
+ export declare function registerAgent(opts: RegisterAgentOptions, cwd?: string): Promise<AgentInstanceRow>;
32
+ /**
33
+ * Deregister (stop) an agent instance.
34
+ * Sets status to 'stopped' and records the stop timestamp.
35
+ */
36
+ export declare function deregisterAgent(id: string, cwd?: string): Promise<AgentInstanceRow | null>;
37
+ /**
38
+ * Record a heartbeat for an agent instance.
39
+ * Updates `last_heartbeat` and returns the current status so the agent
40
+ * can detect if it has been externally marked for shutdown.
41
+ */
42
+ export declare function heartbeat(id: string, cwd?: string): Promise<AgentInstanceStatus | null>;
43
+ /** Options for updating agent status. */
44
+ export interface UpdateStatusOptions {
45
+ status: AgentInstanceStatus;
46
+ error?: string;
47
+ taskId?: string;
48
+ }
49
+ /**
50
+ * Update agent status with optional error tracking.
51
+ * When status is 'error' or 'crashed', increments the error count
52
+ * and logs the error to the agent_error_log table.
53
+ */
54
+ export declare function updateAgentStatus(id: string, opts: UpdateStatusOptions, cwd?: string): Promise<AgentInstanceRow | null>;
55
+ /**
56
+ * Increment the completed task count for an agent.
57
+ */
58
+ export declare function incrementTasksCompleted(id: string, cwd?: string): Promise<void>;
59
+ /** Filters for listing agent instances. */
60
+ export interface ListAgentFilters {
61
+ status?: AgentInstanceStatus | AgentInstanceStatus[];
62
+ agentType?: AgentType | AgentType[];
63
+ sessionId?: string;
64
+ parentAgentId?: string;
65
+ }
66
+ /**
67
+ * List agent instances with optional filters.
68
+ */
69
+ export declare function listAgentInstances(filters?: ListAgentFilters, cwd?: string): Promise<AgentInstanceRow[]>;
70
+ /**
71
+ * Get a single agent instance by ID.
72
+ */
73
+ export declare function getAgentInstance(id: string, cwd?: string): Promise<AgentInstanceRow | null>;
74
+ /**
75
+ * Classify an error as retriable, permanent, or unknown.
76
+ *
77
+ * Retriable errors are transient conditions (network, rate limits, locks)
78
+ * where a retry may succeed. Permanent errors are structural (auth,
79
+ * not found, constraint violations) where retrying is pointless.
80
+ */
81
+ export declare function classifyError(error: unknown): AgentErrorType;
82
+ /**
83
+ * Get the error history for a specific agent.
84
+ */
85
+ export declare function getAgentErrorHistory(agentId: string, cwd?: string): Promise<AgentErrorLogRow[]>;
86
+ /**
87
+ * Check agent health by finding instances whose last heartbeat exceeds the threshold.
88
+ * Default threshold: 30000ms (30 seconds) as specified by the BRAIN spec.
89
+ *
90
+ * Returns agents that appear to have crashed (stale heartbeat).
91
+ */
92
+ export declare function checkAgentHealth(thresholdMs?: number, cwd?: string): Promise<AgentInstanceRow[]>;
93
+ /**
94
+ * Mark an agent instance as crashed.
95
+ * Increments error count and sets status to 'crashed'.
96
+ */
97
+ export declare function markCrashed(id: string, reason?: string, cwd?: string): Promise<AgentInstanceRow | null>;
98
+ /** Agent health report summary. */
99
+ export interface AgentHealthReport {
100
+ total: number;
101
+ active: number;
102
+ idle: number;
103
+ starting: number;
104
+ error: number;
105
+ crashed: number;
106
+ stopped: number;
107
+ totalErrors: number;
108
+ staleAgents: AgentInstanceRow[];
109
+ }
110
+ /**
111
+ * Generate a health report summarizing all agent instances.
112
+ * Includes counts by status and identifies stale agents.
113
+ */
114
+ export declare function getHealthReport(thresholdMs?: number, cwd?: string): Promise<AgentHealthReport>;
115
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"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"}