@goah/cli 0.11.5 → 0.13.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.
- package/dist/LICENSE +201 -0
- package/dist/THIRD-PARTY-NOTICES.md +2319 -0
- package/dist/anthropic-messages-WBFOHES5.js +7214 -0
- package/dist/azure-openai-responses-NZFH3PO6.js +253 -0
- package/dist/chunk-25XSBFX6.js +639 -0
- package/dist/chunk-2QBQZGXF.js +110 -0
- package/dist/chunk-2ZP2NBW3.js +345 -0
- package/dist/chunk-4KA63VNZ.js +2 -0
- package/dist/chunk-4M6TXTT5.js +86 -0
- package/dist/chunk-4US7ZHT3.js +20 -0
- package/dist/chunk-6M3OOCKO.js +11809 -0
- package/dist/chunk-7AXAFDPG.js +17 -0
- package/dist/chunk-BXA47DTF.js +548 -0
- package/dist/chunk-FSBUS2BI.js +26 -0
- package/dist/chunk-GKDRAHLI.js +4787 -0
- package/dist/chunk-H462EFJP.js +89 -0
- package/dist/chunk-IIJQ3DW4.js +35 -0
- package/dist/chunk-JQD5EWJY.js +34 -0
- package/dist/chunk-K26BVR6O.js +61 -0
- package/dist/chunk-KAO7WIXG.js +31 -0
- package/dist/chunk-LBKI23CC.js +9810 -0
- package/dist/chunk-LKBKZEHT.js +41 -0
- package/dist/chunk-MD7TLTXZ.js +18 -0
- package/dist/chunk-MPXK7QBL.js +868 -0
- package/dist/chunk-NRLGWZJC.js +11 -0
- package/dist/chunk-PFEV3HWI.js +1178 -0
- package/dist/chunk-QBD6EJ2Z.js +1746 -0
- package/dist/chunk-R6I3VKME.js +132 -0
- package/dist/chunk-TJON22J4.js +87 -0
- package/dist/chunk-ULY36ME4.js +33097 -0
- package/dist/chunk-VWEV4LTH.js +25 -0
- package/dist/chunk-X7UWW2PN.js +883 -0
- package/dist/chunk-XALZLRYK.js +9221 -0
- package/dist/chunk-XPQKM3L7.js +57 -0
- package/dist/chunk-YH6YJ2IB.js +1773 -0
- package/dist/cli.d.ts +0 -2
- package/dist/cli.js +13148 -506
- package/dist/console/assets/index-3sYrDMmt.css +1 -0
- package/dist/console/assets/index-B1vGMXKr.js +52 -0
- package/dist/console/assets/index-B1vGMXKr.js.map +1 -0
- package/dist/console/index.html +2 -2
- package/dist/dist-65MDQA4Q.js +1126 -0
- package/dist/dist-KNR2XL6J.js +39 -0
- package/dist/execution.d.ts +557 -2
- package/dist/execution.js +37 -2
- package/dist/faux-runner-worker.js +128 -0
- package/dist/google-generative-ai-YMHXZSFE.js +422 -0
- package/dist/google-vertex-X6DB3ZQ6.js +471 -0
- package/dist/index.d.ts +855 -44
- package/dist/index.js +84 -257
- package/dist/kernel.d.ts +39 -2
- package/dist/kernel.js +21 -2
- package/dist/mistral-conversations-TY3MMD6G.js +718 -0
- package/dist/multipart-parser-F6M4NJZU.js +373 -0
- package/dist/openai-codex-responses-BRDUMLN5.js +1374 -0
- package/dist/openai-completions-CX634XN3.js +1139 -0
- package/dist/openai-responses-HMCXJIHT.js +300 -0
- package/dist/openrouter-images-KTWET2H2.js +148 -0
- package/dist/pi-messages-XL5OEC4K.js +307 -0
- package/dist/pi-worker.js +671 -0
- package/dist/runner-pi.d.ts +342 -2
- package/dist/runner-pi.js +46 -2
- package/dist/runner-registry-M776E3SE.js +22 -0
- package/dist/sqlite.d.ts +446 -2
- package/dist/sqlite.js +15 -2
- package/dist/src-F2KBSV4T.js +1398 -0
- package/dist/supervisor.d.ts +625 -2
- package/dist/supervisor.js +39 -2
- package/dist/testkit.d.ts +564 -2
- package/dist/testkit.js +127 -2
- package/dist/transcript.d.ts +84 -0
- package/dist/transcript.js +25 -0
- package/dist/verification-worker.js +72 -0
- package/package.json +3 -28
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/console/assets/index-BJTGvlCH.js +0 -52
- package/dist/console/assets/index-BJTGvlCH.js.map +0 -1
- package/dist/console/assets/index-msBn41Cl.css +0 -1
- package/dist/control.d.ts +0 -106
- package/dist/control.d.ts.map +0 -1
- package/dist/control.js +0 -215
- package/dist/control.js.map +0 -1
- package/dist/execution.d.ts.map +0 -1
- package/dist/execution.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/inspect.d.ts +0 -61
- package/dist/inspect.d.ts.map +0 -1
- package/dist/inspect.js +0 -110
- package/dist/inspect.js.map +0 -1
- package/dist/kernel.d.ts.map +0 -1
- package/dist/kernel.js.map +0 -1
- package/dist/live-config.d.ts +0 -10
- package/dist/live-config.d.ts.map +0 -1
- package/dist/live-config.js +0 -44
- package/dist/live-config.js.map +0 -1
- package/dist/metrics.d.ts +0 -2
- package/dist/metrics.d.ts.map +0 -1
- package/dist/metrics.js +0 -2
- package/dist/metrics.js.map +0 -1
- package/dist/prompt-queue.d.ts +0 -13
- package/dist/prompt-queue.d.ts.map +0 -1
- package/dist/prompt-queue.js +0 -30
- package/dist/prompt-queue.js.map +0 -1
- package/dist/runner-pi.d.ts.map +0 -1
- package/dist/runner-pi.js.map +0 -1
- package/dist/runner-registry.d.ts +0 -8
- package/dist/runner-registry.d.ts.map +0 -1
- package/dist/runner-registry.js +0 -12
- package/dist/runner-registry.js.map +0 -1
- package/dist/searchable-select.d.ts +0 -24
- package/dist/searchable-select.d.ts.map +0 -1
- package/dist/searchable-select.js +0 -61
- package/dist/searchable-select.js.map +0 -1
- package/dist/secret-input.d.ts +0 -8
- package/dist/secret-input.d.ts.map +0 -1
- package/dist/secret-input.js +0 -14
- package/dist/secret-input.js.map +0 -1
- package/dist/session.d.ts +0 -2
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -2
- package/dist/session.js.map +0 -1
- package/dist/setup-wizard.d.ts +0 -11
- package/dist/setup-wizard.d.ts.map +0 -1
- package/dist/setup-wizard.js +0 -130
- package/dist/setup-wizard.js.map +0 -1
- package/dist/sqlite.d.ts.map +0 -1
- package/dist/sqlite.js.map +0 -1
- package/dist/supervisor.d.ts.map +0 -1
- package/dist/supervisor.js.map +0 -1
- package/dist/testkit.d.ts.map +0 -1
- package/dist/testkit.js.map +0 -1
- package/dist/tui-theme.d.ts +0 -16
- package/dist/tui-theme.d.ts.map +0 -1
- package/dist/tui-theme.js +0 -18
- package/dist/tui-theme.js.map +0 -1
- package/dist/tui.d.ts +0 -18
- package/dist/tui.d.ts.map +0 -1
- package/dist/tui.js +0 -583
- package/dist/tui.js.map +0 -1
- package/dist/update.d.ts +0 -15
- package/dist/update.d.ts.map +0 -1
- package/dist/update.js +0 -59
- package/dist/update.js.map +0 -1
- package/dist/web-console.d.ts +0 -33
- package/dist/web-console.d.ts.map +0 -1
- package/dist/web-console.js +0 -252
- package/dist/web-console.js.map +0 -1
- package/dist/welcome.d.ts +0 -30
- package/dist/welcome.d.ts.map +0 -1
- package/dist/welcome.js +0 -81
- package/dist/welcome.js.map +0 -1
- package/node_modules/goah-ledger-contract/dist/execution.d.ts +0 -402
- package/node_modules/goah-ledger-contract/dist/execution.d.ts.map +0 -1
- package/node_modules/goah-ledger-contract/dist/execution.js +0 -40
- package/node_modules/goah-ledger-contract/dist/execution.js.map +0 -1
- package/node_modules/goah-ledger-contract/dist/index.d.ts +0 -5
- package/node_modules/goah-ledger-contract/dist/index.d.ts.map +0 -1
- package/node_modules/goah-ledger-contract/dist/index.js +0 -5
- package/node_modules/goah-ledger-contract/dist/index.js.map +0 -1
- package/node_modules/goah-ledger-contract/dist/kernel.d.ts +0 -37
- package/node_modules/goah-ledger-contract/dist/kernel.d.ts.map +0 -1
- package/node_modules/goah-ledger-contract/dist/kernel.js +0 -8
- package/node_modules/goah-ledger-contract/dist/kernel.js.map +0 -1
- package/node_modules/goah-ledger-contract/dist/metrics.d.ts +0 -40
- package/node_modules/goah-ledger-contract/dist/metrics.d.ts.map +0 -1
- package/node_modules/goah-ledger-contract/dist/metrics.js +0 -25
- package/node_modules/goah-ledger-contract/dist/metrics.js.map +0 -1
- package/node_modules/goah-ledger-contract/dist/session.d.ts +0 -63
- package/node_modules/goah-ledger-contract/dist/session.d.ts.map +0 -1
- package/node_modules/goah-ledger-contract/dist/session.js +0 -115
- package/node_modules/goah-ledger-contract/dist/session.js.map +0 -1
- package/node_modules/goah-ledger-contract/package.json +0 -29
- package/node_modules/goah-ledger-sqlite/dist/index.d.ts +0 -77
- package/node_modules/goah-ledger-sqlite/dist/index.d.ts.map +0 -1
- package/node_modules/goah-ledger-sqlite/dist/index.js +0 -884
- package/node_modules/goah-ledger-sqlite/dist/index.js.map +0 -1
- package/node_modules/goah-ledger-sqlite/package.json +0 -26
- package/node_modules/goah-runner-pi/dist/configurator.d.ts +0 -20
- package/node_modules/goah-runner-pi/dist/configurator.d.ts.map +0 -1
- package/node_modules/goah-runner-pi/dist/configurator.js +0 -267
- package/node_modules/goah-runner-pi/dist/configurator.js.map +0 -1
- package/node_modules/goah-runner-pi/dist/credential-store.d.ts +0 -12
- package/node_modules/goah-runner-pi/dist/credential-store.d.ts.map +0 -1
- package/node_modules/goah-runner-pi/dist/credential-store.js +0 -69
- package/node_modules/goah-runner-pi/dist/credential-store.js.map +0 -1
- package/node_modules/goah-runner-pi/dist/env-spec.d.ts +0 -17
- package/node_modules/goah-runner-pi/dist/env-spec.d.ts.map +0 -1
- package/node_modules/goah-runner-pi/dist/env-spec.js +0 -95
- package/node_modules/goah-runner-pi/dist/env-spec.js.map +0 -1
- package/node_modules/goah-runner-pi/dist/index.d.ts +0 -64
- package/node_modules/goah-runner-pi/dist/index.d.ts.map +0 -1
- package/node_modules/goah-runner-pi/dist/index.js +0 -241
- package/node_modules/goah-runner-pi/dist/index.js.map +0 -1
- package/node_modules/goah-runner-pi/dist/model-provider.d.ts +0 -30
- package/node_modules/goah-runner-pi/dist/model-provider.d.ts.map +0 -1
- package/node_modules/goah-runner-pi/dist/model-provider.js +0 -96
- package/node_modules/goah-runner-pi/dist/model-provider.js.map +0 -1
- package/node_modules/goah-runner-pi/dist/pi-worker.d.ts +0 -29
- package/node_modules/goah-runner-pi/dist/pi-worker.d.ts.map +0 -1
- package/node_modules/goah-runner-pi/dist/pi-worker.js +0 -428
- package/node_modules/goah-runner-pi/dist/pi-worker.js.map +0 -1
- package/node_modules/goah-runner-pi/dist/test-helpers.d.ts +0 -4
- package/node_modules/goah-runner-pi/dist/test-helpers.d.ts.map +0 -1
- package/node_modules/goah-runner-pi/dist/test-helpers.js +0 -11
- package/node_modules/goah-runner-pi/dist/test-helpers.js.map +0 -1
- package/node_modules/goah-runner-pi/dist/verification-worker.d.ts +0 -2
- package/node_modules/goah-runner-pi/dist/verification-worker.d.ts.map +0 -1
- package/node_modules/goah-runner-pi/dist/verification-worker.js +0 -48
- package/node_modules/goah-runner-pi/dist/verification-worker.js.map +0 -1
- package/node_modules/goah-runner-pi/package.json +0 -28
- package/node_modules/goah-supervisor/dist/context-view.d.ts +0 -31
- package/node_modules/goah-supervisor/dist/context-view.d.ts.map +0 -1
- package/node_modules/goah-supervisor/dist/context-view.js +0 -71
- package/node_modules/goah-supervisor/dist/context-view.js.map +0 -1
- package/node_modules/goah-supervisor/dist/index.d.ts +0 -94
- package/node_modules/goah-supervisor/dist/index.d.ts.map +0 -1
- package/node_modules/goah-supervisor/dist/index.js +0 -888
- package/node_modules/goah-supervisor/dist/index.js.map +0 -1
- package/node_modules/goah-supervisor/dist/roles.d.ts +0 -3
- package/node_modules/goah-supervisor/dist/roles.d.ts.map +0 -1
- package/node_modules/goah-supervisor/dist/roles.js +0 -14
- package/node_modules/goah-supervisor/dist/roles.js.map +0 -1
- package/node_modules/goah-supervisor/dist/verification.d.ts +0 -82
- package/node_modules/goah-supervisor/dist/verification.d.ts.map +0 -1
- package/node_modules/goah-supervisor/dist/verification.js +0 -110
- package/node_modules/goah-supervisor/dist/verification.js.map +0 -1
- package/node_modules/goah-supervisor/package.json +0 -26
- package/node_modules/goah-testkit/dist/faux-runner-worker.d.ts +0 -2
- package/node_modules/goah-testkit/dist/faux-runner-worker.d.ts.map +0 -1
- package/node_modules/goah-testkit/dist/faux-runner-worker.js +0 -75
- package/node_modules/goah-testkit/dist/faux-runner-worker.js.map +0 -1
- package/node_modules/goah-testkit/dist/index.d.ts +0 -52
- package/node_modules/goah-testkit/dist/index.d.ts.map +0 -1
- package/node_modules/goah-testkit/dist/index.js +0 -113
- package/node_modules/goah-testkit/dist/index.js.map +0 -1
- package/node_modules/goah-testkit/dist/mock-connector-worker.d.ts +0 -2
- package/node_modules/goah-testkit/dist/mock-connector-worker.d.ts.map +0 -1
- package/node_modules/goah-testkit/dist/mock-connector-worker.js +0 -29
- package/node_modules/goah-testkit/dist/mock-connector-worker.js.map +0 -1
- package/node_modules/goah-testkit/package.json +0 -29
package/dist/inspect.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { homedir } from "node:os";
|
|
2
|
-
import { replaySession, wakeStream } from "goah-ledger-contract";
|
|
3
|
-
export function listSessions(ledger) {
|
|
4
|
-
return ledger.wakes().map((wake) => summarize(ledger, wake)).sort((a, b) => (b.lastSeq ?? 0) - (a.lastSeq ?? 0));
|
|
5
|
-
}
|
|
6
|
-
export function showSession(ledger, wakeId) {
|
|
7
|
-
const wake = requiredWake(ledger, wakeId);
|
|
8
|
-
const events = ledger.eventsForWake(wakeId);
|
|
9
|
-
const replay = replaySession(events);
|
|
10
|
-
const eventTypes = {};
|
|
11
|
-
for (const event of events)
|
|
12
|
-
eventTypes[event.type] = (eventTypes[event.type] ?? 0) + 1;
|
|
13
|
-
return {
|
|
14
|
-
session: summarize(ledger, wake),
|
|
15
|
-
eventTypes,
|
|
16
|
-
replay: { status: replay.status, messageCount: replay.messages.length, openToolCalls: replay.openToolCalls },
|
|
17
|
-
requests: eventTypes["request.prepared"] ?? 0,
|
|
18
|
-
activeContext: contextSnapshot(events),
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export function replayWakeSession(ledger, wakeId) {
|
|
22
|
-
requiredWake(ledger, wakeId);
|
|
23
|
-
return replaySession(ledger.eventsForWake(wakeId));
|
|
24
|
-
}
|
|
25
|
-
export function showSessionContext(ledger, wakeId) {
|
|
26
|
-
requiredWake(ledger, wakeId);
|
|
27
|
-
return contextSnapshot(ledger.eventsForWake(wakeId));
|
|
28
|
-
}
|
|
29
|
-
export function streamEvents(ledger, streamId, fromStreamSeq = 1) {
|
|
30
|
-
if (!streamId.trim())
|
|
31
|
-
throw new Error("--stream is required");
|
|
32
|
-
if (!Number.isInteger(fromStreamSeq) || fromStreamSeq < 1)
|
|
33
|
-
throw new Error("--from must be a positive integer");
|
|
34
|
-
return ledger.readStream(streamId, fromStreamSeq);
|
|
35
|
-
}
|
|
36
|
-
export function exportSession(ledger, wakeId, options = {}) {
|
|
37
|
-
const detail = showSession(ledger, wakeId);
|
|
38
|
-
const value = {
|
|
39
|
-
format: "goah.session-export.v1",
|
|
40
|
-
exportedAt: options.now ?? new Date().toISOString(),
|
|
41
|
-
redacted: !options.raw,
|
|
42
|
-
session: detail.session,
|
|
43
|
-
context: detail.activeContext,
|
|
44
|
-
replay: replaySession(ledger.eventsForWake(wakeId)),
|
|
45
|
-
events: ledger.eventsForWake(wakeId),
|
|
46
|
-
};
|
|
47
|
-
return options.raw ? value : redactValue(value);
|
|
48
|
-
}
|
|
49
|
-
export function redactValue(value, key = "") {
|
|
50
|
-
if (SENSITIVE_KEY.test(key))
|
|
51
|
-
return "[REDACTED]";
|
|
52
|
-
if (Array.isArray(value))
|
|
53
|
-
return value.map((item) => redactValue(item));
|
|
54
|
-
if (value && typeof value === "object")
|
|
55
|
-
return Object.fromEntries(Object.entries(value).map(([childKey, child]) => [childKey, redactValue(child, childKey)]));
|
|
56
|
-
if (typeof value !== "string")
|
|
57
|
-
return value;
|
|
58
|
-
return value
|
|
59
|
-
.replaceAll(homedir(), "<HOME>")
|
|
60
|
-
.replace(/\bBearer\s+[^\s"']+/gi, "Bearer [REDACTED]")
|
|
61
|
-
.replace(/\b(?:sk|ak|key)[-_][A-Za-z0-9_-]{12,}\b/gi, "[REDACTED]")
|
|
62
|
-
.replace(/((?:api[_-]?key|token|secret|password|authorization)\s*[=:]\s*)[^\s,;"']+/gi, "$1[REDACTED]");
|
|
63
|
-
}
|
|
64
|
-
function summarize(ledger, wake) {
|
|
65
|
-
const events = ledger.eventsForWake(wake.id);
|
|
66
|
-
const replay = replaySession(events);
|
|
67
|
-
const started = events.find((event) => event.type === "session.started")?.data;
|
|
68
|
-
return {
|
|
69
|
-
wakeId: wake.id,
|
|
70
|
-
streamId: wakeStream(wake.id),
|
|
71
|
-
agent: wake.agent,
|
|
72
|
-
wakeStatus: wake.status,
|
|
73
|
-
sessionStatus: replay.status === "running" && ["done", "abnormal", "merge_blocked"].includes(wake.status) ? wake.status : replay.status,
|
|
74
|
-
triggerRef: wake.triggerRef,
|
|
75
|
-
eventCount: events.length,
|
|
76
|
-
firstSeq: events[0]?.seq ?? null,
|
|
77
|
-
lastSeq: events.at(-1)?.seq ?? null,
|
|
78
|
-
provider: typeof started?.provider === "string" ? started.provider : null,
|
|
79
|
-
model: typeof started?.model === "string" ? started.model : null,
|
|
80
|
-
formatVersion: typeof started?.formatVersion === "number" ? started.formatVersion : started ? 0 : null,
|
|
81
|
-
messageCount: replay.messages.length,
|
|
82
|
-
toolCalls: events.filter((event) => event.type === "tool.called").length,
|
|
83
|
-
compactions: events.filter((event) => event.type === "context.compacted").length,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
function contextSnapshot(events) {
|
|
87
|
-
const event = events.findLast((candidate) => candidate.type === "request.prepared");
|
|
88
|
-
if (!event)
|
|
89
|
-
return null;
|
|
90
|
-
const request = event.data;
|
|
91
|
-
return {
|
|
92
|
-
eventSeq: event.seq,
|
|
93
|
-
provider: request.provider,
|
|
94
|
-
model: request.model,
|
|
95
|
-
systemPrompt: request.systemPrompt,
|
|
96
|
-
text: request.activeContext,
|
|
97
|
-
sourceSeqs: request.sourceSeqs,
|
|
98
|
-
toolCount: request.tools.length,
|
|
99
|
-
messageCount: request.messages.length,
|
|
100
|
-
modelConfig: request.modelConfig,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
function requiredWake(ledger, wakeId) {
|
|
104
|
-
const wake = ledger.wake(wakeId);
|
|
105
|
-
if (!wake)
|
|
106
|
-
throw new Error(`wake not found: ${wakeId}`);
|
|
107
|
-
return wake;
|
|
108
|
-
}
|
|
109
|
-
const SENSITIVE_KEY = /^(?:api[_-]?key|token|secret|password|authorization|cookie|set-cookie)$/i;
|
|
110
|
-
//# sourceMappingURL=inspect.js.map
|
package/dist/inspect.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../src/inspect.ts"],"names":[],"mappings":"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"}
|
package/dist/kernel.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
package/dist/kernel.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
package/dist/live-config.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export interface RunnerDisplay {
|
|
2
|
-
runner: string;
|
|
3
|
-
target: string;
|
|
4
|
-
}
|
|
5
|
-
export declare function readRunnerDisplay(configPath: string): RunnerDisplay;
|
|
6
|
-
/** Switch the model for this workspace and reload the daemon. Returns the reload outcome. */
|
|
7
|
-
export declare function switchModel(configPath: string, stateDir: string, model: string): Promise<string>;
|
|
8
|
-
/** Reload the daemon config after an external edit (e.g. the setup wizard rewrote it). */
|
|
9
|
-
export declare function reloadDaemon(stateDir: string, configPath: string): Promise<boolean>;
|
|
10
|
-
//# sourceMappingURL=live-config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"live-config.d.ts","sourceRoot":"","sources":["../src/live-config.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAEjE,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAMnE;AAED,6FAA6F;AAC7F,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CActG;AAED,0FAA0F;AAC1F,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzF"}
|
package/dist/live-config.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Live config mutation: edit goah.config.json in place, then ask the resident
|
|
3
|
-
* daemon to reload (config.reload swaps the runner; spawn-time env resolution
|
|
4
|
-
* applies new values to the next wake).
|
|
5
|
-
*/
|
|
6
|
-
import { readFileSync } from "node:fs";
|
|
7
|
-
import { resolve } from "node:path";
|
|
8
|
-
import { requestControl } from "./control.js";
|
|
9
|
-
import { loadConfig, updateWorkspaceRunnerProfile } from "./index.js";
|
|
10
|
-
import { runnerPlugin } from "./runner-registry.js";
|
|
11
|
-
export function readRunnerDisplay(configPath) {
|
|
12
|
-
const config = JSON.parse(readFileSync(resolve(configPath), "utf8"));
|
|
13
|
-
const profile = config.runnerProfiles?.find((item) => item.id === "default") ?? config.runnerProfiles?.[0];
|
|
14
|
-
if (!profile)
|
|
15
|
-
return { runner: "legacy", target: "configured" };
|
|
16
|
-
const target = typeof profile.config.provider === "string" && typeof profile.config.model === "string" ? `${profile.config.provider}/${profile.config.model}` : profile.id;
|
|
17
|
-
return { runner: profile.runner, target };
|
|
18
|
-
}
|
|
19
|
-
/** Switch the model for this workspace and reload the daemon. Returns the reload outcome. */
|
|
20
|
-
export async function switchModel(configPath, stateDir, model) {
|
|
21
|
-
if (!model.trim())
|
|
22
|
-
throw new Error("model id is required");
|
|
23
|
-
const config = loadConfig(configPath);
|
|
24
|
-
const profile = config.runnerProfiles?.find((item) => item.id === "default") ?? config.runnerProfiles?.[0];
|
|
25
|
-
if (!profile)
|
|
26
|
-
throw new Error("no Runner Profile is configured");
|
|
27
|
-
const plugin = runnerPlugin(profile.runner);
|
|
28
|
-
if (!plugin.configurator.runCommand)
|
|
29
|
-
throw new Error(`${profile.runner} does not support model switching`);
|
|
30
|
-
const interaction = { select: async () => null, input: async () => null, notify: () => undefined };
|
|
31
|
-
const result = await plugin.configurator.runCommand("model", [model.trim()], profile.config, interaction);
|
|
32
|
-
if (result.config === undefined)
|
|
33
|
-
throw new Error(`${profile.runner} did not return an updated configuration`);
|
|
34
|
-
updateWorkspaceRunnerProfile(configPath, { ...profile, config: result.config });
|
|
35
|
-
const outcome = await requestControl(stateDir, { op: "config.reload", configPath: resolve(configPath) }).catch((error) => ({ reloaded: false, error: error instanceof Error ? error.message : String(error) }));
|
|
36
|
-
const reloaded = Boolean(outcome.reloaded);
|
|
37
|
-
return reloaded ? result.output.join("\n") : `${result.output.join("\n")}; daemon reload failed (${String(outcome.error ?? "daemon not running")}), it will apply on next start`;
|
|
38
|
-
}
|
|
39
|
-
/** Reload the daemon config after an external edit (e.g. the setup wizard rewrote it). */
|
|
40
|
-
export async function reloadDaemon(stateDir, configPath) {
|
|
41
|
-
const outcome = await requestControl(stateDir, { op: "config.reload", configPath: resolve(configPath) }).catch(() => null);
|
|
42
|
-
return Boolean(outcome?.reloaded);
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=live-config.js.map
|
package/dist/live-config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"live-config.js","sourceRoot":"","sources":["../src/live-config.ts"],"names":[],"mappings":"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"}
|
package/dist/metrics.d.ts
DELETED
package/dist/metrics.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
package/dist/metrics.js
DELETED
package/dist/metrics.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
package/dist/prompt-queue.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type Interface as ReadlineInterface } from "node:readline";
|
|
2
|
-
/**
|
|
3
|
-
* Prompt queue over readline 'line' events. readline/promises `question()` loses lines that arrive
|
|
4
|
-
* between awaits under piped input (same-tick chunks race the next listener registration), so
|
|
5
|
-
* onboarding buffers lines itself.
|
|
6
|
-
*/
|
|
7
|
-
export declare function lineQueue(input: ReadlineInterface): ((prompt: string) => Promise<string>) & {
|
|
8
|
-
close(): void;
|
|
9
|
-
};
|
|
10
|
-
export declare function stdioQueue(): ((prompt: string) => Promise<string>) & {
|
|
11
|
-
close(): void;
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=prompt-queue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-queue.d.ts","sourceRoot":"","sources":["../src/prompt-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAErF;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG;IAAE,KAAK,IAAI,IAAI,CAAA;CAAE,CAc7G;AAED,wBAAgB,UAAU,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG;IAAE,KAAK,IAAI,IAAI,CAAA;CAAE,CAEtF"}
|
package/dist/prompt-queue.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { createInterface } from "node:readline";
|
|
2
|
-
/**
|
|
3
|
-
* Prompt queue over readline 'line' events. readline/promises `question()` loses lines that arrive
|
|
4
|
-
* between awaits under piped input (same-tick chunks race the next listener registration), so
|
|
5
|
-
* onboarding buffers lines itself.
|
|
6
|
-
*/
|
|
7
|
-
export function lineQueue(input) {
|
|
8
|
-
const buffered = [];
|
|
9
|
-
const waiters = [];
|
|
10
|
-
input.on("line", (line) => { const waiter = waiters.shift(); if (waiter)
|
|
11
|
-
waiter(line);
|
|
12
|
-
else
|
|
13
|
-
buffered.push(line); });
|
|
14
|
-
const ask = (prompt) => {
|
|
15
|
-
input.setPrompt(prompt);
|
|
16
|
-
input.prompt();
|
|
17
|
-
const { promise, resolve } = Promise.withResolvers();
|
|
18
|
-
const bufferedLine = buffered.shift();
|
|
19
|
-
if (bufferedLine !== undefined)
|
|
20
|
-
resolve(bufferedLine);
|
|
21
|
-
else
|
|
22
|
-
waiters.push(resolve);
|
|
23
|
-
return promise;
|
|
24
|
-
};
|
|
25
|
-
return Object.assign(ask, { close: () => input.close() });
|
|
26
|
-
}
|
|
27
|
-
export function stdioQueue() {
|
|
28
|
-
return lineQueue(createInterface({ input: process.stdin, output: process.stdout, terminal: false }));
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=prompt-queue.js.map
|
package/dist/prompt-queue.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-queue.js","sourceRoot":"","sources":["../src/prompt-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAuC,MAAM,eAAe,CAAC;AAErF;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAwB;IAChD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,GAAG,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC;;QAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5H,MAAM,GAAG,GAAG,CAAC,MAAc,EAAmB,EAAE;QAC9C,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,EAAU,CAAC;QAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO,CAAC,YAAY,CAAC,CAAC;;YACjD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,SAAS,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACvG,CAAC"}
|
package/dist/runner-pi.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-pi.d.ts","sourceRoot":"","sources":["../src/runner-pi.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/dist/runner-pi.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-pi.js","sourceRoot":"","sources":["../src/runner-pi.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { JsonValue, Runner, RunnerConfigurator, RunnerManifest } from "goah-ledger-contract";
|
|
2
|
-
export interface RunnerPlugin {
|
|
3
|
-
configurator: RunnerConfigurator;
|
|
4
|
-
create(config: JsonValue, root: string): Runner;
|
|
5
|
-
}
|
|
6
|
-
export declare function runnerPlugin(id: string): RunnerPlugin;
|
|
7
|
-
export declare function runnerManifests(): RunnerManifest[];
|
|
8
|
-
//# sourceMappingURL=runner-registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-registry.d.ts","sourceRoot":"","sources":["../src/runner-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGlG,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,kBAAkB,CAAC;IACjC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACjD;AAMD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAIrD;AAED,wBAAgB,eAAe,IAAI,cAAc,EAAE,CAAkF"}
|
package/dist/runner-registry.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { createPiProcessRunner, piRunnerConfigurator } from "goah-runner-pi";
|
|
2
|
-
const plugins = new Map([
|
|
3
|
-
["pi", { configurator: piRunnerConfigurator(), create: createPiProcessRunner }],
|
|
4
|
-
]);
|
|
5
|
-
export function runnerPlugin(id) {
|
|
6
|
-
const plugin = plugins.get(id);
|
|
7
|
-
if (!plugin)
|
|
8
|
-
throw new Error(`Runner is not installed: ${id}`);
|
|
9
|
-
return plugin;
|
|
10
|
-
}
|
|
11
|
-
export function runnerManifests() { return [...plugins.values()].map((plugin) => plugin.configurator.describe()); }
|
|
12
|
-
//# sourceMappingURL=runner-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-registry.js","sourceRoot":"","sources":["../src/runner-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAO7E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAuB;IAC5C,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;CAChF,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,KAAuB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { type Component, type Focusable, type SelectItem, type SelectListTheme } from "@earendil-works/pi-tui";
|
|
2
|
-
export interface SearchableSelectOptions {
|
|
3
|
-
searchLabel?: string;
|
|
4
|
-
emptyLabel?: string;
|
|
5
|
-
}
|
|
6
|
-
/** A visible fuzzy-search field composed with pi-tui's keyboard SelectList. */
|
|
7
|
-
export declare class SearchableSelect implements Component, Focusable {
|
|
8
|
-
#private;
|
|
9
|
-
readonly items: SelectItem[];
|
|
10
|
-
readonly maxVisible: number;
|
|
11
|
-
readonly theme: SelectListTheme;
|
|
12
|
-
readonly options: SearchableSelectOptions;
|
|
13
|
-
onSelect?: (item: SelectItem) => void;
|
|
14
|
-
onCancel?: () => void;
|
|
15
|
-
constructor(items: SelectItem[], maxVisible: number, theme: SelectListTheme, options?: SearchableSelectOptions);
|
|
16
|
-
get focused(): boolean;
|
|
17
|
-
set focused(value: boolean);
|
|
18
|
-
get query(): string;
|
|
19
|
-
get resultCount(): number;
|
|
20
|
-
handleInput(data: string): void;
|
|
21
|
-
render(width: number): string[];
|
|
22
|
-
invalidate(): void;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=searchable-select.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"searchable-select.d.ts","sourceRoot":"","sources":["../src/searchable-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE/J,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+EAA+E;AAC/E,qBAAa,gBAAiB,YAAW,SAAS,EAAE,SAAS;;IAQ/C,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM;IAAE,QAAQ,CAAC,KAAK,EAAE,eAAe;IAAE,QAAQ,CAAC,OAAO,EAAE,uBAAuB;IAHjJ,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;gBAED,KAAK,EAAE,UAAU,EAAE,EAAW,UAAU,EAAE,MAAM,EAAW,KAAK,EAAE,eAAe,EAAW,OAAO,GAAE,uBAA4B;IAKtJ,IAAI,OAAO,IAAI,OAAO,CAA0B;IAChD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAyD;IACnF,IAAI,KAAK,IAAI,MAAM,CAAmC;IACtD,IAAI,WAAW,IAAI,MAAM,CAAkC;IAE3D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY/B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAM/B,UAAU,IAAI,IAAI;CAanB"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { fuzzyFilter, getKeybindings, Input, SelectList } from "@earendil-works/pi-tui";
|
|
2
|
-
/** A visible fuzzy-search field composed with pi-tui's keyboard SelectList. */
|
|
3
|
-
export class SearchableSelect {
|
|
4
|
-
items;
|
|
5
|
-
maxVisible;
|
|
6
|
-
theme;
|
|
7
|
-
options;
|
|
8
|
-
#input = new Input();
|
|
9
|
-
#list;
|
|
10
|
-
#filtered;
|
|
11
|
-
#focused = false;
|
|
12
|
-
onSelect;
|
|
13
|
-
onCancel;
|
|
14
|
-
constructor(items, maxVisible, theme, options = {}) {
|
|
15
|
-
this.items = items;
|
|
16
|
-
this.maxVisible = maxVisible;
|
|
17
|
-
this.theme = theme;
|
|
18
|
-
this.options = options;
|
|
19
|
-
this.#filtered = items;
|
|
20
|
-
this.#list = this.#createList(items);
|
|
21
|
-
}
|
|
22
|
-
get focused() { return this.#focused; }
|
|
23
|
-
set focused(value) { this.#focused = value; this.#input.focused = value; }
|
|
24
|
-
get query() { return this.#input.getValue(); }
|
|
25
|
-
get resultCount() { return this.#filtered.length; }
|
|
26
|
-
handleInput(data) {
|
|
27
|
-
const keys = getKeybindings();
|
|
28
|
-
if (keys.matches(data, "tui.select.up") || keys.matches(data, "tui.select.down") || keys.matches(data, "tui.select.confirm")) {
|
|
29
|
-
this.#list.handleInput(data);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
if (keys.matches(data, "tui.select.cancel")) {
|
|
33
|
-
if (this.query) {
|
|
34
|
-
this.#input.setValue("");
|
|
35
|
-
this.#refresh();
|
|
36
|
-
}
|
|
37
|
-
else
|
|
38
|
-
this.onCancel?.();
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
this.#input.handleInput(data);
|
|
42
|
-
this.#refresh();
|
|
43
|
-
}
|
|
44
|
-
render(width) {
|
|
45
|
-
const label = this.options.searchLabel ?? "Search";
|
|
46
|
-
const status = this.query ? `${this.resultCount}/${this.items.length} matches · Esc clears` : `${this.items.length} options · type to search`;
|
|
47
|
-
return [` ${label} ${this.theme.scrollInfo(status)}`, ...this.#input.render(width), "", ...this.#list.render(width)];
|
|
48
|
-
}
|
|
49
|
-
invalidate() { this.#input.invalidate(); this.#list.invalidate(); }
|
|
50
|
-
#refresh() {
|
|
51
|
-
this.#filtered = fuzzyFilter(this.items, this.query, (item) => `${item.label} ${item.value} ${item.description ?? ""}`);
|
|
52
|
-
this.#list = this.#createList(this.#filtered);
|
|
53
|
-
}
|
|
54
|
-
#createList(items) {
|
|
55
|
-
const list = new SelectList(items, this.maxVisible, { ...this.theme, noMatch: () => this.theme.noMatch(` ${this.options.emptyLabel ?? "No matches"}${this.query ? ` for “${this.query}”` : ""} · Esc clears`) });
|
|
56
|
-
list.onSelect = (item) => this.onSelect?.(item);
|
|
57
|
-
list.onCancel = () => this.onCancel?.();
|
|
58
|
-
return list;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=searchable-select.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"searchable-select.js","sourceRoot":"","sources":["../src/searchable-select.ts"],"names":[],"mappings":"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"}
|
package/dist/secret-input.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Input } from "@earendil-works/pi-tui";
|
|
2
|
-
/** Input that keeps the real value in memory while rendering only a fixed mask. */
|
|
3
|
-
export declare class SecretInput extends Input {
|
|
4
|
-
render(width: number): string[];
|
|
5
|
-
}
|
|
6
|
-
/** Input.setValue preserves cursor position; setup defaults should instead edit from the end. */
|
|
7
|
-
export declare function setInitialValue(input: Input, value: string): void;
|
|
8
|
-
//# sourceMappingURL=secret-input.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"secret-input.d.ts","sourceRoot":"","sources":["../src/secret-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE9D,mFAAmF;AACnF,qBAAa,WAAY,SAAQ,KAAK;IAC3B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAOzC;AAED,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAsD"}
|
package/dist/secret-input.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { CURSOR_MARKER, Input } from "@earendil-works/pi-tui";
|
|
2
|
-
/** Input that keeps the real value in memory while rendering only a fixed mask. */
|
|
3
|
-
export class SecretInput extends Input {
|
|
4
|
-
render(width) {
|
|
5
|
-
const available = Math.max(0, width - 3);
|
|
6
|
-
const length = [...this.getValue()].length;
|
|
7
|
-
const mask = length > available ? `${"*".repeat(Math.max(0, available - 1))}…` : "*".repeat(length);
|
|
8
|
-
const marker = this.focused ? CURSOR_MARKER : "";
|
|
9
|
-
return [`> ${mask}${marker}\x1b[7m \x1b[27m${" ".repeat(Math.max(0, available - mask.length - 1))}`];
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
/** Input.setValue preserves cursor position; setup defaults should instead edit from the end. */
|
|
13
|
-
export function setInitialValue(input, value) { input.setValue(value); input.handleInput("\x05"); }
|
|
14
|
-
//# sourceMappingURL=secret-input.js.map
|
package/dist/secret-input.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"secret-input.js","sourceRoot":"","sources":["../src/secret-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE9D,mFAAmF;AACnF,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,MAAM,CAAC,KAAa;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,IAAI,GAAG,MAAM,mBAAmB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;CACF;AAED,iGAAiG;AACjG,MAAM,UAAU,eAAe,CAAC,KAAY,EAAE,KAAa,IAAU,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/session.d.ts
DELETED
package/dist/session.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
package/dist/session.js
DELETED
package/dist/session.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
package/dist/setup-wizard.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { RunnerProfile } from "goah-ledger-contract";
|
|
2
|
-
export interface WizardResult {
|
|
3
|
-
profile: RunnerProfile | null;
|
|
4
|
-
}
|
|
5
|
-
export declare function renderSetupHeader(title: string, description?: string, progress?: {
|
|
6
|
-
current: number;
|
|
7
|
-
total: number;
|
|
8
|
-
}): string;
|
|
9
|
-
export declare function runSetupWizard(current?: RunnerProfile | null): Promise<WizardResult>;
|
|
10
|
-
export declare function applyWizardResult(result: WizardResult, configPath: string | null): void;
|
|
11
|
-
//# sourceMappingURL=setup-wizard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../src/setup-wizard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAa,aAAa,EAA0B,MAAM,sBAAsB,CAAC;AAQ7F,MAAM,WAAW,YAAY;IAAG,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE;AAE/D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,SAAK,EAAE,QAAQ,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGxH;AAUD,wBAAsB,cAAc,CAAC,OAAO,GAAE,aAAa,GAAG,IAAiC,GAAG,OAAO,CAAC,YAAY,CAAC,CAEtH;AA6ED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAIvF"}
|
package/dist/setup-wizard.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/** Generic Runner setup. Provider/model semantics remain inside each Runner plugin. */
|
|
2
|
-
import { spawn } from "node:child_process";
|
|
3
|
-
import { Input, ProcessTerminal, SelectList, Text, TuiAltScreen } from "@earendil-works/pi-tui";
|
|
4
|
-
import { readDefaultRunnerProfile, updateWorkspaceRunnerProfile, writeDefaultRunnerProfile } from "./index.js";
|
|
5
|
-
import { stdioQueue } from "./prompt-queue.js";
|
|
6
|
-
import { runnerManifests, runnerPlugin } from "./runner-registry.js";
|
|
7
|
-
import { SearchableSelect } from "./searchable-select.js";
|
|
8
|
-
import { SecretInput, setInitialValue } from "./secret-input.js";
|
|
9
|
-
import { tuiTheme } from "./tui-theme.js";
|
|
10
|
-
export function renderSetupHeader(title, description = "", progress) {
|
|
11
|
-
const meter = progress ? `${"━".repeat(progress.current)}${"─".repeat(Math.max(0, progress.total - progress.current))} ${progress.current}/${progress.total}` : "";
|
|
12
|
-
return [`${tuiTheme.brand(" GOAH ")}${tuiTheme.rail(` SETUP${meter ? ` ${meter}` : ""} `)}`, "", ` ${tuiTheme.strong(title)}`, description ? ` ${tuiTheme.muted(description)}` : "", ""].join("\n");
|
|
13
|
-
}
|
|
14
|
-
const theme = {
|
|
15
|
-
selectedPrefix: (text) => `${tuiTheme.accent(">")} ${text}`,
|
|
16
|
-
selectedText: tuiTheme.strong,
|
|
17
|
-
description: tuiTheme.muted,
|
|
18
|
-
scrollInfo: tuiTheme.muted,
|
|
19
|
-
noMatch: tuiTheme.muted,
|
|
20
|
-
};
|
|
21
|
-
export async function runSetupWizard(current = readDefaultRunnerProfile()) {
|
|
22
|
-
return process.stdin.isTTY && process.stdout.isTTY ? runTui(current) : runPiped(current);
|
|
23
|
-
}
|
|
24
|
-
async function runTui(current) {
|
|
25
|
-
const tui = new TuiAltScreen(new ProcessTerminal(), true);
|
|
26
|
-
const header = new Text("");
|
|
27
|
-
let slot = null;
|
|
28
|
-
const replace = (component) => { if (slot)
|
|
29
|
-
tui.removeChild(slot); slot = component; tui.addChild(component); tui.setFocus(component); tui.requestRender(); };
|
|
30
|
-
const setHeader = (title, description = "", progress) => { header.setText(renderSetupHeader(title, description, progress)); };
|
|
31
|
-
const interaction = {
|
|
32
|
-
select: ({ title, description, choices, progress }) => new Promise((resolve) => {
|
|
33
|
-
setHeader(title, description, progress);
|
|
34
|
-
const list = choices.length >= 8
|
|
35
|
-
? new SearchableSelect(choices, 9, theme, { searchLabel: `Search ${title.toLowerCase()}`, emptyLabel: `No matching ${title.toLowerCase()}` })
|
|
36
|
-
: new SelectList(choices, 10, theme);
|
|
37
|
-
list.onSelect = (item) => resolve(item.value);
|
|
38
|
-
list.onCancel = () => resolve(null);
|
|
39
|
-
replace(list);
|
|
40
|
-
}),
|
|
41
|
-
input: ({ title, description, prompt, initial, secret, progress }) => new Promise((resolve) => {
|
|
42
|
-
setHeader(title, `${description ?? ""}\n ${prompt}`.trim(), progress);
|
|
43
|
-
const input = secret ? new SecretInput() : new Input();
|
|
44
|
-
if (initial)
|
|
45
|
-
setInitialValue(input, initial);
|
|
46
|
-
input.onSubmit = (line) => resolve(line.trim());
|
|
47
|
-
input.onEscape = () => resolve(null);
|
|
48
|
-
replace(input);
|
|
49
|
-
}),
|
|
50
|
-
notify: (message) => { setHeader("Authentication", message); tui.requestRender(); },
|
|
51
|
-
openUrl,
|
|
52
|
-
};
|
|
53
|
-
tui.addChild(header);
|
|
54
|
-
const { promise, resolve } = Promise.withResolvers();
|
|
55
|
-
void (async () => {
|
|
56
|
-
while (true) {
|
|
57
|
-
try {
|
|
58
|
-
const manifests = runnerManifests();
|
|
59
|
-
const runner = await interaction.select({ title: "Choose a runner", description: "A runner owns execution, models, and authentication.", progress: { current: 1, total: 5 }, choices: manifests.map((item) => ({ value: item.id, label: item.name, description: item.description })) });
|
|
60
|
-
if (!runner) {
|
|
61
|
-
resolve({ profile: null });
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
const config = await runnerPlugin(runner).configurator.setup(current?.runner === runner ? current.config : null, interaction);
|
|
65
|
-
if (config === null) {
|
|
66
|
-
resolve({ profile: null });
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const summary = runnerPlugin(runner).configurator.summarize?.(config) ?? summarize(config);
|
|
70
|
-
const confirmation = await interaction.select({ title: "Review", description: summary.map((item) => `${item.label.padEnd(12)} ${item.value}`).join("\n "), progress: { current: 5, total: 5 }, choices: [{ value: "save", label: "Save and continue" }, { value: "back", label: "Back" }, { value: "cancel", label: "Cancel without saving" }] });
|
|
71
|
-
if (confirmation === "back")
|
|
72
|
-
continue;
|
|
73
|
-
resolve({ profile: confirmation === "save" ? { id: current?.id ?? "default", runner, config } : null });
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
const choice = await interaction.select({ title: "Setup failed", description: error instanceof Error ? error.message : String(error), choices: [{ value: "retry", label: "Try again" }, { value: "cancel", label: "Cancel without saving" }] });
|
|
78
|
-
if (choice !== "retry") {
|
|
79
|
-
resolve({ profile: null });
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
})();
|
|
85
|
-
tui.start();
|
|
86
|
-
const result = await promise;
|
|
87
|
-
tui.stop();
|
|
88
|
-
process.stdout.write("\x1b[2J\x1b[H");
|
|
89
|
-
return result;
|
|
90
|
-
}
|
|
91
|
-
async function runPiped(current) {
|
|
92
|
-
const ask = stdioQueue();
|
|
93
|
-
const interaction = {
|
|
94
|
-
select: async ({ title, choices }) => {
|
|
95
|
-
const answer = Number(await ask(`${title}: ${choices.map((choice, index) => `${index + 1}) ${choice.label}`).join(" ")} — select: `));
|
|
96
|
-
return choices[answer - 1]?.value ?? null;
|
|
97
|
-
},
|
|
98
|
-
input: async ({ prompt, initial }) => (await ask(`${prompt}${initial ? ` (${initial})` : ""}: `)) || initial || null,
|
|
99
|
-
notify: (message) => process.stdout.write(`${message}\n`),
|
|
100
|
-
};
|
|
101
|
-
try {
|
|
102
|
-
const manifests = runnerManifests();
|
|
103
|
-
const runner = await interaction.select({ title: "Runner", choices: manifests.map((item) => ({ value: item.id, label: item.name })) });
|
|
104
|
-
if (!runner)
|
|
105
|
-
return { profile: null };
|
|
106
|
-
const config = await runnerPlugin(runner).configurator.setup(current?.runner === runner ? current.config : null, interaction);
|
|
107
|
-
return { profile: config === null ? null : { id: current?.id ?? "default", runner, config } };
|
|
108
|
-
}
|
|
109
|
-
finally {
|
|
110
|
-
ask.close();
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
export function applyWizardResult(result, configPath) {
|
|
114
|
-
if (!result.profile)
|
|
115
|
-
throw new Error("Setup was cancelled; your existing configuration was not changed.");
|
|
116
|
-
writeDefaultRunnerProfile(result.profile);
|
|
117
|
-
if (configPath)
|
|
118
|
-
updateWorkspaceRunnerProfile(configPath, result.profile);
|
|
119
|
-
}
|
|
120
|
-
function summarize(config) {
|
|
121
|
-
if (!config || typeof config !== "object" || Array.isArray(config))
|
|
122
|
-
return [{ label: "Configuration", value: String(config) }];
|
|
123
|
-
return Object.entries(config).filter(([key]) => !/key|token|secret|password|authFile/i.test(key)).map(([label, value]) => ({ label, value: String(value) }));
|
|
124
|
-
}
|
|
125
|
-
function openUrl(url) {
|
|
126
|
-
const command = process.platform === "darwin" ? "open" : process.platform === "win32" ? "cmd" : "xdg-open";
|
|
127
|
-
const args = process.platform === "win32" ? ["/c", "start", "", url] : [url];
|
|
128
|
-
spawn(command, args, { detached: true, stdio: "ignore" }).unref();
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=setup-wizard.js.map
|