@mono-agent/agent-app 0.11.2 → 0.11.4
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/LICENSE +674 -0
- package/README.md +222 -26
- package/dist/adapter-send-tools-main.js +7 -1
- package/dist/adapter-send-tools-main.js.map +1 -1
- package/dist/adapter-send-tools.d.ts +19 -1
- package/dist/adapter-send-tools.d.ts.map +1 -1
- package/dist/adapter-send-tools.js +127 -13
- package/dist/adapter-send-tools.js.map +1 -1
- package/dist/app-config.d.ts.map +1 -1
- package/dist/app-config.js +15 -2
- package/dist/app-config.js.map +1 -1
- package/dist/app-controller-channels.d.ts +8 -0
- package/dist/app-controller-channels.d.ts.map +1 -0
- package/dist/app-controller-channels.js +207 -0
- package/dist/app-controller-channels.js.map +1 -0
- package/dist/app-controller-continuation.d.ts +26 -0
- package/dist/app-controller-continuation.d.ts.map +1 -0
- package/dist/app-controller-continuation.js +198 -0
- package/dist/app-controller-continuation.js.map +1 -0
- package/dist/app-controller-lifecycle.d.ts +6 -0
- package/dist/app-controller-lifecycle.d.ts.map +1 -0
- package/dist/app-controller-lifecycle.js +81 -0
- package/dist/app-controller-lifecycle.js.map +1 -0
- package/dist/app-controller-maintenance.d.ts +13 -0
- package/dist/app-controller-maintenance.d.ts.map +1 -0
- package/dist/app-controller-maintenance.js +180 -0
- package/dist/app-controller-maintenance.js.map +1 -0
- package/dist/app-controller-memory-health.d.ts +12 -0
- package/dist/app-controller-memory-health.d.ts.map +1 -0
- package/dist/app-controller-memory-health.js +160 -0
- package/dist/app-controller-memory-health.js.map +1 -0
- package/dist/app-controller-memory.d.ts +9 -0
- package/dist/app-controller-memory.d.ts.map +1 -0
- package/dist/app-controller-memory.js +83 -0
- package/dist/app-controller-memory.js.map +1 -0
- package/dist/app-controller-responder.d.ts +20 -0
- package/dist/app-controller-responder.d.ts.map +1 -0
- package/dist/app-controller-responder.js +246 -0
- package/dist/app-controller-responder.js.map +1 -0
- package/dist/app-controller-traceability.d.ts +25 -0
- package/dist/app-controller-traceability.d.ts.map +1 -0
- package/dist/app-controller-traceability.js +418 -0
- package/dist/app-controller-traceability.js.map +1 -0
- package/dist/app-controller-utils.d.ts +38 -0
- package/dist/app-controller-utils.d.ts.map +1 -0
- package/dist/app-controller-utils.js +185 -0
- package/dist/app-controller-utils.js.map +1 -0
- package/dist/app-controller.d.ts +400 -0
- package/dist/app-controller.d.ts.map +1 -0
- package/dist/app-controller.js +336 -0
- package/dist/app-controller.js.map +1 -0
- package/dist/app.d.ts +7 -115
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +6 -1912
- package/dist/app.js.map +1 -1
- package/dist/artifact-retention.d.ts +4 -0
- package/dist/artifact-retention.d.ts.map +1 -1
- package/dist/artifact-retention.js +38 -0
- package/dist/artifact-retention.js.map +1 -1
- package/dist/backfill.d.ts +3 -1
- package/dist/backfill.d.ts.map +1 -1
- package/dist/backfill.js +5 -1
- package/dist/backfill.js.map +1 -1
- package/dist/background-runtime.d.ts +27 -0
- package/dist/background-runtime.d.ts.map +1 -1
- package/dist/background-runtime.js +383 -205
- package/dist/background-runtime.js.map +1 -1
- package/dist/background-worker-lease.d.ts.map +1 -1
- package/dist/background-worker-lease.js +41 -241
- package/dist/background-worker-lease.js.map +1 -1
- package/dist/background.d.ts +31 -9
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +543 -272
- package/dist/background.js.map +1 -1
- package/dist/channel-drivers/cron.d.ts +11 -0
- package/dist/channel-drivers/cron.d.ts.map +1 -0
- package/dist/channel-drivers/cron.js +168 -0
- package/dist/channel-drivers/cron.js.map +1 -0
- package/dist/channel-drivers/live.d.ts +11 -0
- package/dist/channel-drivers/live.d.ts.map +1 -0
- package/dist/channel-drivers/live.js +47 -0
- package/dist/channel-drivers/live.js.map +1 -0
- package/dist/channel-drivers/native-notify.d.ts +27 -0
- package/dist/channel-drivers/native-notify.d.ts.map +1 -0
- package/dist/channel-drivers/native-notify.js +94 -0
- package/dist/channel-drivers/native-notify.js.map +1 -0
- package/dist/channel-drivers/openai-api.d.ts +7 -0
- package/dist/channel-drivers/openai-api.d.ts.map +1 -0
- package/dist/channel-drivers/openai-api.js +63 -0
- package/dist/channel-drivers/openai-api.js.map +1 -0
- package/dist/channel-drivers/shared.d.ts +4 -0
- package/dist/channel-drivers/shared.d.ts.map +1 -0
- package/dist/channel-drivers/shared.js +5 -0
- package/dist/channel-drivers/shared.js.map +1 -0
- package/dist/channel-drivers/slack.d.ts +14 -0
- package/dist/channel-drivers/slack.d.ts.map +1 -0
- package/dist/channel-drivers/slack.js +227 -0
- package/dist/channel-drivers/slack.js.map +1 -0
- package/dist/channel-drivers/telegram.d.ts +11 -0
- package/dist/channel-drivers/telegram.d.ts.map +1 -0
- package/dist/channel-drivers/telegram.js +244 -0
- package/dist/channel-drivers/telegram.js.map +1 -0
- package/dist/channel-drivers/tui.d.ts +15 -0
- package/dist/channel-drivers/tui.d.ts.map +1 -0
- package/dist/channel-drivers/tui.js +108 -0
- package/dist/channel-drivers/tui.js.map +1 -0
- package/dist/channel-drivers/webhook.d.ts +7 -0
- package/dist/channel-drivers/webhook.d.ts.map +1 -0
- package/dist/channel-drivers/webhook.js +115 -0
- package/dist/channel-drivers/webhook.js.map +1 -0
- package/dist/channels.d.ts +21 -81
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +11 -1174
- package/dist/channels.js.map +1 -1
- package/dist/cli-args.d.ts +121 -0
- package/dist/cli-args.d.ts.map +1 -0
- package/dist/cli-args.js +532 -0
- package/dist/cli-args.js.map +1 -0
- package/dist/cli-background-command.d.ts +59 -0
- package/dist/cli-background-command.d.ts.map +1 -0
- package/dist/cli-background-command.js +475 -0
- package/dist/cli-background-command.js.map +1 -0
- package/dist/cli-cancellation.d.ts +6 -0
- package/dist/cli-cancellation.d.ts.map +1 -0
- package/dist/cli-cancellation.js +23 -0
- package/dist/cli-cancellation.js.map +1 -0
- package/dist/cli-commands.d.ts +12 -0
- package/dist/cli-commands.d.ts.map +1 -0
- package/dist/cli-commands.js +306 -0
- package/dist/cli-commands.js.map +1 -0
- package/dist/cli-help.d.ts +11 -0
- package/dist/cli-help.d.ts.map +1 -0
- package/dist/cli-help.js +262 -0
- package/dist/cli-help.js.map +1 -0
- package/dist/cli-init-command.d.ts +60 -0
- package/dist/cli-init-command.d.ts.map +1 -0
- package/dist/cli-init-command.js +1910 -0
- package/dist/cli-init-command.js.map +1 -0
- package/dist/cli-install-skill-command.d.ts +3 -0
- package/dist/cli-install-skill-command.d.ts.map +1 -0
- package/dist/cli-install-skill-command.js +51 -0
- package/dist/cli-install-skill-command.js.map +1 -0
- package/dist/cli-sandbox-command.d.ts +10 -0
- package/dist/cli-sandbox-command.d.ts.map +1 -0
- package/dist/cli-sandbox-command.js +100 -0
- package/dist/cli-sandbox-command.js.map +1 -0
- package/dist/cli-validate-config-command.d.ts +36 -0
- package/dist/cli-validate-config-command.d.ts.map +1 -0
- package/dist/cli-validate-config-command.js +317 -0
- package/dist/cli-validate-config-command.js.map +1 -0
- package/dist/cli.d.ts +6 -248
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -3792
- package/dist/cli.js.map +1 -1
- package/dist/config-reference.d.ts +2 -1
- package/dist/config-reference.d.ts.map +1 -1
- package/dist/config-reference.js +34 -8
- package/dist/config-reference.js.map +1 -1
- package/dist/configured-agent.d.ts +23 -0
- package/dist/configured-agent.d.ts.map +1 -1
- package/dist/configured-agent.js +92 -13
- package/dist/configured-agent.js.map +1 -1
- package/dist/continuation-dispatch-worker.d.ts +21 -0
- package/dist/continuation-dispatch-worker.d.ts.map +1 -0
- package/dist/continuation-dispatch-worker.js +425 -0
- package/dist/continuation-dispatch-worker.js.map +1 -0
- package/dist/continuation-http-routes.d.ts +15 -0
- package/dist/continuation-http-routes.d.ts.map +1 -0
- package/dist/continuation-http-routes.js +265 -0
- package/dist/continuation-http-routes.js.map +1 -0
- package/dist/continuation-operator-api.d.ts +18 -0
- package/dist/continuation-operator-api.d.ts.map +1 -0
- package/dist/continuation-operator-api.js +164 -0
- package/dist/continuation-operator-api.js.map +1 -0
- package/dist/continuation-origin-store.d.ts +19 -0
- package/dist/continuation-origin-store.d.ts.map +1 -0
- package/dist/continuation-origin-store.js +273 -0
- package/dist/continuation-origin-store.js.map +1 -0
- package/dist/continuation-service-errors.d.ts +18 -0
- package/dist/continuation-service-errors.d.ts.map +1 -0
- package/dist/continuation-service-errors.js +35 -0
- package/dist/continuation-service-errors.js.map +1 -0
- package/dist/continuation-service-helpers.d.ts +39 -0
- package/dist/continuation-service-helpers.d.ts.map +1 -0
- package/dist/continuation-service-helpers.js +308 -0
- package/dist/continuation-service-helpers.js.map +1 -0
- package/dist/continuation-service-origin.d.ts +55 -0
- package/dist/continuation-service-origin.d.ts.map +1 -0
- package/dist/continuation-service-origin.js +325 -0
- package/dist/continuation-service-origin.js.map +1 -0
- package/dist/continuation-service-types.d.ts +110 -0
- package/dist/continuation-service-types.d.ts.map +1 -0
- package/dist/continuation-service-types.js +11 -0
- package/dist/continuation-service-types.js.map +1 -0
- package/dist/continuation-service.d.ts +4 -97
- package/dist/continuation-service.d.ts.map +1 -1
- package/dist/continuation-service.js +9 -1525
- package/dist/continuation-service.js.map +1 -1
- package/dist/continuation-store-fs.d.ts +15 -0
- package/dist/continuation-store-fs.d.ts.map +1 -0
- package/dist/continuation-store-fs.js +247 -0
- package/dist/continuation-store-fs.js.map +1 -0
- package/dist/continuation-store-policy.d.ts +21 -0
- package/dist/continuation-store-policy.d.ts.map +1 -0
- package/dist/continuation-store-policy.js +278 -0
- package/dist/continuation-store-policy.js.map +1 -0
- package/dist/continuation-store-records.d.ts +9 -0
- package/dist/continuation-store-records.d.ts.map +1 -0
- package/dist/continuation-store-records.js +221 -0
- package/dist/continuation-store-records.js.map +1 -0
- package/dist/continuation-store-types.d.ts +173 -0
- package/dist/continuation-store-types.d.ts.map +1 -0
- package/dist/continuation-store-types.js +26 -0
- package/dist/continuation-store-types.js.map +1 -0
- package/dist/continuation-store.d.ts +4 -138
- package/dist/continuation-store.d.ts.map +1 -1
- package/dist/continuation-store.js +145 -1049
- package/dist/continuation-store.js.map +1 -1
- package/dist/doctor.d.ts +10 -5
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +629 -58
- package/dist/doctor.js.map +1 -1
- package/dist/init.d.ts +2 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +92 -239
- package/dist/init.js.map +1 -1
- package/dist/interaction-bridge.d.ts +19 -0
- package/dist/interaction-bridge.d.ts.map +1 -1
- package/dist/interaction-bridge.js +130 -0
- package/dist/interaction-bridge.js.map +1 -1
- package/dist/launchd-logs.d.ts +91 -0
- package/dist/launchd-logs.d.ts.map +1 -0
- package/dist/launchd-logs.js +1499 -0
- package/dist/launchd-logs.js.map +1 -0
- package/dist/launchd.d.ts +27 -0
- package/dist/launchd.d.ts.map +1 -1
- package/dist/launchd.js +89 -10
- package/dist/launchd.js.map +1 -1
- package/dist/memory-command.d.ts +2 -0
- package/dist/memory-command.d.ts.map +1 -1
- package/dist/memory-command.js +161 -48
- package/dist/memory-command.js.map +1 -1
- package/dist/memory-recall-settings.d.ts +64 -0
- package/dist/memory-recall-settings.d.ts.map +1 -0
- package/dist/memory-recall-settings.js +51 -0
- package/dist/memory-recall-settings.js.map +1 -0
- package/dist/memory-recall.d.ts +7 -95
- package/dist/memory-recall.d.ts.map +1 -1
- package/dist/memory-recall.js +8 -143
- package/dist/memory-recall.js.map +1 -1
- package/dist/memory-rituals.d.ts +3 -3
- package/dist/memory-rituals.d.ts.map +1 -1
- package/dist/memory-rituals.js +16 -111
- package/dist/memory-rituals.js.map +1 -1
- package/dist/modules/catalog.js +2 -2
- package/dist/modules/catalog.js.map +1 -1
- package/dist/modules/known-tools.d.ts +8 -6
- package/dist/modules/known-tools.d.ts.map +1 -1
- package/dist/modules/known-tools.js +8 -6
- package/dist/modules/known-tools.js.map +1 -1
- package/dist/notify-destinations.d.ts +5 -0
- package/dist/notify-destinations.d.ts.map +1 -1
- package/dist/notify-destinations.js +7 -1
- package/dist/notify-destinations.js.map +1 -1
- package/dist/owner-private-lock.d.ts +95 -0
- package/dist/owner-private-lock.d.ts.map +1 -0
- package/dist/owner-private-lock.js +566 -0
- package/dist/owner-private-lock.js.map +1 -0
- package/dist/pi-oauth-login.d.ts +2 -0
- package/dist/pi-oauth-login.d.ts.map +1 -1
- package/dist/pi-oauth-login.js +39 -5
- package/dist/pi-oauth-login.js.map +1 -1
- package/dist/posted-message-index.d.ts +35 -16
- package/dist/posted-message-index.d.ts.map +1 -1
- package/dist/posted-message-index.js +1068 -52
- package/dist/posted-message-index.js.map +1 -1
- package/dist/posted-reply-history.d.ts +17 -0
- package/dist/posted-reply-history.d.ts.map +1 -0
- package/dist/posted-reply-history.js +169 -0
- package/dist/posted-reply-history.js.map +1 -0
- package/dist/proactive-notify.d.ts.map +1 -1
- package/dist/proactive-notify.js +6 -4
- package/dist/proactive-notify.js.map +1 -1
- package/dist/project-skills.d.ts +4 -0
- package/dist/project-skills.d.ts.map +1 -1
- package/dist/project-skills.js +99 -130
- package/dist/project-skills.js.map +1 -1
- package/dist/provider-setup.d.ts +0 -1
- package/dist/provider-setup.d.ts.map +1 -1
- package/dist/provider-setup.js +0 -3
- package/dist/provider-setup.js.map +1 -1
- package/dist/readiness-probe-worker.d.ts +61 -1
- package/dist/readiness-probe-worker.d.ts.map +1 -1
- package/dist/readiness-probe-worker.js +54 -58
- package/dist/readiness-probe-worker.js.map +1 -1
- package/dist/readiness-probe.d.ts +6 -9
- package/dist/readiness-probe.d.ts.map +1 -1
- package/dist/readiness-probe.js +30 -56
- package/dist/readiness-probe.js.map +1 -1
- package/dist/redact-secrets.d.ts +15 -0
- package/dist/redact-secrets.d.ts.map +1 -0
- package/dist/redact-secrets.js +65 -0
- package/dist/redact-secrets.js.map +1 -0
- package/dist/run-history.js +34 -24
- package/dist/run-history.js.map +1 -1
- package/dist/runtime-provenance.d.ts +8 -0
- package/dist/runtime-provenance.d.ts.map +1 -0
- package/dist/runtime-provenance.js +225 -0
- package/dist/runtime-provenance.js.map +1 -0
- package/dist/sandbox-manager.d.ts +4 -1
- package/dist/sandbox-manager.d.ts.map +1 -1
- package/dist/sandbox-manager.js +114 -273
- package/dist/sandbox-manager.js.map +1 -1
- package/dist/secure-file-replace.d.ts +49 -0
- package/dist/secure-file-replace.d.ts.map +1 -0
- package/dist/secure-file-replace.js +270 -0
- package/dist/secure-file-replace.js.map +1 -0
- package/dist/seen-conversations.d.ts +32 -5
- package/dist/seen-conversations.d.ts.map +1 -1
- package/dist/seen-conversations.js +145 -15
- package/dist/seen-conversations.js.map +1 -1
- package/dist/sessions.d.ts +20 -0
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js +41 -6
- package/dist/sessions.js.map +1 -1
- package/dist/wizard/index.d.ts +2 -2
- package/dist/wizard/index.d.ts.map +1 -1
- package/dist/wizard/index.js +1 -1
- package/dist/wizard/index.js.map +1 -1
- package/dist/wizard/presets.d.ts +2 -1
- package/dist/wizard/presets.d.ts.map +1 -1
- package/dist/wizard/presets.js +2 -1
- package/dist/wizard/presets.js.map +1 -1
- package/dist/wizard/run.d.ts +0 -26
- package/dist/wizard/run.d.ts.map +1 -1
- package/dist/wizard/run.js +0 -53
- package/dist/wizard/run.js.map +1 -1
- package/package.json +22 -17
- package/schema/mono-agent.config.schema.json +45 -10
- package/skills/mono-agent-composer/SKILL.md +3 -3
- package/skills/mono-agent-composer/references/config-blueprint.md +123 -29
- package/skills/mono-agent-composer/references/discovery-questions.md +10 -8
- package/skills/mono-agent-composer/references/feature-coverage.md +90 -76
- package/skills/mono-agent-composer/references/package-map.md +6 -4
- package/skills/mono-agent-composer/references/playbooks.md +48 -27
- package/skills/mono-agent-composer/references/validation.md +16 -3
- package/dist/notify-runtime.d.ts +0 -26
- package/dist/notify-runtime.d.ts.map +0 -1
- package/dist/notify-runtime.js +0 -27
- package/dist/notify-runtime.js.map +0 -1
- package/dist/notify-tool.d.ts +0 -51
- package/dist/notify-tool.d.ts.map +0 -1
- package/dist/notify-tool.js +0 -182
- package/dist/notify-tool.js.map +0 -1
- package/dist/recipes/base.d.ts +0 -15
- package/dist/recipes/base.d.ts.map +0 -1
- package/dist/recipes/base.js +0 -51
- package/dist/recipes/base.js.map +0 -1
- package/dist/recipes/catalog.d.ts +0 -4
- package/dist/recipes/catalog.d.ts.map +0 -1
- package/dist/recipes/catalog.js +0 -525
- package/dist/recipes/catalog.js.map +0 -1
- package/dist/recipes/index.d.ts +0 -11
- package/dist/recipes/index.d.ts.map +0 -1
- package/dist/recipes/index.js +0 -14
- package/dist/recipes/index.js.map +0 -1
- package/dist/recipes/types.d.ts +0 -70
- package/dist/recipes/types.d.ts.map +0 -1
- package/dist/recipes/types.js +0 -15
- package/dist/recipes/types.js.map +0 -1
- package/dist/setup.d.ts +0 -29
- package/dist/setup.d.ts.map +0 -1
- package/dist/setup.js +0 -97
- package/dist/setup.js.map +0 -1
|
@@ -11,12 +11,39 @@ export interface ListSeenOptions {
|
|
|
11
11
|
/** Cap on the number of (newest-first) summary files read. Default 2000. */
|
|
12
12
|
readonly limit?: number;
|
|
13
13
|
}
|
|
14
|
+
export interface SeenNotifyDestinationCache {
|
|
15
|
+
/** List destinations, sharing one fresh scan for repeated reads of the same directory. */
|
|
16
|
+
list(artifactDir: string): Promise<readonly SeenConversation[]>;
|
|
17
|
+
/** Fence any cached or in-flight result after a relevant artifact change. */
|
|
18
|
+
invalidate(): void;
|
|
19
|
+
}
|
|
20
|
+
interface SeenNotifyDestinationCacheOptions {
|
|
21
|
+
readonly ttlMs?: number;
|
|
22
|
+
readonly now?: () => number;
|
|
23
|
+
/** Test seam for deterministic scan/race coverage. */
|
|
24
|
+
readonly scan?: (artifactDir: string) => Promise<readonly SeenConversation[]>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* App-lifetime, one-directory cache for {@link listSeenNotifyDestinations}.
|
|
28
|
+
*
|
|
29
|
+
* The cache retains at most one completed value. Concurrent readers of the same
|
|
30
|
+
* directory and generation share one scan; different directories may scan in
|
|
31
|
+
* parallel while their transient map entries are removed on settlement. At
|
|
32
|
+
* most two generations scan one directory concurrently, so repeated
|
|
33
|
+
* invalidations cannot multiply the scanner's bounded stat batch without bound.
|
|
34
|
+
* Invalidation is a generation fence: callers whose scan crossed a relevant
|
|
35
|
+
* artifact change retry the current generation, while a stale scan can neither
|
|
36
|
+
* populate the cache nor clear a newer generation's in-flight scan.
|
|
37
|
+
*/
|
|
38
|
+
export declare function createSeenNotifyDestinationCache(options?: SeenNotifyDestinationCacheOptions): SeenNotifyDestinationCache;
|
|
14
39
|
/**
|
|
15
|
-
* Distinct
|
|
16
|
-
* the run-artifact summaries in `artifactDir`.
|
|
17
|
-
*
|
|
18
|
-
* stripped to the base id (the form a `notify` destination uses) and
|
|
19
|
-
* most recent sighting. Sorted newest-first. A missing dir yields
|
|
40
|
+
* Distinct Telegram/Slack conversationIds the agent has actually handled, read
|
|
41
|
+
* from the run-artifact summaries in `artifactDir`. Other schemes (including
|
|
42
|
+
* synthetic `cron:`/`webhook:` ids and WhatsApp) are dropped; daily-rollover
|
|
43
|
+
* buckets are stripped to the base id (the form a `notify` destination uses) and
|
|
44
|
+
* deduped to the most recent sighting. Sorted newest-first. A missing dir yields
|
|
45
|
+
* an empty list.
|
|
20
46
|
*/
|
|
21
47
|
export declare function listSeenNotifyDestinations(artifactDir: string, options?: ListSeenOptions): Promise<readonly SeenConversation[]>;
|
|
48
|
+
export {};
|
|
22
49
|
//# sourceMappingURL=seen-conversations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seen-conversations.d.ts","sourceRoot":"","sources":["../src/seen-conversations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"seen-conversations.d.ts","sourceRoot":"","sources":["../src/seen-conversations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,0FAA0F;IAC1F,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IAChE,6EAA6E;IAC7E,UAAU,IAAI,IAAI,CAAC;CACpB;AAED,UAAU,iCAAiC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;CAC/E;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,iCAAsC,GAC9C,0BAA0B,CAiG5B;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAkEtC"}
|
|
@@ -6,12 +6,122 @@ const SUMMARY_SUFFIX = ".summary.json";
|
|
|
6
6
|
const ROLLOVER_BUCKET = /#\d{4}-\d{2}-\d{2}$/u;
|
|
7
7
|
/** Max summary files statted concurrently, to bound open fds and avoid EMFILE. */
|
|
8
8
|
const STAT_BATCH_SIZE = 64;
|
|
9
|
+
/** Short enough to discover other artifact-directory changes without rescanning every notify resolution. */
|
|
10
|
+
const SEEN_NOTIFY_DESTINATION_TTL_MS = 30_000;
|
|
11
|
+
/** Bound invalidation churn to one older scan plus one refresh per artifact directory. */
|
|
12
|
+
const MAX_IN_FLIGHT_SCANS_PER_DIRECTORY = 2;
|
|
9
13
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
14
|
+
* App-lifetime, one-directory cache for {@link listSeenNotifyDestinations}.
|
|
15
|
+
*
|
|
16
|
+
* The cache retains at most one completed value. Concurrent readers of the same
|
|
17
|
+
* directory and generation share one scan; different directories may scan in
|
|
18
|
+
* parallel while their transient map entries are removed on settlement. At
|
|
19
|
+
* most two generations scan one directory concurrently, so repeated
|
|
20
|
+
* invalidations cannot multiply the scanner's bounded stat batch without bound.
|
|
21
|
+
* Invalidation is a generation fence: callers whose scan crossed a relevant
|
|
22
|
+
* artifact change retry the current generation, while a stale scan can neither
|
|
23
|
+
* populate the cache nor clear a newer generation's in-flight scan.
|
|
24
|
+
*/
|
|
25
|
+
export function createSeenNotifyDestinationCache(options = {}) {
|
|
26
|
+
const ttlMs = options.ttlMs ?? SEEN_NOTIFY_DESTINATION_TTL_MS;
|
|
27
|
+
if (!Number.isFinite(ttlMs) || ttlMs <= 0) {
|
|
28
|
+
throw new RangeError("seen notify destination cache ttlMs must be a positive finite number.");
|
|
29
|
+
}
|
|
30
|
+
const now = options.now ?? (() => Date.now());
|
|
31
|
+
const scan = options.scan ?? ((artifactDir) => listSeenNotifyDestinations(artifactDir));
|
|
32
|
+
let generation = 0;
|
|
33
|
+
let cached;
|
|
34
|
+
const inFlight = new Map();
|
|
35
|
+
let scanSequence = 0;
|
|
36
|
+
return {
|
|
37
|
+
async list(artifactDir) {
|
|
38
|
+
for (;;) {
|
|
39
|
+
const currentTime = now();
|
|
40
|
+
if (cached !== undefined && cached.artifactDir === artifactDir && currentTime < cached.expiresAt) {
|
|
41
|
+
return cached.destinations;
|
|
42
|
+
}
|
|
43
|
+
const currentGeneration = generation;
|
|
44
|
+
let activeScan;
|
|
45
|
+
const activeScans = inFlight.get(artifactDir) ?? [];
|
|
46
|
+
const currentScan = activeScans.find((candidate) => candidate.generation === currentGeneration);
|
|
47
|
+
if (currentScan !== undefined) {
|
|
48
|
+
activeScan = currentScan;
|
|
49
|
+
}
|
|
50
|
+
else if (activeScans.length >= MAX_IN_FLIGHT_SCANS_PER_DIRECTORY) {
|
|
51
|
+
// One older generation plus one refresh may still be draining. Wait
|
|
52
|
+
// for a slot, then let every waiter join the single current-generation
|
|
53
|
+
// scan created by the first caller that resumes.
|
|
54
|
+
await Promise.race(activeScans.map(({ promise }) => promise.then(() => undefined, () => undefined)));
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
const sequence = ++scanSequence;
|
|
59
|
+
let promise;
|
|
60
|
+
promise = scan(artifactDir)
|
|
61
|
+
.then((destinations) => {
|
|
62
|
+
if (generation === currentGeneration && sequence === scanSequence) {
|
|
63
|
+
cached = {
|
|
64
|
+
artifactDir,
|
|
65
|
+
expiresAt: now() + ttlMs,
|
|
66
|
+
destinations,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return destinations;
|
|
70
|
+
})
|
|
71
|
+
.finally(() => {
|
|
72
|
+
const scans = inFlight.get(artifactDir);
|
|
73
|
+
if (scans === undefined) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const remaining = scans.filter((candidate) => candidate.promise !== promise);
|
|
77
|
+
if (remaining.length === 0) {
|
|
78
|
+
inFlight.delete(artifactDir);
|
|
79
|
+
}
|
|
80
|
+
else if (remaining.length !== scans.length) {
|
|
81
|
+
inFlight.set(artifactDir, remaining);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
activeScan = { generation: currentGeneration, promise };
|
|
85
|
+
if (activeScans.length === 0) {
|
|
86
|
+
inFlight.set(artifactDir, [activeScan]);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
activeScans.push(activeScan);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
let destinations;
|
|
93
|
+
try {
|
|
94
|
+
destinations = await activeScan.promise;
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
if (generation !== activeScan.generation) {
|
|
98
|
+
// An invalidation made this failure obsolete. Join/retry the current
|
|
99
|
+
// generation instead of leaking an error from stale filesystem work.
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
if (generation === activeScan.generation) {
|
|
105
|
+
return destinations;
|
|
106
|
+
}
|
|
107
|
+
// A relevant run summary changed while this scan was in flight. Retry or
|
|
108
|
+
// join the current generation so unique-destination delivery never acts
|
|
109
|
+
// on a pre-invalidation candidate set.
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
invalidate() {
|
|
113
|
+
generation += 1;
|
|
114
|
+
cached = undefined;
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Distinct Telegram/Slack conversationIds the agent has actually handled, read
|
|
120
|
+
* from the run-artifact summaries in `artifactDir`. Other schemes (including
|
|
121
|
+
* synthetic `cron:`/`webhook:` ids and WhatsApp) are dropped; daily-rollover
|
|
122
|
+
* buckets are stripped to the base id (the form a `notify` destination uses) and
|
|
123
|
+
* deduped to the most recent sighting. Sorted newest-first. A missing dir yields
|
|
124
|
+
* an empty list.
|
|
15
125
|
*/
|
|
16
126
|
export async function listSeenNotifyDestinations(artifactDir, options = {}) {
|
|
17
127
|
const limit = options.limit ?? DEFAULT_LIMIT;
|
|
@@ -19,9 +129,15 @@ export async function listSeenNotifyDestinations(artifactDir, options = {}) {
|
|
|
19
129
|
try {
|
|
20
130
|
entries = await readdir(artifactDir);
|
|
21
131
|
}
|
|
22
|
-
catch {
|
|
23
|
-
|
|
24
|
-
|
|
132
|
+
catch (error) {
|
|
133
|
+
if (nodeErrorCode(error) === "ENOENT") {
|
|
134
|
+
// Dir absent (agent never ran) → nothing seen yet.
|
|
135
|
+
return [];
|
|
136
|
+
}
|
|
137
|
+
// Do not turn a transient permission/I/O failure into a cacheable empty
|
|
138
|
+
// candidate set. The per-run resolver contains this failure and the next
|
|
139
|
+
// notification gets an immediate retry instead of waiting for the TTL.
|
|
140
|
+
throw error;
|
|
25
141
|
}
|
|
26
142
|
const summaries = entries.filter((name) => name.endsWith(SUMMARY_SUFFIX));
|
|
27
143
|
// Summary filenames are conversationId-based with no embedded time ordering, so a
|
|
@@ -36,11 +152,15 @@ export async function listSeenNotifyDestinations(artifactDir, options = {}) {
|
|
|
36
152
|
try {
|
|
37
153
|
return { name, mtimeMs: (await stat(join(artifactDir, name))).mtimeMs };
|
|
38
154
|
}
|
|
39
|
-
catch {
|
|
40
|
-
|
|
155
|
+
catch (error) {
|
|
156
|
+
if (nodeErrorCode(error) === "ENOENT") {
|
|
157
|
+
// Retention may remove a file between readdir and stat.
|
|
158
|
+
return undefined;
|
|
159
|
+
}
|
|
160
|
+
throw error;
|
|
41
161
|
}
|
|
42
162
|
}));
|
|
43
|
-
withMtime.push(...stated);
|
|
163
|
+
withMtime.push(...stated.filter((entry) => entry !== undefined));
|
|
44
164
|
}
|
|
45
165
|
// Newest files first, then cap, so a busy agent's scan stays bounded.
|
|
46
166
|
withMtime.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
@@ -51,8 +171,8 @@ export async function listSeenNotifyDestinations(artifactDir, options = {}) {
|
|
|
51
171
|
continue;
|
|
52
172
|
}
|
|
53
173
|
const channelId = channelIdForConversation(parsed.conversationId);
|
|
54
|
-
if (channelId
|
|
55
|
-
continue; // synthetic
|
|
174
|
+
if (channelId !== "telegram" && channelId !== "slack") {
|
|
175
|
+
continue; // synthetic or a push channel without native-notify support
|
|
56
176
|
}
|
|
57
177
|
const conversationId = parsed.conversationId.replace(ROLLOVER_BUCKET, "");
|
|
58
178
|
const seen = {
|
|
@@ -72,8 +192,12 @@ async function readSummary(path) {
|
|
|
72
192
|
try {
|
|
73
193
|
raw = await readFile(path, "utf8");
|
|
74
194
|
}
|
|
75
|
-
catch {
|
|
76
|
-
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (nodeErrorCode(error) === "ENOENT") {
|
|
197
|
+
// Retention may remove a file between stat and read.
|
|
198
|
+
return undefined;
|
|
199
|
+
}
|
|
200
|
+
throw error;
|
|
77
201
|
}
|
|
78
202
|
let json;
|
|
79
203
|
try {
|
|
@@ -117,4 +241,10 @@ function compareLastSeen(a, b) {
|
|
|
117
241
|
}
|
|
118
242
|
return a < b ? -1 : 1;
|
|
119
243
|
}
|
|
244
|
+
function nodeErrorCode(error) {
|
|
245
|
+
if (typeof error !== "object" || error === null || !("code" in error)) {
|
|
246
|
+
return undefined;
|
|
247
|
+
}
|
|
248
|
+
return typeof error.code === "string" ? error.code : undefined;
|
|
249
|
+
}
|
|
120
250
|
//# sourceMappingURL=seen-conversations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seen-conversations.js","sourceRoot":"","sources":["../src/seen-conversations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"seen-conversations.js","sourceRoot":"","sources":["../src/seen-conversations.ts"],"names":[],"mappings":"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"}
|
package/dist/sessions.d.ts
CHANGED
|
@@ -7,6 +7,18 @@ export interface PurgeSessionsResult {
|
|
|
7
7
|
/** Count of removed `*.jsonl` session files (best-effort; 0 when none/unknown). */
|
|
8
8
|
readonly files: number;
|
|
9
9
|
}
|
|
10
|
+
export interface PurgeConversationHistoryResult {
|
|
11
|
+
/** The durable conversation-history root beside the configured artifact directory. */
|
|
12
|
+
readonly root: string;
|
|
13
|
+
/** True when an on-disk history store existed and was removed. */
|
|
14
|
+
readonly removed: boolean;
|
|
15
|
+
/** Count of removed `*.history.json` conversation records. */
|
|
16
|
+
readonly files: number;
|
|
17
|
+
}
|
|
18
|
+
export interface PurgeConversationStateResult {
|
|
19
|
+
readonly sessions: PurgeSessionsResult;
|
|
20
|
+
readonly history: PurgeConversationHistoryResult;
|
|
21
|
+
}
|
|
10
22
|
/**
|
|
11
23
|
* Remove the durable pi-session store so the next start begins with fresh sessions
|
|
12
24
|
* instead of resuming persisted transcripts. A no-op (`removed: false`) when no
|
|
@@ -18,4 +30,12 @@ export interface PurgeSessionsResult {
|
|
|
18
30
|
* not writing sessions while they are deleted.
|
|
19
31
|
*/
|
|
20
32
|
export declare function purgeSessions(input: MonoAgentAppConfigInput): Promise<PurgeSessionsResult>;
|
|
33
|
+
/**
|
|
34
|
+
* Remove the configured responder's canonical active-conversation history.
|
|
35
|
+
* This root is separate from both run artifacts and `memory.path`; callers must
|
|
36
|
+
* stop the worker first so no history transaction is active during deletion.
|
|
37
|
+
*/
|
|
38
|
+
export declare function purgeConversationHistory(input: MonoAgentAppConfigInput): Promise<PurgeConversationHistoryResult>;
|
|
39
|
+
/** Clear every persisted conversation-continuity store while preserving memory and run artifacts. */
|
|
40
|
+
export declare function purgeConversationState(input: MonoAgentAppConfigInput): Promise<PurgeConversationStateResult>;
|
|
21
41
|
//# sourceMappingURL=sessions.d.ts.map
|
package/dist/sessions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC;CAClD;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAmBhG;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,8BAA8B,CAAC,CAYzC;AAED,qGAAqG;AACrG,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,4BAA4B,CAAC,CAIvC"}
|
package/dist/sessions.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readdir, rm } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { resolveAppSessionsRoot } from "./app-config.js";
|
|
3
|
+
import { resolveAppArtifactDir, resolveAppSessionsRoot } from "./app-config.js";
|
|
4
4
|
/**
|
|
5
5
|
* Remove the durable pi-session store so the next start begins with fresh sessions
|
|
6
6
|
* instead of resuming persisted transcripts. A no-op (`removed: false`) when no
|
|
@@ -20,26 +20,61 @@ export async function purgeSessions(input) {
|
|
|
20
20
|
try {
|
|
21
21
|
files = await countSessionFiles(root);
|
|
22
22
|
}
|
|
23
|
-
catch {
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (isErrno(error, "ENOENT")) {
|
|
25
|
+
// The store may not exist yet; treat it as nothing to remove.
|
|
26
|
+
return { root, removed: false, files: 0 };
|
|
27
|
+
}
|
|
28
|
+
throw error;
|
|
26
29
|
}
|
|
27
30
|
await rm(root, { recursive: true, force: true });
|
|
28
31
|
return { root, removed: true, files };
|
|
29
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Remove the configured responder's canonical active-conversation history.
|
|
35
|
+
* This root is separate from both run artifacts and `memory.path`; callers must
|
|
36
|
+
* stop the worker first so no history transaction is active during deletion.
|
|
37
|
+
*/
|
|
38
|
+
export async function purgeConversationHistory(input) {
|
|
39
|
+
const artifactDir = await resolveAppArtifactDir(input);
|
|
40
|
+
const root = join(artifactDir, "..", "history");
|
|
41
|
+
let files = 0;
|
|
42
|
+
try {
|
|
43
|
+
files = await countFilesWithSuffix(root, ".history.json");
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if (isErrno(error, "ENOENT"))
|
|
47
|
+
return { root, removed: false, files: 0 };
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
await rm(root, { recursive: true, force: true });
|
|
51
|
+
return { root, removed: true, files };
|
|
52
|
+
}
|
|
53
|
+
/** Clear every persisted conversation-continuity store while preserving memory and run artifacts. */
|
|
54
|
+
export async function purgeConversationState(input) {
|
|
55
|
+
const sessions = await purgeSessions(input);
|
|
56
|
+
const history = await purgeConversationHistory(input);
|
|
57
|
+
return { sessions, history };
|
|
58
|
+
}
|
|
30
59
|
/** Recursively count `*.jsonl` session files under a sessions root. */
|
|
31
60
|
async function countSessionFiles(dir) {
|
|
61
|
+
return await countFilesWithSuffix(dir, ".jsonl");
|
|
62
|
+
}
|
|
63
|
+
async function countFilesWithSuffix(dir, suffix) {
|
|
32
64
|
const entries = await readdir(dir, { withFileTypes: true });
|
|
33
65
|
let total = 0;
|
|
34
66
|
for (const entry of entries) {
|
|
35
67
|
const full = join(dir, entry.name);
|
|
36
68
|
if (entry.isDirectory()) {
|
|
37
|
-
total += await
|
|
69
|
+
total += await countFilesWithSuffix(full, suffix);
|
|
38
70
|
}
|
|
39
|
-
else if (entry.isFile() && entry.name.endsWith(
|
|
71
|
+
else if (entry.isFile() && entry.name.endsWith(suffix)) {
|
|
40
72
|
total += 1;
|
|
41
73
|
}
|
|
42
74
|
}
|
|
43
75
|
return total;
|
|
44
76
|
}
|
|
77
|
+
function isErrno(error, code) {
|
|
78
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === code;
|
|
79
|
+
}
|
|
45
80
|
//# sourceMappingURL=sessions.js.map
|
package/dist/sessions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/wizard/index.d.ts
CHANGED
|
@@ -6,6 +6,6 @@ export type { AnswersFromCliArgs, WithChannel } from "./from-flags.js";
|
|
|
6
6
|
export { answersFromCli, isWithChannel, WITH_CHANNELS } from "./from-flags.js";
|
|
7
7
|
export type { WizardSelectOption } from "./prompts.js";
|
|
8
8
|
export { channelSelectOptions, guard, memorySelectOptions, modelSelectOptions, presetSelectOptions, toolMultiselectOptions, WizardCancelled, } from "./prompts.js";
|
|
9
|
-
export type {
|
|
10
|
-
export { runInitWizard
|
|
9
|
+
export type { WizardOutcome, WizardRunContext } from "./run.js";
|
|
10
|
+
export { runInitWizard } from "./run.js";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wizard/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtG,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE/E,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wizard/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtG,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE/E,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/wizard/index.js
CHANGED
|
@@ -2,5 +2,5 @@ export { alwaysOnTools, composeWizardPlan, defaultAnswers, effectiveFallbacks, h
|
|
|
2
2
|
export { findPreset, PRESET_CATALOG, presetAnswers, presetIds, RECIPE_TO_PRESET } from "./presets.js";
|
|
3
3
|
export { answersFromCli, isWithChannel, WITH_CHANNELS } from "./from-flags.js";
|
|
4
4
|
export { channelSelectOptions, guard, memorySelectOptions, modelSelectOptions, presetSelectOptions, toolMultiselectOptions, WizardCancelled, } from "./prompts.js";
|
|
5
|
-
export { runInitWizard
|
|
5
|
+
export { runInitWizard } from "./run.js";
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/dist/wizard/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wizard/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGtG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG/E,OAAO,EACL,oBAAoB,EACpB,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wizard/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGtG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG/E,OAAO,EACL,oBAAoB,EACpB,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/wizard/presets.d.ts
CHANGED
|
@@ -32,7 +32,8 @@ export declare function presetIds(): readonly string[];
|
|
|
32
32
|
export declare function presetAnswers(preset: WizardPreset): WizardAnswers;
|
|
33
33
|
/**
|
|
34
34
|
* Former recipe id → the preset that now supersedes it, built from each preset's
|
|
35
|
-
* `replacesRecipes`. Powers the deprecated `--recipe <id>` alias
|
|
35
|
+
* `replacesRecipes`. Powers the deprecated `--recipe <id>` alias (removed in
|
|
36
|
+
* v2.0.0) on `init`/`validate`:
|
|
36
37
|
* a mapped id resolves to its preset (with a deprecation notice); an unmapped id is
|
|
37
38
|
* treated as a retired recipe.
|
|
38
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/wizard/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACzC,2EAA2E;IAC3E,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAuDjD,CAAC;AAEF,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE/D;AAED,yCAAyC;AACzC,wBAAgB,SAAS,IAAI,SAAS,MAAM,EAAE,CAE7C;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAEjE;AAED
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/wizard/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACzC,2EAA2E;IAC3E,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAuDjD,CAAC;AAEF,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE/D;AAED,yCAAyC;AACzC,wBAAgB,SAAS,IAAI,SAAS,MAAM,EAAE,CAE7C;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAEjE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAI9D,CAAC"}
|
package/dist/wizard/presets.js
CHANGED
|
@@ -72,7 +72,8 @@ export function presetAnswers(preset) {
|
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* Former recipe id → the preset that now supersedes it, built from each preset's
|
|
75
|
-
* `replacesRecipes`. Powers the deprecated `--recipe <id>` alias
|
|
75
|
+
* `replacesRecipes`. Powers the deprecated `--recipe <id>` alias (removed in
|
|
76
|
+
* v2.0.0) on `init`/`validate`:
|
|
76
77
|
* a mapped id resolves to its preset (with a deprecation notice); an unmapped id is
|
|
77
78
|
* treated as a retired recipe.
|
|
78
79
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/wizard/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAsB,MAAM,cAAc,CAAC;AAuBlE;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE,gFAAgF;QAC7F,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,kCAAkC;QAC5C,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,CAAC,iBAAiB,CAAC;KACrC;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,kCAAkC;QACzC,WAAW,EAAE,0DAA0D;QACvE,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,qCAAqC;QAC/C,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;QAClE,eAAe,EAAE,CAAC,wBAAwB,CAAC;KAC5C;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,4EAA4E;QACzF,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,6BAA6B;QACvC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;QACxC,eAAe,EAAE,CAAC,gBAAgB,CAAC;KACpC;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,yHAAyH;QAC3H,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,4BAA4B;QACtC,OAAO,EAAE;YACP,KAAK,EAAE,uBAAuB;YAC9B,QAAQ,EAAE,CAAC,iBAAiB,CAAC;YAC7B,MAAM,EAAE,gBAAgB;SACzB;QACD,eAAe,EAAE,CAAC,sBAAsB,CAAC;KAC1C;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,6GAA6G;QAC1H,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,yBAAyB;QACnC,OAAO,EAAE;YACP,KAAK,EAAE,+BAA+B;YACtC,QAAQ,EAAE,CAAC,iBAAiB,CAAC;YAC7B,OAAO,EAAE,IAAI;SACd;QACD,eAAe,EAAE,CAAC,sBAAsB,CAAC;KAC1C;CACF,CAAC;AAEF,2DAA2D;AAC3D,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,SAAS;IACvB,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/wizard/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAsB,MAAM,cAAc,CAAC;AAuBlE;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE,gFAAgF;QAC7F,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,kCAAkC;QAC5C,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,CAAC,iBAAiB,CAAC;KACrC;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,kCAAkC;QACzC,WAAW,EAAE,0DAA0D;QACvE,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,qCAAqC;QAC/C,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;QAClE,eAAe,EAAE,CAAC,wBAAwB,CAAC;KAC5C;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,4EAA4E;QACzF,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,6BAA6B;QACvC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;QACxC,eAAe,EAAE,CAAC,gBAAgB,CAAC;KACpC;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,yHAAyH;QAC3H,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,4BAA4B;QACtC,OAAO,EAAE;YACP,KAAK,EAAE,uBAAuB;YAC9B,QAAQ,EAAE,CAAC,iBAAiB,CAAC;YAC7B,MAAM,EAAE,gBAAgB;SACzB;QACD,eAAe,EAAE,CAAC,sBAAsB,CAAC;KAC1C;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,6GAA6G;QAC1H,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,yBAAyB;QACnC,OAAO,EAAE;YACP,KAAK,EAAE,+BAA+B;YACtC,QAAQ,EAAE,CAAC,iBAAiB,CAAC;YAC7B,OAAO,EAAE,IAAI;SACd;QACD,eAAe,EAAE,CAAC,sBAAsB,CAAC;KAC1C;CACF,CAAC;AAEF,2DAA2D;AAC3D,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,SAAS;IACvB,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsC,IAAI,GAAG,CACxE,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAChC,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAC,CAC9E,CACF,CAAC"}
|
package/dist/wizard/run.d.ts
CHANGED
|
@@ -33,18 +33,6 @@ export interface SetupRepairRunContext extends WizardRunContext {
|
|
|
33
33
|
readonly credentialStates: Readonly<Record<string, ProviderCredentialState>>;
|
|
34
34
|
readonly moduleSecrets: Readonly<Record<string, string>>;
|
|
35
35
|
}
|
|
36
|
-
/** A focused model repair never re-prompts or returns channel/module secrets. */
|
|
37
|
-
export type ModelRepairOutcome = {
|
|
38
|
-
readonly status: "answers";
|
|
39
|
-
readonly answers: WizardAnswers;
|
|
40
|
-
readonly runProviderSetup: boolean;
|
|
41
|
-
readonly providerSetupSecrets: Readonly<Record<string, string>>;
|
|
42
|
-
readonly providerEnvironmentSecrets: Readonly<Record<string, string>>;
|
|
43
|
-
readonly piApiKeyPersistenceByProvider: Readonly<Record<string, "secure-store" | "environment">>;
|
|
44
|
-
readonly credentialStates: Readonly<Record<string, ProviderCredentialState>>;
|
|
45
|
-
} | {
|
|
46
|
-
readonly status: "cancelled";
|
|
47
|
-
};
|
|
48
36
|
/**
|
|
49
37
|
* The interactive `init` wizard: a colourful, step-by-step flow that COLLECTS a
|
|
50
38
|
* {@link WizardAnswers} and hands it back — it never writes anything. The caller
|
|
@@ -59,19 +47,5 @@ export declare function runInitWizard(ctx: WizardRunContext): Promise<WizardOutc
|
|
|
59
47
|
* credential or answer state is exposed unless the operator confirms a repair.
|
|
60
48
|
*/
|
|
61
49
|
export declare function runSetupRepairWizard(ctx: SetupRepairRunContext): Promise<WizardOutcome>;
|
|
62
|
-
/**
|
|
63
|
-
* Re-select only primary/fallback models and effort after a failed model check.
|
|
64
|
-
* Capabilities, module inputs, and observability are copied from `ctx.answers`,
|
|
65
|
-
* and no module secret is requested again. Tool/sandbox choices are re-confirmed
|
|
66
|
-
* when the runtime family crosses the direct-Codex boundary or changes whether
|
|
67
|
-
* a provider-owned Claude/direct-OpenCode tool loop is present.
|
|
68
|
-
*/
|
|
69
|
-
export declare function runModelRepairWizard(ctx: {
|
|
70
|
-
readonly cwd: string;
|
|
71
|
-
readonly answers: WizardAnswers;
|
|
72
|
-
readonly piAuthPath?: string;
|
|
73
|
-
/** Values parsed from the destination `.env`; shell-only credentials must not be supplied here. */
|
|
74
|
-
readonly persistedEnv?: Readonly<Record<string, string | undefined>>;
|
|
75
|
-
}): Promise<ModelRepairOutcome>;
|
|
76
50
|
export declare function guidedModelRefProblem(model: string): string | undefined;
|
|
77
51
|
//# sourceMappingURL=run.d.ts.map
|
package/dist/wizard/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/wizard/run.ts"],"names":[],"mappings":"AAmBA,OAAO,EAKL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAQL,KAAK,aAAa,EAEnB,MAAM,cAAc,CAAC;AAiCtB,+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;IAChE,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC;IACjG,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC7E,wFAAwF;IACxF,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1D,GACD;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAErC,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,8FAA8F;IAC9F,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACtE;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,qEAAqE;IACrE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,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;IAChE,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC;IACjG,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC7E,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1D;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/wizard/run.ts"],"names":[],"mappings":"AAmBA,OAAO,EAKL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAQL,KAAK,aAAa,EAEnB,MAAM,cAAc,CAAC;AAiCtB,+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;IAChE,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC;IACjG,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC7E,wFAAwF;IACxF,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1D,GACD;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAErC,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,8FAA8F;IAC9F,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACtE;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,qEAAqE;IACrE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,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;IAChE,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC;IACjG,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC7E,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1D;AAoJD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoBjF;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CA2B7F;AA6ID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgBvE"}
|
package/dist/wizard/run.js
CHANGED
|
@@ -174,59 +174,6 @@ export async function runSetupRepairWizard(ctx) {
|
|
|
174
174
|
throw error;
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
|
-
/**
|
|
178
|
-
* Re-select only primary/fallback models and effort after a failed model check.
|
|
179
|
-
* Capabilities, module inputs, and observability are copied from `ctx.answers`,
|
|
180
|
-
* and no module secret is requested again. Tool/sandbox choices are re-confirmed
|
|
181
|
-
* when the runtime family crosses the direct-Codex boundary or changes whether
|
|
182
|
-
* a provider-owned Claude/direct-OpenCode tool loop is present.
|
|
183
|
-
*/
|
|
184
|
-
export async function runModelRepairWizard(ctx) {
|
|
185
|
-
try {
|
|
186
|
-
p.log.step("Repair model configuration");
|
|
187
|
-
for (;;) {
|
|
188
|
-
const draft = draftFrom(ctx.answers);
|
|
189
|
-
try {
|
|
190
|
-
const previousFamilies = selectedRuntimeModels(draft).map(runtimeFamily).join(",");
|
|
191
|
-
await promptModelSettings(draft, ctx);
|
|
192
|
-
const nextFamilies = selectedRuntimeModels(draft).map(runtimeFamily).join(",");
|
|
193
|
-
if (previousFamilies !== nextFamilies
|
|
194
|
-
|| !hasExactAllowAllTools(draft)
|
|
195
|
-
|| hasInvalidUniformManagedSrtChain(draft)) {
|
|
196
|
-
p.log.info("The runtime route changed, so tool and sandbox safety choices must be confirmed again.");
|
|
197
|
-
await promptTools(draft);
|
|
198
|
-
await promptSafetyPolicy(draft);
|
|
199
|
-
}
|
|
200
|
-
const answers = toWizardAnswers(draft);
|
|
201
|
-
const plan = await composePlanForCwd(answers, ctx.cwd);
|
|
202
|
-
const providerSetup = await promptProviderSetup(plan, ctx, draft.credentialStates);
|
|
203
|
-
if (!await confirm({ message: "Use this model configuration?", initialValue: true })) {
|
|
204
|
-
return { status: "cancelled" };
|
|
205
|
-
}
|
|
206
|
-
return { status: "answers", answers, ...providerSetup, credentialStates: { ...draft.credentialStates } };
|
|
207
|
-
}
|
|
208
|
-
catch (error) {
|
|
209
|
-
if (error instanceof WizardBack) {
|
|
210
|
-
p.log.info("Returning to the preflight recovery menu; previous model choices were kept.");
|
|
211
|
-
return { status: "cancelled" };
|
|
212
|
-
}
|
|
213
|
-
if (error instanceof WizardExitRequested) {
|
|
214
|
-
if (await confirmExitSetup())
|
|
215
|
-
throw new WizardCancelled();
|
|
216
|
-
continue;
|
|
217
|
-
}
|
|
218
|
-
throw error;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
catch (error) {
|
|
223
|
-
if (error instanceof WizardCancelled) {
|
|
224
|
-
p.cancel("Model repair cancelled — previous choices were kept.");
|
|
225
|
-
return { status: "cancelled" };
|
|
226
|
-
}
|
|
227
|
-
throw error;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
177
|
/** Walk the flow (preset or custom), returning the fully collected answers. */
|
|
231
178
|
async function collectAnswers(ctx) {
|
|
232
179
|
p.intro("mono-agent init — let's build your agent");
|