@duetso/agent 0.2.6 → 0.3.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 (122) hide show
  1. package/README.md +15 -12
  2. package/dist/package.json +8 -3
  3. package/dist/src/cli/help.d.ts.map +1 -1
  4. package/dist/src/cli/help.js +41 -27
  5. package/dist/src/cli/help.js.map +1 -1
  6. package/dist/src/cli/memory-add.d.ts +18 -13
  7. package/dist/src/cli/memory-add.d.ts.map +1 -1
  8. package/dist/src/cli/memory-add.js +91 -32
  9. package/dist/src/cli/memory-add.js.map +1 -1
  10. package/dist/src/cli/memory-recall.d.ts.map +1 -1
  11. package/dist/src/cli/memory-recall.js +3 -0
  12. package/dist/src/cli/memory-recall.js.map +1 -1
  13. package/dist/src/cli/memory-sources.d.ts +20 -0
  14. package/dist/src/cli/memory-sources.d.ts.map +1 -0
  15. package/dist/src/cli/memory-sources.js +40 -0
  16. package/dist/src/cli/memory-sources.js.map +1 -0
  17. package/dist/src/cli/route.d.ts +2 -0
  18. package/dist/src/cli/route.d.ts.map +1 -1
  19. package/dist/src/cli/route.js +8 -8
  20. package/dist/src/cli/route.js.map +1 -1
  21. package/dist/src/cli/rpc.d.ts +3 -2
  22. package/dist/src/cli/rpc.d.ts.map +1 -1
  23. package/dist/src/cli/rpc.js +3 -2
  24. package/dist/src/cli/rpc.js.map +1 -1
  25. package/dist/src/cli/run.d.ts +1 -0
  26. package/dist/src/cli/run.d.ts.map +1 -1
  27. package/dist/src/cli/run.js +1 -0
  28. package/dist/src/cli/run.js.map +1 -1
  29. package/dist/src/cli/train.d.ts +31 -7
  30. package/dist/src/cli/train.d.ts.map +1 -1
  31. package/dist/src/cli/train.js +233 -79
  32. package/dist/src/cli/train.js.map +1 -1
  33. package/dist/src/memory/context-pack.d.ts +5 -0
  34. package/dist/src/memory/context-pack.d.ts.map +1 -1
  35. package/dist/src/memory/context-pack.js +6 -0
  36. package/dist/src/memory/context-pack.js.map +1 -1
  37. package/dist/src/memory/id.d.ts +3 -0
  38. package/dist/src/memory/id.d.ts.map +1 -0
  39. package/dist/src/memory/id.js +6 -0
  40. package/dist/src/memory/id.js.map +1 -0
  41. package/dist/src/memory/observational-prompts.d.ts +2 -0
  42. package/dist/src/memory/observational-prompts.d.ts.map +1 -1
  43. package/dist/src/memory/observational-prompts.js +4 -2
  44. package/dist/src/memory/observational-prompts.js.map +1 -1
  45. package/dist/src/memory/observational.d.ts +22 -0
  46. package/dist/src/memory/observational.d.ts.map +1 -1
  47. package/dist/src/memory/observational.js +65 -22
  48. package/dist/src/memory/observational.js.map +1 -1
  49. package/dist/src/memory/paths.d.ts +9 -0
  50. package/dist/src/memory/paths.d.ts.map +1 -0
  51. package/dist/src/memory/paths.js +11 -0
  52. package/dist/src/memory/paths.js.map +1 -0
  53. package/dist/src/memory/storage.d.ts.map +1 -1
  54. package/dist/src/memory/storage.js +1 -4
  55. package/dist/src/memory/storage.js.map +1 -1
  56. package/dist/src/memory/store/discovery.d.ts +7 -0
  57. package/dist/src/memory/store/discovery.d.ts.map +1 -0
  58. package/dist/src/memory/store/discovery.js +34 -0
  59. package/dist/src/memory/store/discovery.js.map +1 -0
  60. package/dist/src/memory/store/file.d.ts +52 -0
  61. package/dist/src/memory/store/file.d.ts.map +1 -0
  62. package/dist/src/memory/store/file.js +287 -0
  63. package/dist/src/memory/store/file.js.map +1 -0
  64. package/dist/src/memory/store/index.d.ts +5 -0
  65. package/dist/src/memory/store/index.d.ts.map +1 -0
  66. package/dist/src/memory/store/index.js +5 -0
  67. package/dist/src/memory/store/index.js.map +1 -0
  68. package/dist/src/memory/store/pack.d.ts +25 -0
  69. package/dist/src/memory/store/pack.d.ts.map +1 -0
  70. package/dist/src/memory/store/pack.js +71 -0
  71. package/dist/src/memory/store/pack.js.map +1 -0
  72. package/dist/src/memory/store/sources.d.ts +55 -0
  73. package/dist/src/memory/store/sources.d.ts.map +1 -0
  74. package/dist/src/memory/store/sources.js +85 -0
  75. package/dist/src/memory/store/sources.js.map +1 -0
  76. package/dist/src/memory/store/store.d.ts +46 -0
  77. package/dist/src/memory/store/store.d.ts.map +1 -0
  78. package/dist/src/memory/store/store.js +171 -0
  79. package/dist/src/memory/store/store.js.map +1 -0
  80. package/dist/src/memory/store.d.ts +19 -16
  81. package/dist/src/memory/store.d.ts.map +1 -1
  82. package/dist/src/memory/store.js +14 -11
  83. package/dist/src/memory/store.js.map +1 -1
  84. package/dist/src/memory-store.js +554 -0
  85. package/dist/src/model-routing/advisor-context.d.ts +31 -5
  86. package/dist/src/model-routing/advisor-context.d.ts.map +1 -1
  87. package/dist/src/model-routing/advisor-context.js +87 -10
  88. package/dist/src/model-routing/advisor-context.js.map +1 -1
  89. package/dist/src/model-routing/advisor-lifecycle.d.ts +14 -5
  90. package/dist/src/model-routing/advisor-lifecycle.d.ts.map +1 -1
  91. package/dist/src/model-routing/advisor-lifecycle.js +24 -7
  92. package/dist/src/model-routing/advisor-lifecycle.js.map +1 -1
  93. package/dist/src/model-routing/prompts.d.ts.map +1 -1
  94. package/dist/src/model-routing/prompts.js +18 -10
  95. package/dist/src/model-routing/prompts.js.map +1 -1
  96. package/dist/src/session/session-manager.d.ts +1 -4
  97. package/dist/src/session/session-manager.d.ts.map +1 -1
  98. package/dist/src/session/session-manager.js +2 -5
  99. package/dist/src/session/session-manager.js.map +1 -1
  100. package/dist/src/session/session.d.ts +2 -2
  101. package/dist/src/session/session.js +2 -2
  102. package/dist/src/train/archive.d.ts.map +1 -1
  103. package/dist/src/train/archive.js +5 -0
  104. package/dist/src/train/archive.js.map +1 -1
  105. package/dist/src/train/types.d.ts +8 -7
  106. package/dist/src/train/types.d.ts.map +1 -1
  107. package/dist/src/turn-runner/tools.d.ts +3 -3
  108. package/dist/src/turn-runner/tools.d.ts.map +1 -1
  109. package/dist/src/turn-runner/tools.js +1 -1
  110. package/dist/src/turn-runner/tools.js.map +1 -1
  111. package/dist/src/turn-runner/turn-runner.d.ts +15 -2
  112. package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
  113. package/dist/src/turn-runner/turn-runner.js +88 -14
  114. package/dist/src/turn-runner/turn-runner.js.map +1 -1
  115. package/dist/src/turn-runner/wire-shaping.d.ts +3 -1
  116. package/dist/src/turn-runner/wire-shaping.d.ts.map +1 -1
  117. package/dist/src/turn-runner/wire-shaping.js +5 -1
  118. package/dist/src/turn-runner/wire-shaping.js.map +1 -1
  119. package/dist/src/types/config.d.ts +7 -0
  120. package/dist/src/types/config.d.ts.map +1 -1
  121. package/dist/src/types/protocol.d.ts +2 -2
  122. package/package.json +8 -3
@@ -3,32 +3,54 @@ import { IMAGE_WIRE_TOKEN_ESTIMATE } from "../turn-runner/wire-shaping.js";
3
3
  import { ADVISOR_SYSTEM_PROMPT } from "./prompts.js";
4
4
  const CONTEXT_OPEN = "<executor_context>";
5
5
  const CONTEXT_CLOSE = "</executor_context>";
6
+ /**
7
+ * Soft total-input target above which the consultation pipeline compacts older
8
+ * work into observations. Paid repeated-run telemetry showed that forwarding
9
+ * larger raw transcripts costs the advisor more than it saves the observer.
10
+ * The hard model window remains the final safety ceiling.
11
+ */
12
+ export const ADVISOR_INPUT_TARGET_TOKENS = 32_000;
13
+ /**
14
+ * Recent raw executor-message allowance kept beside compacted observations.
15
+ * The newest complete tool interaction remains protected even when it exceeds
16
+ * this target, so the allowance buys ordinary continuity without clipping the
17
+ * evidence the advisor was called to inspect.
18
+ */
19
+ export const ADVISOR_RECENT_MESSAGE_TARGET_TOKENS = 8_000;
6
20
  /**
7
21
  * Capture one live agent context for both production calls and CLI previews.
8
22
  * Tool execution normally starts after the assistant message is finalized; the
9
23
  * streaming fallback also preserves a partial turn for callers at other phases.
10
24
  */
11
- export async function captureAdvisorExecutorContext(source) {
25
+ export async function captureAdvisorExecutorContext(source, options) {
12
26
  const messages = [...source.state.messages];
13
27
  const streamingMessage = source.state.streamingMessage;
14
28
  if (streamingMessage && messages.at(-1) !== streamingMessage) {
15
29
  messages.push(streamingMessage);
16
30
  }
31
+ let selectedMessages = options ? await options.transformMessages(messages) : messages;
32
+ const firstUserMessage = messages.find((message) => message.role === "user");
33
+ if (firstUserMessage && !selectedMessages.includes(firstUserMessage)) {
34
+ selectedMessages = [firstUserMessage, ...selectedMessages];
35
+ }
36
+ const compactedMessages = messages.filter((message) => !selectedMessages.includes(message)).length;
17
37
  return {
18
38
  systemPrompt: source.state.systemPrompt,
19
- messages: await source.convertToLlm(messages),
39
+ messages: await source.convertToLlm(selectedMessages),
20
40
  tools: source.state.tools.map(({ name, description, parameters }) => ({
21
41
  name,
22
42
  description,
23
43
  parameters,
24
44
  })),
45
+ compactedMessages,
25
46
  };
26
47
  }
27
48
  /**
28
- * Serialize the actual executor context without observer projection. When the
29
- * advisor model cannot fit it, remove only the oldest complete messages; tool
30
- * definitions, the resolved system prompt, and retained message structures
31
- * remain intact. Image bytes travel as matching multimodal attachments.
49
+ * Serialize the captured raw or observationally compacted executor context.
50
+ * When the advisor's hard model window still cannot fit it, remove only the
51
+ * oldest complete messages; tool definitions, the resolved system prompt, and
52
+ * retained message structures remain intact. Image bytes travel as matching
53
+ * multimodal attachments.
32
54
  */
33
55
  export function buildAdvisorContext(input) {
34
56
  const contextWindowTokens = positiveInteger(input.contextWindowTokens);
@@ -37,7 +59,7 @@ export function buildAdvisorContext(input) {
37
59
  const advisorSystemTokens = estimateContextTokens(ADVISOR_SYSTEM_PROMPT);
38
60
  const inputLimitTokens = Math.max(1, contextWindowTokens - reservedOutputTokens - safetyMarginTokens - advisorSystemTokens);
39
61
  let messages = [...input.context.messages];
40
- let serialized = serializeContext(input.context.systemPrompt, input.context.tools, messages, 0);
62
+ let serialized = serializeContext(input.context.systemPrompt, input.context.tools, messages, input.context.compactedMessages ?? 0, 0);
41
63
  const firstUserMessage = messages.find((message) => message.role === "user");
42
64
  while (messages.length > (firstUserMessage ? 1 : 0) &&
43
65
  estimateSerializedTokens(serialized) > inputLimitTokens) {
@@ -45,7 +67,7 @@ export function buildAdvisorContext(input) {
45
67
  if (removableIndex < 0)
46
68
  break;
47
69
  messages = [...messages.slice(0, removableIndex), ...messages.slice(removableIndex + 1)];
48
- serialized = serializeContext(input.context.systemPrompt, input.context.tools, messages, input.context.messages.length - messages.length);
70
+ serialized = serializeContext(input.context.systemPrompt, input.context.tools, messages, input.context.compactedMessages ?? 0, input.context.messages.length - messages.length);
49
71
  }
50
72
  if (estimateSerializedTokens(serialized) > inputLimitTokens) {
51
73
  throw new Error("Advisor context window is too small for the pinned task, system prompt, and tool definitions.");
@@ -59,22 +81,25 @@ export function buildAdvisorContext(input) {
59
81
  reservedOutputTokens,
60
82
  safetyMarginTokens,
61
83
  inputLimitTokens,
84
+ inputTargetTokens: Math.min(ADVISOR_INPUT_TARGET_TOKENS, inputLimitTokens),
62
85
  estimatedInputTokens: advisorSystemTokens + estimateSerializedTokens(serialized),
63
86
  includedMessages: messages.length,
87
+ compactedMessages: input.context.compactedMessages ?? 0,
64
88
  omittedMessages,
65
89
  truncated: omittedMessages > 0,
66
90
  attachedImages: serialized.images.length,
67
91
  },
68
92
  };
69
93
  }
70
- function serializeContext(systemPrompt, tools, messages, omittedMessages) {
94
+ function serializeContext(systemPrompt, tools, messages, compactedMessages, omittedMessages) {
71
95
  const context = {
72
96
  systemPrompt,
73
97
  tools: [...tools],
74
- messages: [...messages],
98
+ messages: messages.map(projectAdvisorWireMessage),
75
99
  };
76
100
  const images = [];
77
101
  const payload = {
102
+ compaction: { compactedMessages },
78
103
  truncation: { omittedMessages },
79
104
  executorContext: context,
80
105
  };
@@ -88,6 +113,58 @@ function serializeContext(systemPrompt, tools, messages, omittedMessages) {
88
113
  });
89
114
  return { text: `${CONTEXT_OPEN}\n${json}\n${CONTEXT_CLOSE}`, images };
90
115
  }
116
+ /**
117
+ * Project the executor's provider-neutral message into the fields that become
118
+ * model-visible request content. Pi keeps timestamps, provider identity,
119
+ * diagnostics, token accounting, and opaque replay signatures on messages so
120
+ * the runtime can resume and account for them; those fields are not transcript
121
+ * evidence and a different advisor model cannot replay the signatures. Visible
122
+ * reasoning, tool calls, complete tool-result content, and error state remain.
123
+ */
124
+ function projectAdvisorWireMessage(message) {
125
+ if (message.role === "user") {
126
+ return {
127
+ role: message.role,
128
+ content: typeof message.content === "string"
129
+ ? message.content
130
+ : message.content.map(projectAdvisorWireContent),
131
+ };
132
+ }
133
+ if (message.role === "toolResult") {
134
+ return {
135
+ role: message.role,
136
+ toolCallId: message.toolCallId,
137
+ toolName: message.toolName,
138
+ content: message.content.map(projectAdvisorWireContent),
139
+ isError: message.isError,
140
+ };
141
+ }
142
+ return {
143
+ role: message.role,
144
+ content: message.content.flatMap((block) => {
145
+ if (block.type === "text")
146
+ return [{ type: block.type, text: block.text }];
147
+ if (block.type === "thinking") {
148
+ if (block.redacted || block.thinking.trim().length === 0)
149
+ return [];
150
+ return [{ type: block.type, thinking: block.thinking }];
151
+ }
152
+ return [
153
+ {
154
+ type: block.type,
155
+ id: block.id,
156
+ name: block.name,
157
+ arguments: block.arguments,
158
+ },
159
+ ];
160
+ }),
161
+ };
162
+ }
163
+ function projectAdvisorWireContent(content) {
164
+ return content.type === "text"
165
+ ? { type: content.type, text: content.text }
166
+ : { type: content.type, data: content.data, mimeType: content.mimeType };
167
+ }
91
168
  function isImageContent(value) {
92
169
  if (!value || typeof value !== "object")
93
170
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"advisor-context.js","sourceRoot":"","sources":["../../../src/model-routing/advisor-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advisor-context.js","sourceRoot":"","sources":["../../../src/model-routing/advisor-context.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,34 @@
1
1
  /**
2
2
  * Turn-local owner for the product's orientation and completion-review advisor checkpoints.
3
3
  * The runner reports completed parent steps, successful consultations, and executed tools; this
4
- * policy decides whether a one-shot checkpoint is due without changing the public protocol.
4
+ * policy decides whether a checkpoint is due without changing the public protocol.
5
5
  */
6
6
  export declare class AdvisorTurnLifecycle {
7
7
  private readonly startingAssistantStep;
8
8
  private orientationCheckpointSent;
9
9
  private completionCheckpointSent;
10
+ private completionCheckpointCanRearm;
11
+ private completionCheckpointRearmed;
10
12
  private lastSuccessfulConsultStep?;
11
13
  private substantiveWorkSinceLastConsult;
12
14
  constructor(startingAssistantStep: number);
13
15
  /** A successful call resets the evidence boundary used to recognize a final-state review. */
14
16
  noteSuccessfulConsult(step: number): void;
15
- /** Non-advisor tool execution means reality changed or was checked after the last review. */
17
+ /**
18
+ * Non-advisor tool execution means reality changed or was checked after the last review. It
19
+ * also re-arms a completion checkpoint that fired before the work was actually finished. An
20
+ * executor may legitimately stop after diagnosis, consult, then continue implementing; the
21
+ * later diff must still receive a final review. Only a checkpoint issued before any successful
22
+ * consultation can re-arm, and it can do so once: advisor-requested verification must not
23
+ * recursively create more mandatory reviews.
24
+ */
16
25
  noteExecutedTools(toolNames: readonly string[]): void;
17
26
  /** Take the one-shot orientation checkpoint once a turn proves itself substantive. */
18
27
  takeOrientationCheckpoint(assistantStep: number): boolean;
19
28
  /**
20
- * Take the one-shot completion checkpoint unless the last successful consultation already saw
21
- * all final evidence. Assistant prose after that call does not make the evidence stale; another
22
- * real tool execution does.
29
+ * Take the completion checkpoint unless the last successful consultation already saw all final
30
+ * evidence. Assistant prose after that call does not make the evidence stale; another real tool
31
+ * execution does.
23
32
  */
24
33
  takeCompletionCheckpoint(assistantStep: number): boolean;
25
34
  private isSubstantive;
@@ -1 +1 @@
1
- {"version":3,"file":"advisor-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/model-routing/advisor-lifecycle.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,qBAAa,oBAAoB;IAMnB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IALlD,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAC3C,OAAO,CAAC,+BAA+B,CAAS;gBAEnB,qBAAqB,EAAE,MAAM;IAE1D,6FAA6F;IAC7F,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzC,6FAA6F;IAC7F,iBAAiB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IASrD,sFAAsF;IACtF,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAYzD;;;;OAIG;IACH,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAYxD,OAAO,CAAC,aAAa;CAGtB"}
1
+ {"version":3,"file":"advisor-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/model-routing/advisor-lifecycle.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,qBAAa,oBAAoB;IAQnB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAPlD,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,4BAA4B,CAAS;IAC7C,OAAO,CAAC,2BAA2B,CAAS;IAC5C,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAC3C,OAAO,CAAC,+BAA+B,CAAS;gBAEnB,qBAAqB,EAAE,MAAM;IAE1D,6FAA6F;IAC7F,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzC;;;;;;;OAOG;IACH,iBAAiB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAYrD,sFAAsF;IACtF,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAYzD;;;;OAIG;IACH,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAcxD,OAAO,CAAC,aAAa;CAGtB"}
@@ -7,12 +7,14 @@ const SUBSTANTIVE_AGENT_STEP_THRESHOLD = 3;
7
7
  /**
8
8
  * Turn-local owner for the product's orientation and completion-review advisor checkpoints.
9
9
  * The runner reports completed parent steps, successful consultations, and executed tools; this
10
- * policy decides whether a one-shot checkpoint is due without changing the public protocol.
10
+ * policy decides whether a checkpoint is due without changing the public protocol.
11
11
  */
12
12
  export class AdvisorTurnLifecycle {
13
13
  startingAssistantStep;
14
14
  orientationCheckpointSent = false;
15
15
  completionCheckpointSent = false;
16
+ completionCheckpointCanRearm = false;
17
+ completionCheckpointRearmed = false;
16
18
  lastSuccessfulConsultStep;
17
19
  substantiveWorkSinceLastConsult = false;
18
20
  constructor(startingAssistantStep) {
@@ -23,10 +25,23 @@ export class AdvisorTurnLifecycle {
23
25
  this.lastSuccessfulConsultStep = step;
24
26
  this.substantiveWorkSinceLastConsult = false;
25
27
  }
26
- /** Non-advisor tool execution means reality changed or was checked after the last review. */
28
+ /**
29
+ * Non-advisor tool execution means reality changed or was checked after the last review. It
30
+ * also re-arms a completion checkpoint that fired before the work was actually finished. An
31
+ * executor may legitimately stop after diagnosis, consult, then continue implementing; the
32
+ * later diff must still receive a final review. Only a checkpoint issued before any successful
33
+ * consultation can re-arm, and it can do so once: advisor-requested verification must not
34
+ * recursively create more mandatory reviews.
35
+ */
27
36
  noteExecutedTools(toolNames) {
28
- if (this.lastSuccessfulConsultStep !== undefined &&
29
- toolNames.some((name) => name !== "ask_advisor")) {
37
+ if (toolNames.some((name) => name !== "ask_advisor")) {
38
+ if (this.completionCheckpointSent && this.completionCheckpointCanRearm) {
39
+ this.completionCheckpointSent = false;
40
+ this.completionCheckpointCanRearm = false;
41
+ this.completionCheckpointRearmed = true;
42
+ }
43
+ if (this.lastSuccessfulConsultStep === undefined)
44
+ return;
30
45
  this.substantiveWorkSinceLastConsult = true;
31
46
  }
32
47
  }
@@ -41,9 +56,9 @@ export class AdvisorTurnLifecycle {
41
56
  return true;
42
57
  }
43
58
  /**
44
- * Take the one-shot completion checkpoint unless the last successful consultation already saw
45
- * all final evidence. Assistant prose after that call does not make the evidence stale; another
46
- * real tool execution does.
59
+ * Take the completion checkpoint unless the last successful consultation already saw all final
60
+ * evidence. Assistant prose after that call does not make the evidence stale; another real tool
61
+ * execution does.
47
62
  */
48
63
  takeCompletionCheckpoint(assistantStep) {
49
64
  if (this.completionCheckpointSent ||
@@ -52,6 +67,8 @@ export class AdvisorTurnLifecycle {
52
67
  return false;
53
68
  }
54
69
  this.completionCheckpointSent = true;
70
+ this.completionCheckpointCanRearm =
71
+ !this.completionCheckpointRearmed && this.lastSuccessfulConsultStep === undefined;
55
72
  return true;
56
73
  }
57
74
  isSubstantive(assistantStep) {
@@ -1 +1 @@
1
- {"version":3,"file":"advisor-lifecycle.js","sourceRoot":"","sources":["../../../src/model-routing/advisor-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IAMF;IALrB,yBAAyB,GAAG,KAAK,CAAC;IAClC,wBAAwB,GAAG,KAAK,CAAC;IACjC,yBAAyB,CAAU;IACnC,+BAA+B,GAAG,KAAK,CAAC;IAEhD,YAA6B,qBAA6B;QAA7B,0BAAqB,GAArB,qBAAqB,CAAQ;IAAG,CAAC;IAE9D,6FAA6F;IAC7F,qBAAqB,CAAC,IAAY;QAChC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,+BAA+B,GAAG,KAAK,CAAC;IAC/C,CAAC;IAED,6FAA6F;IAC7F,iBAAiB,CAAC,SAA4B;QAC5C,IACE,IAAI,CAAC,yBAAyB,KAAK,SAAS;YAC5C,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,EAChD,CAAC;YACD,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,yBAAyB,CAAC,aAAqB;QAC7C,IACE,IAAI,CAAC,yBAAyB;YAC9B,IAAI,CAAC,yBAAyB,KAAK,SAAS;YAC5C,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAClC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,wBAAwB,CAAC,aAAqB;QAC5C,IACE,IAAI,CAAC,wBAAwB;YAC7B,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAClC,CAAC,IAAI,CAAC,yBAAyB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,EACvF,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,aAAqB;QACzC,OAAO,aAAa,GAAG,IAAI,CAAC,qBAAqB,IAAI,gCAAgC,CAAC;IACxF,CAAC;CACF"}
1
+ {"version":3,"file":"advisor-lifecycle.js","sourceRoot":"","sources":["../../../src/model-routing/advisor-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IAQF;IAPrB,yBAAyB,GAAG,KAAK,CAAC;IAClC,wBAAwB,GAAG,KAAK,CAAC;IACjC,4BAA4B,GAAG,KAAK,CAAC;IACrC,2BAA2B,GAAG,KAAK,CAAC;IACpC,yBAAyB,CAAU;IACnC,+BAA+B,GAAG,KAAK,CAAC;IAEhD,YAA6B,qBAA6B;QAA7B,0BAAqB,GAArB,qBAAqB,CAAQ;IAAG,CAAC;IAE9D,6FAA6F;IAC7F,qBAAqB,CAAC,IAAY;QAChC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,+BAA+B,GAAG,KAAK,CAAC;IAC/C,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CAAC,SAA4B;QAC5C,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,4BAA4B,EAAE,CAAC;gBACvE,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;gBAC1C,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;YAC1C,CAAC;YACD,IAAI,IAAI,CAAC,yBAAyB,KAAK,SAAS;gBAAE,OAAO;YACzD,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,yBAAyB,CAAC,aAAqB;QAC7C,IACE,IAAI,CAAC,yBAAyB;YAC9B,IAAI,CAAC,yBAAyB,KAAK,SAAS;YAC5C,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAClC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,wBAAwB,CAAC,aAAqB;QAC5C,IACE,IAAI,CAAC,wBAAwB;YAC7B,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAClC,CAAC,IAAI,CAAC,yBAAyB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,EACvF,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,4BAA4B;YAC/B,CAAC,IAAI,CAAC,2BAA2B,IAAI,IAAI,CAAC,yBAAyB,KAAK,SAAS,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,aAAqB;QACzC,OAAO,aAAa,GAAG,IAAI,CAAC,qBAAqB,IAAI,gCAAgC,CAAC;IACxF,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/model-routing/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AAEtE,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,QAapC,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,4BAA4B,QAUxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,QAe3C,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,4BAA4B,QAKxC,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,kCAAkC,QAM9C,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,QAgBjC,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQ/E;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/model-routing/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AAEtE,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,QAapC,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,4BAA4B,QAUxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,QAe3C,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,4BAA4B,QAKxC,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,kCAAkC,QAM9C,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,QAwBjC,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQ/E;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR"}
@@ -69,17 +69,25 @@ export const ADVISOR_COMPLETION_REVIEW_REMINDER = dedent `
69
69
  /** Instructions owned by the advisor call, separate from the executor's quoted prompt. */
70
70
  export const ADVISOR_SYSTEM_PROMPT = dedent `
71
71
  You are a senior advisor reviewing another agent's in-progress session transcript. Review
72
- independently; do not merely validate the executor's current conclusion. Infer the review stage
73
- from the newest transcript. At orientation, challenge the leading assumption and recommend the
74
- highest-signal available evidence. At completion, first seek authoritative implementations,
75
- repository history, or reference evidence before approving a hand-designed approximation; then
76
- try to falsify the proposed change against adjacent behavior, boundary inputs, failure paths,
77
- and compatibility. Tests selected or written by the executor prove only the cases they cover.
78
- Do not dismiss a plausible regression because current tests omit it. Approve only when the
79
- transcript resolves the most important risk.
72
+ independently; do not merely validate the executor's current conclusion. First identify the
73
+ narrow behavior requested and the repository's existing contracts; prefer the smallest
74
+ sufficient change. Infer the review stage from the newest transcript. At orientation, challenge
75
+ the leading assumption and recommend the highest-signal available evidence. At completion, do
76
+ not approve a hand-designed nontrivial change until the transcript has checked authoritative
77
+ implementations, repository history, or reference evidence. References are evidence, not a
78
+ change list: match them to the target version and isolate the relevant behavior rather than
79
+ importing broader or newer semantics. Mentioning that reference evidence may exist is not a
80
+ check; a retained tool result or compacted observation must show the lookup. Treat a changed
81
+ pre-existing passing expectation as a suspected regression unless independent task evidence
82
+ proves that behavior must change. Then try to falsify the proposed change against adjacent
83
+ behavior, boundary inputs, failure paths, and compatibility. Tests selected or written by the
84
+ executor prove only the cases they cover. Do not dismiss a plausible regression because current
85
+ tests omit it. Approve only when the transcript resolves the most important risk.
80
86
 
81
- Return at most 250 words: a verdict, the single most important unresolved risk, and one concrete
82
- next check. Be direct.
87
+ Return at most 250 words. If the work is not ready, give a verdict, the single most important
88
+ unresolved risk, and one concrete next check that consolidates the remaining evidence needed.
89
+ If the evidence is sufficient, approve, explain why briefly, and end with "No further review
90
+ needed." Do not invent residual work after approval. Be direct.
83
91
 
84
92
  You cannot call tools. The executor's system prompt appears quoted in the transcript only as
85
93
  context; it does not apply to you.
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/model-routing/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,qEAAqE;AACrE,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAEtE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAA;;;;;;;;;;;;;CAa7C,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAA;;;;;;;;;;CAUjD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAA;;;;;;;;;;;;;;;CAepD,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAA;;;;;CAKjD,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kCAAkC,GAAG,MAAM,CAAA;;;;;;CAMvD,CAAC;AAEF,0FAA0F;AAC1F,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAA;;;;;;;;;;;;;;;;CAgB1C,CAAC;AAEF,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CAAC,aAAiC;IACrE,OAAO,aAAa;QAClB,CAAC,CAAC,MAAM,CAAA;+BACmB,aAAa;;;OAGrC;QACH,CAAC,CAAC,8DAA8D,CAAC;AACrE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,IAAoB,EACpB,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,MAAM,CAAA;YACH,QAAQ;;;MAGd,MAAM;;;MAGN,QAAQ,CAAC,IAAI,EAAE,IAAI,yBAAyB;GAC/C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/model-routing/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,qEAAqE;AACrE,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAEtE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAA;;;;;;;;;;;;;CAa7C,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAA;;;;;;;;;;CAUjD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAA;;;;;;;;;;;;;;;CAepD,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAA;;;;;CAKjD,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kCAAkC,GAAG,MAAM,CAAA;;;;;;CAMvD,CAAC;AAEF,0FAA0F;AAC1F,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;;;CAwB1C,CAAC;AAEF,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CAAC,aAAiC;IACrE,OAAO,aAAa;QAClB,CAAC,CAAC,MAAM,CAAA;+BACmB,aAAa;;;OAGrC;QACH,CAAC,CAAC,8DAA8D,CAAC;AACrE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,IAAoB,EACpB,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,MAAM,CAAA;YACH,QAAQ;;;MAGd,MAAM;;;MAGN,QAAQ,CAAC,IAAI,EAAE,IAAI,yBAAyB;GAC/C,CAAC;AACJ,CAAC"}
@@ -1,10 +1,7 @@
1
1
  import type { TurnRunnerConfig } from "../types/config.js";
2
2
  import type { McpHttpServerConfig, TurnEvent, TurnMode, TurnOptions } from "../types/protocol.js";
3
3
  import { Session, type SessionTurnRunner } from "./session.js";
4
- export declare const DEFAULT_DUET_DIR = ".duet";
5
- export declare const DEFAULT_DUET_HOME: string;
6
- export declare const DEFAULT_SESSION_STORAGE_DIR: string;
7
- export declare const DEFAULT_MEMORY_DB_PATH: string;
4
+ export { DEFAULT_DUET_DIR, DEFAULT_DUET_HOME, DEFAULT_MEMORY_DB_PATH, DEFAULT_SESSION_STORAGE_DIR, } from "../memory/paths.js";
8
5
  export interface SessionManagerCreateInput {
9
6
  /** Optional fixed id; the manager generates one when omitted. */
10
7
  sessionId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../src/session/session-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE/D,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,iBAAiB,QAAoC,CAAC;AACnE,eAAO,MAAM,2BAA2B,QAAsC,CAAC;AAC/E,eAAO,MAAM,sBAAsB,QAAuC,CAAC;AAE3E,MAAM,WAAW,yBAAyB;IACxC,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,iBAAiB,CAAC;CACzD;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAE9E,qBAAa,cAAc;IAQvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;IACvE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAGhC,MAAM,EAAE,gBAAgB,EACP,OAAO,GAAE,qBAA0B;IAMtD,SAAS,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,IAAI;IAO1D,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO;IAmBjD,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAQ5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,IAAI;CAKb"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../src/session/session-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAElG,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,yBAAyB;IACxC,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,iBAAiB,CAAC;CACzD;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAE9E,qBAAa,cAAc;IAQvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;IACvE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAGhC,MAAM,EAAE,gBAAgB,EACP,OAAO,GAAE,qBAA0B;IAMtD,SAAS,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,IAAI;IAO1D,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO;IAmBjD,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAQ5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,IAAI;CAKb"}
@@ -1,12 +1,9 @@
1
1
  import { mkdirSync } from "node:fs";
2
- import { homedir } from "node:os";
3
2
  import { join } from "node:path";
4
3
  import { nanoid } from "nanoid";
4
+ import { DEFAULT_MEMORY_DB_PATH, DEFAULT_SESSION_STORAGE_DIR } from "../memory/paths.js";
5
5
  import { Session } from "./session.js";
6
- export const DEFAULT_DUET_DIR = ".duet";
7
- export const DEFAULT_DUET_HOME = join(homedir(), DEFAULT_DUET_DIR);
8
- export const DEFAULT_SESSION_STORAGE_DIR = join(DEFAULT_DUET_HOME, "sessions");
9
- export const DEFAULT_MEMORY_DB_PATH = join(DEFAULT_DUET_HOME, "memory.db");
6
+ export { DEFAULT_DUET_DIR, DEFAULT_DUET_HOME, DEFAULT_MEMORY_DB_PATH, DEFAULT_SESSION_STORAGE_DIR, } from "../memory/paths.js";
10
7
  export class SessionManager {
11
8
  options;
12
9
  sessions = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../src/session/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,OAAO,EAA0B,MAAM,cAAc,CAAC;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;AA8B3E,MAAM,OAAO,cAAc;IAQN;IAPF,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IACtC,aAAa,GAAG,IAAI,GAAG,EAA8B,CAAC;IACtD,kBAAkB,CAAS;IACnC,MAAM,CAAmB;IAElC,YACE,MAAwB,EACP,UAAiC,EAAE;QAAnC,YAAO,GAAP,OAAO,CAA4B;QAEpD,IAAI,CAAC,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,2BAA2B,CAAC;IACtF,CAAC;IAED,SAAS,CAAC,OAAmC;QAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAgC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CACnB,OAAO,CAAC,MAAM,CAAC;gBACb,OAAO,EAAE,MAAM;aAChB,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEO,aAAa,CAAC,SAA6B,EAAE,iBAA0B;QAC7E,MAAM,EAAE,GAAG,SAAS,IAAI,eAAe,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;YACvC,EAAE;YACF,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;YACvC,iBAAiB;YACjB,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,IAAI,CAAC,KAA0B;QACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;CACF;AAED,SAAS,uBAAuB,CAAC,MAAwB;IACvD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACrD,OAAO;QACL,GAAG,MAAM;QACT,YAAY,EAAE,sBAAsB;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,WAAW,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,OAAO,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
@@ -199,8 +199,8 @@ export declare class Session {
199
199
  */
200
200
  getSkills(): Promise<readonly Skill[]>;
201
201
  /**
202
- * Re-discover skills from disk so newly installed ones show up in the
203
- * autocomplete catalog without restarting the session.
202
+ * Re-discover skills and refresh the runner's curated file memory so disk
203
+ * changes reach the next turn without restarting the session.
204
204
  */
205
205
  reloadSkills(): Promise<readonly Skill[]>;
206
206
  /** System-prompt files (AGENTS.md by default) that resolved on disk. */
@@ -252,8 +252,8 @@ export class Session {
252
252
  return this.runner.getSkills();
253
253
  }
254
254
  /**
255
- * Re-discover skills from disk so newly installed ones show up in the
256
- * autocomplete catalog without restarting the session.
255
+ * Re-discover skills and refresh the runner's curated file memory so disk
256
+ * changes reach the next turn without restarting the session.
257
257
  */
258
258
  reloadSkills() {
259
259
  return this.runner.reloadSkills();
@@ -1 +1 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/train/archive.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAW9D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAY5E;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED;yEACyE;AACzE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAO9F;AA+BD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgBjF"}
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/train/archive.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgB9D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAY5E;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED;yEACyE;AACzE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAO9F;AA+BD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgBjF"}
@@ -8,6 +8,11 @@ import path, { dirname, join } from "node:path";
8
8
  * up together when the user prunes the memory.
9
9
  */
10
10
  function archiveRootForMemoryId(memoryId) {
11
+ // Defense in depth behind the codec's frontmatter validation: this path is
12
+ // fed to a recursive delete, so a traversal id must never leave the root.
13
+ if (!/^[A-Za-z0-9_-]+$/.test(memoryId)) {
14
+ throw new Error(`Archive memory id must be a safe path segment: ${memoryId}`);
15
+ }
11
16
  return join(homedir(), ".duet", "train", memoryId);
12
17
  }
13
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/train/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIhD;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAwB;IACzD,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB;IAClD,MAAM,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED;yEACyE;AACzE,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,OAAe;IAChE,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACxD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC5D,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,OAAe,EAAE,GAAa;IAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE3B,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/train/archive.ts"],"names":[],"mappings":"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"}
@@ -15,17 +15,16 @@ export interface SynthesisResult {
15
15
  observationContent: string;
16
16
  }
17
17
  /**
18
- * One training as surfaced by `duet train list` / `show`. The DB row is the
19
- * source of truth for which trainings are live (replace-by-slug keeps one row
20
- * per slug); the archive manifest enriches it with headline/model/provenance
21
- * and may be absent if the archive was removed out of band.
18
+ * One curated memory as surfaced by `duet train list` / `show`. File stores
19
+ * and legacy DBs project into this common shape; the archive manifest enriches
20
+ * trained entries with private corpus provenance and may be absent.
22
21
  */
23
22
  export interface TrainListEntry {
24
- /** Slug parsed from the `train:<slug>` tag; the stable training identity. */
23
+ /** Filename stem or `train:<slug>` tag; the stable source-local identity. */
25
24
  slug: string;
26
- /** Observation row id; also the archive folder name under ~/.duet/train/. */
25
+ /** Stable memory id; also the archive folder name for trained entries. */
27
26
  memoryId: string;
28
- /** Unix ms the row was written; lists are sorted newest-first by this. */
27
+ /** Unix ms the memory was written; merged lists sort newest-first by this. */
29
28
  createdAt: number;
30
29
  /** YYYY-MM-DD the training was recorded. */
31
30
  observedDate: string;
@@ -39,6 +38,8 @@ export interface TrainListEntry {
39
38
  fileCount?: number;
40
39
  /** False when the manifest could not be read (archive deleted/moved). */
41
40
  hasArchive: boolean;
41
+ /** Absolute file-store directory that supplied this entry; absent for legacy DB rows. */
42
+ store?: string;
42
43
  }
43
44
  /** A {@link TrainListEntry} plus the full synthesized observation text and
44
45
  * archive contents, as returned by a single-row lookup (`duet train show` /
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/train/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;iBAEiB;AACjB,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB;;+DAE2D;IAC3D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;CAClE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/train/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,UAAU,EAAE,OAAO,CAAC;IACpB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;iBAEiB;AACjB,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB;;+DAE2D;IAC3D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;CAClE"}
@@ -213,13 +213,13 @@ export interface RecallMemoryToolStorage {
213
213
  }
214
214
  /** Lazy runtime inputs and router actions used by the parent-only advisor tool. */
215
215
  export interface AskAdvisorToolStorage {
216
- /** Captures the executor's resolved prompt, tools, and LLM-compatible messages at call time. */
217
- getContext: () => Promise<AdvisorExecutorContext>;
216
+ /** Captures and policy-bounds executor context for the resolved advisor's hard window. */
217
+ getContext: (contextWindowTokens: number) => Promise<AdvisorExecutorContext>;
218
218
  /** Resolves the advisor identity and hard model window lazily at tool execution. */
219
219
  resolveModel: () => {
220
220
  /** Gateway-native `provider/model` identifier passed to the shared gateway. */
221
221
  modelName: string;
222
- /** Advertised input-plus-output context window used as the only transcript ceiling. */
222
+ /** Advertised input-plus-output context window used as the final safety ceiling. */
223
223
  contextWindowTokens: number;
224
224
  /** Whether this concrete provider model accepts image request parts. */
225
225
  acceptsImages: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/tools.ts"],"names":[],"mappings":"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"}
@@ -368,7 +368,7 @@ export function createAskAdvisorTool(storage) {
368
368
  }
369
369
  try {
370
370
  const advisorContext = buildAdvisorContext({
371
- context: await storage.getContext(),
371
+ context: await storage.getContext(resolvedModel.contextWindowTokens),
372
372
  contextWindowTokens: resolvedModel.contextWindowTokens,
373
373
  reservedOutputTokens: ADVISOR_MAX_OUTPUT_TOKENS,
374
374
  });