@cleocode/contracts 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/dist/adapter.d.ts +36 -0
  2. package/dist/adapter.d.ts.map +1 -0
  3. package/dist/adapter.js +8 -0
  4. package/dist/adapter.js.map +1 -0
  5. package/dist/archive.d.ts +100 -0
  6. package/dist/archive.d.ts.map +1 -0
  7. package/dist/archive.js +7 -0
  8. package/dist/archive.js.map +1 -0
  9. package/dist/brain.d.ts +36 -0
  10. package/dist/brain.d.ts.map +1 -0
  11. package/dist/brain.js +10 -0
  12. package/dist/brain.js.map +1 -0
  13. package/dist/capabilities.d.ts +21 -0
  14. package/dist/capabilities.d.ts.map +1 -0
  15. package/dist/capabilities.js +7 -0
  16. package/dist/capabilities.js.map +1 -0
  17. package/dist/config.d.ts +118 -0
  18. package/dist/config.d.ts.map +1 -0
  19. package/dist/config.js +12 -0
  20. package/dist/config.js.map +1 -0
  21. package/dist/context-monitor.d.ts +16 -0
  22. package/dist/context-monitor.d.ts.map +1 -0
  23. package/dist/context-monitor.js +7 -0
  24. package/dist/context-monitor.js.map +1 -0
  25. package/dist/data-accessor.d.ts +167 -0
  26. package/dist/data-accessor.d.ts.map +1 -0
  27. package/dist/data-accessor.js +18 -0
  28. package/dist/data-accessor.js.map +1 -0
  29. package/dist/discovery.d.ts +29 -0
  30. package/dist/discovery.d.ts.map +1 -0
  31. package/dist/discovery.js +7 -0
  32. package/dist/discovery.js.map +1 -0
  33. package/dist/exit-codes.d.ts +109 -0
  34. package/dist/exit-codes.d.ts.map +1 -0
  35. package/dist/exit-codes.js +158 -0
  36. package/dist/exit-codes.js.map +1 -0
  37. package/dist/hooks.d.ts +17 -0
  38. package/dist/hooks.d.ts.map +1 -0
  39. package/dist/hooks.js +8 -0
  40. package/dist/hooks.js.map +1 -0
  41. package/dist/index.d.ts +39 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +24 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/install.d.ts +26 -0
  46. package/dist/install.d.ts.map +1 -0
  47. package/dist/install.js +8 -0
  48. package/dist/install.js.map +1 -0
  49. package/dist/lafs.d.ts +132 -0
  50. package/dist/lafs.d.ts.map +1 -0
  51. package/dist/lafs.js +26 -0
  52. package/dist/lafs.js.map +1 -0
  53. package/dist/memory.d.ts +51 -0
  54. package/dist/memory.d.ts.map +1 -0
  55. package/dist/memory.js +8 -0
  56. package/dist/memory.js.map +1 -0
  57. package/dist/operations/index.d.ts +17 -0
  58. package/dist/operations/index.d.ts.map +1 -0
  59. package/dist/operations/index.js +17 -0
  60. package/dist/operations/index.js.map +1 -0
  61. package/dist/operations/issues.d.ts +75 -0
  62. package/dist/operations/issues.d.ts.map +1 -0
  63. package/dist/operations/issues.js +10 -0
  64. package/dist/operations/issues.js.map +1 -0
  65. package/dist/operations/lifecycle.d.ts +141 -0
  66. package/dist/operations/lifecycle.d.ts.map +1 -0
  67. package/dist/operations/lifecycle.js +8 -0
  68. package/dist/operations/lifecycle.js.map +1 -0
  69. package/dist/operations/orchestrate.d.ts +202 -0
  70. package/dist/operations/orchestrate.d.ts.map +1 -0
  71. package/dist/operations/orchestrate.js +8 -0
  72. package/dist/operations/orchestrate.js.map +1 -0
  73. package/dist/operations/release.d.ts +97 -0
  74. package/dist/operations/release.d.ts.map +1 -0
  75. package/dist/operations/release.js +7 -0
  76. package/dist/operations/release.js.map +1 -0
  77. package/dist/operations/research.d.ts +126 -0
  78. package/dist/operations/research.d.ts.map +1 -0
  79. package/dist/operations/research.js +11 -0
  80. package/dist/operations/research.js.map +1 -0
  81. package/dist/operations/session.d.ts +99 -0
  82. package/dist/operations/session.d.ts.map +1 -0
  83. package/dist/operations/session.js +12 -0
  84. package/dist/operations/session.js.map +1 -0
  85. package/dist/operations/skills.d.ts +182 -0
  86. package/dist/operations/skills.d.ts.map +1 -0
  87. package/dist/operations/skills.js +10 -0
  88. package/dist/operations/skills.js.map +1 -0
  89. package/dist/operations/system.d.ts +147 -0
  90. package/dist/operations/system.d.ts.map +1 -0
  91. package/dist/operations/system.js +8 -0
  92. package/dist/operations/system.js.map +1 -0
  93. package/dist/operations/tasks.d.ts +231 -0
  94. package/dist/operations/tasks.d.ts.map +1 -0
  95. package/dist/operations/tasks.js +13 -0
  96. package/dist/operations/tasks.js.map +1 -0
  97. package/dist/operations/validate.d.ts +170 -0
  98. package/dist/operations/validate.d.ts.map +1 -0
  99. package/dist/operations/validate.js +8 -0
  100. package/dist/operations/validate.js.map +1 -0
  101. package/dist/provider-paths.d.ts +16 -0
  102. package/dist/provider-paths.d.ts.map +1 -0
  103. package/dist/provider-paths.js +7 -0
  104. package/dist/provider-paths.js.map +1 -0
  105. package/dist/results.d.ts +188 -0
  106. package/dist/results.d.ts.map +1 -0
  107. package/dist/results.js +10 -0
  108. package/dist/results.js.map +1 -0
  109. package/dist/session.d.ts +106 -0
  110. package/dist/session.d.ts.map +1 -0
  111. package/dist/session.js +77 -0
  112. package/dist/session.js.map +1 -0
  113. package/dist/spawn-types.d.ts +119 -0
  114. package/dist/spawn-types.d.ts.map +1 -0
  115. package/dist/spawn-types.js +12 -0
  116. package/dist/spawn-types.js.map +1 -0
  117. package/dist/spawn.d.ts +30 -0
  118. package/dist/spawn.d.ts.map +1 -0
  119. package/dist/spawn.js +7 -0
  120. package/dist/spawn.js.map +1 -0
  121. package/dist/status-registry.d.ts +50 -0
  122. package/dist/status-registry.d.ts.map +1 -0
  123. package/dist/status-registry.js +125 -0
  124. package/dist/status-registry.js.map +1 -0
  125. package/dist/task-record.d.ts +67 -0
  126. package/dist/task-record.d.ts.map +1 -0
  127. package/dist/task-record.js +11 -0
  128. package/dist/task-record.js.map +1 -0
  129. package/dist/task-sync.d.ts +143 -0
  130. package/dist/task-sync.d.ts.map +1 -0
  131. package/dist/task-sync.js +11 -0
  132. package/dist/task-sync.js.map +1 -0
  133. package/dist/task.d.ts +294 -0
  134. package/dist/task.d.ts.map +1 -0
  135. package/dist/task.js +24 -0
  136. package/dist/task.js.map +1 -0
  137. package/dist/tessera.d.ts +32 -0
  138. package/dist/tessera.d.ts.map +1 -0
  139. package/dist/tessera.js +11 -0
  140. package/dist/tessera.js.map +1 -0
  141. package/dist/todowrite.d.ts +53 -0
  142. package/dist/todowrite.d.ts.map +1 -0
  143. package/dist/todowrite.js +7 -0
  144. package/dist/todowrite.js.map +1 -0
  145. package/dist/transport.d.ts +12 -0
  146. package/dist/transport.d.ts.map +1 -0
  147. package/dist/transport.js +7 -0
  148. package/dist/transport.js.map +1 -0
  149. package/dist/warp-chain.d.ts +121 -0
  150. package/dist/warp-chain.d.ts.map +1 -0
  151. package/dist/warp-chain.js +13 -0
  152. package/dist/warp-chain.js.map +1 -0
  153. package/package.json +29 -0
  154. package/src/adapter.ts +38 -0
  155. package/src/archive.ts +121 -0
  156. package/src/brain.ts +39 -0
  157. package/src/capabilities.ts +21 -0
  158. package/src/config.ts +135 -0
  159. package/src/context-monitor.ts +16 -0
  160. package/src/data-accessor.ts +239 -0
  161. package/src/discovery.ts +31 -0
  162. package/src/exit-codes.ts +175 -0
  163. package/src/hooks.ts +17 -0
  164. package/src/index.ts +298 -0
  165. package/src/install.ts +28 -0
  166. package/src/lafs.ts +194 -0
  167. package/src/memory.ts +57 -0
  168. package/src/operations/index.ts +17 -0
  169. package/src/operations/issues.ts +86 -0
  170. package/src/operations/lifecycle.ts +176 -0
  171. package/src/operations/orchestrate.ts +199 -0
  172. package/src/operations/release.ts +114 -0
  173. package/src/operations/research.ts +156 -0
  174. package/src/operations/session.ts +119 -0
  175. package/src/operations/skills.ts +210 -0
  176. package/src/operations/system.ts +174 -0
  177. package/src/operations/tasks.ts +279 -0
  178. package/src/operations/validate.ts +199 -0
  179. package/src/provider-paths.ts +16 -0
  180. package/src/results.ts +207 -0
  181. package/src/session.ts +157 -0
  182. package/src/spawn-types.ts +140 -0
  183. package/src/spawn.ts +32 -0
  184. package/src/status-registry.ts +166 -0
  185. package/src/task-record.ts +71 -0
  186. package/src/task-sync.ts +167 -0
  187. package/src/task.ts +387 -0
  188. package/src/tessera.ts +35 -0
  189. package/src/todowrite.ts +58 -0
  190. package/src/transport.ts +12 -0
  191. package/src/warp-chain.ts +174 -0
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Core CLEOProviderAdapter interface.
3
+ * Every provider adapter must implement this contract.
4
+ *
5
+ * @task T5240
6
+ */
7
+ import type { AdapterCapabilities } from './capabilities.js';
8
+ import type { AdapterContextMonitorProvider } from './context-monitor.js';
9
+ import type { AdapterHookProvider } from './hooks.js';
10
+ import type { AdapterInstallProvider } from './install.js';
11
+ import type { AdapterPathProvider } from './provider-paths.js';
12
+ import type { AdapterSpawnProvider } from './spawn.js';
13
+ import type { AdapterTaskSyncProvider } from './task-sync.js';
14
+ import type { AdapterTransportProvider } from './transport.js';
15
+ export interface CLEOProviderAdapter {
16
+ readonly id: string;
17
+ readonly name: string;
18
+ readonly version: string;
19
+ capabilities: AdapterCapabilities;
20
+ hooks?: AdapterHookProvider;
21
+ spawn?: AdapterSpawnProvider;
22
+ install: AdapterInstallProvider;
23
+ paths?: AdapterPathProvider;
24
+ contextMonitor?: AdapterContextMonitorProvider;
25
+ transport?: AdapterTransportProvider;
26
+ taskSync?: AdapterTaskSyncProvider;
27
+ initialize(projectDir: string): Promise<void>;
28
+ dispose(): Promise<void>;
29
+ healthCheck(): Promise<AdapterHealthStatus>;
30
+ }
31
+ export interface AdapterHealthStatus {
32
+ healthy: boolean;
33
+ provider: string;
34
+ details?: Record<string, unknown>;
35
+ }
36
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,mBAAmB,CAAC;IAClC,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Core CLEOProviderAdapter interface.
3
+ * Every provider adapter must implement this contract.
4
+ *
5
+ * @task T5240
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Archive types for archived task records and metadata.
3
+ *
4
+ * @task T4555
5
+ */
6
+ import type { Task } from './task.js';
7
+ /** Archive metadata attached to archived task records. */
8
+ export interface ArchiveMetadata {
9
+ archivedAt?: string;
10
+ cycleTimeDays?: number;
11
+ archiveSource?: string;
12
+ archiveReason?: string;
13
+ }
14
+ /** A task with archive metadata. */
15
+ export interface ArchivedTask extends Task {
16
+ _archive?: ArchiveMetadata;
17
+ }
18
+ /** Report type for archive statistics. */
19
+ export type ArchiveReportType = 'summary' | 'by-phase' | 'by-label' | 'by-priority' | 'cycle-times' | 'trends';
20
+ /** Summary report from archive statistics. */
21
+ export interface ArchiveSummaryReport {
22
+ totalArchived: number;
23
+ byStatus: Record<string, number>;
24
+ byPriority: Record<string, number>;
25
+ averageCycleTime: number | null;
26
+ oldestArchived: string | null;
27
+ newestArchived: string | null;
28
+ archiveSourceBreakdown: Record<string, number>;
29
+ }
30
+ /** Phase breakdown entry from archive statistics. */
31
+ export interface ArchivePhaseEntry {
32
+ phase: string;
33
+ count: number;
34
+ avgCycleTime: number | null;
35
+ }
36
+ /** Label breakdown entry from archive statistics. */
37
+ export interface ArchiveLabelEntry {
38
+ label: string;
39
+ count: number;
40
+ }
41
+ /** Priority breakdown entry from archive statistics. */
42
+ export interface ArchivePriorityEntry {
43
+ priority: string;
44
+ count: number;
45
+ avgCycleTime: number | null;
46
+ }
47
+ /** Cycle time distribution buckets. */
48
+ export interface CycleTimeDistribution {
49
+ '0-1 days': number;
50
+ '2-7 days': number;
51
+ '8-30 days': number;
52
+ '30+ days': number;
53
+ }
54
+ /** Cycle time percentiles. */
55
+ export interface CycleTimePercentiles {
56
+ p25: number | null;
57
+ p50: number | null;
58
+ p75: number | null;
59
+ p90: number | null;
60
+ }
61
+ /** Cycle times report from archive statistics. */
62
+ export interface ArchiveCycleTimesReport {
63
+ count: number;
64
+ min: number | null;
65
+ max: number | null;
66
+ avg: number | null;
67
+ median: number | null;
68
+ distribution: CycleTimeDistribution;
69
+ percentiles?: CycleTimePercentiles;
70
+ }
71
+ /** Daily archive trend entry. */
72
+ export interface ArchiveDailyTrend {
73
+ date: string;
74
+ count: number;
75
+ }
76
+ /** Monthly archive trend entry. */
77
+ export interface ArchiveMonthlyTrend {
78
+ month: string;
79
+ count: number;
80
+ }
81
+ /** Trends report from archive statistics. */
82
+ export interface ArchiveTrendsReport {
83
+ byDay: ArchiveDailyTrend[];
84
+ byMonth: ArchiveMonthlyTrend[];
85
+ totalPeriod: number;
86
+ averagePerDay: number;
87
+ }
88
+ /** Archive statistics result envelope. */
89
+ export interface ArchiveStatsEnvelope {
90
+ report: ArchiveReportType;
91
+ filters: {
92
+ since: string | null;
93
+ until: string | null;
94
+ } | null;
95
+ data: ArchiveSummaryReport | ArchivePhaseEntry[] | ArchiveLabelEntry[] | ArchivePriorityEntry[] | ArchiveCycleTimesReport | ArchiveTrendsReport | {
96
+ totalArchived: 0;
97
+ message: string;
98
+ };
99
+ }
100
+ //# sourceMappingURL=archive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Archive types for archived task records and metadata.
3
+ *
4
+ * @task T4555
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Brain/Memory domain types for brain.db cognitive memory system.
3
+ *
4
+ * Extracted from inline type definitions in engine-compat.ts to eliminate
5
+ * repeated `{ id: string; type: string; content: string; createdAt: string }` patterns.
6
+ *
7
+ * @task T5800
8
+ */
9
+ /** Compact brain entry reference used in contradiction analysis. */
10
+ export interface BrainEntryRef {
11
+ id: string;
12
+ type: string;
13
+ content: string;
14
+ createdAt: string;
15
+ }
16
+ /** Brain entry reference with summary, used in superseded analysis. */
17
+ export interface BrainEntrySummary {
18
+ id: string;
19
+ type: string;
20
+ createdAt: string;
21
+ summary: string;
22
+ }
23
+ /** Contradiction detail between two brain entries. */
24
+ export interface ContradictionDetail {
25
+ entryA: BrainEntryRef;
26
+ entryB: BrainEntryRef;
27
+ context?: string;
28
+ conflictDetails: string;
29
+ }
30
+ /** Superseded entry pair showing old and replacement entries. */
31
+ export interface SupersededEntry {
32
+ oldEntry: BrainEntrySummary;
33
+ replacement: BrainEntrySummary;
34
+ grouping: string;
35
+ }
36
+ //# sourceMappingURL=brain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../src/brain.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB"}
package/dist/brain.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Brain/Memory domain types for brain.db cognitive memory system.
3
+ *
4
+ * Extracted from inline type definitions in engine-compat.ts to eliminate
5
+ * repeated `{ id: string; type: string; content: string; createdAt: string }` patterns.
6
+ *
7
+ * @task T5800
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=brain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain.js","sourceRoot":"","sources":["../src/brain.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Adapter capability declarations for CLEO provider adapters.
3
+ *
4
+ * @task T5240
5
+ */
6
+ export interface AdapterCapabilities {
7
+ supportsHooks: boolean;
8
+ supportedHookEvents: string[];
9
+ supportsSpawn: boolean;
10
+ supportsInstall: boolean;
11
+ supportsMcp: boolean;
12
+ supportsInstructionFiles: boolean;
13
+ /** Provider-specific instruction file name, e.g. "CLAUDE.md", ".cursorrules" */
14
+ instructionFilePattern?: string;
15
+ supportsContextMonitor: boolean;
16
+ supportsStatusline: boolean;
17
+ supportsProviderPaths: boolean;
18
+ supportsTransport: boolean;
19
+ supportsTaskSync: boolean;
20
+ }
21
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,wBAAwB,EAAE,OAAO,CAAC;IAClC,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,OAAO,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Adapter capability declarations for CLEO provider adapters.
3
+ *
4
+ * @task T5240
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Configuration type definitions for CLEO.
3
+ *
4
+ * Covers project and global config with cascade resolution.
5
+ * These are stable types shared across core, dispatch, and CLI.
6
+ *
7
+ * @epic T4454
8
+ * @task T4456
9
+ * @task T5710
10
+ */
11
+ /** Output format options. */
12
+ export type OutputFormat = 'json' | 'text' | 'jsonl' | 'markdown' | 'table';
13
+ /** Date format options. */
14
+ export type DateFormat = 'relative' | 'iso' | 'short' | 'long';
15
+ /** Output configuration. */
16
+ export interface OutputConfig {
17
+ defaultFormat: OutputFormat;
18
+ showColor: boolean;
19
+ showUnicode: boolean;
20
+ showProgressBars: boolean;
21
+ dateFormat: DateFormat;
22
+ }
23
+ /** Backup configuration. */
24
+ export interface BackupConfig {
25
+ maxOperationalBackups: number;
26
+ maxSafetyBackups: number;
27
+ compressionEnabled: boolean;
28
+ }
29
+ /** Hierarchy enforcement profile preset. */
30
+ export type EnforcementProfile = 'llm-agent-first' | 'human-cognitive' | 'custom';
31
+ /** Hierarchy configuration. */
32
+ export interface HierarchyConfig {
33
+ maxDepth: number;
34
+ maxSiblings: number;
35
+ cascadeDelete: boolean;
36
+ /** Maximum number of active (non-done) siblings. 0 = disabled. */
37
+ maxActiveSiblings: number;
38
+ /** Whether done tasks count toward the sibling limit. */
39
+ countDoneInLimit: boolean;
40
+ /** Enforcement profile preset. Explicit fields override preset values. */
41
+ enforcementProfile: EnforcementProfile;
42
+ }
43
+ /** Session configuration. */
44
+ export interface SessionConfig {
45
+ autoStart: boolean;
46
+ requireNotes: boolean;
47
+ multiSession: boolean;
48
+ }
49
+ /** Pino log levels. */
50
+ export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal' | 'silent';
51
+ /** Logging configuration. */
52
+ export interface LoggingConfig {
53
+ /** Minimum log level to record (default: 'info') */
54
+ level: LogLevel;
55
+ /** Log file path relative to .cleo/ (default: 'logs/cleo.log') */
56
+ filePath: string;
57
+ /** Max log file size in bytes before rotation (default: 10MB) */
58
+ maxFileSize: number;
59
+ /** Number of rotated log files to retain (default: 5) */
60
+ maxFiles: number;
61
+ /** Days to retain audit_log rows before pruning (default: 90) */
62
+ auditRetentionDays: number;
63
+ /** Whether to archive pruned rows to compressed JSONL before deletion (default: true) */
64
+ archiveBeforePrune: boolean;
65
+ }
66
+ /** Lifecycle enforcement mode. */
67
+ export type LifecycleEnforcementMode = 'strict' | 'advisory' | 'off';
68
+ /** Lifecycle enforcement configuration. */
69
+ export interface LifecycleConfig {
70
+ mode: LifecycleEnforcementMode;
71
+ }
72
+ /** Sharing mode: whether .cleo/ files are committed to the project git repo. */
73
+ export type SharingMode = 'none' | 'project';
74
+ /** Sharing configuration for multi-contributor .cleo/ state management. */
75
+ export interface SharingConfig {
76
+ /** Sharing mode (default: 'none'). */
77
+ mode: SharingMode;
78
+ /** Files/patterns in .cleo/ to commit to project git (relative to .cleo/). */
79
+ commitAllowlist: string[];
80
+ /** Files/patterns to always exclude, even if in commitAllowlist. */
81
+ denylist: string[];
82
+ }
83
+ /** SignalDock transport mode. */
84
+ export type SignalDockMode = 'http' | 'native';
85
+ /** SignalDock integration configuration. */
86
+ export interface SignalDockConfig {
87
+ /** Whether SignalDock transport is enabled (default: false). */
88
+ enabled: boolean;
89
+ /** Transport mode: 'http' for REST API client, 'native' for napi-rs bindings (default: 'http'). */
90
+ mode: SignalDockMode;
91
+ /** SignalDock API server endpoint (default: 'http://localhost:4000'). */
92
+ endpoint: string;
93
+ /** Prefix for CLEO agent names in SignalDock registry (default: 'cleo-'). */
94
+ agentPrefix: string;
95
+ /** Default privacy tier for registered agents (default: 'private'). */
96
+ privacyTier: 'public' | 'discoverable' | 'private';
97
+ }
98
+ /** CLEO project configuration (config.json). */
99
+ export interface CleoConfig {
100
+ version: string;
101
+ output: OutputConfig;
102
+ backup: BackupConfig;
103
+ hierarchy: HierarchyConfig;
104
+ session: SessionConfig;
105
+ lifecycle: LifecycleConfig;
106
+ logging: LoggingConfig;
107
+ sharing: SharingConfig;
108
+ /** SignalDock inter-agent transport (optional, disabled by default). */
109
+ signaldock?: SignalDockConfig;
110
+ }
111
+ /** Configuration resolution priority. */
112
+ export type ConfigSource = 'cli' | 'env' | 'project' | 'global' | 'default';
113
+ /** A resolved config value with its source. */
114
+ export interface ResolvedValue<T> {
115
+ value: T;
116
+ source: ConfigSource;
117
+ }
118
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Configuration type definitions for CLEO.
3
+ *
4
+ * Covers project and global config with cascade resolution.
5
+ * These are stable types shared across core, dispatch, and CLI.
6
+ *
7
+ * @epic T4454
8
+ * @task T4456
9
+ * @task T5710
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Context monitor provider interface for CLEO provider adapters.
3
+ * Allows providers to implement context window tracking and statusline integration.
4
+ * @task T5240
5
+ */
6
+ export interface AdapterContextMonitorProvider {
7
+ /** Process context window input and return a status string */
8
+ processContextInput(input: unknown, cwd?: string): Promise<string>;
9
+ /** Check if statusline integration is configured */
10
+ checkStatuslineIntegration(): 'configured' | 'not_configured' | 'custom_no_cleo' | 'no_settings';
11
+ /** Get the statusline configuration object */
12
+ getStatuslineConfig(): Record<string, unknown>;
13
+ /** Get human-readable setup instructions */
14
+ getSetupInstructions(): string;
15
+ }
16
+ //# sourceMappingURL=context-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-monitor.d.ts","sourceRoot":"","sources":["../src/context-monitor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,6BAA6B;IAC5C,8DAA8D;IAC9D,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnE,oDAAoD;IACpD,0BAA0B,IAAI,YAAY,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,aAAa,CAAC;IACjG,8CAA8C;IAC9C,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,4CAA4C;IAC5C,oBAAoB,IAAI,MAAM,CAAC;CAChC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Context monitor provider interface for CLEO provider adapters.
3
+ * Allows providers to implement context window tracking and statusline integration.
4
+ * @task T5240
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=context-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-monitor.js","sourceRoot":"","sources":["../src/context-monitor.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * DataAccessor: File-level storage abstraction for core modules.
3
+ *
4
+ * Core modules operate on whole-file data structures (ArchiveFile, SessionsFile).
5
+ * The DataAccessor abstracts WHERE that data is stored (SQLite via Drizzle ORM)
6
+ * while preserving the read-modify-write pattern that core business logic relies on.
7
+ *
8
+ * This is the DRY/SOLID injection point: core modules accept a DataAccessor parameter
9
+ * instead of calling readJson/saveJson directly.
10
+ *
11
+ * Implementation: SqliteDataAccessor (materializes/dematerializes from SQLite tables)
12
+ *
13
+ * @epic T4454
14
+ */
15
+ import type { ArchivedTask } from './archive.js';
16
+ import type { Session } from './session.js';
17
+ import type { Task, TaskPriority, TaskSize, TaskStatus, TaskType } from './task.js';
18
+ /** Archive-specific fields for task upsert. */
19
+ export interface ArchiveFields {
20
+ archivedAt?: string;
21
+ archiveReason?: string;
22
+ cycleTimeDays?: number | null;
23
+ }
24
+ /** Archive file structure. */
25
+ export interface ArchiveFile {
26
+ archivedTasks: ArchivedTask[];
27
+ version?: string;
28
+ }
29
+ /** Filter bag for queryTasks(). Covers ~90% of task query patterns. */
30
+ export interface TaskQueryFilters {
31
+ status?: TaskStatus | TaskStatus[];
32
+ priority?: TaskPriority;
33
+ type?: TaskType;
34
+ parentId?: string | null;
35
+ phase?: string;
36
+ label?: string;
37
+ search?: string;
38
+ excludeStatus?: TaskStatus | TaskStatus[];
39
+ limit?: number;
40
+ offset?: number;
41
+ orderBy?: 'position' | 'createdAt' | 'updatedAt' | 'priority';
42
+ }
43
+ /** Result from queryTasks() with pagination support. */
44
+ export interface QueryTasksResult {
45
+ tasks: Task[];
46
+ total: number;
47
+ }
48
+ /** Partial task row fields for updateTaskFields(). */
49
+ export interface TaskFieldUpdates {
50
+ title?: string;
51
+ description?: string | null;
52
+ status?: TaskStatus;
53
+ priority?: TaskPriority;
54
+ type?: TaskType | null;
55
+ parentId?: string | null;
56
+ phase?: string | null;
57
+ size?: TaskSize | null;
58
+ position?: number | null;
59
+ positionVersion?: number;
60
+ labelsJson?: string;
61
+ notesJson?: string;
62
+ acceptanceJson?: string;
63
+ filesJson?: string;
64
+ origin?: string | null;
65
+ blockedBy?: string | null;
66
+ epicLifecycle?: string | null;
67
+ noAutoComplete?: boolean | null;
68
+ completedAt?: string | null;
69
+ cancelledAt?: string | null;
70
+ cancellationReason?: string | null;
71
+ verificationJson?: string | null;
72
+ createdBy?: string | null;
73
+ modifiedBy?: string | null;
74
+ sessionId?: string | null;
75
+ updatedAt?: string | null;
76
+ }
77
+ /**
78
+ * Subset of DataAccessor methods available inside a transaction callback.
79
+ * Write-only — reads use the outer accessor (snapshot isolation).
80
+ */
81
+ export interface TransactionAccessor {
82
+ upsertSingleTask(task: Task): Promise<void>;
83
+ archiveSingleTask(taskId: string, fields: ArchiveFields): Promise<void>;
84
+ removeSingleTask(taskId: string): Promise<void>;
85
+ setMetaValue(key: string, value: unknown): Promise<void>;
86
+ updateTaskFields(taskId: string, fields: TaskFieldUpdates): Promise<void>;
87
+ appendLog(entry: Record<string, unknown>): Promise<void>;
88
+ }
89
+ /**
90
+ * DataAccessor interface.
91
+ *
92
+ * Core modules call these methods instead of readJson/saveJson.
93
+ * Each method maps directly to the file-level operations that
94
+ * core modules already perform.
95
+ */
96
+ export interface DataAccessor {
97
+ /** The storage engine backing this accessor. */
98
+ readonly engine: 'sqlite';
99
+ /** Load the archive file. Returns null if archive doesn't exist. */
100
+ loadArchive(): Promise<ArchiveFile | null>;
101
+ /** Save the archive file atomically. Creates backup before write. */
102
+ saveArchive(data: ArchiveFile): Promise<void>;
103
+ /** Load all sessions from the store. Returns empty array if none exist. */
104
+ loadSessions(): Promise<Session[]>;
105
+ /** Save all sessions to the store atomically. */
106
+ saveSessions(sessions: Session[]): Promise<void>;
107
+ /** Append an entry to the audit log. */
108
+ appendLog(entry: Record<string, unknown>): Promise<void>;
109
+ /** Release any resources (close DB connections, etc.). */
110
+ close(): Promise<void>;
111
+ /** Upsert a single task (targeted write, no full-file reload). */
112
+ upsertSingleTask(task: Task): Promise<void>;
113
+ /** Archive a single task by ID (sets status='archived' + archive metadata). */
114
+ archiveSingleTask(taskId: string, fields: ArchiveFields): Promise<void>;
115
+ /** Delete a single task permanently from the tasks table. */
116
+ removeSingleTask(taskId: string): Promise<void>;
117
+ /** Load a single task by ID with its dependencies and relations. Returns null if not found. */
118
+ loadSingleTask(taskId: string): Promise<Task | null>;
119
+ /** Insert a row into the task_relations table (T5168). */
120
+ addRelation(taskId: string, relatedTo: string, relationType: string, reason?: string): Promise<void>;
121
+ /** Read a typed value from the metadata store. Returns null if not found. */
122
+ getMetaValue<T>(key: string): Promise<T | null>;
123
+ /** Write a typed value to the metadata store. */
124
+ setMetaValue(key: string, value: unknown): Promise<void>;
125
+ /** Read the schema version from metadata. Convenience for getMetaValue('schema_version'). */
126
+ getSchemaVersion(): Promise<string | null>;
127
+ /** Query tasks with filters, pagination, and ordering. Returns matching tasks + total count. */
128
+ queryTasks(filters: TaskQueryFilters): Promise<QueryTasksResult>;
129
+ /** Count tasks matching optional filters. Excludes archived by default. */
130
+ countTasks(filters?: {
131
+ status?: TaskStatus | TaskStatus[];
132
+ parentId?: string;
133
+ }): Promise<number>;
134
+ /** Get direct children of a parent task. */
135
+ getChildren(parentId: string): Promise<Task[]>;
136
+ /** Count direct children of a parent task (all statuses except archived). */
137
+ countChildren(parentId: string): Promise<number>;
138
+ /** Count active (non-terminal) children of a parent task. */
139
+ countActiveChildren(parentId: string): Promise<number>;
140
+ /** Get ancestor chain from task to root via WITH RECURSIVE CTE. Ordered root-first. */
141
+ getAncestorChain(taskId: string): Promise<Task[]>;
142
+ /** Get full subtree rooted at taskId via WITH RECURSIVE CTE. Includes root. */
143
+ getSubtree(rootId: string): Promise<Task[]>;
144
+ /** Get tasks that depend on (are blocked by) the given task. Reverse dep lookup. */
145
+ getDependents(taskId: string): Promise<Task[]>;
146
+ /** Get transitive dependency chain via WITH RECURSIVE CTE. Returns task IDs. */
147
+ getDependencyChain(taskId: string): Promise<string[]>;
148
+ /** Check if a task exists (any status including archived). */
149
+ taskExists(taskId: string): Promise<boolean>;
150
+ /** Load multiple tasks by ID in a single batch query. */
151
+ loadTasks(taskIds: string[]): Promise<Task[]>;
152
+ /** Update specific fields on a task without full load/save cycle. */
153
+ updateTaskFields(taskId: string, fields: TaskFieldUpdates): Promise<void>;
154
+ /** Get next available position for a task within a parent scope (SQL-level, race-safe). */
155
+ getNextPosition(parentId: string | null): Promise<number>;
156
+ /** Shift positions of siblings >= fromPosition by delta (bulk SQL update). */
157
+ shiftPositions(parentId: string | null, fromPosition: number, delta: number): Promise<void>;
158
+ /** Execute a function inside a SQLite transaction (BEGIN IMMEDIATE / COMMIT / ROLLBACK). */
159
+ transaction<T>(fn: (tx: TransactionAccessor) => Promise<T>): Promise<T>;
160
+ /** Get the currently active session (status='active', most recent). */
161
+ getActiveSession(): Promise<Session | null>;
162
+ /** Upsert a single session (targeted write). */
163
+ upsertSingleSession(session: Session): Promise<void>;
164
+ /** Remove a single session by ID. */
165
+ removeSingleSession(sessionId: string): Promise<void>;
166
+ }
167
+ //# sourceMappingURL=data-accessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-accessor.d.ts","sourceRoot":"","sources":["../src/data-accessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * DataAccessor: File-level storage abstraction for core modules.
3
+ *
4
+ * Core modules operate on whole-file data structures (ArchiveFile, SessionsFile).
5
+ * The DataAccessor abstracts WHERE that data is stored (SQLite via Drizzle ORM)
6
+ * while preserving the read-modify-write pattern that core business logic relies on.
7
+ *
8
+ * This is the DRY/SOLID injection point: core modules accept a DataAccessor parameter
9
+ * instead of calling readJson/saveJson directly.
10
+ *
11
+ * Implementation: SqliteDataAccessor (materializes/dematerializes from SQLite tables)
12
+ *
13
+ * @epic T4454
14
+ */
15
+ export {};
16
+ // Factory functions (createDataAccessor, getAccessor) live in @cleocode/core,
17
+ // not here. Contracts is types-only.
18
+ //# sourceMappingURL=data-accessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-accessor.js","sourceRoot":"","sources":["../src/data-accessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;;AAgOH,8EAA8E;AAC9E,qCAAqC"}