jiva-core 0.3.3 → 0.3.4-dev.3c78d8b

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 (108) hide show
  1. package/README.md +232 -570
  2. package/dist/code/agent.d.ts +105 -0
  3. package/dist/code/agent.d.ts.map +1 -0
  4. package/dist/code/agent.js +697 -0
  5. package/dist/code/agent.js.map +1 -0
  6. package/dist/code/file-lock.d.ts +15 -0
  7. package/dist/code/file-lock.d.ts.map +1 -0
  8. package/dist/code/file-lock.js +36 -0
  9. package/dist/code/file-lock.js.map +1 -0
  10. package/dist/code/lsp/client.d.ts +30 -0
  11. package/dist/code/lsp/client.d.ts.map +1 -0
  12. package/dist/code/lsp/client.js +181 -0
  13. package/dist/code/lsp/client.js.map +1 -0
  14. package/dist/code/lsp/language.d.ts +12 -0
  15. package/dist/code/lsp/language.d.ts.map +1 -0
  16. package/dist/code/lsp/language.js +145 -0
  17. package/dist/code/lsp/language.js.map +1 -0
  18. package/dist/code/lsp/manager.d.ts +39 -0
  19. package/dist/code/lsp/manager.d.ts.map +1 -0
  20. package/dist/code/lsp/manager.js +108 -0
  21. package/dist/code/lsp/manager.js.map +1 -0
  22. package/dist/code/lsp/server.d.ts +15 -0
  23. package/dist/code/lsp/server.d.ts.map +1 -0
  24. package/dist/code/lsp/server.js +78 -0
  25. package/dist/code/lsp/server.js.map +1 -0
  26. package/dist/code/tools/bash.d.ts +3 -0
  27. package/dist/code/tools/bash.d.ts.map +1 -0
  28. package/dist/code/tools/bash.js +110 -0
  29. package/dist/code/tools/bash.js.map +1 -0
  30. package/dist/code/tools/edit.d.ts +11 -0
  31. package/dist/code/tools/edit.d.ts.map +1 -0
  32. package/dist/code/tools/edit.js +459 -0
  33. package/dist/code/tools/edit.js.map +1 -0
  34. package/dist/code/tools/glob.d.ts +3 -0
  35. package/dist/code/tools/glob.d.ts.map +1 -0
  36. package/dist/code/tools/glob.js +62 -0
  37. package/dist/code/tools/glob.js.map +1 -0
  38. package/dist/code/tools/grep.d.ts +3 -0
  39. package/dist/code/tools/grep.d.ts.map +1 -0
  40. package/dist/code/tools/grep.js +147 -0
  41. package/dist/code/tools/grep.js.map +1 -0
  42. package/dist/code/tools/index.d.ts +31 -0
  43. package/dist/code/tools/index.d.ts.map +1 -0
  44. package/dist/code/tools/index.js +9 -0
  45. package/dist/code/tools/index.js.map +1 -0
  46. package/dist/code/tools/read.d.ts +3 -0
  47. package/dist/code/tools/read.d.ts.map +1 -0
  48. package/dist/code/tools/read.js +120 -0
  49. package/dist/code/tools/read.js.map +1 -0
  50. package/dist/code/tools/spawn.d.ts +3 -0
  51. package/dist/code/tools/spawn.d.ts.map +1 -0
  52. package/dist/code/tools/spawn.js +49 -0
  53. package/dist/code/tools/spawn.js.map +1 -0
  54. package/dist/code/tools/write.d.ts +3 -0
  55. package/dist/code/tools/write.d.ts.map +1 -0
  56. package/dist/code/tools/write.js +82 -0
  57. package/dist/code/tools/write.js.map +1 -0
  58. package/dist/core/agent-interface.d.ts +54 -0
  59. package/dist/core/agent-interface.d.ts.map +1 -0
  60. package/dist/core/agent-interface.js +8 -0
  61. package/dist/core/agent-interface.js.map +1 -0
  62. package/dist/core/config.d.ts +71 -0
  63. package/dist/core/config.d.ts.map +1 -1
  64. package/dist/core/config.js +16 -0
  65. package/dist/core/config.js.map +1 -1
  66. package/dist/core/conversation-manager.d.ts +4 -1
  67. package/dist/core/conversation-manager.d.ts.map +1 -1
  68. package/dist/core/conversation-manager.js +47 -17
  69. package/dist/core/conversation-manager.js.map +1 -1
  70. package/dist/core/dual-agent.d.ts +3 -10
  71. package/dist/core/dual-agent.d.ts.map +1 -1
  72. package/dist/core/dual-agent.js +42 -117
  73. package/dist/core/dual-agent.js.map +1 -1
  74. package/dist/core/manager-agent.d.ts +30 -1
  75. package/dist/core/manager-agent.d.ts.map +1 -1
  76. package/dist/core/manager-agent.js +109 -17
  77. package/dist/core/manager-agent.js.map +1 -1
  78. package/dist/core/worker-agent.d.ts +5 -2
  79. package/dist/core/worker-agent.d.ts.map +1 -1
  80. package/dist/core/worker-agent.js +48 -51
  81. package/dist/core/worker-agent.js.map +1 -1
  82. package/dist/index.d.ts +3 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +2 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/interfaces/cli/index.js +88 -25
  87. package/dist/interfaces/cli/index.js.map +1 -1
  88. package/dist/interfaces/cli/repl.d.ts +8 -2
  89. package/dist/interfaces/cli/repl.d.ts.map +1 -1
  90. package/dist/interfaces/cli/repl.js +39 -3
  91. package/dist/interfaces/cli/repl.js.map +1 -1
  92. package/dist/interfaces/http/routes/chat.js +2 -2
  93. package/dist/interfaces/http/routes/chat.js.map +1 -1
  94. package/dist/interfaces/http/session-manager.d.ts +7 -4
  95. package/dist/interfaces/http/session-manager.d.ts.map +1 -1
  96. package/dist/interfaces/http/session-manager.js +38 -15
  97. package/dist/interfaces/http/session-manager.js.map +1 -1
  98. package/dist/models/base.d.ts +8 -0
  99. package/dist/models/base.d.ts.map +1 -1
  100. package/dist/models/harmony.d.ts +7 -1
  101. package/dist/models/harmony.d.ts.map +1 -1
  102. package/dist/models/harmony.js +21 -3
  103. package/dist/models/harmony.js.map +1 -1
  104. package/dist/models/krutrim.d.ts +30 -0
  105. package/dist/models/krutrim.d.ts.map +1 -1
  106. package/dist/models/krutrim.js +51 -8
  107. package/dist/models/krutrim.js.map +1 -1
  108. package/package.json +8 -6
@@ -57,6 +57,32 @@ declare const ModelConfigSchema: z.ZodObject<{
57
57
  defaultModel: string;
58
58
  useHarmonyFormat?: boolean | undefined;
59
59
  }>;
60
+ declare const CodeModeConfigSchema: z.ZodObject<{
61
+ enabled: z.ZodDefault<z.ZodBoolean>;
62
+ lsp: z.ZodOptional<z.ZodObject<{
63
+ enabled: z.ZodDefault<z.ZodBoolean>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ enabled: boolean;
66
+ }, {
67
+ enabled?: boolean | undefined;
68
+ }>>;
69
+ maxIterations: z.ZodDefault<z.ZodNumber>;
70
+ includeMcp: z.ZodDefault<z.ZodBoolean>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ enabled: boolean;
73
+ maxIterations: number;
74
+ includeMcp: boolean;
75
+ lsp?: {
76
+ enabled: boolean;
77
+ } | undefined;
78
+ }, {
79
+ enabled?: boolean | undefined;
80
+ lsp?: {
81
+ enabled?: boolean | undefined;
82
+ } | undefined;
83
+ maxIterations?: number | undefined;
84
+ includeMcp?: boolean | undefined;
85
+ }>;
60
86
  declare const JivaConfigSchema: z.ZodObject<{
61
87
  models: z.ZodObject<{
62
88
  reasoning: z.ZodOptional<z.ZodObject<{
@@ -221,6 +247,32 @@ declare const JivaConfigSchema: z.ZodObject<{
221
247
  }>>;
222
248
  activePersona: z.ZodOptional<z.ZodString>;
223
249
  debug: z.ZodDefault<z.ZodBoolean>;
250
+ codeMode: z.ZodOptional<z.ZodObject<{
251
+ enabled: z.ZodDefault<z.ZodBoolean>;
252
+ lsp: z.ZodOptional<z.ZodObject<{
253
+ enabled: z.ZodDefault<z.ZodBoolean>;
254
+ }, "strip", z.ZodTypeAny, {
255
+ enabled: boolean;
256
+ }, {
257
+ enabled?: boolean | undefined;
258
+ }>>;
259
+ maxIterations: z.ZodDefault<z.ZodNumber>;
260
+ includeMcp: z.ZodDefault<z.ZodBoolean>;
261
+ }, "strip", z.ZodTypeAny, {
262
+ enabled: boolean;
263
+ maxIterations: number;
264
+ includeMcp: boolean;
265
+ lsp?: {
266
+ enabled: boolean;
267
+ } | undefined;
268
+ }, {
269
+ enabled?: boolean | undefined;
270
+ lsp?: {
271
+ enabled?: boolean | undefined;
272
+ } | undefined;
273
+ maxIterations?: number | undefined;
274
+ includeMcp?: boolean | undefined;
275
+ }>>;
224
276
  }, "strip", z.ZodTypeAny, {
225
277
  models: {
226
278
  reasoning?: {
@@ -261,6 +313,14 @@ declare const JivaConfigSchema: z.ZodObject<{
261
313
  defaultDirectivePath?: string | undefined;
262
314
  } | undefined;
263
315
  activePersona?: string | undefined;
316
+ codeMode?: {
317
+ enabled: boolean;
318
+ maxIterations: number;
319
+ includeMcp: boolean;
320
+ lsp?: {
321
+ enabled: boolean;
322
+ } | undefined;
323
+ } | undefined;
264
324
  }, {
265
325
  models: {
266
326
  reasoning?: {
@@ -301,9 +361,18 @@ declare const JivaConfigSchema: z.ZodObject<{
301
361
  } | undefined;
302
362
  activePersona?: string | undefined;
303
363
  debug?: boolean | undefined;
364
+ codeMode?: {
365
+ enabled?: boolean | undefined;
366
+ lsp?: {
367
+ enabled?: boolean | undefined;
368
+ } | undefined;
369
+ maxIterations?: number | undefined;
370
+ includeMcp?: boolean | undefined;
371
+ } | undefined;
304
372
  }>;
305
373
  export type MCPServerConfig = z.infer<typeof MCPServerConfigSchema>;
306
374
  export type ModelConfig = z.infer<typeof ModelConfigSchema>;
375
+ export type CodeModeConfig = z.infer<typeof CodeModeConfigSchema>;
307
376
  export type JivaConfig = z.infer<typeof JivaConfigSchema>;
308
377
  export declare class ConfigManager {
309
378
  private store;
@@ -328,6 +397,8 @@ export declare class ConfigManager {
328
397
  getDefaultDirectivePath(): string | undefined;
329
398
  setActivePersona(name: string | null): void;
330
399
  getActivePersona(): string | undefined;
400
+ getCodeMode(): CodeModeConfig | undefined;
401
+ setCodeModeEnabled(enabled: boolean): void;
331
402
  reset(): void;
332
403
  getConfigPath(): string;
333
404
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc1B,CAAC;AAEF,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAOrB,CAAC;AAEH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYpB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IAEvC,OAAO;IAMP,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC,YAAY,IAAI,OAAO;IAKvB,SAAS,IAAI,UAAU;IAIvB,iBAAiB,CAAC,MAAM,EAAE,WAAW;IAKrC,kBAAkB,CAAC,MAAM,EAAE,WAAW;IAKtC,iBAAiB,IAAI,WAAW,GAAG,SAAS;IAI5C,kBAAkB,IAAI,WAAW,GAAG,SAAS;IAI7C,mBAAmB,CAAC,MAAM,EAAE,WAAW;IAKvC,mBAAmB,IAAI,WAAW,GAAG,SAAS;IAI9C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;IAKlD,eAAe,CAAC,IAAI,EAAE,MAAM;IAI5B,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAIhD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIvD,QAAQ,CAAC,OAAO,EAAE,OAAO;IAIzB,OAAO,IAAI,OAAO;IAIlB,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAIpC,uBAAuB,IAAI,MAAM,GAAG,SAAS;IAI7C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQpC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC,KAAK;IAIL,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,wBAAwB;IAyBxB;;OAEG;IACH,cAAc;CAsBf;AAED,eAAO,MAAM,aAAa,eAA8B,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc1B,CAAC;AAEF,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAOrB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AAEH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAapB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IAEvC,OAAO;IAMP,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC,YAAY,IAAI,OAAO;IAKvB,SAAS,IAAI,UAAU;IAIvB,iBAAiB,CAAC,MAAM,EAAE,WAAW;IAKrC,kBAAkB,CAAC,MAAM,EAAE,WAAW;IAKtC,iBAAiB,IAAI,WAAW,GAAG,SAAS;IAI5C,kBAAkB,IAAI,WAAW,GAAG,SAAS;IAI7C,mBAAmB,CAAC,MAAM,EAAE,WAAW;IAKvC,mBAAmB,IAAI,WAAW,GAAG,SAAS;IAI9C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;IAKlD,eAAe,CAAC,IAAI,EAAE,MAAM;IAI5B,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAIhD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIvD,QAAQ,CAAC,OAAO,EAAE,OAAO;IAIzB,OAAO,IAAI,OAAO;IAIlB,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAIpC,uBAAuB,IAAI,MAAM,GAAG,SAAS;IAI7C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQpC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC,WAAW,IAAI,cAAc,GAAG,SAAS;IAIzC,kBAAkB,CAAC,OAAO,EAAE,OAAO;IAKnC,KAAK;IAIL,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,wBAAwB;IAyBxB;;OAEG;IACH,cAAc;CAsBf;AAED,eAAO,MAAM,aAAa,eAA8B,CAAC"}
@@ -22,6 +22,14 @@ const ModelConfigSchema = z.object({
22
22
  defaultModel: z.string(),
23
23
  useHarmonyFormat: z.boolean().optional(),
24
24
  });
25
+ const CodeModeConfigSchema = z.object({
26
+ enabled: z.boolean().default(false),
27
+ lsp: z.object({
28
+ enabled: z.boolean().default(true),
29
+ }).optional(),
30
+ maxIterations: z.number().default(50),
31
+ includeMcp: z.boolean().default(false),
32
+ });
25
33
  const JivaConfigSchema = z.object({
26
34
  models: z.object({
27
35
  reasoning: ModelConfigSchema.optional(),
@@ -34,6 +42,7 @@ const JivaConfigSchema = z.object({
34
42
  }).optional(),
35
43
  activePersona: z.string().optional(),
36
44
  debug: z.boolean().default(false),
45
+ codeMode: CodeModeConfigSchema.optional(),
37
46
  });
38
47
  export class ConfigManager {
39
48
  store;
@@ -113,6 +122,13 @@ export class ConfigManager {
113
122
  getActivePersona() {
114
123
  return this.store.get('activePersona');
115
124
  }
125
+ getCodeMode() {
126
+ return this.store.get('codeMode');
127
+ }
128
+ setCodeModeEnabled(enabled) {
129
+ const current = this.store.get('codeMode') || {};
130
+ this.store.set('codeMode', { ...current, enabled });
131
+ }
116
132
  reset() {
117
133
  this.store.clear();
118
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -43,9 +43,12 @@ export declare class ConversationManager {
43
43
  */
44
44
  deleteConversation(id: string): Promise<void>;
45
45
  /**
46
- * Condense conversation history using the model
46
+ * Condense conversation history using the model.
47
47
  *
48
48
  * This reduces token usage while preserving important context.
49
+ * Uses a structured opencode-style template (Goal / Instructions / Discoveries /
50
+ * Accomplished / Relevant files) that makes the summary actionable for the next agent turn.
51
+ *
49
52
  * Strategy: Keep system/developer messages (WITHOUT directive - agent will add fresh directive),
50
53
  * condense middle messages, keep recent messages.
51
54
  *
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-manager.d.ts","sourceRoot":"","sources":["../../src/core/conversation-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,qBAAqB,CAAuB;gBAExC,eAAe,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,iBAAiB;IAK9E,OAAO,CAAC,YAAY,CAAC,CAAoB;IAEzC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,MAAM,CAAC;IAyDlB;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkB9D;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAgB1D;;OAEG;IACG,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnD;;;;;;;;;OASG;IACG,oBAAoB,CACxB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,iBAAiB,EAC/B,kBAAkB,GAAE,MAAW,GAC9B,OAAO,CAAC,OAAO,EAAE,CAAC;IAgFrB;;OAEG;IACG,aAAa,CACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,iBAAiB,GAC9B,OAAO,CAAC,MAAM,CAAC;IAuDlB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,iBAAiB,GAC9B,OAAO,CAAC,MAAM,CAAC;IA4BlB;;OAEG;IACG,QAAQ,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACH,wBAAwB,IAAI,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;CAG9D"}
1
+ {"version":3,"file":"conversation-manager.d.ts","sourceRoot":"","sources":["../../src/core/conversation-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,qBAAqB,CAAuB;gBAExC,eAAe,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,iBAAiB;IAK9E,OAAO,CAAC,YAAY,CAAC,CAAoB;IAEzC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,MAAM,CAAC;IAyDlB;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkB9D;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAgB1D;;OAEG;IACG,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnD;;;;;;;;;;;;OAYG;IACG,oBAAoB,CACxB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,iBAAiB,EAC/B,kBAAkB,GAAE,MAAW,GAC9B,OAAO,CAAC,OAAO,EAAE,CAAC;IA2GrB;;OAEG;IACG,aAAa,CACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,iBAAiB,GAC9B,OAAO,CAAC,MAAM,CAAC;IAuDlB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,iBAAiB,GAC9B,OAAO,CAAC,MAAM,CAAC;IA4BlB;;OAEG;IACG,QAAQ,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACH,wBAAwB,IAAI,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;CAG9D"}
@@ -124,9 +124,12 @@ export class ConversationManager {
124
124
  }
125
125
  }
126
126
  /**
127
- * Condense conversation history using the model
127
+ * Condense conversation history using the model.
128
128
  *
129
129
  * This reduces token usage while preserving important context.
130
+ * Uses a structured opencode-style template (Goal / Instructions / Discoveries /
131
+ * Accomplished / Relevant files) that makes the summary actionable for the next agent turn.
132
+ *
130
133
  * Strategy: Keep system/developer messages (WITHOUT directive - agent will add fresh directive),
131
134
  * condense middle messages, keep recent messages.
132
135
  *
@@ -151,34 +154,61 @@ export class ConversationManager {
151
154
  return messages;
152
155
  }
153
156
  try {
154
- // Create a summary of the middle section
157
+ // Create a summary of the middle section using opencode's structured template
155
158
  const conversationText = middleMessages
156
159
  .map(msg => {
157
- const role = msg.role === 'assistant' ? 'Assistant' : 'User';
158
- return `${role}: ${msg.content}`;
160
+ if (msg.role === 'tool') {
161
+ const content = typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content);
162
+ return `[Tool result]: ${content.substring(0, 300)}${content.length > 300 ? '...' : ''}`;
163
+ }
164
+ const role = msg.role === 'assistant' ? 'Assistant' : msg.role === 'user' ? 'User' : msg.role;
165
+ const content = typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content);
166
+ return `${role}: ${content}`;
159
167
  })
160
168
  .join('\n\n');
161
- const summaryPrompt = `Please provide a concise summary of this conversation that preserves:
162
- 1. Key decisions and actions taken
163
- 2. Important information discovered
164
- 3. Tools used and their results
165
- 4. Any unresolved issues or pending tasks
169
+ // Structured compaction prompt (ported from opencode's compaction.ts)
170
+ const summaryPrompt = `Provide a detailed summary for continuing our conversation. The summary will be used so another agent can read it and continue the work.
171
+
172
+ When constructing the summary, follow this template:
173
+
174
+ ## Goal
175
+
176
+ [What goal(s) is the user trying to accomplish?]
177
+
178
+ ## Instructions
179
+
180
+ - [What important instructions did the user give that are still relevant]
181
+ - [If there is a plan or spec, include information about it so the next agent can continue using it]
182
+
183
+ ## Discoveries
184
+
185
+ [What notable things were learned during this conversation that would be useful for the next agent to know when continuing the work]
186
+
187
+ ## Accomplished
188
+
189
+ [What work has been completed, what work is still in progress, and what work is left?]
190
+
191
+ ## Relevant files / directories
192
+
193
+ [Construct a structured list of relevant files that have been read, edited, or created that pertain to the task at hand. If all the files in a directory are relevant, include the path to the directory.]
194
+
195
+ ---
166
196
 
167
- Keep the summary focused and under 500 words.
197
+ Conversation to summarise:
198
+ ${conversationText}
168
199
 
169
- Conversation to summarize:
170
- ${conversationText}`;
200
+ Keep the summary focused and complete — include file paths, function names, and specific changes made.`;
171
201
  const response = await orchestrator.chat({
172
202
  messages: [
173
203
  { role: 'user', content: summaryPrompt }
174
204
  ],
175
- temperature: 0.1, // Low temperature for deterministic summarization
176
- maxTokens: 1000,
205
+ temperature: 0.1, // Low temperature for deterministic summarisation
206
+ maxTokens: 1500,
177
207
  });
178
- // Create condensed message
208
+ // Create condensed message (role: 'user' so it's valid in all API formats)
179
209
  const condensedMessage = {
180
- role: 'system',
181
- content: `[Previous conversation summary]\n\n${response.content}\n\n[Continuing conversation...]`,
210
+ role: 'user',
211
+ content: `[Context compacted — previous conversation history summarised]\n\n${response.content}\n\n[Continuing conversation...]`,
182
212
  };
183
213
  // Return: system + developer + condensed summary + recent messages
184
214
  // Note: directive is NOT included here - agent adds it dynamically
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-manager.js","sourceRoot":"","sources":["../../src/core/conversation-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAe5C,MAAM,OAAO,mBAAmB;IACtB,eAAe,CAAkB;IACjC,qBAAqB,GAAkB,IAAI,CAAC;IAEpD,YAAY,eAAgC,EAAE,YAAgC;QAC5E,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEO,YAAY,CAAqB;IAEzC;;OAEG;IACK,sBAAsB;QAC5B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,QAAQ,SAAS,IAAI,MAAM,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,QAAmB,EACnB,SAAkB,EAClB,cAAuB,EACvB,YAAgC;QAEhC,MAAM,OAAO,GAAG,cAAc,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9F,oEAAoE;QACpE,MAAM,iBAAiB,GAAG,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;QAE5D,yCAAyC;QACzC,IAAI,YAAY,GAA6B,IAAI,CAAC;QAClD,IAAI,IAAI,CAAC,qBAAqB,IAAI,OAAO,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzE,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,0BAA0B;YAC5B,CAAC;QACH,CAAC;QAED,qFAAqF;QACrF,IAAI,KAAK,GAAG,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC;QAC1C,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,IAAI,cAAc,IAAI,iBAAiB,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAChD,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,cAAc,EAAE,CAAC;YACpC,+DAA+D;YAC/D,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC3D,IAAI,YAAY,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC7D,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrD,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBACrC,KAAK,IAAI,KAAK,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAyB;YACrC,EAAE,EAAE,OAAO;YACX,KAAK;YACL,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,SAAS;YACT,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO;SACzC,CAAC;QAEF,MAAM,YAAY,GAAsB;YACtC,QAAQ;YACR,QAAQ;SACT,CAAC;QAEF,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE1D,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;QAE/C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,EAAU;QAC/B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAErE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;YAE3C,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;YAErE,2CAA2C;YAC3C,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAC9D,CAAC;YAEF,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,EAAU;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;YAE5C,IAAI,IAAI,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;gBACtC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YACpC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CACxB,QAAmB,EACnB,YAA+B,EAC/B,qBAA6B,EAAE;QAE/B,IAAI,QAAQ,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;YAC1C,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,4BAA4B,QAAQ,CAAC,MAAM,MAAM,kBAAkB,WAAW,CAAC,CAAC;QAE5F,+FAA+F;QAC/F,sFAAsF;QACtF,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAErC,iCAAiC;QACjC,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;QAEpD,wCAAwC;QACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;QAEvD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,yCAAyC;YACzC,MAAM,gBAAgB,GAAG,cAAc;iBACpC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACT,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC7D,OAAO,GAAG,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;YACnC,CAAC,CAAC;iBACD,IAAI,CAAC,MAAM,CAAC,CAAC;YAEhB,MAAM,aAAa,GAAG;;;;;;;;;EAS1B,gBAAgB,EAAE,CAAC;YAEf,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;gBACvC,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE;iBACzC;gBACD,WAAW,EAAE,GAAG,EAAE,kDAAkD;gBACpE,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,2BAA2B;YAC3B,MAAM,gBAAgB,GAAY;gBAChC,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,sCAAsC,QAAQ,CAAC,OAAO,kCAAkC;aAClG,CAAC;YAEF,mEAAmE;YACnE,mEAAmE;YACnE,MAAM,MAAM,GAAG;gBACb,aAAa;gBACb,gBAAgB;gBAChB,gBAAgB;gBAChB,GAAG,cAAc;aAClB,CAAC;YAEF,MAAM,CAAC,OAAO,CAAC,2BAA2B,QAAQ,CAAC,MAAM,MAAM,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;YAEzF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACvD,+BAA+B;YAC/B,OAAO;gBACL,aAAa;gBACb,gBAAgB;gBAChB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC;aAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,QAAmB,EACnB,YAA+B;QAE/B,IAAI,CAAC;YACH,yBAAyB;YACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC9D,OAAO,uBAAuB,CAAC;YACjC,CAAC;YAED,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC;YAEzC,wEAAwE;YACxE,IAAI,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,+CAA+C;YAC/C,MAAM,WAAW,GAAG,2FAA2F,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAE/I,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;gBACvC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;gBAClD,WAAW,EAAE,GAAG,EAAE,qDAAqD;gBACvE,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;YAEH,qBAAqB;YACrB,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,2BAA2B;YAC3B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC1C,8BAA8B;YAC9B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACrC,eAAe;YACf,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACtB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YACzC,CAAC;YAED,oEAAoE;YACpE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3E,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE;oBAAE,KAAK,IAAI,KAAK,CAAC;YAC9C,CAAC;YAED,OAAO,KAAK,IAAI,uBAAuB,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAChD,mCAAmC;YACnC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC/D,IAAI,YAAY,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC7D,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;oBAAE,QAAQ,IAAI,KAAK,CAAC;gBACxD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,OAAO,uBAAuB,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,GAAW;QACjC,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC;QACrB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,QAAmB,EACnB,YAA+B;QAE/B,IAAI,CAAC;YACH,yDAAyD;YACzD,MAAM,YAAY,GAAG,QAAQ;iBAC1B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;iBAClC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;iBACvB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB;iBACpC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,aAAa,GAAG;;EAE1B,YAAY;;SAEL,CAAC;YAEJ,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;gBACvC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;gBACpD,WAAW,EAAE,GAAG,EAAE,uDAAuD;gBACzE,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,QAAmB,EACnB,SAAkB,EAClB,YAAgC;QAEhC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,qBAAqB,IAAI,SAAS,EAAE,YAAY,CAAC,CAAC;QAC1G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,wBAAwB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,EAA6B;QACpD,IAAI,CAAC,qBAAqB,GAAG,EAAE,IAAI,IAAI,CAAC;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"conversation-manager.js","sourceRoot":"","sources":["../../src/core/conversation-manager.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  /**
2
- * Dual Agent System - Coordinates Manager, Worker, and Client agents
2
+ * Dual Agent System - Coordinates Manager and Worker agents
3
3
  *
4
- * Three-agent architecture:
5
- * - Manager: High-level planning and coordination
4
+ * Two-agent architecture:
5
+ * - Manager: High-level planning, review, and synthesis
6
6
  * - Worker: Task execution with tools
7
- * - Client: Adaptive validation and quality control
8
7
  */
9
8
  import { ModelOrchestrator } from '../models/orchestrator.js';
10
9
  import { MCPServerManager } from '../mcp/server-manager.js';
@@ -43,7 +42,6 @@ export declare class DualAgent {
43
42
  private agentSpawner;
44
43
  private manager;
45
44
  private worker;
46
- private client;
47
45
  private maxSubtasks;
48
46
  private maxIterations;
49
47
  private maxAgentDepth;
@@ -66,11 +64,6 @@ export declare class DualAgent {
66
64
  * the full execution persona block (avoids Client trying to direct execution).
67
65
  */
68
66
  private buildValidationContext;
69
- /**
70
- * Determine corrective strategy for a subtask based on CompletionSignal.
71
- * Returns a description of the action taken, or null if no correction needed.
72
- */
73
- private applyCorrectionStrategy;
74
67
  /**
75
68
  * Process user message using dual-agent architecture
76
69
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dual-agent.d.ts","sourceRoot":"","sources":["../../src/core/dual-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,iBAAiB,CAAC;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAc;IAE5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,mBAAmB,CAAS;IAEpC,OAAO,CAAC,uBAAuB,CAAiB;gBAEpC,MAAM,EAAE,eAAe;IAqDnC;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAoDzB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAmD/B;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YA8M7C,kBAAkB;IAgBhC,OAAO,CAAC,gBAAgB;IAclB,OAAO;IAYb,iBAAiB;IAUjB,sBAAsB,IAAI,OAAO,EAAE;IAInC,YAAY,IAAI,gBAAgB;IAIhC,aAAa,IAAI,gBAAgB;IAIjC,sBAAsB,IAAI,mBAAmB,GAAG,IAAI;IAIpD,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAO5C;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI;IAIhC,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiB1C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,iBAAiB;CAOxB"}
1
+ {"version":3,"file":"dual-agent.d.ts","sourceRoot":"","sources":["../../src/core/dual-agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,iBAAiB,CAAC;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAc;IAE5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,mBAAmB,CAAS;IAEpC,OAAO,CAAC,uBAAuB,CAAiB;gBAEpC,MAAM,EAAE,eAAe;IAoDnC;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAoDzB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YA6K7C,kBAAkB;IAgBhC,OAAO,CAAC,gBAAgB;IAclB,OAAO;IAYb,iBAAiB;IASjB,sBAAsB,IAAI,OAAO,EAAE;IAInC,YAAY,IAAI,gBAAgB;IAIhC,aAAa,IAAI,gBAAgB;IAIjC,sBAAsB,IAAI,mBAAmB,GAAG,IAAI;IAIpD,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAO5C;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI;IAIhC,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiB1C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,iBAAiB;CAOxB"}
@@ -1,15 +1,13 @@
1
1
  /**
2
- * Dual Agent System - Coordinates Manager, Worker, and Client agents
2
+ * Dual Agent System - Coordinates Manager and Worker agents
3
3
  *
4
- * Three-agent architecture:
5
- * - Manager: High-level planning and coordination
4
+ * Two-agent architecture:
5
+ * - Manager: High-level planning, review, and synthesis
6
6
  * - Worker: Task execution with tools
7
- * - Client: Adaptive validation and quality control
8
7
  */
9
8
  import { AgentSpawner } from './agent-spawner.js';
10
9
  import { ManagerAgent } from './manager-agent.js';
11
10
  import { WorkerAgent } from './worker-agent.js';
12
- import { ClientAgent } from './client-agent.js';
13
11
  import { serializeAgentContext } from './utils/serialize-agent-context.js';
14
12
  import { logger } from '../utils/logger.js';
15
13
  import { orchestrationLogger } from '../utils/orchestration-logger.js';
@@ -22,7 +20,6 @@ export class DualAgent {
22
20
  agentSpawner = null;
23
21
  manager;
24
22
  worker;
25
- client;
26
23
  maxSubtasks;
27
24
  maxIterations;
28
25
  maxAgentDepth;
@@ -36,14 +33,13 @@ export class DualAgent {
36
33
  this.conversationManager = config.conversationManager || null;
37
34
  this.personaManager = config.personaManager || null;
38
35
  this.maxSubtasks = config.maxSubtasks || 10;
39
- this.maxIterations = config.maxIterations || 10;
36
+ this.maxIterations = config.maxIterations || 20;
40
37
  this.maxAgentDepth = config.maxAgentDepth ?? 1; // Default: only Manager can spawn
41
38
  this.autoSave = config.autoSave !== false;
42
39
  this.condensingThreshold = config.condensingThreshold || 30;
43
- // Initialize agents (three-agent architecture)
40
+ // Initialize agents (Manager + Worker architecture)
44
41
  this.manager = new ManagerAgent(this.orchestrator, this.workspace, this.personaManager || undefined);
45
42
  this.worker = new WorkerAgent(this.orchestrator, this.mcpManager, this.workspace, this.maxIterations, this.personaManager || undefined);
46
- this.client = new ClientAgent(this.orchestrator, this.mcpManager);
47
43
  // Initialize AgentSpawner - always available as a baseline tool
48
44
  // Create a PersonaManager if one wasn't provided
49
45
  let spawnerPersonaManager = this.personaManager;
@@ -59,7 +55,7 @@ export class DualAgent {
59
55
  currentDepth: 0,
60
56
  });
61
57
  this.worker.setAgentSpawner(this.agentSpawner);
62
- logger.info('[*] Three-agent system initialized (Manager + Worker + Client)');
58
+ logger.info('[*] Two-agent system initialized (Manager + Worker)');
63
59
  logger.info(`[*] Agent spawn depth limit: ${this.maxAgentDepth} (${this.maxAgentDepth === 1 ? 'only Manager can spawn' : `${this.maxAgentDepth} levels deep`})`);
64
60
  if (this.personaManager) {
65
61
  const activePersona = this.personaManager.getActivePersona();
@@ -147,46 +143,6 @@ VALIDATION GUIDANCE:
147
143
  - Validate that Worker's tool usage is consistent with the skills it was expected to apply.
148
144
  - Validate that any mandatory steps or safety constraints defined above were followed.`;
149
145
  }
150
- /**
151
- * Determine corrective strategy for a subtask based on CompletionSignal.
152
- * Returns a description of the action taken, or null if no correction needed.
153
- */
154
- applyCorrectionStrategy(signal, subtask, retryCount, maxRetries, subtasksToExecute, results) {
155
- if (signal.confidence === 'high')
156
- return null;
157
- const strategy = signal.suggestedStrategy || 'retry';
158
- // Budget exhausted
159
- if (retryCount >= maxRetries) {
160
- if (signal.progressMade) {
161
- logger.info(`[DualAgent] Retry budget exhausted but progress was made — continuing to synthesis`);
162
- return null;
163
- }
164
- logger.warn(`[DualAgent] Retry budget exhausted with no progress — skipping subtask`);
165
- return null; // handled by caller
166
- }
167
- switch (strategy) {
168
- case 'retry':
169
- return subtask; // re-queue same instruction
170
- case 'rephrase':
171
- return `[CLARIFIED] ${subtask} — Please ensure the correct tools and approach are used. Avoid scope drift.`;
172
- case 'decompose':
173
- // Manager would ideally split this; we approximate by re-queuing with guidance
174
- return `[DECOMPOSE] Break this task into smaller concrete steps and execute them: ${subtask}`;
175
- case 'skip':
176
- logger.warn(`[DualAgent] Strategy=skip for subtask: ${subtask}`);
177
- return null; // caller skips
178
- case 'escalate':
179
- // Do NOT overwrite results[] here. The Worker's actual result (with
180
- // specific tool error detail from failedTools) was already pushed into
181
- // results[] before Client validation ran. The approved:false flag on
182
- // that entry is enough for synthesizeResponse() to handle it honestly.
183
- // Pushing a generic ⚠️ string would lose the specific error information.
184
- logger.warn(`[DualAgent] Escalating subtask to user — evidence-backed failure, no retry: ${subtask}`);
185
- return null;
186
- default:
187
- return subtask;
188
- }
189
- }
190
146
  /**
191
147
  * Process user message using dual-agent architecture
192
148
  */
@@ -219,6 +175,24 @@ VALIDATION GUIDANCE:
219
175
  context: serializeAgentContext(agentContext, 'manager'),
220
176
  }, agentContext);
221
177
  orchestrationLogger.logPhaseEnd('PLANNING', Date.now() - phaseStartTime);
178
+ // Conversational short-circuit: skip execution entirely for greetings, thank-yous, etc.
179
+ if (plan.conversational) {
180
+ logger.info('[DualAgent] Conversational message — returning direct reply');
181
+ const directReply = await this.manager.directReply(this.userConversationHistory, agentContext);
182
+ this.userConversationHistory.push({ role: 'assistant', content: directReply });
183
+ if (this.autoSave && this.conversationManager) {
184
+ await this.conversationManager.autoSave(this.userConversationHistory, this.workspace.getWorkspaceDir(), this.orchestrator);
185
+ }
186
+ logger.info('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
187
+ logger.info('[+] Complete: 1 iteration, 0 tools used (conversational)');
188
+ logger.info('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
189
+ return {
190
+ content: directReply,
191
+ iterations: 1,
192
+ toolsUsed: [],
193
+ plan: { subtasks: [], reasoning: plan.reasoning },
194
+ };
195
+ }
222
196
  // PHASE 2: Execute subtasks with per-subtask retry budget
223
197
  logger.info('\n[PHASE 2: Execution]');
224
198
  logger.info('─────────────────────────────────────────');
@@ -226,8 +200,8 @@ VALIDATION GUIDANCE:
226
200
  orchestrationLogger.logPhaseStart('EXECUTION');
227
201
  const results = [];
228
202
  const subtasksToExecute = plan.subtasks.slice(0, this.maxSubtasks);
229
- const MAX_RETRIES_PER_SUBTASK = 2;
230
- // Track per-subtask retry counts (keyed by original subtask text)
203
+ // Max 1 retry per original subtask — keyed by original subtask text (not correction text)
204
+ const MAX_RETRIES_PER_SUBTASK = 1;
231
205
  const subtaskRetryCounts = new Map();
232
206
  for (let i = 0; i < subtasksToExecute.length; i++) {
233
207
  const subtask = subtasksToExecute[i];
@@ -239,78 +213,30 @@ VALIDATION GUIDANCE:
239
213
  }, agentContext);
240
214
  totalIterations += 1;
241
215
  allToolsUsed.push(...workerResult.toolsUsed);
242
- // Client validates Worker's result with shared context (adaptive involvement)
243
- const validation = await this.client.validate(userMessage, plan.subtasks, workerResult, undefined, // let Client determine involvement level
244
- agentContext);
245
- // Record result alongside Client's approval verdict.
246
- // The synthesis phase uses this to produce an honest response when
247
- // some subtasks were not completed successfully.
216
+ // Manager reviews Worker's result fast-path for common cases, LLM only for edge cases
217
+ const review = await this.manager.reviewSubtaskResult(subtask, workerResult, userMessage);
248
218
  results.push({
249
219
  subtask,
250
220
  result: workerResult.result,
251
- approved: validation.approved,
221
+ accepted: review.accepted,
252
222
  });
253
- if (!validation.approved) {
254
- const signal = validation.completionSignal;
255
- const retryCount = subtaskRetryCounts.get(subtask) || 0;
256
- // Build a context-correction prefix so the Worker isn't misled by prior
257
- // conversation turns that claimed success for the same task.
258
- const contextCorrectionPrefix = `CONTEXT CORRECTION: Previous conversation messages claiming this task was already completed are INCORRECT — those claims were not validated. You MUST execute the required actions now using the appropriate tools. Do NOT produce a text-only response.
259
-
260
- `;
261
- if (signal) {
262
- logger.info(`[DualAgent] CompletionSignal: confidence=${signal.confidence}, blocker=${signal.blockerType || 'none'}, strategy=${signal.suggestedStrategy || 'none'}, progress=${signal.progressMade}`);
263
- const rawCorrection = this.applyCorrectionStrategy(signal, subtask, retryCount, MAX_RETRIES_PER_SUBTASK, subtasksToExecute, results);
264
- const correction = rawCorrection ? `${contextCorrectionPrefix}${rawCorrection}` : null;
265
- if (correction) {
266
- // Deduplicate against the pending queue only — NOT against results.
267
- // Correction subtasks intentionally re-execute something that failed,
268
- // so checking results would always flag a retry as a duplicate.
269
- const normalizedCorrection = correction.toLowerCase().trim();
270
- const isDuplicate = subtasksToExecute.some(existing => existing.toLowerCase().trim() === normalizedCorrection);
271
- if (isDuplicate) {
272
- logger.warn(`[DualAgent] Skipping duplicate correction subtask`);
273
- }
274
- else if (subtasksToExecute.length < this.maxSubtasks) {
275
- // Insert correction immediately after current position so it runs
276
- // BEFORE any subsequent subtasks that may depend on this one.
277
- subtasksToExecute.splice(i + 1, 0, correction);
278
- subtaskRetryCounts.set(subtask, retryCount + 1);
279
- logger.info(`[DualAgent] Inserted correction at position ${i + 2} via ${signal.suggestedStrategy} (${subtasksToExecute.length} total, retry ${retryCount + 1}/${MAX_RETRIES_PER_SUBTASK})`);
280
- }
281
- else {
282
- logger.warn(`[DualAgent] Cannot add correction — maxSubtasks (${this.maxSubtasks}) reached`);
283
- }
284
- }
285
- else if (!signal.progressMade && retryCount >= MAX_RETRIES_PER_SUBTASK) {
286
- logger.warn(`[DualAgent] No progress after ${MAX_RETRIES_PER_SUBTASK} retries — skipping subtask`);
287
- }
223
+ if (!review.accepted && review.specificCorrection) {
224
+ // Determine the original subtask key for retry counting.
225
+ // Correction subtasks always start fresh — map them back to the original via
226
+ // their position in the queue vs the original plan length.
227
+ const originalSubtask = plan.subtasks[Math.min(i, plan.subtasks.length - 1)] || subtask;
228
+ const retryCount = subtaskRetryCounts.get(originalSubtask) || 0;
229
+ if (retryCount < MAX_RETRIES_PER_SUBTASK && subtasksToExecute.length < this.maxSubtasks) {
230
+ subtasksToExecute.splice(i + 1, 0, review.specificCorrection);
231
+ subtaskRetryCounts.set(originalSubtask, retryCount + 1);
232
+ logger.info(`[DualAgent] Inserted targeted retry at position ${i + 2} (retry ${retryCount + 1}/${MAX_RETRIES_PER_SUBTASK})`);
288
233
  }
289
- else if (validation.nextAction) {
290
- // Fallback to legacy correction if no signal present
291
- logger.info(`[Client] Validation failed: ${validation.issues.join(', ')}`);
292
- logger.info(`[Client] Requesting correction: ${validation.nextAction}`);
293
- const correction = `${contextCorrectionPrefix}${validation.nextAction}`;
294
- const normalizedCorrection = correction.toLowerCase().trim();
295
- // Only deduplicate against the pending queue — corrections are intentional
296
- // re-attempts, so matching against results would always skip them.
297
- const isDuplicate = subtasksToExecute.some(existing => existing.toLowerCase().trim() === normalizedCorrection);
298
- if (isDuplicate) {
299
- logger.warn(`[Client] Skipping duplicate correction subtask`);
300
- }
301
- else if (subtasksToExecute.length < this.maxSubtasks) {
302
- // Insert correction immediately after current position so it runs
303
- // BEFORE any subsequent subtasks that may depend on this one.
304
- subtasksToExecute.splice(i + 1, 0, correction);
305
- logger.info(`[Client] Inserted correction at position ${i + 2} (${subtasksToExecute.length} total)`);
306
- }
307
- else {
308
- logger.warn(`[Client] Cannot add correction - maxSubtasks (${this.maxSubtasks}) reached`);
309
- }
234
+ else {
235
+ logger.warn(`[DualAgent] Retry budget exhausted or queue full accepting partial result`);
310
236
  }
311
237
  }
312
238
  else {
313
- logger.info(`[Client] Validation passed (${validation.involvementLevel} level)`);
239
+ logger.info(`[Manager] Subtask accepted`);
314
240
  }
315
241
  }
316
242
  orchestrationLogger.logPhaseEnd('EXECUTION', Date.now() - executionStartTime);
@@ -380,7 +306,6 @@ VALIDATION GUIDANCE:
380
306
  resetConversation() {
381
307
  this.userConversationHistory = [];
382
308
  this.manager.resetConversation();
383
- this.client.resetSessionState();
384
309
  // Null out the conversation ID so the next autoSave generates a fresh file
385
310
  // rather than continuing to append to the previous conversation's storage entry.
386
311
  this.conversationManager?.setCurrentConversationId(null);