open-multi-agent-kit 0.98.4 → 0.98.5
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/CHANGELOG.md +12 -0
- package/README.md +3 -2
- package/dist/commands/run-command.d.ts +2 -1
- package/dist/commands/run-command.d.ts.map +1 -1
- package/dist/commands/run-command.js +9 -1
- package/dist/commands/run-command.js.map +1 -1
- package/dist/commands/verified-run-cli.d.ts +6 -0
- package/dist/commands/verified-run-cli.d.ts.map +1 -0
- package/dist/commands/verified-run-cli.js +190 -0
- package/dist/commands/verified-run-cli.js.map +1 -0
- package/dist/core/agent-session-services.d.ts +8 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +41 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +7 -8
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +61 -41
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/prompt-settlement.d.ts +4 -3
- package/dist/core/prompt-settlement.d.ts.map +1 -1
- package/dist/core/prompt-settlement.js.map +1 -1
- package/dist/core/run-budget-policy.d.ts +18 -0
- package/dist/core/run-budget-policy.d.ts.map +1 -0
- package/dist/core/run-budget-policy.js +52 -0
- package/dist/core/run-budget-policy.js.map +1 -0
- package/dist/core/run-budget.d.ts +33 -0
- package/dist/core/run-budget.d.ts.map +1 -0
- package/dist/core/run-budget.js +89 -0
- package/dist/core/run-budget.js.map +1 -0
- package/dist/core/run-execution-api.d.ts +15 -0
- package/dist/core/run-execution-api.d.ts.map +1 -0
- package/dist/core/run-execution-api.js +7 -0
- package/dist/core/run-execution-api.js.map +1 -0
- package/dist/core/run-journal.d.ts.map +1 -1
- package/dist/core/run-journal.js +30 -208
- package/dist/core/run-journal.js.map +1 -1
- package/dist/core/session-bash-service.d.ts +2 -2
- package/dist/core/session-bash-service.d.ts.map +1 -1
- package/dist/core/session-bash-service.js +21 -9
- package/dist/core/session-bash-service.js.map +1 -1
- package/dist/core/session-failure-cause.d.ts.map +1 -1
- package/dist/core/session-failure-cause.js +5 -0
- package/dist/core/session-failure-cause.js.map +1 -1
- package/dist/core/session-prompt-lifecycle.d.ts +25 -0
- package/dist/core/session-prompt-lifecycle.d.ts.map +1 -0
- package/dist/core/session-prompt-lifecycle.js +87 -0
- package/dist/core/session-prompt-lifecycle.js.map +1 -0
- package/dist/core/session-run-budget.d.ts +28 -0
- package/dist/core/session-run-budget.d.ts.map +1 -0
- package/dist/core/session-run-budget.js +127 -0
- package/dist/core/session-run-budget.js.map +1 -0
- package/dist/core/session-run-termination.d.ts.map +1 -1
- package/dist/core/session-run-termination.js +14 -3
- package/dist/core/session-run-termination.js.map +1 -1
- package/dist/core/session-termination-types.d.ts +97 -0
- package/dist/core/session-termination-types.d.ts.map +1 -0
- package/dist/core/session-termination-types.js +26 -0
- package/dist/core/session-termination-types.js.map +1 -0
- package/dist/core/session-termination.d.ts +3 -97
- package/dist/core/session-termination.d.ts.map +1 -1
- package/dist/core/session-termination.js +24 -28
- package/dist/core/session-termination.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -0
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/subagent-lane-launcher.d.ts +3 -2
- package/dist/core/subagent-lane-launcher.d.ts.map +1 -1
- package/dist/core/subagent-lane-launcher.js +24 -13
- package/dist/core/subagent-lane-launcher.js.map +1 -1
- package/dist/core/verified-run/broker.d.ts +26 -0
- package/dist/core/verified-run/broker.d.ts.map +1 -0
- package/dist/core/verified-run/broker.js +210 -0
- package/dist/core/verified-run/broker.js.map +1 -0
- package/dist/core/verified-run/candidate.d.ts +24 -0
- package/dist/core/verified-run/candidate.d.ts.map +1 -0
- package/dist/core/verified-run/candidate.js +167 -0
- package/dist/core/verified-run/candidate.js.map +1 -0
- package/dist/core/verified-run/check-receipt.d.ts +18 -0
- package/dist/core/verified-run/check-receipt.d.ts.map +1 -0
- package/dist/core/verified-run/check-receipt.js +92 -0
- package/dist/core/verified-run/check-receipt.js.map +1 -0
- package/dist/core/verified-run/coordinator.d.ts +39 -0
- package/dist/core/verified-run/coordinator.d.ts.map +1 -0
- package/dist/core/verified-run/coordinator.js +190 -0
- package/dist/core/verified-run/coordinator.js.map +1 -0
- package/dist/core/verified-run/dag-candidates.d.ts +8 -0
- package/dist/core/verified-run/dag-candidates.d.ts.map +1 -0
- package/dist/core/verified-run/dag-candidates.js +65 -0
- package/dist/core/verified-run/dag-candidates.js.map +1 -0
- package/dist/core/verified-run/dag-phase.d.ts +7 -0
- package/dist/core/verified-run/dag-phase.d.ts.map +1 -0
- package/dist/core/verified-run/dag-phase.js +92 -0
- package/dist/core/verified-run/dag-phase.js.map +1 -0
- package/dist/core/verified-run/dag-projection.d.ts +7 -0
- package/dist/core/verified-run/dag-projection.d.ts.map +1 -0
- package/dist/core/verified-run/dag-projection.js +90 -0
- package/dist/core/verified-run/dag-projection.js.map +1 -0
- package/dist/core/verified-run/dag-recovery.d.ts +13 -0
- package/dist/core/verified-run/dag-recovery.d.ts.map +1 -0
- package/dist/core/verified-run/dag-recovery.js +98 -0
- package/dist/core/verified-run/dag-recovery.js.map +1 -0
- package/dist/core/verified-run/dag-retry-projection.d.ts +9 -0
- package/dist/core/verified-run/dag-retry-projection.d.ts.map +1 -0
- package/dist/core/verified-run/dag-retry-projection.js +43 -0
- package/dist/core/verified-run/dag-retry-projection.js.map +1 -0
- package/dist/core/verified-run/dag-types.d.ts +47 -0
- package/dist/core/verified-run/dag-types.d.ts.map +1 -0
- package/dist/core/verified-run/dag-types.js +2 -0
- package/dist/core/verified-run/dag-types.js.map +1 -0
- package/dist/core/verified-run/event-parser.d.ts +3 -0
- package/dist/core/verified-run/event-parser.d.ts.map +1 -0
- package/dist/core/verified-run/event-parser.js +153 -0
- package/dist/core/verified-run/event-parser.js.map +1 -0
- package/dist/core/verified-run/events.d.ts +4 -0
- package/dist/core/verified-run/events.d.ts.map +1 -0
- package/dist/core/verified-run/events.js +3 -0
- package/dist/core/verified-run/events.js.map +1 -0
- package/dist/core/verified-run/evidence-binding.d.ts +18 -0
- package/dist/core/verified-run/evidence-binding.d.ts.map +1 -0
- package/dist/core/verified-run/evidence-binding.js +81 -0
- package/dist/core/verified-run/evidence-binding.js.map +1 -0
- package/dist/core/verified-run/evidence.d.ts +27 -0
- package/dist/core/verified-run/evidence.d.ts.map +1 -0
- package/dist/core/verified-run/evidence.js +100 -0
- package/dist/core/verified-run/evidence.js.map +1 -0
- package/dist/core/verified-run/journal.d.ts +32 -0
- package/dist/core/verified-run/journal.d.ts.map +1 -0
- package/dist/core/verified-run/journal.js +103 -0
- package/dist/core/verified-run/journal.js.map +1 -0
- package/dist/core/verified-run/namespace-identity.d.ts +11 -0
- package/dist/core/verified-run/namespace-identity.d.ts.map +1 -0
- package/dist/core/verified-run/namespace-identity.js +77 -0
- package/dist/core/verified-run/namespace-identity.js.map +1 -0
- package/dist/core/verified-run/owned-execution.d.ts +21 -0
- package/dist/core/verified-run/owned-execution.d.ts.map +1 -0
- package/dist/core/verified-run/owned-execution.js +43 -0
- package/dist/core/verified-run/owned-execution.js.map +1 -0
- package/dist/core/verified-run/phase-context.d.ts +9 -0
- package/dist/core/verified-run/phase-context.d.ts.map +1 -0
- package/dist/core/verified-run/phase-context.js +2 -0
- package/dist/core/verified-run/phase-context.js.map +1 -0
- package/dist/core/verified-run/process-gate.d.ts +5 -0
- package/dist/core/verified-run/process-gate.d.ts.map +1 -0
- package/dist/core/verified-run/process-gate.js +31 -0
- package/dist/core/verified-run/process-gate.js.map +1 -0
- package/dist/core/verified-run/projection.d.ts +4 -0
- package/dist/core/verified-run/projection.d.ts.map +1 -0
- package/dist/core/verified-run/projection.js +219 -0
- package/dist/core/verified-run/projection.js.map +1 -0
- package/dist/core/verified-run/recovery-clock.d.ts +19 -0
- package/dist/core/verified-run/recovery-clock.d.ts.map +1 -0
- package/dist/core/verified-run/recovery-clock.js +69 -0
- package/dist/core/verified-run/recovery-clock.js.map +1 -0
- package/dist/core/verified-run/recovery-command.d.ts +11 -0
- package/dist/core/verified-run/recovery-command.d.ts.map +1 -0
- package/dist/core/verified-run/recovery-command.js +73 -0
- package/dist/core/verified-run/recovery-command.js.map +1 -0
- package/dist/core/verified-run/recovery-projection.d.ts +12 -0
- package/dist/core/verified-run/recovery-projection.d.ts.map +1 -0
- package/dist/core/verified-run/recovery-projection.js +88 -0
- package/dist/core/verified-run/recovery-projection.js.map +1 -0
- package/dist/core/verified-run/recovery.d.ts +12 -0
- package/dist/core/verified-run/recovery.d.ts.map +1 -0
- package/dist/core/verified-run/recovery.js +115 -0
- package/dist/core/verified-run/recovery.js.map +1 -0
- package/dist/core/verified-run/run-types.d.ts +103 -0
- package/dist/core/verified-run/run-types.d.ts.map +1 -0
- package/dist/core/verified-run/run-types.js +2 -0
- package/dist/core/verified-run/run-types.js.map +1 -0
- package/dist/core/verified-run/scripted-writer.d.ts +15 -0
- package/dist/core/verified-run/scripted-writer.d.ts.map +1 -0
- package/dist/core/verified-run/scripted-writer.js +94 -0
- package/dist/core/verified-run/scripted-writer.js.map +1 -0
- package/dist/core/verified-run/session-port.d.ts +27 -0
- package/dist/core/verified-run/session-port.d.ts.map +1 -0
- package/dist/core/verified-run/session-port.js +2 -0
- package/dist/core/verified-run/session-port.js.map +1 -0
- package/dist/core/verified-run/storage.d.ts +15 -0
- package/dist/core/verified-run/storage.d.ts.map +1 -0
- package/dist/core/verified-run/storage.js +96 -0
- package/dist/core/verified-run/storage.js.map +1 -0
- package/dist/core/verified-run/verification-phase.d.ts +5 -0
- package/dist/core/verified-run/verification-phase.d.ts.map +1 -0
- package/dist/core/verified-run/verification-phase.js +56 -0
- package/dist/core/verified-run/verification-phase.js.map +1 -0
- package/dist/core/verified-run/work-recovery.d.ts +8 -0
- package/dist/core/verified-run/work-recovery.d.ts.map +1 -0
- package/dist/core/verified-run/work-recovery.js +44 -0
- package/dist/core/verified-run/work-recovery.js.map +1 -0
- package/dist/core/verified-run/writer-completion.d.ts +4 -0
- package/dist/core/verified-run/writer-completion.d.ts.map +1 -0
- package/dist/core/verified-run/writer-completion.js +27 -0
- package/dist/core/verified-run/writer-completion.js.map +1 -0
- package/dist/core/verified-run/writer-phase.d.ts +8 -0
- package/dist/core/verified-run/writer-phase.d.ts.map +1 -0
- package/dist/core/verified-run/writer-phase.js +76 -0
- package/dist/core/verified-run/writer-phase.js.map +1 -0
- package/dist/core/verified-run/writer-projection.d.ts +11 -0
- package/dist/core/verified-run/writer-projection.d.ts.map +1 -0
- package/dist/core/verified-run/writer-projection.js +70 -0
- package/dist/core/verified-run/writer-projection.js.map +1 -0
- package/dist/core/verified-run/writer-recovery.d.ts +16 -0
- package/dist/core/verified-run/writer-recovery.d.ts.map +1 -0
- package/dist/core/verified-run/writer-recovery.js +107 -0
- package/dist/core/verified-run/writer-recovery.js.map +1 -0
- package/dist/core/workload-permit-pool.d.ts +1 -3
- package/dist/core/workload-permit-pool.d.ts.map +1 -1
- package/dist/core/workload-permit-pool.js +11 -11
- package/dist/core/workload-permit-pool.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +2 -8
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/session-failure.d.ts +13 -0
- package/dist/modes/interactive/components/session-failure.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-failure.js +81 -0
- package/dist/modes/interactive/components/session-failure.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +45 -31
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/tui-diagnostics.d.ts +36 -0
- package/dist/modes/interactive/tui-diagnostics.d.ts.map +1 -0
- package/dist/modes/interactive/tui-diagnostics.js +105 -0
- package/dist/modes/interactive/tui-diagnostics.js.map +1 -0
- package/dist/modes/interactive/tui-runtime-info.d.ts +20 -0
- package/dist/modes/interactive/tui-runtime-info.d.ts.map +1 -0
- package/dist/modes/interactive/tui-runtime-info.js +76 -0
- package/dist/modes/interactive/tui-runtime-info.js.map +1 -0
- package/docs/development.md +10 -0
- package/docs/keybindings.md +1 -1
- package/docs/release-audit-0.98.5.md +84 -0
- package/docs/run-protocol.md +33 -1
- package/docs/runtime-algorithms.md +26 -0
- package/docs/sdk.md +193 -0
- package/docs/usage.md +54 -0
- package/docs/verified-run-testing.md +417 -0
- package/docs/verified-run.md +388 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +18 -18
- package/package.json +6 -6
|
@@ -14,8 +14,8 @@ export { formatResumeCommand } from "./interactive-resume-command.js";
|
|
|
14
14
|
import { getApiKeyLoginDisplayName, isApiKeyLoginProvider, resolveLoginProviderArg, } from "./interactive-login-options.js";
|
|
15
15
|
import { disposeComponent, ExpandableText, isExpandable, normalizeToolExecutionResult, } from "./interactive-tool-result.js";
|
|
16
16
|
export { getApiKeyLoginDisplayName, isApiKeyLoginProvider, resolveLoginProviderArg, } from "./interactive-login-options.js";
|
|
17
|
-
import { CombinedAutocompleteProvider, Container, fuzzyFilter, getCapabilities, hyperlink, Loader, Markdown, matchesKey, ProcessTerminal, Spacer, setKeybindings, Text, TruncatedText, TUI,
|
|
18
|
-
import { APP_NAME, APP_TITLE, getAgentDir, getAuthPath,
|
|
17
|
+
import { CombinedAutocompleteProvider, Container, fuzzyFilter, getCapabilities, hyperlink, Loader, Markdown, matchesKey, ProcessTerminal, Spacer, setKeybindings, Text, TruncatedText, TUI, } from "omk-tui";
|
|
18
|
+
import { APP_NAME, APP_TITLE, getAgentDir, getAuthPath, getDocsPath, getShareViewerUrl, VERSION, } from "../../config.js";
|
|
19
19
|
import { parseSkillBlock } from "../../core/agent-session.js";
|
|
20
20
|
import { SessionImportFileNotFoundError } from "../../core/agent-session-runtime.js";
|
|
21
21
|
import { parseBangInvocation } from "../../core/bang-skill-invocation.js";
|
|
@@ -32,7 +32,6 @@ import { decideResourceAdmission } from "../../core/resource-admission.js";
|
|
|
32
32
|
import { formatResourcePolicyLines, formatResourceProbeLines, formatResourceSummaryLines, resolveResourceGovernorSettings, } from "../../core/resource-governor-settings.js";
|
|
33
33
|
import { formatMissingSessionCwdPrompt, MissingSessionCwdError } from "../../core/session-cwd.js";
|
|
34
34
|
import { SessionManager } from "../../core/session-manager.js";
|
|
35
|
-
import { formatSessionTermination } from "../../core/session-termination.js";
|
|
36
35
|
import { BUILTIN_SLASH_COMMANDS } from "../../core/slash-commands.js";
|
|
37
36
|
import { isInstallTelemetryEnabled } from "../../core/telemetry.js";
|
|
38
37
|
import { getChangelogPath, getNewEntries, parseChangelog } from "../../utils/changelog.js";
|
|
@@ -70,6 +69,7 @@ import { ModelSelectorComponent } from "./components/model-selector.js";
|
|
|
70
69
|
import { OAuthAccountSelectorComponent } from "./components/oauth-account-selector.js";
|
|
71
70
|
import { OAuthSelectorComponent } from "./components/oauth-selector.js";
|
|
72
71
|
import { ScopedModelsSelectorComponent } from "./components/scoped-models-selector.js";
|
|
72
|
+
import { SessionFailureComponent } from "./components/session-failure.js";
|
|
73
73
|
import { SessionSelectorComponent } from "./components/session-selector.js";
|
|
74
74
|
import { SettingsSelectorComponent, ThinkingSelectorComponent } from "./components/settings-selector.js";
|
|
75
75
|
import { SkillInvocationMessageComponent } from "./components/skill-invocation-message.js";
|
|
@@ -79,6 +79,9 @@ import { TreeSelectorComponent } from "./components/tree-selector.js";
|
|
|
79
79
|
import { UserMessageComponent } from "./components/user-message.js";
|
|
80
80
|
import { UserMessageSelectorComponent } from "./components/user-message-selector.js";
|
|
81
81
|
import { getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getMarkdownTheme, getThemeByName, initTheme, onThemeChange, setRegisteredThemes, setTheme, setThemeInstance, stopThemeWatcher, Theme, theme, } from "./theme/theme.js";
|
|
82
|
+
import { createTuiDiagnostics, createTuiDiagnosticsView, saveTuiDiagnostics } from "./tui-diagnostics.js";
|
|
83
|
+
import { captureTuiRuntime, inspectTuiRuntime } from "./tui-runtime-info.js";
|
|
84
|
+
const TUI_RUNTIME = captureTuiRuntime(import.meta.url);
|
|
82
85
|
const DEAD_TERMINAL_ERROR_CODES = new Set(["EIO", "EPIPE", "ENOTCONN"]);
|
|
83
86
|
/**
|
|
84
87
|
* Pseudo-entry for the thinking selector/autocomplete representing auto mode.
|
|
@@ -134,6 +137,7 @@ export class InteractiveMode {
|
|
|
134
137
|
// Stored so the same manager can be injected into custom editors, selectors, and extension UI.
|
|
135
138
|
keybindings;
|
|
136
139
|
version;
|
|
140
|
+
lastResourceReloadAt;
|
|
137
141
|
isInitialized = false;
|
|
138
142
|
onInputCallback;
|
|
139
143
|
pendingPromptPayloads = [];
|
|
@@ -2422,8 +2426,8 @@ export class InteractiveMode {
|
|
|
2422
2426
|
await this.handleReloadCommand();
|
|
2423
2427
|
return;
|
|
2424
2428
|
}
|
|
2425
|
-
if (text === "/debug") {
|
|
2426
|
-
this.handleDebugCommand();
|
|
2429
|
+
if (text === "/debug" || text.startsWith("/debug ")) {
|
|
2430
|
+
this.handleDebugCommand(text.slice("/debug".length).trim());
|
|
2427
2431
|
this.editor.setText("");
|
|
2428
2432
|
return;
|
|
2429
2433
|
}
|
|
@@ -2869,13 +2873,22 @@ export class InteractiveMode {
|
|
|
2869
2873
|
return textBlocks.map((c) => c.text).join("");
|
|
2870
2874
|
}
|
|
2871
2875
|
showSessionTermination(termination) {
|
|
2872
|
-
if (termination.kind === "completed"
|
|
2876
|
+
if (termination.kind === "completed")
|
|
2877
|
+
return;
|
|
2878
|
+
const last = this.lastRenderedTermination;
|
|
2879
|
+
if (last?.sessionId === termination.sessionId &&
|
|
2880
|
+
last.runId === termination.runId &&
|
|
2881
|
+
last.timestamp === termination.timestamp &&
|
|
2882
|
+
last.causeCode === termination.causeCode &&
|
|
2883
|
+
last.source === termination.source)
|
|
2873
2884
|
return;
|
|
2874
2885
|
this.lastRenderedTermination = termination;
|
|
2875
2886
|
// compaction_end owns the concise cancellation status; rendering this too duplicates it as a scary error.
|
|
2876
2887
|
if (termination.causeCode === "compaction.aborted")
|
|
2877
2888
|
return;
|
|
2878
|
-
this.
|
|
2889
|
+
this.chatContainer.addChild(new Spacer(1));
|
|
2890
|
+
this.chatContainer.addChild(new SessionFailureComponent(termination, this.toolOutputExpanded));
|
|
2891
|
+
this.ui.requestRender();
|
|
2879
2892
|
}
|
|
2880
2893
|
showPromptError(error, previousTermination) {
|
|
2881
2894
|
const termination = this.session.lastTermination;
|
|
@@ -4775,6 +4788,7 @@ export class InteractiveMode {
|
|
|
4775
4788
|
if (modelsJsonError) {
|
|
4776
4789
|
this.showError(`models.json error: ${modelsJsonError}`);
|
|
4777
4790
|
}
|
|
4791
|
+
this.lastResourceReloadAt = new Date().toISOString();
|
|
4778
4792
|
this.showStatus("Reloaded keybindings, extensions, skills, prompts, themes");
|
|
4779
4793
|
}
|
|
4780
4794
|
catch (error) {
|
|
@@ -5273,31 +5287,31 @@ export class InteractiveMode {
|
|
|
5273
5287
|
await this.handleFatalRuntimeError("Failed to create session", error);
|
|
5274
5288
|
}
|
|
5275
5289
|
}
|
|
5276
|
-
handleDebugCommand() {
|
|
5277
|
-
|
|
5278
|
-
|
|
5279
|
-
|
|
5280
|
-
|
|
5281
|
-
const
|
|
5282
|
-
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
}),
|
|
5292
|
-
"",
|
|
5293
|
-
"=== Agent messages (JSONL) ===",
|
|
5294
|
-
...this.session.messages.map((msg) => JSON.stringify(msg)),
|
|
5295
|
-
"",
|
|
5296
|
-
].join("\n");
|
|
5297
|
-
fs.mkdirSync(path.dirname(debugLogPath), { recursive: true });
|
|
5298
|
-
fs.writeFileSync(debugLogPath, debugData);
|
|
5290
|
+
handleDebugCommand(args = "") {
|
|
5291
|
+
if (args !== "" && args !== "save") {
|
|
5292
|
+
this.showError("Usage: /debug [save]. Raw transcripts are not part of diagnostics.");
|
|
5293
|
+
return;
|
|
5294
|
+
}
|
|
5295
|
+
const report = createTuiDiagnostics({
|
|
5296
|
+
runtime: inspectTuiRuntime(TUI_RUNTIME),
|
|
5297
|
+
columns: this.ui.terminal.columns,
|
|
5298
|
+
rows: this.ui.terminal.rows,
|
|
5299
|
+
isStreaming: this.session.isStreaming,
|
|
5300
|
+
isCompacting: this.session.isCompacting,
|
|
5301
|
+
messageCount: this.session.messages.length,
|
|
5302
|
+
termination: this.session.lastTermination,
|
|
5303
|
+
lastResourceReloadAt: this.lastResourceReloadAt,
|
|
5304
|
+
});
|
|
5299
5305
|
this.chatContainer.addChild(new Spacer(1));
|
|
5300
|
-
this.chatContainer.addChild(
|
|
5306
|
+
this.chatContainer.addChild(createTuiDiagnosticsView(report, TUI_RUNTIME));
|
|
5307
|
+
if (args === "save") {
|
|
5308
|
+
try {
|
|
5309
|
+
this.showStatus(`Metadata-only diagnostics saved locally: ${saveTuiDiagnostics(report)}`);
|
|
5310
|
+
}
|
|
5311
|
+
catch {
|
|
5312
|
+
this.showError("Could not save diagnostics. Check temporary-directory permissions; no transcript was exported.");
|
|
5313
|
+
}
|
|
5314
|
+
}
|
|
5301
5315
|
this.ui.requestRender();
|
|
5302
5316
|
}
|
|
5303
5317
|
handleArminSaysHi() {
|