@mcoda/codali 0.1.66

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 (241) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE +21 -0
  3. package/README.md +111 -0
  4. package/dist/agents/AgentProtocol.d.ts +287 -0
  5. package/dist/agents/AgentProtocol.d.ts.map +1 -0
  6. package/dist/agents/AgentProtocol.js +365 -0
  7. package/dist/agents/AgentResolver.d.ts +23 -0
  8. package/dist/agents/AgentResolver.d.ts.map +1 -0
  9. package/dist/agents/AgentResolver.js +77 -0
  10. package/dist/agents/PhaseAgentSelector.d.ts +23 -0
  11. package/dist/agents/PhaseAgentSelector.d.ts.map +1 -0
  12. package/dist/agents/PhaseAgentSelector.js +287 -0
  13. package/dist/cli/EvalCommand.d.ts +37 -0
  14. package/dist/cli/EvalCommand.d.ts.map +1 -0
  15. package/dist/cli/EvalCommand.js +333 -0
  16. package/dist/cli/FeedbackCommand.d.ts +22 -0
  17. package/dist/cli/FeedbackCommand.d.ts.map +1 -0
  18. package/dist/cli/FeedbackCommand.js +163 -0
  19. package/dist/cli/RunCommand.d.ts +78 -0
  20. package/dist/cli/RunCommand.d.ts.map +1 -0
  21. package/dist/cli/RunCommand.js +2261 -0
  22. package/dist/cli.d.ts +3 -0
  23. package/dist/cli.d.ts.map +1 -0
  24. package/dist/cli.js +109 -0
  25. package/dist/cognitive/ArchitectPlanner.d.ts +107 -0
  26. package/dist/cognitive/ArchitectPlanner.d.ts.map +1 -0
  27. package/dist/cognitive/ArchitectPlanner.js +1726 -0
  28. package/dist/cognitive/BuilderOutputParser.d.ts +25 -0
  29. package/dist/cognitive/BuilderOutputParser.d.ts.map +1 -0
  30. package/dist/cognitive/BuilderOutputParser.js +164 -0
  31. package/dist/cognitive/BuilderRunner.d.ts +76 -0
  32. package/dist/cognitive/BuilderRunner.d.ts.map +1 -0
  33. package/dist/cognitive/BuilderRunner.js +1159 -0
  34. package/dist/cognitive/ContextAssembler.d.ts +91 -0
  35. package/dist/cognitive/ContextAssembler.d.ts.map +1 -0
  36. package/dist/cognitive/ContextAssembler.js +4547 -0
  37. package/dist/cognitive/ContextBudget.d.ts +19 -0
  38. package/dist/cognitive/ContextBudget.d.ts.map +1 -0
  39. package/dist/cognitive/ContextBudget.js +35 -0
  40. package/dist/cognitive/ContextFileLoader.d.ts +30 -0
  41. package/dist/cognitive/ContextFileLoader.d.ts.map +1 -0
  42. package/dist/cognitive/ContextFileLoader.js +307 -0
  43. package/dist/cognitive/ContextManager.d.ts +47 -0
  44. package/dist/cognitive/ContextManager.d.ts.map +1 -0
  45. package/dist/cognitive/ContextManager.js +272 -0
  46. package/dist/cognitive/ContextRedactor.d.ts +18 -0
  47. package/dist/cognitive/ContextRedactor.d.ts.map +1 -0
  48. package/dist/cognitive/ContextRedactor.js +53 -0
  49. package/dist/cognitive/ContextSelector.d.ts +22 -0
  50. package/dist/cognitive/ContextSelector.d.ts.map +1 -0
  51. package/dist/cognitive/ContextSelector.js +431 -0
  52. package/dist/cognitive/ContextSerializer.d.ts +8 -0
  53. package/dist/cognitive/ContextSerializer.d.ts.map +1 -0
  54. package/dist/cognitive/ContextSerializer.js +882 -0
  55. package/dist/cognitive/ContextStore.d.ts +27 -0
  56. package/dist/cognitive/ContextStore.d.ts.map +1 -0
  57. package/dist/cognitive/ContextStore.js +79 -0
  58. package/dist/cognitive/ContextSummarizer.d.ts +16 -0
  59. package/dist/cognitive/ContextSummarizer.d.ts.map +1 -0
  60. package/dist/cognitive/ContextSummarizer.js +45 -0
  61. package/dist/cognitive/CostEstimator.d.ts +31 -0
  62. package/dist/cognitive/CostEstimator.d.ts.map +1 -0
  63. package/dist/cognitive/CostEstimator.js +66 -0
  64. package/dist/cognitive/CriticEvaluator.d.ts +32 -0
  65. package/dist/cognitive/CriticEvaluator.d.ts.map +1 -0
  66. package/dist/cognitive/CriticEvaluator.js +297 -0
  67. package/dist/cognitive/EvidenceGate.d.ts +9 -0
  68. package/dist/cognitive/EvidenceGate.d.ts.map +1 -0
  69. package/dist/cognitive/EvidenceGate.js +75 -0
  70. package/dist/cognitive/GoldenExampleIndexer.d.ts +12 -0
  71. package/dist/cognitive/GoldenExampleIndexer.d.ts.map +1 -0
  72. package/dist/cognitive/GoldenExampleIndexer.js +34 -0
  73. package/dist/cognitive/GoldenSetStore.d.ts +33 -0
  74. package/dist/cognitive/GoldenSetStore.d.ts.map +1 -0
  75. package/dist/cognitive/GoldenSetStore.js +159 -0
  76. package/dist/cognitive/IntentSignals.d.ts +7 -0
  77. package/dist/cognitive/IntentSignals.d.ts.map +1 -0
  78. package/dist/cognitive/IntentSignals.js +285 -0
  79. package/dist/cognitive/LearningGovernance.d.ts +100 -0
  80. package/dist/cognitive/LearningGovernance.d.ts.map +1 -0
  81. package/dist/cognitive/LearningGovernance.js +276 -0
  82. package/dist/cognitive/MemoryWriteback.d.ts +64 -0
  83. package/dist/cognitive/MemoryWriteback.d.ts.map +1 -0
  84. package/dist/cognitive/MemoryWriteback.js +287 -0
  85. package/dist/cognitive/PatchApplier.d.ts +49 -0
  86. package/dist/cognitive/PatchApplier.d.ts.map +1 -0
  87. package/dist/cognitive/PatchApplier.js +199 -0
  88. package/dist/cognitive/PatchInterpreter.d.ts +35 -0
  89. package/dist/cognitive/PatchInterpreter.d.ts.map +1 -0
  90. package/dist/cognitive/PatchInterpreter.js +100 -0
  91. package/dist/cognitive/PatchOutputNormalizer.d.ts +7 -0
  92. package/dist/cognitive/PatchOutputNormalizer.d.ts.map +1 -0
  93. package/dist/cognitive/PatchOutputNormalizer.js +59 -0
  94. package/dist/cognitive/PostMortemAnalyzer.d.ts +17 -0
  95. package/dist/cognitive/PostMortemAnalyzer.d.ts.map +1 -0
  96. package/dist/cognitive/PostMortemAnalyzer.js +131 -0
  97. package/dist/cognitive/PreferenceExtraction.d.ts +3 -0
  98. package/dist/cognitive/PreferenceExtraction.d.ts.map +1 -0
  99. package/dist/cognitive/PreferenceExtraction.js +85 -0
  100. package/dist/cognitive/Prompts.d.ts +15 -0
  101. package/dist/cognitive/Prompts.d.ts.map +1 -0
  102. package/dist/cognitive/Prompts.js +326 -0
  103. package/dist/cognitive/ProviderRouting.d.ts +16 -0
  104. package/dist/cognitive/ProviderRouting.d.ts.map +1 -0
  105. package/dist/cognitive/ProviderRouting.js +24 -0
  106. package/dist/cognitive/QueryExtraction.d.ts +12 -0
  107. package/dist/cognitive/QueryExtraction.d.ts.map +1 -0
  108. package/dist/cognitive/QueryExtraction.js +262 -0
  109. package/dist/cognitive/RunHistoryIndexer.d.ts +13 -0
  110. package/dist/cognitive/RunHistoryIndexer.d.ts.map +1 -0
  111. package/dist/cognitive/RunHistoryIndexer.js +125 -0
  112. package/dist/cognitive/SmartPipeline.d.ts +92 -0
  113. package/dist/cognitive/SmartPipeline.d.ts.map +1 -0
  114. package/dist/cognitive/SmartPipeline.js +4804 -0
  115. package/dist/cognitive/Types.d.ts +474 -0
  116. package/dist/cognitive/Types.d.ts.map +1 -0
  117. package/dist/cognitive/Types.js +7 -0
  118. package/dist/cognitive/ValidationRunner.d.ts +57 -0
  119. package/dist/cognitive/ValidationRunner.d.ts.map +1 -0
  120. package/dist/cognitive/ValidationRunner.js +515 -0
  121. package/dist/config/Config.d.ts +249 -0
  122. package/dist/config/Config.d.ts.map +1 -0
  123. package/dist/config/Config.js +200 -0
  124. package/dist/config/ConfigLoader.d.ts +56 -0
  125. package/dist/config/ConfigLoader.d.ts.map +1 -0
  126. package/dist/config/ConfigLoader.js +1246 -0
  127. package/dist/docdex/DocdexClient.d.ts +159 -0
  128. package/dist/docdex/DocdexClient.d.ts.map +1 -0
  129. package/dist/docdex/DocdexClient.js +838 -0
  130. package/dist/eval/EvalRunner.d.ts +35 -0
  131. package/dist/eval/EvalRunner.d.ts.map +1 -0
  132. package/dist/eval/EvalRunner.js +38 -0
  133. package/dist/eval/EvalTaskExecutor.d.ts +81 -0
  134. package/dist/eval/EvalTaskExecutor.d.ts.map +1 -0
  135. package/dist/eval/EvalTaskExecutor.js +371 -0
  136. package/dist/eval/GateEvaluator.d.ts +31 -0
  137. package/dist/eval/GateEvaluator.d.ts.map +1 -0
  138. package/dist/eval/GateEvaluator.js +134 -0
  139. package/dist/eval/MetricTypes.d.ts +28 -0
  140. package/dist/eval/MetricTypes.d.ts.map +1 -0
  141. package/dist/eval/MetricTypes.js +1 -0
  142. package/dist/eval/MetricsAggregator.d.ts +4 -0
  143. package/dist/eval/MetricsAggregator.d.ts.map +1 -0
  144. package/dist/eval/MetricsAggregator.js +97 -0
  145. package/dist/eval/RegressionComparator.d.ts +29 -0
  146. package/dist/eval/RegressionComparator.d.ts.map +1 -0
  147. package/dist/eval/RegressionComparator.js +155 -0
  148. package/dist/eval/ReportInputAdapter.d.ts +52 -0
  149. package/dist/eval/ReportInputAdapter.d.ts.map +1 -0
  150. package/dist/eval/ReportInputAdapter.js +229 -0
  151. package/dist/eval/ReportSerializer.d.ts +32 -0
  152. package/dist/eval/ReportSerializer.d.ts.map +1 -0
  153. package/dist/eval/ReportSerializer.js +33 -0
  154. package/dist/eval/ReportStore.d.ts +18 -0
  155. package/dist/eval/ReportStore.d.ts.map +1 -0
  156. package/dist/eval/ReportStore.js +96 -0
  157. package/dist/eval/SuiteLoader.d.ts +12 -0
  158. package/dist/eval/SuiteLoader.d.ts.map +1 -0
  159. package/dist/eval/SuiteLoader.js +51 -0
  160. package/dist/eval/SuiteSchema.d.ts +56 -0
  161. package/dist/eval/SuiteSchema.d.ts.map +1 -0
  162. package/dist/eval/SuiteSchema.js +357 -0
  163. package/dist/index.d.ts +11 -0
  164. package/dist/index.d.ts.map +1 -0
  165. package/dist/index.js +5 -0
  166. package/dist/providers/CodexCliProvider.d.ts +8 -0
  167. package/dist/providers/CodexCliProvider.d.ts.map +1 -0
  168. package/dist/providers/CodexCliProvider.js +282 -0
  169. package/dist/providers/OllamaRemoteProvider.d.ts +8 -0
  170. package/dist/providers/OllamaRemoteProvider.d.ts.map +1 -0
  171. package/dist/providers/OllamaRemoteProvider.js +300 -0
  172. package/dist/providers/OpenAiCompatibleProvider.d.ts +8 -0
  173. package/dist/providers/OpenAiCompatibleProvider.d.ts.map +1 -0
  174. package/dist/providers/OpenAiCompatibleProvider.js +192 -0
  175. package/dist/providers/ProviderRegistry.d.ts +12 -0
  176. package/dist/providers/ProviderRegistry.d.ts.map +1 -0
  177. package/dist/providers/ProviderRegistry.js +28 -0
  178. package/dist/providers/ProviderTypes.d.ts +81 -0
  179. package/dist/providers/ProviderTypes.d.ts.map +1 -0
  180. package/dist/providers/ProviderTypes.js +1 -0
  181. package/dist/runtime/CodaliRuntime.d.ts +189 -0
  182. package/dist/runtime/CodaliRuntime.d.ts.map +1 -0
  183. package/dist/runtime/CodaliRuntime.js +1435 -0
  184. package/dist/runtime/DeepInvestigationErrors.d.ts +39 -0
  185. package/dist/runtime/DeepInvestigationErrors.d.ts.map +1 -0
  186. package/dist/runtime/DeepInvestigationErrors.js +57 -0
  187. package/dist/runtime/RunContext.d.ts +27 -0
  188. package/dist/runtime/RunContext.d.ts.map +1 -0
  189. package/dist/runtime/RunContext.js +51 -0
  190. package/dist/runtime/RunLogQuery.d.ts +48 -0
  191. package/dist/runtime/RunLogQuery.d.ts.map +1 -0
  192. package/dist/runtime/RunLogQuery.js +36 -0
  193. package/dist/runtime/RunLogReader.d.ts +19 -0
  194. package/dist/runtime/RunLogReader.d.ts.map +1 -0
  195. package/dist/runtime/RunLogReader.js +361 -0
  196. package/dist/runtime/RunLogger.d.ts +71 -0
  197. package/dist/runtime/RunLogger.d.ts.map +1 -0
  198. package/dist/runtime/RunLogger.js +100 -0
  199. package/dist/runtime/RunTelemetryTypes.d.ts +117 -0
  200. package/dist/runtime/RunTelemetryTypes.d.ts.map +1 -0
  201. package/dist/runtime/RunTelemetryTypes.js +299 -0
  202. package/dist/runtime/Runner.d.ts +66 -0
  203. package/dist/runtime/Runner.d.ts.map +1 -0
  204. package/dist/runtime/Runner.js +215 -0
  205. package/dist/runtime/StoragePaths.d.ts +3 -0
  206. package/dist/runtime/StoragePaths.d.ts.map +1 -0
  207. package/dist/runtime/StoragePaths.js +19 -0
  208. package/dist/runtime/WorkspaceLock.d.ts +30 -0
  209. package/dist/runtime/WorkspaceLock.d.ts.map +1 -0
  210. package/dist/runtime/WorkspaceLock.js +141 -0
  211. package/dist/session/InstructionLoader.d.ts +14 -0
  212. package/dist/session/InstructionLoader.d.ts.map +1 -0
  213. package/dist/session/InstructionLoader.js +107 -0
  214. package/dist/session/SessionStore.d.ts +81 -0
  215. package/dist/session/SessionStore.d.ts.map +1 -0
  216. package/dist/session/SessionStore.js +244 -0
  217. package/dist/subagents/SubagentOrchestrator.d.ts +68 -0
  218. package/dist/subagents/SubagentOrchestrator.d.ts.map +1 -0
  219. package/dist/subagents/SubagentOrchestrator.js +150 -0
  220. package/dist/tools/ToolRegistry.d.ts +9 -0
  221. package/dist/tools/ToolRegistry.d.ts.map +1 -0
  222. package/dist/tools/ToolRegistry.js +293 -0
  223. package/dist/tools/ToolTypes.d.ts +66 -0
  224. package/dist/tools/ToolTypes.d.ts.map +1 -0
  225. package/dist/tools/ToolTypes.js +40 -0
  226. package/dist/tools/diff/DiffTool.d.ts +3 -0
  227. package/dist/tools/diff/DiffTool.d.ts.map +1 -0
  228. package/dist/tools/diff/DiffTool.js +34 -0
  229. package/dist/tools/docdex/DocdexTools.d.ts +4 -0
  230. package/dist/tools/docdex/DocdexTools.d.ts.map +1 -0
  231. package/dist/tools/docdex/DocdexTools.js +490 -0
  232. package/dist/tools/filesystem/FileTools.d.ts +3 -0
  233. package/dist/tools/filesystem/FileTools.d.ts.map +1 -0
  234. package/dist/tools/filesystem/FileTools.js +141 -0
  235. package/dist/tools/search/SearchTool.d.ts +3 -0
  236. package/dist/tools/search/SearchTool.d.ts.map +1 -0
  237. package/dist/tools/search/SearchTool.js +46 -0
  238. package/dist/tools/shell/ShellTool.d.ts +3 -0
  239. package/dist/tools/shell/ShellTool.d.ts.map +1 -0
  240. package/dist/tools/shell/ShellTool.js +104 -0
  241. package/package.json +44 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackCommand.d.ts","sourceRoot":"","sources":["../../src/cli/FeedbackCommand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAA6B,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAsB9D,UAAU,2BAA2B;IACnC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,YAAY,CAAC;IAC5D,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,qBAAqB,CAAC,EAAE,CACtB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,KACtD,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IACpG,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AA2DD,qBAAa,eAAe;WACb,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,2BAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;CAqGxF"}
@@ -0,0 +1,163 @@
1
+ import path from "node:path";
2
+ import process from "node:process";
3
+ import { MemoryWriteback } from "../cognitive/MemoryWriteback.js";
4
+ import { PostMortemAnalyzer } from "../cognitive/PostMortemAnalyzer.js";
5
+ import { loadConfig } from "../config/ConfigLoader.js";
6
+ import { DocdexClient } from "../docdex/DocdexClient.js";
7
+ import { createProvider } from "../providers/ProviderRegistry.js";
8
+ import { resolveWorkspaceRoot } from "./RunCommand.js";
9
+ const USAGE = "Usage: codali learn --file <path/to/file> [--confirm <dedupe_key> ...]\n"
10
+ + " or: codali learn --confirm <dedupe_key> [--confirm <dedupe_key> ...]";
11
+ class FeedbackCommandError extends Error {
12
+ constructor(message, exitCode = 1) {
13
+ super(message);
14
+ this.name = "FeedbackCommandError";
15
+ this.exitCode = exitCode;
16
+ }
17
+ }
18
+ const parseArgs = (argv) => {
19
+ const parsed = { confirmKeys: [] };
20
+ for (let index = 0; index < argv.length; index += 1) {
21
+ const arg = argv[index];
22
+ const next = argv[index + 1];
23
+ if (arg === "--file" && next) {
24
+ parsed.filePath = next;
25
+ index += 1;
26
+ continue;
27
+ }
28
+ if (arg === "--confirm" && next) {
29
+ parsed.confirmKeys.push(next);
30
+ index += 1;
31
+ continue;
32
+ }
33
+ if (!arg.startsWith("-") && !parsed.filePath) {
34
+ parsed.filePath = arg;
35
+ continue;
36
+ }
37
+ }
38
+ parsed.confirmKeys = Array.from(new Set(parsed.confirmKeys
39
+ .map((entry) => entry.trim())
40
+ .filter(Boolean)));
41
+ return parsed;
42
+ };
43
+ const formatOutcome = (outcome) => {
44
+ const key = outcome.dedupe_key ? ` (${outcome.dedupe_key})` : "";
45
+ const score = outcome.confidence_score !== undefined
46
+ ? ` score=${outcome.confidence_score.toFixed(2)}`
47
+ : "";
48
+ const lifecycle = outcome.lifecycle_state ? ` lifecycle=${outcome.lifecycle_state}` : "";
49
+ return `- ${outcome.status}:${outcome.code}${key}${lifecycle}${score} - ${outcome.message}`;
50
+ };
51
+ const summarizeOutcomes = (outcomes) => {
52
+ const summary = {
53
+ accepted: 0,
54
+ promoted: 0,
55
+ deferred: 0,
56
+ suppressed: 0,
57
+ rejected: 0,
58
+ };
59
+ for (const outcome of outcomes) {
60
+ if (outcome.status === "accepted")
61
+ summary.accepted += 1;
62
+ if (outcome.status === "promoted")
63
+ summary.promoted += 1;
64
+ if (outcome.status === "deferred")
65
+ summary.deferred += 1;
66
+ if (outcome.status === "suppressed")
67
+ summary.suppressed += 1;
68
+ if (outcome.status === "rejected")
69
+ summary.rejected += 1;
70
+ }
71
+ return summary;
72
+ };
73
+ export class FeedbackCommand {
74
+ static async run(argv, deps = {}) {
75
+ const args = parseArgs(argv);
76
+ if (!args.filePath && args.confirmKeys.length === 0) {
77
+ throw new FeedbackCommandError(USAGE, 2);
78
+ }
79
+ const log = deps.log ?? ((line) => console.log(line)); // eslint-disable-line no-console
80
+ const cwd = deps.cwd?.() ?? process.cwd();
81
+ const workspaceRoot = resolveWorkspaceRoot(cwd);
82
+ const configLoader = deps.loadConfig ?? loadConfig;
83
+ const config = await configLoader({ cwd: workspaceRoot });
84
+ const docdexClient = deps.createDocdexClient
85
+ ? deps.createDocdexClient(config)
86
+ : new DocdexClient({
87
+ baseUrl: config.docdex.baseUrl,
88
+ repoId: config.docdex.repoId,
89
+ repoRoot: config.docdex.repoRoot ?? config.workspaceRoot,
90
+ });
91
+ const memoryWriteback = deps.createMemoryWriteback
92
+ ? deps.createMemoryWriteback(docdexClient, {
93
+ agentId: config.agentId ?? "codali",
94
+ workspaceRoot,
95
+ learning: config.learning,
96
+ })
97
+ : new MemoryWriteback(docdexClient, {
98
+ agentId: config.agentId ?? "codali",
99
+ workspaceRoot,
100
+ learning: config.learning,
101
+ });
102
+ if (args.confirmKeys.length > 0) {
103
+ const promotionResult = await memoryWriteback.persist({
104
+ failures: 0,
105
+ maxRetries: 0,
106
+ lesson: "",
107
+ promotions: args.confirmKeys.map((dedupe_key) => ({
108
+ dedupe_key,
109
+ agentId: config.agentId ?? "codali",
110
+ })),
111
+ });
112
+ const promotionSummary = summarizeOutcomes(promotionResult.outcomes);
113
+ log(`Promotion outcomes (${promotionResult.outcomes.length}):`);
114
+ for (const outcome of promotionResult.outcomes) {
115
+ log(formatOutcome(outcome));
116
+ }
117
+ log(`Summary: promoted=${promotionSummary.promoted} suppressed=${promotionSummary.suppressed} rejected=${promotionSummary.rejected}`);
118
+ if (promotionSummary.rejected > 0) {
119
+ throw new FeedbackCommandError("One or more promotions failed.", 3);
120
+ }
121
+ }
122
+ if (!args.filePath) {
123
+ return;
124
+ }
125
+ const providerName = config.routing?.architect?.provider ?? config.provider;
126
+ const providerModel = config.routing?.architect?.model ?? config.model;
127
+ if (!providerName || !providerModel) {
128
+ throw new FeedbackCommandError("No provider/model configured. Use --provider/--model or configure codali.");
129
+ }
130
+ const providerFactory = deps.createProvider ?? createProvider;
131
+ const provider = providerFactory(providerName, {
132
+ model: providerModel,
133
+ apiKey: config.apiKey,
134
+ baseUrl: config.baseUrl,
135
+ });
136
+ const analyzer = deps.createAnalyzer
137
+ ? deps.createAnalyzer(provider, workspaceRoot)
138
+ : new PostMortemAnalyzer(provider, workspaceRoot);
139
+ const absoluteFilePath = path.resolve(workspaceRoot, args.filePath);
140
+ log(`Analyzing history for ${absoluteFilePath}...`);
141
+ const analysis = await analyzer.analyze(absoluteFilePath);
142
+ if (analysis.status === "no_change" || analysis.rules.length === 0) {
143
+ log(`No rule persisted: ${analysis.message}`);
144
+ return;
145
+ }
146
+ const writebackResult = await memoryWriteback.persist({
147
+ failures: 0,
148
+ maxRetries: config.limits.maxRetries,
149
+ lesson: "",
150
+ rules: analysis.rules,
151
+ });
152
+ const summary = summarizeOutcomes(writebackResult.outcomes);
153
+ log(`Extracted rule: "${analysis.rule ?? analysis.rules[0]?.content ?? ""}"`);
154
+ log(`Learning outcomes (${writebackResult.outcomes.length}):`);
155
+ for (const outcome of writebackResult.outcomes) {
156
+ log(formatOutcome(outcome));
157
+ }
158
+ log(`Summary: accepted=${summary.accepted} deferred=${summary.deferred} suppressed=${summary.suppressed} rejected=${summary.rejected}`);
159
+ if (summary.rejected > 0) {
160
+ throw new FeedbackCommandError("Learning writeback failed for one or more rules.", 4);
161
+ }
162
+ }
163
+ }
@@ -0,0 +1,78 @@
1
+ import type { ToolConfig } from "../config/Config.js";
2
+ import { type PipelinePhase } from "../cognitive/ProviderRouting.js";
3
+ import { type PhaseAgentSelection } from "../agents/PhaseAgentSelector.js";
4
+ interface ParsedArgs {
5
+ workspaceRoot?: string;
6
+ project?: string;
7
+ command?: string;
8
+ commandRunId?: string;
9
+ jobId?: string;
10
+ runId?: string;
11
+ taskId?: string;
12
+ taskKey?: string;
13
+ agent?: string;
14
+ agentId?: string;
15
+ agentSlug?: string;
16
+ agentLibrarian?: string;
17
+ agentArchitect?: string;
18
+ agentBuilder?: string;
19
+ agentCritic?: string;
20
+ agentInterpreter?: string;
21
+ smart?: boolean;
22
+ deepInvestigationEnabled?: boolean;
23
+ planHint?: string;
24
+ provider?: string;
25
+ model?: string;
26
+ apiKey?: string;
27
+ baseUrl?: string;
28
+ workflowProfile?: string;
29
+ taskFile?: string;
30
+ configPath?: string;
31
+ docdexBaseUrl?: string;
32
+ docdexRepoId?: string;
33
+ docdexRepoRoot?: string;
34
+ contextMode?: "bundle_text" | "json";
35
+ contextMaxFiles?: number;
36
+ contextMaxTotalBytes?: number;
37
+ contextTokenBudget?: number;
38
+ contextFocusMaxBytes?: number;
39
+ contextPeripheryMaxBytes?: number;
40
+ contextIncludeRepoMap?: boolean;
41
+ contextIncludeImpact?: boolean;
42
+ contextIncludeSnippets?: boolean;
43
+ contextReadStrategy?: "docdex" | "fs";
44
+ contextMaxRefreshes?: number;
45
+ contextSkeletonize?: boolean;
46
+ contextRedactSecrets?: boolean;
47
+ contextIgnoreFilesFrom?: string[];
48
+ securityRedactPatterns?: string[];
49
+ builderMode?: "tool_calls" | "patch_json" | "freeform";
50
+ builderPatchFormat?: "search_replace" | "file_writes";
51
+ interpreterProvider?: string;
52
+ interpreterModel?: string;
53
+ interpreterFormat?: string;
54
+ interpreterGrammar?: string;
55
+ interpreterMaxRetries?: number;
56
+ interpreterTimeoutMs?: number;
57
+ streamingFlushMs?: number;
58
+ costMaxPerRun?: number;
59
+ costCharPerToken?: number;
60
+ costPricingOverrides?: string;
61
+ inlineTask?: string;
62
+ }
63
+ export declare const parseArgs: (argv: string[]) => ParsedArgs;
64
+ export declare const resolveWorkspaceRoot: (cwd: string, explicitRoot?: string) => string;
65
+ export declare const isToolEnabled: (name: string, tools: ToolConfig) => boolean;
66
+ export declare const assessPhaseFallbackSuitability: (phase: PipelinePhase, builderMode: "tool_calls" | "patch_json" | "freeform", selection: Pick<PhaseAgentSelection, "capabilities"> & {
67
+ supportsTools?: boolean;
68
+ }) => {
69
+ ok: boolean;
70
+ reason: string;
71
+ details?: Record<string, number | string>;
72
+ builderMode?: "tool_calls" | "patch_json" | "freeform";
73
+ };
74
+ export declare class RunCommand {
75
+ static run(argv: string[]): Promise<void>;
76
+ }
77
+ export {};
78
+ //# sourceMappingURL=RunCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunCommand.d.ts","sourceRoot":"","sources":["../../src/cli/RunCommand.ts"],"names":[],"mappings":"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"}