@mono-agent/agent-app 0.6.0 → 0.6.2

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 (57) hide show
  1. package/README.md +7 -3
  2. package/dist/adapter-send-tools.d.ts +9 -3
  3. package/dist/adapter-send-tools.d.ts.map +1 -1
  4. package/dist/adapter-send-tools.js +133 -76
  5. package/dist/adapter-send-tools.js.map +1 -1
  6. package/dist/app.js +9 -4
  7. package/dist/app.js.map +1 -1
  8. package/dist/channels.d.ts.map +1 -1
  9. package/dist/channels.js +2 -1
  10. package/dist/channels.js.map +1 -1
  11. package/dist/cli.d.ts +15 -0
  12. package/dist/cli.d.ts.map +1 -1
  13. package/dist/cli.js +102 -7
  14. package/dist/cli.js.map +1 -1
  15. package/dist/config-reference.js +2 -2
  16. package/dist/config-reference.js.map +1 -1
  17. package/dist/doctor.d.ts.map +1 -1
  18. package/dist/doctor.js +12 -3
  19. package/dist/doctor.js.map +1 -1
  20. package/dist/interaction-bridge.d.ts +7 -1
  21. package/dist/interaction-bridge.d.ts.map +1 -1
  22. package/dist/interaction-bridge.js +34 -15
  23. package/dist/interaction-bridge.js.map +1 -1
  24. package/dist/modules/base.d.ts +2 -2
  25. package/dist/modules/base.d.ts.map +1 -1
  26. package/dist/modules/base.js +4 -3
  27. package/dist/modules/base.js.map +1 -1
  28. package/dist/provider-setup.d.ts +60 -0
  29. package/dist/provider-setup.d.ts.map +1 -0
  30. package/dist/provider-setup.js +237 -0
  31. package/dist/provider-setup.js.map +1 -0
  32. package/dist/wizard/answers.d.ts +2 -0
  33. package/dist/wizard/answers.d.ts.map +1 -1
  34. package/dist/wizard/answers.js +16 -3
  35. package/dist/wizard/answers.js.map +1 -1
  36. package/dist/wizard/from-flags.d.ts +1 -0
  37. package/dist/wizard/from-flags.d.ts.map +1 -1
  38. package/dist/wizard/from-flags.js +1 -0
  39. package/dist/wizard/from-flags.js.map +1 -1
  40. package/dist/wizard/model-discovery.d.ts +39 -0
  41. package/dist/wizard/model-discovery.d.ts.map +1 -0
  42. package/dist/wizard/model-discovery.js +346 -0
  43. package/dist/wizard/model-discovery.js.map +1 -0
  44. package/dist/wizard/prompts.d.ts +14 -3
  45. package/dist/wizard/prompts.d.ts.map +1 -1
  46. package/dist/wizard/prompts.js +37 -8
  47. package/dist/wizard/prompts.js.map +1 -1
  48. package/dist/wizard/run.d.ts +2 -0
  49. package/dist/wizard/run.d.ts.map +1 -1
  50. package/dist/wizard/run.js +129 -26
  51. package/dist/wizard/run.js.map +1 -1
  52. package/package.json +16 -16
  53. package/schema/mono-agent.config.schema.json +2 -2
  54. package/skills/mono-agent-composer/SKILL.md +3 -3
  55. package/skills/mono-agent-composer/references/discovery-questions.md +5 -4
  56. package/skills/mono-agent-composer/references/feature-coverage.md +3 -3
  57. package/skills/mono-agent-composer/references/package-map.md +2 -1
@@ -0,0 +1,346 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { execFile as execFileCallback } from "node:child_process";
5
+ import { promisify } from "node:util";
6
+ const execFile = promisify(execFileCallback);
7
+ const DEFAULT_DISCOVERY_TIMEOUT_MS = 1200;
8
+ const PI_OPENAI_CODEX_PROVIDER = "openai-codex";
9
+ const PI_OPENAI_CODEX = "pi:openai-codex:gpt-5.5";
10
+ const DIRECT_CODEX = "codex:gpt-5.5";
11
+ export const STATIC_MODEL_CANDIDATES = [
12
+ {
13
+ value: PI_OPENAI_CODEX,
14
+ label: "Pi OpenAI-Codex GPT-5.5",
15
+ hint: "default; auth setup available",
16
+ source: "pi",
17
+ setupRequired: true,
18
+ defaultEffort: "medium",
19
+ },
20
+ { value: DIRECT_CODEX, label: "Codex GPT-5.5", source: "codex", defaultEffort: "medium" },
21
+ { value: "claude:claude-sonnet-4-6", label: "Claude Sonnet 4.6", source: "claude", defaultEffort: "medium" },
22
+ { value: "pi:ollama:llama3.1:8b", label: "Ollama llama3.1:8b", hint: "fully local", source: "ollama", defaultEffort: "none" },
23
+ ];
24
+ export async function discoverWizardModelCandidates(opts = {}) {
25
+ const timeoutMs = opts.timeoutMs ?? DEFAULT_DISCOVERY_TIMEOUT_MS;
26
+ const [pi, opencode, ollama, lmstudio] = await Promise.all([
27
+ discoverPiOpenAiCodex({ ...opts, timeoutMs }),
28
+ discoverOpenCodeModels({ ...opts, timeoutMs }),
29
+ discoverOllamaModels({ ...opts, timeoutMs }),
30
+ discoverLmStudioModels({ ...opts, timeoutMs }),
31
+ ]);
32
+ return {
33
+ candidates: rankWizardModelCandidates([
34
+ ...STATIC_MODEL_CANDIDATES,
35
+ ...pi.candidates,
36
+ ...opencode.candidates,
37
+ ...ollama.candidates,
38
+ ...lmstudio.candidates,
39
+ ]),
40
+ statuses: [pi.status, opencode.status, ollama.status, lmstudio.status],
41
+ };
42
+ }
43
+ export function rankWizardModelCandidates(candidates) {
44
+ const byValue = new Map();
45
+ for (const candidate of candidates) {
46
+ const existing = byValue.get(candidate.value);
47
+ byValue.set(candidate.value, existing === undefined ? candidate : mergeCandidate(existing, candidate));
48
+ }
49
+ return [...byValue.values()].sort((a, b) => rank(a) - rank(b) || a.label.localeCompare(b.label));
50
+ }
51
+ export function formatModelDiscoveryStatus(statuses) {
52
+ return statuses.map((status) => `${status.provider}: ${status.detail}`).join("\n");
53
+ }
54
+ export function defaultEffortForModelRef(modelRef, reasoning) {
55
+ if (reasoning === true) {
56
+ return "medium";
57
+ }
58
+ if (reasoning === false) {
59
+ return "none";
60
+ }
61
+ if (modelRef.startsWith("claude:") || modelRef.startsWith("codex:") || modelRef.startsWith("pi:openai-codex:")) {
62
+ return "medium";
63
+ }
64
+ if (!modelRef.startsWith("pi:")) {
65
+ return undefined;
66
+ }
67
+ const [, provider, ...modelParts] = modelRef.split(":");
68
+ const model = modelParts.join(":");
69
+ if (provider === "opencode-go" || provider === "ollama" || provider === "lmstudio") {
70
+ return localModelDefaultEffort(model);
71
+ }
72
+ return undefined;
73
+ }
74
+ async function discoverPiOpenAiCodex(opts) {
75
+ const read = opts.readFile ?? readFile;
76
+ const authPath = opts.piAuthPath ?? join(homedir(), ".pi", "agent", "auth.json");
77
+ try {
78
+ const auth = parseJsonObject(await read(authPath, "utf8"));
79
+ const providers = readPiAuthProviderMap(auth);
80
+ if (providers[PI_OPENAI_CODEX_PROVIDER] !== undefined) {
81
+ return {
82
+ candidates: [piOpenAiCodexCandidate("authenticated")],
83
+ status: { provider: "Pi", status: "detected", detail: "OpenAI-Codex credentials found" },
84
+ };
85
+ }
86
+ return {
87
+ candidates: [piOpenAiCodexCandidate("setup-required")],
88
+ status: { provider: "Pi", status: "setup_available", detail: "OpenAI-Codex credentials not found; auth setup available" },
89
+ };
90
+ }
91
+ catch (error) {
92
+ if (isMissingFileError(error)) {
93
+ return {
94
+ candidates: [piOpenAiCodexCandidate("setup-required")],
95
+ status: { provider: "Pi", status: "setup_available", detail: "auth store not found; OpenAI-Codex auth setup available" },
96
+ };
97
+ }
98
+ return { candidates: [], status: { provider: "Pi", status: "unavailable", detail: "auth store unreadable" } };
99
+ }
100
+ }
101
+ function readPiAuthProviderMap(auth) {
102
+ const nestedProviders = parseJsonObject(auth.providers);
103
+ return { ...nestedProviders, ...auth };
104
+ }
105
+ async function discoverOpenCodeModels(opts) {
106
+ const run = opts.execFile ?? execFile;
107
+ try {
108
+ const { stdout } = await run("opencode", ["models", "--json"], { timeout: opts.timeoutMs });
109
+ const models = parseModelEntries(stdout);
110
+ return {
111
+ candidates: models.map((model) => {
112
+ const value = model.id.startsWith("pi:") ? model.id : `pi:opencode-go:${model.id}`;
113
+ const defaultEffort = defaultEffortForModelRef(value, model.reasoning);
114
+ return {
115
+ value,
116
+ label: `OpenCode ${displayModelName(model.id)}`,
117
+ hint: "discovered from opencode",
118
+ source: "opencode",
119
+ discovered: true,
120
+ ...(defaultEffort === undefined ? {} : { defaultEffort }),
121
+ };
122
+ }),
123
+ status: models.length > 0
124
+ ? { provider: "OpenCode", status: "detected", detail: `${models.length} model(s) found` }
125
+ : { provider: "OpenCode", status: "unavailable", detail: "no models returned" },
126
+ };
127
+ }
128
+ catch {
129
+ return { candidates: [], status: { provider: "OpenCode", status: "unavailable", detail: "`opencode models --json` unavailable" } };
130
+ }
131
+ }
132
+ async function discoverOllamaModels(opts) {
133
+ const run = opts.execFile ?? execFile;
134
+ try {
135
+ const { stdout } = await run("ollama", ["list"], { timeout: opts.timeoutMs });
136
+ const models = parseOllamaList(stdout);
137
+ return {
138
+ candidates: models.map((model) => {
139
+ const value = `pi:ollama:${model}`;
140
+ return {
141
+ value,
142
+ label: `Ollama ${model}`,
143
+ hint: "discovered locally",
144
+ source: "ollama",
145
+ discovered: true,
146
+ defaultEffort: defaultEffortForModelRef(value) ?? "none",
147
+ };
148
+ }),
149
+ status: models.length > 0
150
+ ? { provider: "Ollama", status: "detected", detail: `${models.length} model(s) found` }
151
+ : { provider: "Ollama", status: "unavailable", detail: "no local models returned" },
152
+ };
153
+ }
154
+ catch {
155
+ return { candidates: [], status: { provider: "Ollama", status: "unavailable", detail: "`ollama list` unavailable" } };
156
+ }
157
+ }
158
+ async function discoverLmStudioModels(opts) {
159
+ const fetchImpl = opts.fetch ?? fetch;
160
+ const controller = new AbortController();
161
+ const timer = setTimeout(() => controller.abort(), opts.timeoutMs);
162
+ try {
163
+ const response = await fetchImpl("http://localhost:1234/v1/models", { signal: controller.signal });
164
+ if (!response.ok) {
165
+ return { candidates: [], status: { provider: "LM Studio", status: "unavailable", detail: "server did not return models" } };
166
+ }
167
+ const body = await response.json();
168
+ const models = parseOpenAiModelEntriesBody(body);
169
+ return {
170
+ candidates: models.map((model) => {
171
+ const value = `pi:lmstudio:${model.id}`;
172
+ return {
173
+ value,
174
+ label: `LM Studio ${model.id}`,
175
+ hint: "discovered locally",
176
+ source: "lmstudio",
177
+ discovered: true,
178
+ defaultEffort: defaultEffortForModelRef(value, model.reasoning) ?? "none",
179
+ };
180
+ }),
181
+ status: models.length > 0
182
+ ? { provider: "LM Studio", status: "detected", detail: `${models.length} model(s) found` }
183
+ : { provider: "LM Studio", status: "unavailable", detail: "no models returned" },
184
+ };
185
+ }
186
+ catch {
187
+ return { candidates: [], status: { provider: "LM Studio", status: "unavailable", detail: "local server unavailable" } };
188
+ }
189
+ finally {
190
+ clearTimeout(timer);
191
+ }
192
+ }
193
+ function mergeCandidate(left, right) {
194
+ const { setupRequired: leftSetupRequired, defaultEffort: leftDefaultEffort, ...leftRest } = left;
195
+ const { setupRequired: rightSetupRequired, defaultEffort: rightDefaultEffort, ...rightRest } = right;
196
+ const hint = right.discovered === true ? right.hint ?? left.hint : left.hint ?? right.hint;
197
+ const discovered = left.discovered === true || right.discovered === true;
198
+ const defaultEffort = rightDefaultEffort ?? leftDefaultEffort;
199
+ return {
200
+ ...leftRest,
201
+ ...rightRest,
202
+ ...(hint === undefined ? {} : { hint }),
203
+ ...(defaultEffort === undefined ? {} : { defaultEffort }),
204
+ discovered,
205
+ ...(discovered || !(leftSetupRequired === true || rightSetupRequired === true) ? {} : { setupRequired: true }),
206
+ };
207
+ }
208
+ function rank(candidate) {
209
+ if (candidate.value === PI_OPENAI_CODEX) {
210
+ return 0;
211
+ }
212
+ if (candidate.value === DIRECT_CODEX) {
213
+ return 10;
214
+ }
215
+ if (candidate.value === "claude:claude-sonnet-4-6") {
216
+ return 20;
217
+ }
218
+ if (candidate.source === "opencode") {
219
+ return 30;
220
+ }
221
+ if (candidate.source === "ollama") {
222
+ return candidate.discovered === true ? 40 : 45;
223
+ }
224
+ if (candidate.source === "lmstudio") {
225
+ return 50;
226
+ }
227
+ return 90;
228
+ }
229
+ function piOpenAiCodexCandidate(state) {
230
+ return {
231
+ value: PI_OPENAI_CODEX,
232
+ label: "Pi OpenAI-Codex GPT-5.5",
233
+ hint: state === "authenticated"
234
+ ? "recommended when Pi auth is configured"
235
+ : "auth setup available",
236
+ source: "pi",
237
+ defaultEffort: "medium",
238
+ ...(state === "authenticated" ? { discovered: true } : { setupRequired: true }),
239
+ };
240
+ }
241
+ function parseOllamaList(stdout) {
242
+ const lines = stdout.trim().split(/\r?\n/u).filter(Boolean);
243
+ if (lines.length === 0) {
244
+ return [];
245
+ }
246
+ return lines
247
+ .slice(lines[0]?.toLowerCase().startsWith("name") ? 1 : 0)
248
+ .map((line) => line.trim().split(/\s+/u)[0])
249
+ .filter((name) => name !== undefined && name.length > 0);
250
+ }
251
+ function parseModelEntries(stdout) {
252
+ try {
253
+ const parsed = JSON.parse(stdout);
254
+ if (Array.isArray(parsed)) {
255
+ return parsed.map(modelEntryFromUnknown).filter(isModelEntry);
256
+ }
257
+ if (isRecord(parsed)) {
258
+ for (const key of ["models", "data"]) {
259
+ const value = parsed[key];
260
+ if (Array.isArray(value)) {
261
+ return value.map(modelEntryFromUnknown).filter(isModelEntry);
262
+ }
263
+ }
264
+ }
265
+ }
266
+ catch {
267
+ // Fall through to tolerant line parsing.
268
+ }
269
+ return stdout
270
+ .split(/\r?\n/u)
271
+ .map((line) => line.trim().split(/\s+/u)[0])
272
+ .filter(isNonEmptyString)
273
+ .map((id) => ({ id }));
274
+ }
275
+ function parseOpenAiModelEntriesBody(body) {
276
+ if (!isRecord(body) || !Array.isArray(body.data)) {
277
+ return [];
278
+ }
279
+ return body.data.map(modelEntryFromUnknown).filter(isModelEntry);
280
+ }
281
+ function modelEntryFromUnknown(value) {
282
+ if (typeof value === "string") {
283
+ return { id: value };
284
+ }
285
+ if (!isRecord(value)) {
286
+ return undefined;
287
+ }
288
+ const raw = value.id ?? value.name ?? value.model;
289
+ if (typeof raw !== "string" || raw.length === 0) {
290
+ return undefined;
291
+ }
292
+ const reasoning = readReasoningCapability(value);
293
+ return {
294
+ id: raw,
295
+ ...(reasoning === undefined ? {} : { reasoning }),
296
+ };
297
+ }
298
+ function displayModelName(model) {
299
+ return model.startsWith("pi:") ? model.split(":").slice(2).join(":") : model;
300
+ }
301
+ function parseJsonObject(value) {
302
+ const parsed = typeof value === "string" ? JSON.parse(value) : value;
303
+ return isRecord(parsed) ? parsed : {};
304
+ }
305
+ function readReasoningCapability(value) {
306
+ for (const field of ["reasoning", "supportsReasoning", "supports_reasoning", "thinking", "supportsThinking", "supports_thinking"]) {
307
+ const result = booleanCapability(value[field]);
308
+ if (result !== undefined) {
309
+ return result;
310
+ }
311
+ }
312
+ for (const field of ["capabilities", "features"]) {
313
+ const nested = value[field];
314
+ const result = Array.isArray(nested) ? arrayCapability(nested) : isRecord(nested) ? readReasoningCapability(nested) : undefined;
315
+ if (result !== undefined) {
316
+ return result;
317
+ }
318
+ }
319
+ return undefined;
320
+ }
321
+ function booleanCapability(value) {
322
+ return typeof value === "boolean" ? value : undefined;
323
+ }
324
+ function arrayCapability(value) {
325
+ return value.some((entry) => typeof entry === "string" && /^(reasoning|thinking)$/iu.test(entry)) ? true : undefined;
326
+ }
327
+ function localModelDefaultEffort(model) {
328
+ const normalized = model.toLowerCase();
329
+ return ["gpt-oss", "qwen3", "qwq", "deepseek-r1", "reasoning", "thinking"].some((token) => normalized.includes(token))
330
+ || /(?:^|[-_:/.\s])o[1345](?:$|[-_:/.\s])/u.test(normalized)
331
+ ? "medium"
332
+ : "none";
333
+ }
334
+ function isMissingFileError(error) {
335
+ return isRecord(error) && (error.code === "ENOENT" || error.code === "ENOTDIR");
336
+ }
337
+ function isRecord(value) {
338
+ return typeof value === "object" && value !== null && !Array.isArray(value);
339
+ }
340
+ function isNonEmptyString(value) {
341
+ return value !== undefined && value.length > 0;
342
+ }
343
+ function isModelEntry(value) {
344
+ return value !== undefined;
345
+ }
346
+ //# sourceMappingURL=model-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-discovery.js","sourceRoot":"","sources":["../../src/wizard/model-discovery.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import type { EffortLevel } from "@mono-agent/config";
2
+ import { type WizardModelCandidate } from "./model-discovery.js";
1
3
  /**
2
4
  * One `@clack/prompts` `select`/`multiselect` option. `value` is the machine key
3
5
  * the wizard maps back onto {@link WizardAnswers}; `label`/`hint` are display-only.
@@ -32,10 +34,19 @@ export declare function channelSelectOptions(): WizardSelectOption[];
32
34
  */
33
35
  export declare function memorySelectOptions(): WizardSelectOption[];
34
36
  /**
35
- * A short curated model menu plus an `__other__` escape hatch that prompts for a
36
- * free-form `provider:model` reference.
37
+ * A discovered/ranked model menu plus explicit escape hatches for Pi provider
38
+ * refs and generic full model refs.
37
39
  */
38
- export declare function modelSelectOptions(): WizardSelectOption[];
40
+ export declare function modelSelectOptions(candidates?: readonly WizardModelCandidate[]): WizardSelectOption[];
41
+ /**
42
+ * Fallback model choices use the same labels/hints as the primary model picker,
43
+ * but hide the chosen primary and fallbacks already added to the chain. The Pi
44
+ * and generic custom-reference escape hatches remain available; `Done` finishes
45
+ * the ordered fallback chain.
46
+ */
47
+ export declare function fallbackModelSelectOptions(candidates: readonly WizardModelCandidate[] | undefined, primaryModel: string, selectedFallbacks?: readonly string[]): WizardSelectOption[];
48
+ /** Reasoning-effort choices. Empty value means no `runtime.effort` is written. */
49
+ export declare function effortSelectOptions(derivedEffort?: EffortLevel): WizardSelectOption[];
39
50
  /**
40
51
  * The "choose specific" tools multiselect: all eight built-ins first (with per-tool
41
52
  * hints), then the adapter send tools contributed by the selected channels (deduped,
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/wizard/prompts.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;;CAKzC;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAK7C;AAqCD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,kBAAkB,EAAE,CAM3D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,kBAAkB,EAAE,CAS1D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,EAAE,CAOzD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB,EAAE,CA0BlG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,kBAAkB,EAAE,CAS1D"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/wizard/prompts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG1F;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;;CAKzC;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAK7C;AAqCD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,kBAAkB,EAAE,CAM3D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,kBAAkB,EAAE,CAS1D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,GAAE,SAAS,oBAAoB,EAA4B,GAAG,kBAAkB,EAAE,CAU9H;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,SAAS,oBAAoB,EAAE,YAA0B,EACrE,YAAY,EAAE,MAAM,EACpB,iBAAiB,GAAE,SAAS,MAAM,EAAO,GACxC,kBAAkB,EAAE,CAMtB;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,aAAa,CAAC,EAAE,WAAW,GAAG,kBAAkB,EAAE,CASrF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB,EAAE,CA0BlG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,kBAAkB,EAAE,CAS1D"}
@@ -1,6 +1,8 @@
1
1
  import * as p from "@clack/prompts";
2
+ import { EFFORT_LEVELS } from "@mono-agent/config";
2
3
  import { findModule, modulesByKind } from "../modules/catalog.js";
3
4
  import { ADAPTER_SEND_TOOL_NAMES, BUILTIN_TOOL_NAMES } from "../modules/known-tools.js";
5
+ import { STATIC_MODEL_CANDIDATES } from "./model-discovery.js";
4
6
  import { PRESET_CATALOG } from "./presets.js";
5
7
  /**
6
8
  * Thrown when a clack prompt returns its cancel symbol (Ctrl-C / Esc). The wizard
@@ -43,7 +45,7 @@ const ADAPTER_SEND_TOOL_SET = new Set(ADAPTER_SEND_TOOL_NAMES);
43
45
  const ADAPTER_SEND_TOOL_ACTIONS = {
44
46
  SlackSendMessage: "proactive send",
45
47
  TelegramSendMessage: "proactive send",
46
- TelegramAskButtons: "ask via tappable buttons, non-blocking",
48
+ TelegramAskButtons: "ask via tappable buttons, blocking",
47
49
  TelegramSendFile: "send a document or photo",
48
50
  };
49
51
  /**
@@ -81,15 +83,42 @@ export function memorySelectOptions() {
81
83
  ];
82
84
  }
83
85
  /**
84
- * A short curated model menu plus an `__other__` escape hatch that prompts for a
85
- * free-form `provider:model` reference.
86
+ * A discovered/ranked model menu plus explicit escape hatches for Pi provider
87
+ * refs and generic full model refs.
86
88
  */
87
- export function modelSelectOptions() {
89
+ export function modelSelectOptions(candidates = STATIC_MODEL_CANDIDATES) {
88
90
  return [
89
- { value: "claude:claude-sonnet-4-6", label: "Claude Sonnet 4.6", hint: "default" },
90
- { value: "codex:gpt-5.5", label: "Codex GPT-5.5" },
91
- { value: "pi:ollama:llama3.1:8b", label: "Ollama llama3.1:8b", hint: "fully local" },
92
- { value: "__other__", label: "Other…", hint: "type a provider:model reference" },
91
+ ...candidates.map((candidate) => ({
92
+ value: candidate.value,
93
+ label: candidate.label,
94
+ ...(candidate.hint === undefined ? {} : { hint: candidate.hint }),
95
+ })),
96
+ { value: "__pi_other__", label: "Other Pi model…", hint: "choose provider and model id" },
97
+ { value: "__other__", label: "Other model ref…", hint: "type a full sdk:model reference" },
98
+ ];
99
+ }
100
+ /**
101
+ * Fallback model choices use the same labels/hints as the primary model picker,
102
+ * but hide the chosen primary and fallbacks already added to the chain. The Pi
103
+ * and generic custom-reference escape hatches remain available; `Done` finishes
104
+ * the ordered fallback chain.
105
+ */
106
+ export function fallbackModelSelectOptions(candidates = STATIC_MODEL_CANDIDATES, primaryModel, selectedFallbacks = []) {
107
+ const excluded = new Set([primaryModel, ...selectedFallbacks]);
108
+ return [
109
+ ...modelSelectOptions(candidates).filter((option) => option.value === "__other__" || !excluded.has(option.value)),
110
+ { value: "__done__", label: "Done", hint: "finish fallback chain" },
111
+ ];
112
+ }
113
+ /** Reasoning-effort choices. Empty value means no `runtime.effort` is written. */
114
+ export function effortSelectOptions(derivedEffort) {
115
+ return [
116
+ { value: "", label: "Default", hint: "leave runtime.effort unset" },
117
+ ...EFFORT_LEVELS.map((level) => ({
118
+ value: level,
119
+ label: level === derivedEffort ? `${level} (derived)` : level,
120
+ ...(level === derivedEffort ? { hint: "derived from selected model" } : {}),
121
+ })),
93
122
  ];
94
123
  }
95
124
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/wizard/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/wizard/prompts.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import { type WizardAnswers } from "./answers.js";
3
3
  export type WizardOutcome = {
4
4
  readonly status: "answers";
5
5
  readonly answers: WizardAnswers;
6
+ readonly runProviderSetup: boolean;
7
+ readonly providerSetupSecrets: Readonly<Record<string, string>>;
6
8
  } | {
7
9
  readonly status: "cancelled";
8
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/wizard/run.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAYtB,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAqBrC;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAWhF"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/wizard/run.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAoBtB,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GACrB;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjE,GACD;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AA4BrC;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAgBhF"}