@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,176 @@
1
+ /**
2
+ * Lifecycle Domain Operations (10 operations)
3
+ *
4
+ * Query operations: 5
5
+ * Mutate operations: 5
6
+ */
7
+
8
+ import type { StageStatus } from '../status-registry.js';
9
+ export type { StageStatus };
10
+
11
+ /**
12
+ * Common lifecycle types
13
+ */
14
+ export type LifecycleStage =
15
+ | 'research'
16
+ | 'consensus'
17
+ | 'architecture_decision'
18
+ | 'specification'
19
+ | 'decomposition'
20
+ | 'implementation'
21
+ | 'validation'
22
+ | 'testing'
23
+ | 'release';
24
+
25
+ export type GateStatus = 'passed' | 'failed' | 'blocked' | null;
26
+
27
+ export interface StageRecord {
28
+ stage: LifecycleStage;
29
+ status: StageStatus;
30
+ started?: string;
31
+ completed?: string;
32
+ agent?: string;
33
+ notes?: string;
34
+ }
35
+
36
+ export interface Gate {
37
+ name: string;
38
+ stage: LifecycleStage;
39
+ status: GateStatus;
40
+ agent?: string;
41
+ timestamp?: string;
42
+ reason?: string;
43
+ }
44
+
45
+ /**
46
+ * Query Operations
47
+ */
48
+
49
+ // lifecycle.check
50
+ export interface LifecycleCheckParams {
51
+ taskId: string;
52
+ targetStage: LifecycleStage;
53
+ }
54
+ export interface LifecycleCheckResult {
55
+ taskId: string;
56
+ targetStage: LifecycleStage;
57
+ canProceed: boolean;
58
+ missingPrerequisites: LifecycleStage[];
59
+ gateStatus: 'passed' | 'failed' | 'pending';
60
+ }
61
+
62
+ // lifecycle.status
63
+ export interface LifecycleStatusParams {
64
+ taskId?: string;
65
+ epicId?: string;
66
+ }
67
+ export interface LifecycleStatusResult {
68
+ id: string;
69
+ currentStage: LifecycleStage;
70
+ stages: StageRecord[];
71
+ completedStages: LifecycleStage[];
72
+ pendingStages: LifecycleStage[];
73
+ }
74
+
75
+ // lifecycle.history
76
+ export interface LifecycleHistoryParams {
77
+ taskId: string;
78
+ }
79
+ export interface LifecycleHistoryEntry {
80
+ stage: LifecycleStage;
81
+ from: StageStatus;
82
+ to: StageStatus;
83
+ timestamp: string;
84
+ agent?: string;
85
+ notes?: string;
86
+ }
87
+ export type LifecycleHistoryResult = LifecycleHistoryEntry[];
88
+
89
+ // lifecycle.gates
90
+ export interface LifecycleGatesParams {
91
+ taskId: string;
92
+ }
93
+ export type LifecycleGatesResult = Gate[];
94
+
95
+ // lifecycle.prerequisites
96
+ export interface LifecyclePrerequisitesParams {
97
+ targetStage: LifecycleStage;
98
+ }
99
+ export interface LifecyclePrerequisitesResult {
100
+ targetStage: LifecycleStage;
101
+ prerequisites: LifecycleStage[];
102
+ optional: LifecycleStage[];
103
+ }
104
+
105
+ /**
106
+ * Mutate Operations
107
+ */
108
+
109
+ // lifecycle.progress
110
+ export interface LifecycleProgressParams {
111
+ taskId: string;
112
+ stage: LifecycleStage;
113
+ status: StageStatus;
114
+ notes?: string;
115
+ }
116
+ export interface LifecycleProgressResult {
117
+ taskId: string;
118
+ stage: LifecycleStage;
119
+ status: StageStatus;
120
+ timestamp: string;
121
+ }
122
+
123
+ // lifecycle.skip
124
+ export interface LifecycleSkipParams {
125
+ taskId: string;
126
+ stage: LifecycleStage;
127
+ reason: string;
128
+ }
129
+ export interface LifecycleSkipResult {
130
+ taskId: string;
131
+ stage: LifecycleStage;
132
+ skipped: string;
133
+ reason: string;
134
+ }
135
+
136
+ // lifecycle.reset
137
+ export interface LifecycleResetParams {
138
+ taskId: string;
139
+ stage: LifecycleStage;
140
+ reason: string;
141
+ }
142
+ export interface LifecycleResetResult {
143
+ taskId: string;
144
+ stage: LifecycleStage;
145
+ reset: string;
146
+ reason: string;
147
+ warning: string;
148
+ }
149
+
150
+ // lifecycle.gate.pass
151
+ export interface LifecycleGatePassParams {
152
+ taskId: string;
153
+ gateName: string;
154
+ agent: string;
155
+ notes?: string;
156
+ }
157
+ export interface LifecycleGatePassResult {
158
+ taskId: string;
159
+ gateName: string;
160
+ status: 'passed';
161
+ timestamp: string;
162
+ }
163
+
164
+ // lifecycle.gate.fail
165
+ export interface LifecycleGateFailParams {
166
+ taskId: string;
167
+ gateName: string;
168
+ reason: string;
169
+ }
170
+ export interface LifecycleGateFailResult {
171
+ taskId: string;
172
+ gateName: string;
173
+ status: 'failed';
174
+ reason: string;
175
+ timestamp: string;
176
+ }
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Orchestrate Domain Operations (13 operations)
3
+ *
4
+ * Query operations: 7
5
+ * Mutate operations: 6
6
+ */
7
+
8
+ /**
9
+ * Common orchestration types
10
+ */
11
+ export interface Wave {
12
+ wave: number;
13
+ taskIds: string[];
14
+ canRunParallel: boolean;
15
+ dependencies: string[];
16
+ }
17
+
18
+ export interface SkillDefinition {
19
+ name: string;
20
+ description: string;
21
+ tags: string[];
22
+ model?: string;
23
+ protocols: string[];
24
+ }
25
+
26
+ /**
27
+ * Query Operations
28
+ */
29
+
30
+ // orchestrate.status
31
+ export interface OrchestrateStatusParams {
32
+ epicId: string;
33
+ }
34
+ export interface OrchestrateStatusResult {
35
+ epicId: string;
36
+ totalTasks: number;
37
+ completedTasks: number;
38
+ pendingTasks: number;
39
+ blockedTasks: number;
40
+ currentWave: number;
41
+ totalWaves: number;
42
+ parallelCapacity: number;
43
+ }
44
+
45
+ // orchestrate.next
46
+ export interface OrchestrateNextParams {
47
+ epicId: string;
48
+ }
49
+ export interface OrchestrateNextResult {
50
+ taskId: string;
51
+ title: string;
52
+ recommendedSkill: string;
53
+ reasoning: string;
54
+ }
55
+
56
+ // orchestrate.ready
57
+ export interface OrchestrateReadyParams {
58
+ epicId: string;
59
+ }
60
+ export interface OrchestrateReadyResult {
61
+ wave: number;
62
+ taskIds: string[];
63
+ parallelSafe: boolean;
64
+ }
65
+
66
+ // orchestrate.analyze
67
+ export interface OrchestrateAnalyzeParams {
68
+ epicId: string;
69
+ }
70
+ export interface OrchestrateAnalyzeResult {
71
+ waves: Wave[];
72
+ criticalPath: string[];
73
+ estimatedParallelism: number;
74
+ bottlenecks: string[];
75
+ }
76
+
77
+ // orchestrate.context
78
+ export interface OrchestrateContextParams {
79
+ tokens?: number;
80
+ }
81
+ export interface OrchestrateContextResult {
82
+ currentTokens: number;
83
+ maxTokens: number;
84
+ percentUsed: number;
85
+ level: 'safe' | 'medium' | 'high' | 'critical';
86
+ recommendation: string;
87
+ }
88
+
89
+ // orchestrate.waves
90
+ export interface OrchestrateWavesParams {
91
+ epicId: string;
92
+ }
93
+ export type OrchestrateWavesResult = Wave[];
94
+
95
+ // orchestrate.skill.list
96
+ export interface OrchestrateSkillListParams {
97
+ filter?: string;
98
+ }
99
+ export type OrchestrateSkillListResult = SkillDefinition[];
100
+
101
+ // orchestrate.bootstrap
102
+ export interface OrchestrateBootstrapParams {
103
+ speed?: 'fast' | 'full' | 'complete';
104
+ }
105
+ export interface BrainState {
106
+ session?: { id: string; name: string; status: string; startedAt: string };
107
+ currentTask?: { id: string; title: string; status: string };
108
+ nextSuggestion?: { id: string; title: string; score: number };
109
+ recentDecisions?: Array<{ id: string; decision: string; timestamp: string }>;
110
+ blockers?: Array<{ taskId: string; title: string; blockedBy: string[] }>;
111
+ progress?: { total: number; done: number; active: number; blocked: number; pending: number };
112
+ contextDrift?: { score: number; factors: string[] };
113
+ _meta: { speed: 'fast' | 'full' | 'complete'; generatedAt: string; version: string };
114
+ }
115
+
116
+ /**
117
+ * Mutate Operations
118
+ */
119
+
120
+ // orchestrate.startup
121
+ export interface OrchestrateStartupParams {
122
+ epicId: string;
123
+ }
124
+ export interface OrchestrateStartupResult {
125
+ epicId: string;
126
+ status: OrchestrateStatusResult;
127
+ analysis: OrchestrateAnalyzeResult;
128
+ firstTask: OrchestrateNextResult;
129
+ }
130
+
131
+ // orchestrate.spawn
132
+ export interface OrchestrateSpawnParams {
133
+ taskId: string;
134
+ skill?: string;
135
+ model?: string;
136
+ }
137
+ export interface OrchestrateSpawnResult {
138
+ taskId: string;
139
+ skill: string;
140
+ model: string;
141
+ prompt: string;
142
+ metadata: {
143
+ tokensUsed: number;
144
+ protocolsInjected: string[];
145
+ dependencies: string[];
146
+ };
147
+ }
148
+
149
+ // orchestrate.handoff
150
+ export interface OrchestrateHandoffParams {
151
+ taskId: string;
152
+ protocolType: string;
153
+ note?: string;
154
+ nextAction?: string;
155
+ variant?: string;
156
+ tier?: 0 | 1 | 2;
157
+ idempotencyKey?: string;
158
+ }
159
+ export interface OrchestrateHandoffResult {
160
+ taskId: string;
161
+ predecessorSessionId: string;
162
+ endedSessionId: string;
163
+ protocolType: string;
164
+ }
165
+
166
+ // orchestrate.validate
167
+ export interface OrchestrateValidateParams {
168
+ taskId: string;
169
+ }
170
+ export interface OrchestrateValidateResult {
171
+ taskId: string;
172
+ ready: boolean;
173
+ blockers: string[];
174
+ lifecycleGate: 'passed' | 'failed' | 'pending';
175
+ recommendations: string[];
176
+ }
177
+
178
+ // orchestrate.parallel.start
179
+ export interface OrchestrateParallelStartParams {
180
+ epicId: string;
181
+ wave: number;
182
+ }
183
+ export interface OrchestrateParallelStartResult {
184
+ wave: number;
185
+ taskIds: string[];
186
+ started: string;
187
+ }
188
+
189
+ // orchestrate.parallel.end
190
+ export interface OrchestrateParallelEndParams {
191
+ epicId: string;
192
+ wave: number;
193
+ }
194
+ export interface OrchestrateParallelEndResult {
195
+ wave: number;
196
+ completed: number;
197
+ failed: number;
198
+ duration: string;
199
+ }
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Release Domain Operations (7 operations)
3
+ *
4
+ * All mutate operations
5
+ */
6
+
7
+ /**
8
+ * Common release types
9
+ */
10
+ export type ReleaseType = 'major' | 'minor' | 'patch';
11
+
12
+ export interface ReleaseGate {
13
+ name: string;
14
+ description: string;
15
+ passed: boolean;
16
+ reason?: string;
17
+ }
18
+
19
+ export interface ChangelogSection {
20
+ type: 'feat' | 'fix' | 'docs' | 'test' | 'refactor' | 'chore';
21
+ entries: Array<{
22
+ taskId: string;
23
+ message: string;
24
+ }>;
25
+ }
26
+
27
+ /**
28
+ * Mutate Operations
29
+ */
30
+
31
+ // release.prepare
32
+ export interface ReleasePrepareParams {
33
+ version: string;
34
+ type: ReleaseType;
35
+ }
36
+ export interface ReleasePrepareResult {
37
+ version: string;
38
+ type: ReleaseType;
39
+ currentVersion: string;
40
+ files: string[];
41
+ ready: boolean;
42
+ warnings: string[];
43
+ }
44
+
45
+ // release.changelog
46
+ export interface ReleaseChangelogParams {
47
+ version: string;
48
+ sections?: Array<'feat' | 'fix' | 'docs' | 'test' | 'refactor' | 'chore'>;
49
+ }
50
+ export interface ReleaseChangelogResult {
51
+ version: string;
52
+ content: string;
53
+ sections: ChangelogSection[];
54
+ commitCount: number;
55
+ }
56
+
57
+ // release.commit
58
+ export interface ReleaseCommitParams {
59
+ version: string;
60
+ files?: string[];
61
+ }
62
+ export interface ReleaseCommitResult {
63
+ version: string;
64
+ commitHash: string;
65
+ message: string;
66
+ filesCommitted: string[];
67
+ }
68
+
69
+ // release.tag
70
+ export interface ReleaseTagParams {
71
+ version: string;
72
+ message?: string;
73
+ }
74
+ export interface ReleaseTagResult {
75
+ version: string;
76
+ tagName: string;
77
+ created: string;
78
+ }
79
+
80
+ // release.push
81
+ export interface ReleasePushParams {
82
+ version: string;
83
+ remote?: string;
84
+ }
85
+ export interface ReleasePushResult {
86
+ version: string;
87
+ remote: string;
88
+ pushed: string;
89
+ tagsPushed: string[];
90
+ }
91
+
92
+ // release.gates.run
93
+ export interface ReleaseGatesRunParams {
94
+ gates?: string[];
95
+ }
96
+ export interface ReleaseGatesRunResult {
97
+ total: number;
98
+ passed: number;
99
+ failed: number;
100
+ gates: ReleaseGate[];
101
+ canRelease: boolean;
102
+ }
103
+
104
+ // release.rollback
105
+ export interface ReleaseRollbackParams {
106
+ version: string;
107
+ reason: string;
108
+ }
109
+ export interface ReleaseRollbackResult {
110
+ version: string;
111
+ rolledBack: string;
112
+ restoredVersion: string;
113
+ reason: string;
114
+ }
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Research Domain Operations (legacy alias for memory domain)
3
+ *
4
+ * Query operations: 12 (derived from memory domain)
5
+ * Mutate operations: 5 (derived from memory domain)
6
+ *
7
+ * Note: manifest.* operations moved to pipeline domain (T5241).
8
+ * inject operation moved to session.context.inject (T5241).
9
+ */
10
+
11
+ /**
12
+ * Common research types
13
+ */
14
+ export interface ResearchEntry {
15
+ id: string;
16
+ taskId: string;
17
+ title: string;
18
+ file: string;
19
+ date: string;
20
+ status: 'completed' | 'partial' | 'blocked';
21
+ agentType: string;
22
+ topics: string[];
23
+ keyFindings: string[];
24
+ actionable: boolean;
25
+ needsFollowup: string[];
26
+ linkedTasks: string[];
27
+ confidence?: number;
28
+ }
29
+
30
+ export interface ManifestEntry {
31
+ id: string;
32
+ file: string;
33
+ title: string;
34
+ date: string;
35
+ status: 'completed' | 'partial' | 'blocked';
36
+ agent_type: string;
37
+ topics: string[];
38
+ key_findings: string[];
39
+ actionable: boolean;
40
+ needs_followup: string[];
41
+ linked_tasks: string[];
42
+ }
43
+
44
+ /**
45
+ * Query Operations
46
+ */
47
+
48
+ // research.show
49
+ export interface ResearchShowParams {
50
+ researchId: string;
51
+ }
52
+ export type ResearchShowResult = ResearchEntry;
53
+
54
+ // research.list
55
+ export interface ResearchListParams {
56
+ epicId?: string;
57
+ status?: 'completed' | 'partial' | 'blocked';
58
+ }
59
+ export type ResearchListResult = ResearchEntry[];
60
+
61
+ // research.query
62
+ export interface ResearchQueryParams {
63
+ query: string;
64
+ confidence?: number;
65
+ }
66
+ export interface ResearchQueryResult {
67
+ entries: ResearchEntry[];
68
+ matchCount: number;
69
+ avgConfidence: number;
70
+ }
71
+
72
+ // research.pending
73
+ export interface ResearchPendingParams {
74
+ epicId?: string;
75
+ }
76
+ export type ResearchPendingResult = ResearchEntry[];
77
+
78
+ // research.stats
79
+ export interface ResearchStatsParams {
80
+ epicId?: string;
81
+ }
82
+ export interface ResearchStatsResult {
83
+ total: number;
84
+ complete: number;
85
+ partial: number;
86
+ blocked: number;
87
+ byAgentType: Record<string, number>;
88
+ byTopic: Record<string, number>;
89
+ avgConfidence: number;
90
+ }
91
+
92
+ // pipeline.manifest.list (was research.manifest.read, moved to pipeline T5241)
93
+ export interface ResearchManifestReadParams {
94
+ filter?: string;
95
+ limit?: number;
96
+ offset?: number;
97
+ }
98
+ export type ResearchManifestReadResult = ManifestEntry[];
99
+
100
+ /**
101
+ * Mutate Operations
102
+ */
103
+
104
+ // session.context.inject (was research.inject, moved to session domain T5241)
105
+ export interface ResearchInjectParams {
106
+ protocolType:
107
+ | 'research'
108
+ | 'consensus'
109
+ | 'specification'
110
+ | 'decomposition'
111
+ | 'implementation'
112
+ | 'contribution'
113
+ | 'release';
114
+ taskId?: string;
115
+ variant?: string;
116
+ }
117
+ export interface ResearchInjectResult {
118
+ protocol: string;
119
+ content: string;
120
+ tokensUsed: number;
121
+ }
122
+
123
+ // research.link
124
+ export interface ResearchLinkParams {
125
+ researchId: string;
126
+ taskId: string;
127
+ relationship?: 'supports' | 'blocks' | 'references' | 'supersedes';
128
+ }
129
+ export interface ResearchLinkResult {
130
+ researchId: string;
131
+ taskId: string;
132
+ relationship: string;
133
+ linked: string;
134
+ }
135
+
136
+ // pipeline.manifest.append (was research.manifest.append, moved to pipeline T5241)
137
+ export interface ResearchManifestAppendParams {
138
+ entry: ManifestEntry;
139
+ validateFile?: boolean;
140
+ }
141
+ export interface ResearchManifestAppendResult {
142
+ id: string;
143
+ appended: string;
144
+ validated: boolean;
145
+ }
146
+
147
+ // pipeline.manifest.archive (was research.manifest.archive, moved to pipeline T5241)
148
+ export interface ResearchManifestArchiveParams {
149
+ beforeDate?: string;
150
+ moveFiles?: boolean;
151
+ }
152
+ export interface ResearchManifestArchiveResult {
153
+ archived: number;
154
+ entryIds: string[];
155
+ filesMovedCount?: number;
156
+ }