@duetso/agent 0.2.6 → 0.3.1

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 (221) hide show
  1. package/README.md +29 -16
  2. package/dist/package.json +8 -3
  3. package/dist/src/cli/auto-upgrade.d.ts.map +1 -1
  4. package/dist/src/cli/auto-upgrade.js +7 -54
  5. package/dist/src/cli/auto-upgrade.js.map +1 -1
  6. package/dist/src/cli/connect.d.ts +45 -0
  7. package/dist/src/cli/connect.d.ts.map +1 -0
  8. package/dist/src/cli/connect.js +265 -0
  9. package/dist/src/cli/connect.js.map +1 -0
  10. package/dist/src/cli/help.d.ts +1 -0
  11. package/dist/src/cli/help.d.ts.map +1 -1
  12. package/dist/src/cli/help.js +66 -32
  13. package/dist/src/cli/help.js.map +1 -1
  14. package/dist/src/cli/memory-add.d.ts +18 -13
  15. package/dist/src/cli/memory-add.d.ts.map +1 -1
  16. package/dist/src/cli/memory-add.js +91 -32
  17. package/dist/src/cli/memory-add.js.map +1 -1
  18. package/dist/src/cli/memory-recall.d.ts.map +1 -1
  19. package/dist/src/cli/memory-recall.js +3 -0
  20. package/dist/src/cli/memory-recall.js.map +1 -1
  21. package/dist/src/cli/memory-sources.d.ts +20 -0
  22. package/dist/src/cli/memory-sources.d.ts.map +1 -0
  23. package/dist/src/cli/memory-sources.js +40 -0
  24. package/dist/src/cli/memory-sources.js.map +1 -0
  25. package/dist/src/cli/model.d.ts +5 -0
  26. package/dist/src/cli/model.d.ts.map +1 -1
  27. package/dist/src/cli/model.js +43 -0
  28. package/dist/src/cli/model.js.map +1 -1
  29. package/dist/src/cli/route.d.ts +12 -0
  30. package/dist/src/cli/route.d.ts.map +1 -1
  31. package/dist/src/cli/route.js +39 -9
  32. package/dist/src/cli/route.js.map +1 -1
  33. package/dist/src/cli/rpc.d.ts +3 -2
  34. package/dist/src/cli/rpc.d.ts.map +1 -1
  35. package/dist/src/cli/rpc.js +3 -2
  36. package/dist/src/cli/rpc.js.map +1 -1
  37. package/dist/src/cli/run.d.ts +1 -0
  38. package/dist/src/cli/run.d.ts.map +1 -1
  39. package/dist/src/cli/run.js +1 -0
  40. package/dist/src/cli/run.js.map +1 -1
  41. package/dist/src/cli/shared.d.ts +11 -0
  42. package/dist/src/cli/shared.d.ts.map +1 -1
  43. package/dist/src/cli/shared.js +31 -0
  44. package/dist/src/cli/shared.js.map +1 -1
  45. package/dist/src/cli/train.d.ts +31 -7
  46. package/dist/src/cli/train.d.ts.map +1 -1
  47. package/dist/src/cli/train.js +233 -79
  48. package/dist/src/cli/train.js.map +1 -1
  49. package/dist/src/cli.d.ts +3 -1
  50. package/dist/src/cli.d.ts.map +1 -1
  51. package/dist/src/cli.js +9 -1
  52. package/dist/src/cli.js.map +1 -1
  53. package/dist/src/connected-providers/billing.d.ts +6 -0
  54. package/dist/src/connected-providers/billing.d.ts.map +1 -0
  55. package/dist/src/connected-providers/billing.js +11 -0
  56. package/dist/src/connected-providers/billing.js.map +1 -0
  57. package/dist/src/connected-providers/capability-probe.d.ts +17 -0
  58. package/dist/src/connected-providers/capability-probe.d.ts.map +1 -0
  59. package/dist/src/connected-providers/capability-probe.js +92 -0
  60. package/dist/src/connected-providers/capability-probe.js.map +1 -0
  61. package/dist/src/connected-providers/fake-issuer.d.ts +61 -0
  62. package/dist/src/connected-providers/fake-issuer.d.ts.map +1 -0
  63. package/dist/src/connected-providers/fake-issuer.js +161 -0
  64. package/dist/src/connected-providers/fake-issuer.js.map +1 -0
  65. package/dist/src/connected-providers/fallback-notice.d.ts +11 -0
  66. package/dist/src/connected-providers/fallback-notice.d.ts.map +1 -0
  67. package/dist/src/connected-providers/fallback-notice.js +20 -0
  68. package/dist/src/connected-providers/fallback-notice.js.map +1 -0
  69. package/dist/src/connected-providers/fallback.d.ts +11 -0
  70. package/dist/src/connected-providers/fallback.d.ts.map +1 -0
  71. package/dist/src/connected-providers/fallback.js +37 -0
  72. package/dist/src/connected-providers/fallback.js.map +1 -0
  73. package/dist/src/connected-providers/refresh.d.ts +12 -0
  74. package/dist/src/connected-providers/refresh.d.ts.map +1 -0
  75. package/dist/src/connected-providers/refresh.js +72 -0
  76. package/dist/src/connected-providers/refresh.js.map +1 -0
  77. package/dist/src/connected-providers/registry.d.ts +17 -0
  78. package/dist/src/connected-providers/registry.d.ts.map +1 -0
  79. package/dist/src/connected-providers/registry.js +30 -0
  80. package/dist/src/connected-providers/registry.js.map +1 -0
  81. package/dist/src/connected-providers/store.d.ts +41 -0
  82. package/dist/src/connected-providers/store.d.ts.map +1 -0
  83. package/dist/src/connected-providers/store.js +145 -0
  84. package/dist/src/connected-providers/store.js.map +1 -0
  85. package/dist/src/connected-providers/tokens.d.ts +42 -0
  86. package/dist/src/connected-providers/tokens.d.ts.map +1 -0
  87. package/dist/src/connected-providers/tokens.js +148 -0
  88. package/dist/src/connected-providers/tokens.js.map +1 -0
  89. package/dist/src/connected-providers/transport-preference.d.ts +26 -0
  90. package/dist/src/connected-providers/transport-preference.d.ts.map +1 -0
  91. package/dist/src/connected-providers/transport-preference.js +42 -0
  92. package/dist/src/connected-providers/transport-preference.js.map +1 -0
  93. package/dist/src/core/structured-output.d.ts.map +1 -1
  94. package/dist/src/core/structured-output.js +2 -1
  95. package/dist/src/core/structured-output.js.map +1 -1
  96. package/dist/src/file-lock.d.ts +22 -0
  97. package/dist/src/file-lock.d.ts.map +1 -0
  98. package/dist/src/file-lock.js +69 -0
  99. package/dist/src/file-lock.js.map +1 -0
  100. package/dist/src/memory/context-pack.d.ts +5 -0
  101. package/dist/src/memory/context-pack.d.ts.map +1 -1
  102. package/dist/src/memory/context-pack.js +6 -0
  103. package/dist/src/memory/context-pack.js.map +1 -1
  104. package/dist/src/memory/id.d.ts +3 -0
  105. package/dist/src/memory/id.d.ts.map +1 -0
  106. package/dist/src/memory/id.js +6 -0
  107. package/dist/src/memory/id.js.map +1 -0
  108. package/dist/src/memory/observational-prompts.d.ts +2 -0
  109. package/dist/src/memory/observational-prompts.d.ts.map +1 -1
  110. package/dist/src/memory/observational-prompts.js +4 -2
  111. package/dist/src/memory/observational-prompts.js.map +1 -1
  112. package/dist/src/memory/observational.d.ts +22 -0
  113. package/dist/src/memory/observational.d.ts.map +1 -1
  114. package/dist/src/memory/observational.js +65 -22
  115. package/dist/src/memory/observational.js.map +1 -1
  116. package/dist/src/memory/paths.d.ts +9 -0
  117. package/dist/src/memory/paths.d.ts.map +1 -0
  118. package/dist/src/memory/paths.js +11 -0
  119. package/dist/src/memory/paths.js.map +1 -0
  120. package/dist/src/memory/storage.d.ts.map +1 -1
  121. package/dist/src/memory/storage.js +1 -4
  122. package/dist/src/memory/storage.js.map +1 -1
  123. package/dist/src/memory/store/discovery.d.ts +7 -0
  124. package/dist/src/memory/store/discovery.d.ts.map +1 -0
  125. package/dist/src/memory/store/discovery.js +34 -0
  126. package/dist/src/memory/store/discovery.js.map +1 -0
  127. package/dist/src/memory/store/file.d.ts +52 -0
  128. package/dist/src/memory/store/file.d.ts.map +1 -0
  129. package/dist/src/memory/store/file.js +287 -0
  130. package/dist/src/memory/store/file.js.map +1 -0
  131. package/dist/src/memory/store/index.d.ts +5 -0
  132. package/dist/src/memory/store/index.d.ts.map +1 -0
  133. package/dist/src/memory/store/index.js +5 -0
  134. package/dist/src/memory/store/index.js.map +1 -0
  135. package/dist/src/memory/store/pack.d.ts +25 -0
  136. package/dist/src/memory/store/pack.d.ts.map +1 -0
  137. package/dist/src/memory/store/pack.js +71 -0
  138. package/dist/src/memory/store/pack.js.map +1 -0
  139. package/dist/src/memory/store/sources.d.ts +55 -0
  140. package/dist/src/memory/store/sources.d.ts.map +1 -0
  141. package/dist/src/memory/store/sources.js +85 -0
  142. package/dist/src/memory/store/sources.js.map +1 -0
  143. package/dist/src/memory/store/store.d.ts +46 -0
  144. package/dist/src/memory/store/store.d.ts.map +1 -0
  145. package/dist/src/memory/store/store.js +171 -0
  146. package/dist/src/memory/store/store.js.map +1 -0
  147. package/dist/src/memory/store.d.ts +19 -16
  148. package/dist/src/memory/store.d.ts.map +1 -1
  149. package/dist/src/memory/store.js +14 -11
  150. package/dist/src/memory/store.js.map +1 -1
  151. package/dist/src/memory-store.js +554 -0
  152. package/dist/src/model-resolution/catalog.d.ts +24 -10
  153. package/dist/src/model-resolution/catalog.d.ts.map +1 -1
  154. package/dist/src/model-resolution/catalog.js +61 -36
  155. package/dist/src/model-resolution/catalog.js.map +1 -1
  156. package/dist/src/model-resolution/duet-gateway.d.ts +2 -0
  157. package/dist/src/model-resolution/duet-gateway.d.ts.map +1 -1
  158. package/dist/src/model-resolution/duet-gateway.js +57 -4
  159. package/dist/src/model-resolution/duet-gateway.js.map +1 -1
  160. package/dist/src/model-resolution/resolver.d.ts +17 -0
  161. package/dist/src/model-resolution/resolver.d.ts.map +1 -1
  162. package/dist/src/model-resolution/resolver.js +49 -4
  163. package/dist/src/model-resolution/resolver.js.map +1 -1
  164. package/dist/src/model-routing/advisor-context.d.ts +31 -5
  165. package/dist/src/model-routing/advisor-context.d.ts.map +1 -1
  166. package/dist/src/model-routing/advisor-context.js +87 -10
  167. package/dist/src/model-routing/advisor-context.js.map +1 -1
  168. package/dist/src/model-routing/advisor-lifecycle.d.ts +14 -5
  169. package/dist/src/model-routing/advisor-lifecycle.d.ts.map +1 -1
  170. package/dist/src/model-routing/advisor-lifecycle.js +24 -7
  171. package/dist/src/model-routing/advisor-lifecycle.js.map +1 -1
  172. package/dist/src/model-routing/prompts.d.ts.map +1 -1
  173. package/dist/src/model-routing/prompts.js +18 -10
  174. package/dist/src/model-routing/prompts.js.map +1 -1
  175. package/dist/src/model-routing/table.js +18 -18
  176. package/dist/src/model-routing/table.js.map +1 -1
  177. package/dist/src/session/session-manager.d.ts +1 -4
  178. package/dist/src/session/session-manager.d.ts.map +1 -1
  179. package/dist/src/session/session-manager.js +2 -5
  180. package/dist/src/session/session-manager.js.map +1 -1
  181. package/dist/src/session/session.d.ts +2 -2
  182. package/dist/src/session/session.d.ts.map +1 -1
  183. package/dist/src/session/session.js +10 -7
  184. package/dist/src/session/session.js.map +1 -1
  185. package/dist/src/train/archive.d.ts.map +1 -1
  186. package/dist/src/train/archive.js +5 -0
  187. package/dist/src/train/archive.js.map +1 -1
  188. package/dist/src/train/types.d.ts +8 -7
  189. package/dist/src/train/types.d.ts.map +1 -1
  190. package/dist/src/tui/sidebar.d.ts.map +1 -1
  191. package/dist/src/tui/sidebar.js +40 -1
  192. package/dist/src/tui/sidebar.js.map +1 -1
  193. package/dist/src/turn-runner/agent-events.d.ts +2 -0
  194. package/dist/src/turn-runner/agent-events.d.ts.map +1 -1
  195. package/dist/src/turn-runner/agent-events.js +11 -0
  196. package/dist/src/turn-runner/agent-events.js.map +1 -1
  197. package/dist/src/turn-runner/subagent.d.ts +4 -1
  198. package/dist/src/turn-runner/subagent.d.ts.map +1 -1
  199. package/dist/src/turn-runner/subagent.js +11 -3
  200. package/dist/src/turn-runner/subagent.js.map +1 -1
  201. package/dist/src/turn-runner/tools.d.ts +3 -3
  202. package/dist/src/turn-runner/tools.d.ts.map +1 -1
  203. package/dist/src/turn-runner/tools.js +1 -1
  204. package/dist/src/turn-runner/tools.js.map +1 -1
  205. package/dist/src/turn-runner/turn-runner.d.ts +19 -3
  206. package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
  207. package/dist/src/turn-runner/turn-runner.js +162 -33
  208. package/dist/src/turn-runner/turn-runner.js.map +1 -1
  209. package/dist/src/turn-runner/usage-accounting.d.ts +5 -2
  210. package/dist/src/turn-runner/usage-accounting.d.ts.map +1 -1
  211. package/dist/src/turn-runner/usage-accounting.js +18 -6
  212. package/dist/src/turn-runner/usage-accounting.js.map +1 -1
  213. package/dist/src/turn-runner/wire-shaping.d.ts +3 -1
  214. package/dist/src/turn-runner/wire-shaping.d.ts.map +1 -1
  215. package/dist/src/turn-runner/wire-shaping.js +5 -1
  216. package/dist/src/turn-runner/wire-shaping.js.map +1 -1
  217. package/dist/src/types/config.d.ts +7 -0
  218. package/dist/src/types/config.d.ts.map +1 -1
  219. package/dist/src/types/protocol.d.ts +13 -5
  220. package/dist/src/types/protocol.d.ts.map +1 -1
  221. package/package.json +8 -3
@@ -0,0 +1,265 @@
1
+ import { spawn } from "node:child_process";
2
+ import { createInterface } from "node:readline/promises";
3
+ import { printConnectHelp } from "./help.js";
4
+ import { usageError } from "./shared.js";
5
+ import { probeConnectedProvider, } from "../connected-providers/capability-probe.js";
6
+ import { installFakeIssuerIfConfigured } from "../connected-providers/fake-issuer.js";
7
+ import { connectedProviders, resolveConnectedProviderAlias, } from "../connected-providers/registry.js";
8
+ import { createConnectedProviderStore, } from "../connected-providers/store.js";
9
+ export async function runConnectCommand(args, io = {}) {
10
+ const write = io.write ?? ((text) => process.stdout.write(text));
11
+ const writeError = io.writeError ?? ((text) => process.stderr.write(text));
12
+ const store = io.store ?? createConnectedProviderStore();
13
+ let status = false;
14
+ let json = false;
15
+ let deviceCode = false;
16
+ let noBrowser = false;
17
+ let disconnect;
18
+ let target;
19
+ for (let index = 0; index < args.length; index++) {
20
+ const arg = args[index];
21
+ switch (arg) {
22
+ case "--status":
23
+ status = true;
24
+ break;
25
+ case "--json":
26
+ json = true;
27
+ break;
28
+ case "--device-code":
29
+ deviceCode = true;
30
+ break;
31
+ case "--no-browser":
32
+ noBrowser = true;
33
+ break;
34
+ case "--disconnect": {
35
+ const value = args[++index];
36
+ if (!value || value.startsWith("-"))
37
+ usageError("Missing value for --disconnect");
38
+ disconnect = resolveProvider(value);
39
+ break;
40
+ }
41
+ case "--help":
42
+ case "-h":
43
+ (io.printHelp ?? printConnectHelp)();
44
+ return;
45
+ default:
46
+ if (arg.startsWith("-"))
47
+ usageError(`Unknown connect option: ${arg}`);
48
+ if (target !== undefined)
49
+ usageError(`Unexpected connect argument: ${arg}`);
50
+ target = resolveProvider(arg);
51
+ }
52
+ }
53
+ if (!status && disconnect === undefined && target === undefined) {
54
+ if (json)
55
+ usageError("--json requires --status or a provider");
56
+ (io.printHelp ?? printConnectHelp)();
57
+ return;
58
+ }
59
+ const operationCount = Number(status) + Number(disconnect !== undefined) + Number(target !== undefined);
60
+ if (operationCount > 1)
61
+ usageError("Choose one of provider login, --status, or --disconnect");
62
+ if ((deviceCode || noBrowser) && target === undefined) {
63
+ usageError("--device-code and --no-browser require a provider login");
64
+ }
65
+ if (disconnect !== undefined) {
66
+ const existing = await store.get(disconnect);
67
+ if (!existing)
68
+ usageError(`${providerLabel(disconnect)} is not connected`);
69
+ await store.remove(disconnect);
70
+ if (json)
71
+ writeEvent(write, { type: "complete", provider: disconnect, state: "disconnected" });
72
+ else
73
+ write(`Disconnected ${providerLabel(disconnect)}.\n`);
74
+ return;
75
+ }
76
+ if (status) {
77
+ const connections = await store.read();
78
+ if (json) {
79
+ write(`${JSON.stringify({ connections: connections.map(toStatusJson) })}\n`);
80
+ return;
81
+ }
82
+ if (connections.length === 0) {
83
+ write("No connected providers. Run `duet connect chatgpt`.\n");
84
+ return;
85
+ }
86
+ write(`${connections.map(formatConnection).join("\n")}\n`);
87
+ return;
88
+ }
89
+ if (target !== undefined) {
90
+ await connectProvider(target, {
91
+ ...io,
92
+ store,
93
+ write,
94
+ writeError,
95
+ json,
96
+ // --no-browser only suppresses URL auto-open; it never changes the
97
+ // OAuth flow. Device-code mode is forced by --device-code, machine
98
+ // output, or a non-interactive stdin.
99
+ forceDeviceCode: deviceCode || json || !(io.interactive ?? Boolean(process.stdin.isTTY)),
100
+ noBrowser,
101
+ });
102
+ }
103
+ }
104
+ function resolveProvider(value) {
105
+ return resolveConnectedProviderAlias(value) ?? usageError(`Unknown connected provider: ${value}`);
106
+ }
107
+ function toStatusJson(connection) {
108
+ return {
109
+ provider: connection.provider,
110
+ connectedAt: connection.connectedAt,
111
+ eligibility: connection.eligibility,
112
+ ...(connection.eligibilityCheckedAt === undefined
113
+ ? {}
114
+ : { eligibilityCheckedAt: connection.eligibilityCheckedAt }),
115
+ ...(connection.lastRefreshAt === undefined ? {} : { lastRefreshAt: connection.lastRefreshAt }),
116
+ };
117
+ }
118
+ function formatConnection(connection) {
119
+ const state = connection.eligibility === "plan_ineligible" ? "plan not eligible" : "connected";
120
+ return `${providerLabel(connection.provider)} — ${state}`;
121
+ }
122
+ function providerLabel(provider) {
123
+ return connectedProviders().find(({ id }) => id === provider)?.label ?? provider;
124
+ }
125
+ async function connectProvider(id, options) {
126
+ installFakeIssuerIfConfigured(options.env ?? process.env);
127
+ const entry = connectedProviders().find((candidate) => candidate.id === id);
128
+ if (!entry)
129
+ throw new Error("Connected provider is not registered.");
130
+ const now = options.now ?? (() => Date.now());
131
+ const emit = (event) => writeEvent(options.write, event);
132
+ let credentials;
133
+ try {
134
+ credentials = await entry.oauth().login({
135
+ onAuth: ({ url }) => {
136
+ options.writeError(`Open ${url} to connect ${entry.label}.\n`);
137
+ if (!options.noBrowser)
138
+ openUrl(url, options.openUrl);
139
+ },
140
+ onDeviceCode: ({ userCode, verificationUri, expiresInSeconds }) => {
141
+ if (options.json) {
142
+ emit({
143
+ type: "device_code",
144
+ provider: id,
145
+ verificationUri,
146
+ userCode,
147
+ expiresAt: now() + (expiresInSeconds ?? 900) * 1000,
148
+ });
149
+ }
150
+ else {
151
+ options.writeError(`User code: ${userCode}\nVerification URL: ${verificationUri}\n`);
152
+ }
153
+ if (!options.noBrowser && !options.json)
154
+ openUrl(verificationUri, options.openUrl);
155
+ },
156
+ onPrompt: async ({ message, allowEmpty }) => {
157
+ if (id === "github-copilot" && allowEmpty && !options.prompt)
158
+ return "";
159
+ return (options.prompt ?? promptInput)(message);
160
+ },
161
+ onProgress: () => {
162
+ if (!options.json)
163
+ options.writeError(`Connecting ${entry.label}…\n`);
164
+ },
165
+ onSelect: async () => (options.forceDeviceCode ? "device_code" : "browser"),
166
+ });
167
+ }
168
+ catch (error) {
169
+ const code = loginErrorCode(error);
170
+ if (options.json)
171
+ emit({ type: "error", provider: id, code });
172
+ throw new Error(loginErrorMessage(code));
173
+ }
174
+ if (options.json)
175
+ emit({ type: "progress", provider: id, code: "probing_capability" });
176
+ else
177
+ options.writeError(`Checking ${entry.label} plan eligibility…\n`);
178
+ const result = await runProbe(options.probe ?? probeConnectedProvider, id, credentials);
179
+ const checkedAt = now();
180
+ await options.store.withLock(id, async () => ({
181
+ next: {
182
+ provider: id,
183
+ credentials,
184
+ connectedAt: checkedAt,
185
+ eligibility: result.eligibility,
186
+ eligibilityCheckedAt: checkedAt,
187
+ },
188
+ result: undefined,
189
+ }));
190
+ if (result.eligibility === "unknown") {
191
+ if (options.json)
192
+ emit({ type: "error", provider: id, code: "capability_unknown" });
193
+ throw new Error(`${entry.label} connected, but plan eligibility could not be confirmed.`);
194
+ }
195
+ const state = result.eligibility === "eligible" ? "connected" : "plan_ineligible";
196
+ if (options.json) {
197
+ emit({ type: "complete", provider: id, state });
198
+ return;
199
+ }
200
+ if (result.eligibility === "plan_ineligible") {
201
+ options.write(`Connected ${entry.label} — plan not eligible.\n`);
202
+ return;
203
+ }
204
+ const coverage = result.servedModelIds.length
205
+ ? ` — plan covers ${result.servedModelIds.join(", ")}`
206
+ : "";
207
+ options.write(`Connected ${entry.label}${coverage}.\n`);
208
+ }
209
+ async function runProbe(probe, id, credentials) {
210
+ try {
211
+ return await probe(id, credentials);
212
+ }
213
+ catch {
214
+ return {
215
+ eligibility: "unknown",
216
+ servedModelIds: [],
217
+ detail: "Capability probe request failed.",
218
+ };
219
+ }
220
+ }
221
+ function writeEvent(write, event) {
222
+ write(`${JSON.stringify(event)}\n`);
223
+ }
224
+ function loginErrorCode(error) {
225
+ const message = error instanceof Error ? error.message.toLowerCase() : "";
226
+ if (message.includes("denied"))
227
+ return "login_denied";
228
+ if (message.includes("expired") || message.includes("timed out"))
229
+ return "login_expired";
230
+ if (message.includes("cancel"))
231
+ return "login_cancelled";
232
+ return "login_failed";
233
+ }
234
+ function loginErrorMessage(code) {
235
+ switch (code) {
236
+ case "login_denied":
237
+ return "Connected-provider login was denied.";
238
+ case "login_expired":
239
+ return "Connected-provider device code expired.";
240
+ case "login_cancelled":
241
+ return "Connected-provider login was cancelled.";
242
+ default:
243
+ return "Connected-provider login failed.";
244
+ }
245
+ }
246
+ function openUrl(url, override) {
247
+ if (override) {
248
+ override(url);
249
+ return;
250
+ }
251
+ const command = process.platform === "darwin" ? "open" : process.platform === "win32" ? "explorer" : "xdg-open";
252
+ const child = spawn(command, [url], { detached: true, stdio: "ignore" });
253
+ child.on("error", () => undefined);
254
+ child.unref();
255
+ }
256
+ async function promptInput(message) {
257
+ const terminal = createInterface({ input: process.stdin, output: process.stderr });
258
+ try {
259
+ return await terminal.question(`${message} `);
260
+ }
261
+ finally {
262
+ terminal.close();
263
+ }
264
+ }
265
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/cli/connect.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  export declare const DEFAULT_RESUME_HISTORY_MESSAGES = 5;
8
8
  export declare function printRunHelp(packageName: string): void;
9
9
  export declare function printLoginHelp(): void;
10
+ export declare function printConnectHelp(): void;
10
11
  export declare function printEnvHelp(): void;
11
12
  export declare function printSkillsHelp(): void;
12
13
  export declare function printMemoryHelp(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA6FtD;AAED,wBAAgB,cAAc,IAAI,IAAI,CAqBrC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAsBnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAqBtC;AAED,wBAAgB,eAAe,IAAI,IAAI,CA4DtC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CA8BzC;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAwC5C;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAuC7C;AAED,wBAAgB,cAAc,IAAI,IAAI,CAsCrC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAgErC;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAiB5C;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAe1D"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA+FtD;AAED,wBAAgB,cAAc,IAAI,IAAI,CAqBrC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAiBvC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAsBnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAqBtC;AAED,wBAAgB,eAAe,IAAI,IAAI,CA4DtC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAgCzC;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CA0C5C;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAuC7C;AAED,wBAAgB,cAAc,IAAI,IAAI,CAsCrC;AAED,wBAAgB,cAAc,IAAI,IAAI,CA0ErC;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAiB5C;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAe1D"}
@@ -13,6 +13,7 @@ duet — An opinionated full-stack agent runner
13
13
  USAGE
14
14
  duet [options] [prompt]
15
15
  duet login --workspace <slug> [--no-browser]
16
+ duet connect [--status [--json] | --disconnect <provider>]
16
17
  duet env [--env-file <path>] [--import [path]|--keys]
17
18
  duet skills [--workdir <path>]
18
19
  duet memory [--db <path>] [--json] [filters]
@@ -23,6 +24,7 @@ USAGE
23
24
 
24
25
  COMMANDS
25
26
  login Sign in via device flow; saves a workspace-scoped DUET_API_KEY (recommended)
27
+ connect Show or remove connected ChatGPT and GitHub Copilot subscriptions
26
28
  env Manually create or update the shared duet env file with provider API keys
27
29
  skills List installed skills + collisions as JSON
28
30
  memory Browse memories in a TUI, or query them with --json/filters (alias: memories)
@@ -68,7 +70,7 @@ INTERACTIVE
68
70
  MODELS
69
71
  The default is the routed frontier tier. Use frontier, balanced, or economy
70
72
  to select a routing policy, or a concrete shorthand to bypass routing and pin.
71
- Concrete names include opus-4.8, sonnet-4.6, haiku-4.5, and gpt-5.5.
73
+ Concrete names include opus, sonnet, haiku, and sol (versionless families), or versioned forms like opus-4.8.
72
74
  They map to the first configured router that supports that model.
73
75
  Full provider:modelId syntax is also supported, e.g. duet:anthropic/claude-opus-4.8.
74
76
  --provider pins that provider's concrete default; the memory model remains concrete.
@@ -80,7 +82,7 @@ MODELS
80
82
 
81
83
  EXAMPLES
82
84
  duet "build a REST API with Express and TypeScript"
83
- duet -m gpt-5.5 "analyze the performance of our test suite"
85
+ duet -m sol "analyze the performance of our test suite"
84
86
  duet --memory-model sonnet-4.6 "summarize this repo"
85
87
  duet --provider openrouter "explain this codebase"
86
88
  duet --provider duet "refactor the auth module"
@@ -93,7 +95,7 @@ EXAMPLES
93
95
  duet login --workspace acme
94
96
  duet env
95
97
  duet memory
96
- duet model -m openai/gpt-5.5 "write a haiku about gateways"
98
+ duet model -m openai/gpt-5.6-sol "write a haiku about gateways"
97
99
  duet model -m black-forest-labs/flux-1.1-pro -o art.png "a fox in snow"
98
100
  duet train ./docs/my-project
99
101
  duet send-feedback "the TUI flickers when..."
@@ -122,6 +124,24 @@ OVERRIDES
122
124
  login. Model traffic uses DUET_GATEWAY_BASE_URL.
123
125
  `);
124
126
  }
127
+ export function printConnectHelp() {
128
+ console.log(`
129
+ duet connect — Manage connected model-provider subscriptions
130
+
131
+ USAGE
132
+ duet connect <chatgpt|copilot> [--device-code] [--no-browser] [--json]
133
+ duet connect --status [--json]
134
+ duet connect --disconnect <chatgpt|copilot> [--json]
135
+
136
+ OPTIONS
137
+ --device-code Force device-code login (the only VM-valid mode)
138
+ --no-browser Do not open the verification URI automatically
139
+ --status List connected providers
140
+ --json Stream login/disconnect events as NDJSON; status stays an envelope
141
+ --disconnect <provider> Remove stored credentials for chatgpt or copilot
142
+ -h, --help Show this help
143
+ `);
144
+ }
125
145
  export function printEnvHelp() {
126
146
  console.log(`
127
147
  duet env — Create or update a shared duet env file
@@ -233,14 +253,14 @@ export function printMemoryAddHelp() {
233
253
  duet memory add — Write a single user-added note memory
234
254
 
235
255
  USAGE
236
- duet memory add [options] <content>
237
- echo "<content>" | duet memory add [options]
256
+ duet memory add [options] [--store <folder> | --db <file>] <content>
257
+ echo "<content>" | duet memory add [options] [--store <folder> | --db <file>]
238
258
 
239
259
  DESCRIPTION
240
- Stores a note memory into the same ~/.duet/memory.db the runner reads, so
241
- it surfaces in the next session. Notes get a small ranking bump above
242
- reflections (far below a 'duet train' corpus) and stay eligible for
243
- 'duet memory reflect' compaction, folding like any observation once aged.
260
+ Stores a note in exactly one backend. With no backend flag, the note is
261
+ written to the nearest ancestor .agents/memories directory (created on
262
+ demand). --store writes a markdown memory file; --db retains the legacy
263
+ observational-row behavior. Passing more than one backend is a usage error.
244
264
 
245
265
  Content comes from the positional arguments, or from stdin when none are
246
266
  given so longer memories can be piped in.
@@ -251,9 +271,11 @@ OPTIONS
251
271
  --session <id> Stamp the row's authoring session; omit to leave it
252
272
  global/unattributed
253
273
  --tag <tag> Attach a label; repeat to add several
254
- --db <path> Memory database path (default: ~/.duet/memory.db)
255
- --json Emit the stored memory as one canonical JSON object
256
- (with packScore) instead of the confirmation line
274
+ --store <folder> Memory-file directory to write
275
+ --db <file> PGlite file to write instead of a memory store
276
+ --json Emit the stored memory as JSON instead of the
277
+ confirmation line (DB rows include packScore;
278
+ file rows include slug + store provenance)
257
279
  --wait <seconds> Seconds to wait for the cross-process open-lock
258
280
  (default: 30; 0 fails immediately)
259
281
  -h, --help Show this help
@@ -295,6 +317,8 @@ OPTIONS
295
317
  --json Emit a bare JSON array of canonical memory objects
296
318
  (best-first) with packScore + relevanceScore
297
319
  --db <path> Memory database path (default: ~/.duet/memory.db)
320
+ This command is DB-only; --store is rejected because
321
+ store memories are already loaded into agent context
298
322
  --wait <seconds> Seconds to wait for the cross-process open-lock
299
323
  (default: 30; 0 fails immediately)
300
324
  -h, --help Show this help
@@ -356,7 +380,7 @@ DESCRIPTION
356
380
  generations write files and print each path. Auth uses DUET_API_KEY.
357
381
 
358
382
  OPTIONS
359
- -m, --model <name> Gateway model id, e.g. openai/gpt-5.5 (required)
383
+ -m, --model <name> Gateway model id, e.g. openai/gpt-5.6-sol (required)
360
384
  --type text|image|video Override the catalog-inferred request type
361
385
  --image <path> Input image: vision context (text), edit source
362
386
  (image), or still to animate (video)
@@ -373,7 +397,7 @@ OPTIONS
373
397
  -h, --help Show this help
374
398
 
375
399
  EXAMPLES
376
- duet model -m openai/gpt-5.5 "write a haiku about gateways"
400
+ duet model -m openai/gpt-5.6-sol "write a haiku about gateways"
377
401
  duet model -m bfl/flux-pro-1.1 -o art.png "a fox in snow"
378
402
  duet model -m google/gemini-2.5-flash-image --type image --image src.png "add a hat"
379
403
  duet model -m bytedance/seedance-2.0 --type video -o clip.mp4 "slow pan over dunes"
@@ -384,11 +408,13 @@ export function printTrainHelp() {
384
408
  duet train — Ingest a project corpus into one durable memory observation
385
409
 
386
410
  USAGE
387
- duet train <folder> [--slug <name>] [--model <name>] [--db <path>] [--wait <seconds>]
388
- duet train list [--db <path>] [--json] [--wait <seconds>]
389
- duet train show <slug> [--db <path>] [--json] [--wait <seconds>]
390
- duet train update <slug> --content-file <path> [--db <path>] [--json] [--wait <seconds>]
391
- duet train delete <slug> [--db <path>] [--json] [--wait <seconds>]
411
+ duet train <folder> [--slug <name>] [--model <name>]
412
+ [--store <folder> | --db <file>] [--wait <seconds>]
413
+ duet train list [--store <folder>]... [--db <file>]... [--json] [--wait <seconds>]
414
+ duet train show <slug> [--store <folder>]... [--db <file>]... [--json] [--wait <seconds>]
415
+ duet train update <slug> --content-file <path>
416
+ [--store <folder>]... [--db <file>]... [--json] [--wait <seconds>]
417
+ duet train delete <slug> [--store <folder>]... [--db <file>]... [--json] [--wait <seconds>]
392
418
 
393
419
  DESCRIPTION
394
420
  Launches a duet agent with the corpus folder as its working directory.
@@ -399,15 +425,23 @@ DESCRIPTION
399
425
 
400
426
  .duet-train.json — structured handoff with headline + observation.
401
427
 
402
- 'train' then persists the synthesis into ~/.duet/memory.db as a manual
403
- (user-curated) row (tagged 'train' and 'train:<slug>'), archives the
404
- corpus under ~/.duet/train/<memory-id>/, removes the handoff file, and
405
- prints the observation content to stdout so what you see is what landed
406
- in memory.
428
+ 'train' then persists the synthesis into exactly one backend and archives
429
+ the corpus under ~/.duet/train/<memory-id>/. With no backend flag it writes
430
+ a markdown file under the nearest ancestor .agents/memories directory,
431
+ creating that directory when needed. --db retains the legacy manual-row
432
+ behavior. Passing more than one backend to create is a usage error.
433
+
434
+ Reads accept repeatable --store and --db flags. Any explicit backend flags
435
+ replace discovery; stores are consulted in flag order before DBs. Without
436
+ flags, reads union inherited stores from cwd toward the filesystem root,
437
+ then ~/.duet/memory.db. Duplicate slugs resolve to the first source, while
438
+ surviving entries are listed newest-first. show/update/delete use that same
439
+ first-source precedence.
407
440
 
408
441
  The management subcommands all key on the user-facing <slug> (resolved
409
442
  to the underlying row internally):
410
- list — every training (one row per slug), joined to its archive
443
+ list — every visible store entry or DB training (one row per slug),
444
+ joined to its archive
411
445
  manifest to show slug, headline, model, file count, date,
412
446
  and memory id.
413
447
  show — the same metadata plus the full synthesized observation text
@@ -419,17 +453,17 @@ DESCRIPTION
419
453
  delete — permanently remove the row and its corpus archive.
420
454
  Pass --json to any of them for machine-readable output.
421
455
 
422
- Subsequent runs against the same slug replace the prior row in place,
423
- so the memory pool does not bloat. Writing the row as a manual row
424
- earns it a ranking boost in the memory pack (via manualBias) and exempts
425
- it from 'duet memory reflect' compaction; deleting it via 'duet memory'
426
- also removes its archive. Note: train loads the corpus folder's .env (for provider
427
- credentials), so check folders you did not author before training.
456
+ Subsequent runs against the same slug replace the prior target entry, so
457
+ the memory pool does not bloat. On --db, the legacy manual row keeps its
458
+ ranking boost and reflection exemption. Note: train loads the corpus
459
+ folder's .env (for provider credentials), so check folders you did not
460
+ author before training.
428
461
 
429
462
  OPTIONS
430
463
  --slug <name> Override the corpus slug (default: sanitized folder basename)
431
464
  --model <name> Model used by the synthesis sub-agent (default: same resolution as 'duet run')
432
- --db <path> Memory database path (default: ~/.duet/memory.db)
465
+ --store <folder> Memory-file directory; repeat on read/manage commands
466
+ --db <file> PGlite path; repeat on read/manage commands
433
467
  --wait <seconds> Seconds to wait for the cross-process open-lock
434
468
  (default: 30; 0 fails immediately)
435
469
  -h, --help Show this help
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAEjD,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;gDAuBkC,WAAW;;;;;;;;;;;;;gHAaqD,+BAA+B;;;;;oFAK3D,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDxG,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;wEAY0D,qBAAqB;;;;;;;CAO5F,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;yDAa2C,qBAAqB;;;;;;IAM1E,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;CAChC,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Db,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Db,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAeb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,CAAC,GAAG,CAAC;oCACsB,WAAW;;;;;;;;;;;;CAY9C,CAAC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAEjD,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;gDAyBkC,WAAW;;;;;;;;;;;;;gHAaqD,+BAA+B;;;;;oFAK3D,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDxG,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;wEAY0D,qBAAqB;;;;;;;CAO5F,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAeb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;yDAa2C,qBAAqB;;;;;;IAM1E,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;CAChC,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Db,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Bb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAeb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,CAAC,GAAG,CAAC;oCACsB,WAAW;;;;;;;;;;;;CAY9C,CAAC,CAAC;AACH,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import { type EmbedFn } from "../memory/embedding.js";
2
+ import { type MemorySourceFlags } from "../memory/store/sources.js";
2
3
  import type { ObservationPriority, ObservationSource } from "../types/memory.js";
3
4
  type SourceKind = ObservationSource["kind"];
4
5
  interface AddCommandOptions {
6
+ /** Explicit backend flags; empty means flagless store discovery. */
7
+ sourceFlags: MemorySourceFlags;
8
+ /** Compatibility projection for callers that inspect a single selected DB. */
5
9
  dbPath: string;
6
10
  /** Positional content joined with spaces; empty when the caller pipes via stdin instead. */
7
11
  content: string;
@@ -11,7 +15,7 @@ interface AddCommandOptions {
11
15
  tags: string[];
12
16
  /** Session that authored the row; omitted leaves the row global/unattributed. */
13
17
  sessionId?: string;
14
- /** Emit one canonical memory JSON object instead of the human line. */
18
+ /** Emit the selected backend's JSON record instead of the human line. */
15
19
  json: boolean;
16
20
  waitBudgetMs?: number;
17
21
  }
@@ -20,6 +24,8 @@ interface AddCommandIO {
20
24
  stdin: NodeJS.ReadableStream & {
21
25
  isTTY?: boolean;
22
26
  };
27
+ /** Working directory used for relative paths and flagless source discovery. */
28
+ cwd?: string;
23
29
  /**
24
30
  * Embedding client for the synchronous insert-time embed. Defaults to
25
31
  * the Duet endpoint client; tests inject a stub (or a throwing one) to
@@ -28,21 +34,20 @@ interface AddCommandIO {
28
34
  embed?: EmbedFn;
29
35
  }
30
36
  /**
31
- * Run `duet memory add` — write a single user-added note row into the same
32
- * `~/.duet/memory.db` the runner reads from, so it surfaces in the next
33
- * session. Stored as `kind: "note"` with no `sessionId`, so it lands in the
34
- * cross-session global pack with a small `noteBias` bump (above reflections,
35
- * far below a `duet train` corpus) and stays eligible for `duet memory
36
- * reflect` compaction, folding like any other observation once aged.
37
+ * Run `duet memory add` — write one curated note to a memory-file store or
38
+ * the legacy observational DB. Flagless writes create the nearest agent's
39
+ * `.agents/memories` directory. DB notes retain their ranking, reflection,
40
+ * session-attribution, and synchronous-embedding behavior; file notes retain
41
+ * priority/source/tags in frontmatter and are loaded through store context.
37
42
  *
38
43
  * Content comes from the positional arguments, or from stdin when none are
39
44
  * given so callers can pipe longer text (`echo "…" | duet memory add`).
40
45
  *
41
- * The embedding is written synchronously alongside the row (no backfill
42
- * worker runs in this one-shot process), so `duet memory recall` and the
43
- * next session's `recall_memory` reach it semantically right away. When
44
- * embeddings are unavailable the add still succeeds and the next runner's
45
- * backfill pass embeds the row.
46
+ * For DB targets, the embedding is written synchronously alongside the row
47
+ * (no backfill worker runs in this one-shot process), so `duet memory recall`
48
+ * and the next session's `recall_memory` reach it semantically right away.
49
+ * When embeddings are unavailable the add still succeeds and the next
50
+ * runner's backfill pass embeds the row.
46
51
  */
47
52
  export declare function runMemoryAddCommand(args: string[], io?: AddCommandIO): Promise<void>;
48
53
  /**
@@ -50,6 +55,6 @@ export declare function runMemoryAddCommand(args: string[], io?: AddCommandIO):
50
55
  * when `--help` was handled. Pure (no I/O) so it can be unit-tested; stdin
51
56
  * fallback for empty content happens later in {@link resolveContent}.
52
57
  */
53
- export declare function parseMemoryAddArgs(args: string[]): AddCommandOptions | undefined;
58
+ export declare function parseMemoryAddArgs(args: string[], cwd?: string): AddCommandOptions | undefined;
54
59
  export {};
55
60
  //# sourceMappingURL=memory-add.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-add.d.ts","sourceRoot":"","sources":["../../../src/cli/memory-add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAG7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAOjF,KAAK,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAE5C,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,yEAAyE;IACzE,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACnD;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,GAAE,YAA+D,GAClE,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,GAAG,SAAS,CA+DhF"}
1
+ {"version":3,"file":"memory-add.d.ts","sourceRoot":"","sources":["../../../src/cli/memory-add.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAG7E,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAYjF,KAAK,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAE5C,UAAU,iBAAiB;IACzB,oEAAoE;IACpE,WAAW,EAAE,iBAAiB,CAAC;IAC/B,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,yEAAyE;IACzE,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACnD,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,GAAE,YAA+D,GAClE,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAsB,GAC1B,iBAAiB,GAAG,SAAS,CAiE/B"}