pantheon-opencode 1.5.2 → 1.6.0-beta.10
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/.pantheon/code-mode/README.md +4 -2
- package/.pantheon/code-mode/checkpoint_session.py +138 -102
- package/.pantheon/code-mode/compress-inline.py +102 -57
- package/.pantheon/code-mode/manifest.json +2 -8
- package/AGENTS.global.md +182 -0
- package/AGENTS.md +10 -891
- package/CHANGELOG.md +343 -0
- package/README.md +577 -79
- package/README.pt-BR.md +345 -60
- package/bin/pantheon-init.mjs +26 -3
- package/commands/pantheon-audit.md +7 -1
- package/commands/pantheon-consolidate.md +1 -1
- package/commands/pantheon-deepwork.md +14 -3
- package/commands/pantheon-focus.md +17 -0
- package/commands/pantheon-optimize.md +2 -2
- package/commands/pantheon-vision.md +61 -12
- package/package.json +30 -11
- package/plugin.json +2 -2
- package/pyproject.toml +11 -16
- package/scripts/build-agents-md.mjs +376 -58
- package/scripts/changelog-merge.mjs +161 -0
- package/scripts/check-plugin-v2-coverage.mjs +213 -0
- package/scripts/ci-validate-yaml.py +7 -5
- package/scripts/{code_mode_server.py → code_mode.py} +119 -27
- package/scripts/cost.mjs +244 -41
- package/scripts/doctor.mjs +236 -29
- package/scripts/install/agents-md.mjs +4 -4
- package/scripts/install/cli-ui.mjs +1 -1
- package/scripts/install/config-migration.mjs +319 -6
- package/scripts/install/health-check.mjs +26 -37
- package/scripts/install/interactive.mjs +7 -7
- package/scripts/install/migrate.mjs +1 -1
- package/scripts/install/opencode-version.mjs +246 -4
- package/scripts/install/opencode.mjs +627 -179
- package/scripts/install/plugin.mjs +43 -9
- package/scripts/install/shared.mjs +120 -12
- package/scripts/install/vision-prompt.mjs +161 -0
- package/scripts/install-mcp.mjs +28 -9
- package/scripts/{mcp_persistence_server.py → mcp_persistence.py} +392 -78
- package/{src/mcp/mcp_resources_server.py → scripts/mcp_resources.py} +2 -2
- package/scripts/{memory_mcp_server.py → memory_mcp.py} +372 -198
- package/scripts/postinstall.mjs +0 -7
- package/scripts/probe-context-rehydrate.mjs +36 -13
- package/scripts/probe-pantheon-cost.mjs +71 -15
- package/scripts/prune.mjs +2 -2
- package/scripts/run-node-tests.mjs +189 -0
- package/scripts/sync-artifacts.mjs +26 -13
- package/scripts/sync-tui.mjs +24 -3
- package/scripts/test-opencode-v2-sandbox.sh +1913 -0
- package/scripts/validate-routing.mjs +43 -3
- package/scripts/validate-sandbox-install.mjs +138 -0
- package/scripts/versioning.mjs +13 -1
- package/scripts/vision-status.mjs +682 -0
- package/skills-lock.json +15 -16
- package/src/agents/aphrodite.md +20 -37
- package/src/agents/apollo.md +7 -3
- package/src/agents/athena.md +63 -35
- package/src/agents/demeter.md +8 -28
- package/src/agents/gaia.md +1 -1
- package/src/agents/hephaestus.md +10 -21
- package/src/agents/hermes.md +15 -38
- package/src/agents/iris.md +1 -1
- package/src/agents/mnemosyne.md +23 -60
- package/src/agents/nyx.md +1 -1
- package/src/agents/prometheus.md +16 -20
- package/src/agents/talos.md +10 -2
- package/src/agents/themis.md +5 -5
- package/src/agents/zeus.md +99 -130
- package/src/instructions/agent-return-format.instructions.md +18 -3
- package/src/instructions/backend-standards.instructions.md +2 -0
- package/src/instructions/frontend-standards.instructions.md +3 -1
- package/src/instructions/memory-protocol.instructions.md +11 -110
- package/src/instructions/zeus-anti-stall.instructions.md +14 -61
- package/src/instructions/zeus-communication-rules.instructions.md +0 -1
- package/src/instructions/zeus-council-synthesis.instructions.md +32 -260
- package/src/instructions/zeus-memory-operations.instructions.md +26 -0
- package/src/instructions/zeus-timeout-retry.instructions.md +40 -87
- package/src/mcp/{code_mode_server.py → code_mode.py} +119 -27
- package/src/mcp/eval_store.py +2 -2
- package/src/mcp/mcp_codemap_module.py +559 -129
- package/src/mcp/{mcp_persistence_server.py → mcp_persistence.py} +392 -78
- package/{scripts/mcp_resources_server.py → src/mcp/mcp_resources.py} +2 -2
- package/src/mcp/{memory_mcp_server.py → memory_mcp.py} +373 -250
- package/src/mcp/{pantheon_vision_server.py → pantheon_vision.py} +396 -40
- package/src/mcp/requirements-mcp.txt +10 -6
- package/src/mcp/requirements-vision.txt +4 -2
- package/src/pantheon/cost-command.ts +399 -101
- package/src/pantheon/delegation-enforce.ts +10 -1
- package/src/pantheon/model-command.ts +18 -7
- package/src/pantheon/presets.d.mts +0 -8
- package/src/pantheon/presets.mjs +5 -32
- package/src/pantheon/todo-enforcer.ts +1 -1
- package/src/pantheon/v2-bounded-read.ts +640 -0
- package/src/pantheon/v2-delegation-enforce.ts +214 -0
- package/src/pantheon/v2-execute-after.ts +186 -0
- package/src/pantheon/v2-tools.ts +429 -0
- package/src/pantheon/v2-unsupported.d.mts +11 -0
- package/src/pantheon/v2-unsupported.mjs +90 -0
- package/src/pantheon/v2-vision.ts +622 -0
- package/src/pantheon/vision-local.ts +531 -0
- package/src/pantheon/vision.ts +1161 -116
- package/src/plugin-v2.ts +1244 -288
- package/src/plugin.ts +12 -9
- package/src/plugins/tui/dist/server.d.ts +1 -2
- package/src/plugins/tui/dist/server.d.ts.map +1 -1
- package/src/plugins/tui/dist/tui-v2.d.ts +154 -0
- package/src/plugins/tui/dist/tui-v2.d.ts.map +1 -0
- package/src/plugins/tui/dist/tui-v2.js +659 -0
- package/src/plugins/tui/dist/tui-v2.js.map +1 -0
- package/src/plugins/tui/dist/tui.d.ts +85 -82
- package/src/plugins/tui/dist/tui.d.ts.map +1 -1
- package/src/plugins/tui/dist/tui.js +72 -59
- package/src/plugins/tui/index-v2.ts +6 -0
- package/src/plugins/tui/package-lock.json +5504 -1341
- package/src/plugins/tui/package.json +25 -15
- package/src/plugins/tui/src/index-v2.tsx +734 -0
- package/src/plugins/tui/src/index.tsx +106 -85
- package/src/plugins/tui/src/opencode-v2.d.ts +13 -0
- package/src/plugins/tui/tsconfig.build.json +5 -0
- package/src/plugins/tui/tsconfig.typecheck.json +5 -0
- package/src/plugins/tui/tsdown.config.ts +22 -2
- package/src/plugins/tui/tui-v2.ts +2 -0
- package/src/plugins/tui/tui.ts +3 -0
- package/src/routing.yml +11 -22
- package/src/skills/README.md +34 -39
- package/src/skills/agent-coordination/SKILL.md +7 -2
- package/src/skills/artifact-management/SKILL.md +12 -5
- package/src/skills/auto-continue/SKILL.md +54 -95
- package/src/skills/code-review-checklist/SKILL.md +5 -5
- package/src/skills/context-compression/SKILL.md +26 -879
- package/src/skills/session-goal/SKILL.md +14 -5
- package/src/skills/spec-driven-development/SKILL.md +3 -1
- package/src/skills/tdd-with-agents/SKILL.md +18 -10
- package/.pantheon/code-mode/eval-llm-judge.py +0 -255
- package/.pantheon/code-mode/eval-monte-carlo.py +0 -368
- package/.pantheon/code-mode/eval-run.py +0 -197
- package/.pantheon/code-mode/eval-static.py +0 -321
- package/.pantheon/code-mode/session-end-save.py +0 -186
- package/.pantheon/code-mode/session-end-save.sh +0 -18
- package/opencode.json +0 -58
- package/scripts/recover-zenodo-deposition.mjs +0 -146
- package/scripts/test-opencode-v1-v2-sandbox.sh +0 -862
- package/scripts/validate-zenodo-release.mjs +0 -154
- package/scripts/zenodo-artifact.mjs +0 -94
- package/scripts/zenodo-release-state.mjs +0 -53
- package/src/skills/orchestration-workflow/SKILL.md +0 -311
|
@@ -4,15 +4,15 @@ import { appendFile, mkdir, readFile, readdir, writeFile } from "node:fs/promise
|
|
|
4
4
|
import { homedir } from "node:os";
|
|
5
5
|
import { dirname, join } from "node:path";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
|
-
import { For, Show,
|
|
7
|
+
import { For, Show, createMemo, createResource, createSignal, onCleanup, onMount } from "solid-js";
|
|
8
8
|
//#region src/index.tsx
|
|
9
9
|
/** @jsxImportSource @opentui/solid */
|
|
10
10
|
/**
|
|
11
11
|
* pantheon-tui — Pantheon TUI plugin for opencode.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* V1 bundle: `tsdown` emits `dist/tui.js`, re-exported by root `tui.ts`.
|
|
14
|
+
* OpenCode V2 uses the separate `src/index-v2.tsx` entry and native CLI plugin
|
|
15
|
+
* API. No raw TSX implementation is shipped. Because the bundle inlines relative
|
|
16
16
|
* imports, this entry may be split into modules without breaking the loader.
|
|
17
17
|
*
|
|
18
18
|
* Slots:
|
|
@@ -121,12 +121,14 @@ async function resolvePresetForTui(env, cwd) {
|
|
|
121
121
|
}
|
|
122
122
|
async function detectVersion(api) {
|
|
123
123
|
try {
|
|
124
|
-
const
|
|
124
|
+
const pkgUrl = new URL("../../package.json", import.meta.url);
|
|
125
|
+
const pkgContent = await readFile(fileURLToPath(pkgUrl), "utf8");
|
|
125
126
|
const pkg = JSON.parse(pkgContent);
|
|
126
127
|
if (pkg.version) return pkg.version;
|
|
127
128
|
} catch {}
|
|
128
129
|
try {
|
|
129
|
-
const
|
|
130
|
+
const pkgUrl = new URL("../../../../package.json", import.meta.url);
|
|
131
|
+
const pkgContent = await readFile(fileURLToPath(pkgUrl), "utf8");
|
|
130
132
|
const pkg = JSON.parse(pkgContent);
|
|
131
133
|
if (pkg.version) return pkg.version;
|
|
132
134
|
} catch {}
|
|
@@ -165,7 +167,7 @@ async function detectVersion(api) {
|
|
|
165
167
|
if (ver) return ver;
|
|
166
168
|
}
|
|
167
169
|
} catch {}
|
|
168
|
-
return "1.
|
|
170
|
+
return "1.6.0-beta.10";
|
|
169
171
|
}
|
|
170
172
|
/**
|
|
171
173
|
* usage-bar — AI subscription usage gauge for the opencode TUI.
|
|
@@ -763,10 +765,7 @@ function parseDelegationMarkdown(raw, fileAlias, sessionID = "") {
|
|
|
763
765
|
case "Started":
|
|
764
766
|
if (value !== "" && started === void 0) started = value;
|
|
765
767
|
break;
|
|
766
|
-
case "Finalized":
|
|
767
|
-
finalized = value;
|
|
768
|
-
break;
|
|
769
|
-
default: break;
|
|
768
|
+
case "Finalized": finalized = value;
|
|
770
769
|
}
|
|
771
770
|
}
|
|
772
771
|
const startedAt = started !== void 0 ? Date.parse(started) : NaN;
|
|
@@ -885,7 +884,7 @@ function compareDelegationEntries(a, b) {
|
|
|
885
884
|
* then the most recent terminal reports; the remaining tail is collapsed
|
|
886
885
|
* by the View into a single "… +N more" line. Pure — so the history-only panel (no sessionID) is testable
|
|
887
886
|
* without the TUI runtime. */
|
|
888
|
-
function splitDelegationList(all, maxRecent = 8, now = Date.now(), staleThresholdMs =
|
|
887
|
+
function splitDelegationList(all, maxRecent = 8, now = Date.now(), staleThresholdMs = 18e5) {
|
|
889
888
|
const isActiveState = (st) => st === "running" || st === "retry" || st === "stale-running";
|
|
890
889
|
return {
|
|
891
890
|
active: all.filter((d) => isActiveState(d.state)).map((d) => markStaleIfRunning(d, now, staleThresholdMs)).sort(compareDelegationEntries),
|
|
@@ -900,20 +899,20 @@ function splitDelegationList(all, maxRecent = 8, now = Date.now(), staleThreshol
|
|
|
900
899
|
/** Live-first window used by {@link ceilingDelegationList} (kept for the
|
|
901
900
|
* ceiling helper and existing tests): active jobs first, then the most
|
|
902
901
|
* recent terminal reports (capped). Pure. */
|
|
903
|
-
function visibleDelegationList(all, maxTerminal = 8, now = Date.now(), staleThresholdMs =
|
|
902
|
+
function visibleDelegationList(all, maxTerminal = 8, now = Date.now(), staleThresholdMs = 18e5) {
|
|
904
903
|
const { active, recent } = splitDelegationList(all, maxTerminal, now, staleThresholdMs);
|
|
905
904
|
return [...active, ...recent];
|
|
906
905
|
}
|
|
907
906
|
/** Default stale-running threshold: 30 minutes. */
|
|
908
|
-
const STALE_RUNNING_THRESHOLD_MS =
|
|
907
|
+
const STALE_RUNNING_THRESHOLD_MS = 18e5;
|
|
909
908
|
/** Idle silence window: if no updatedAt change in this window, the entry is
|
|
910
909
|
* considered stale. Combined with the stale-running threshold to produce the
|
|
911
910
|
* display-only `stale-running` state. */
|
|
912
|
-
const IDLE_SILENCE_MS =
|
|
911
|
+
const IDLE_SILENCE_MS = 6e4;
|
|
913
912
|
/** Visual-only terminal retention windows. Reports remain on disk; these
|
|
914
913
|
* constants only control which rows enter the TUI window. */
|
|
915
|
-
const DELEGATION_DONE_RETENTION_MS =
|
|
916
|
-
const DELEGATION_FAILED_RETENTION_MS =
|
|
914
|
+
const DELEGATION_DONE_RETENTION_MS = 12e4;
|
|
915
|
+
const DELEGATION_FAILED_RETENTION_MS = 6e5;
|
|
917
916
|
/** Grace window for an ABSENT child status. `api.state.session.status()` only
|
|
918
917
|
* carries the sessions that are currently ALIVE; every finished child of a
|
|
919
918
|
* long-lived session is missing from that map. A child with no status is
|
|
@@ -923,7 +922,7 @@ const DELEGATION_FAILED_RETENTION_MS = 600 * 1e3;
|
|
|
923
922
|
* has not been registered by the status API yet: within this window of its
|
|
924
923
|
* last activity (`time.updated`, falling back to `time.created`) it still
|
|
925
924
|
* reads as running. */
|
|
926
|
-
const DELEGATION_CHILD_STATUS_GRACE_MS =
|
|
925
|
+
const DELEGATION_CHILD_STATUS_GRACE_MS = 6e4;
|
|
927
926
|
/** Recency window for the children channel. `session.children` returns EVERY
|
|
928
927
|
* child the focused session ever spawned, so a long session accumulates
|
|
929
928
|
* hundreds of historical rows that would inflate the panel. A child whose
|
|
@@ -931,12 +930,12 @@ const DELEGATION_CHILD_STATUS_GRACE_MS = 60 * 1e3;
|
|
|
931
930
|
* is older than this window is dropped BEFORE it can enter the list. 24h
|
|
932
931
|
* keeps the sidebar scoped to current work while still covering long
|
|
933
932
|
* delegations. A child with no timestamp at all is kept (fail-open). */
|
|
934
|
-
const DELEGATION_CHILDREN_RECENCY_MS =
|
|
933
|
+
const DELEGATION_CHILDREN_RECENCY_MS = 864e5;
|
|
935
934
|
/** Alias-less NATIVE task() live entries never receive a report alias (the
|
|
936
935
|
* task tool output carries none), so the 30s alias-less prune in
|
|
937
936
|
* mergeChildDelegationSources must not apply to them — 5 minutes covers a
|
|
938
937
|
* slow child listing while still bounding the live map. */
|
|
939
|
-
const NATIVE_LIVE_ALIASLESS_TTL_MS =
|
|
938
|
+
const NATIVE_LIVE_ALIASLESS_TTL_MS = 3e5;
|
|
940
939
|
/**
|
|
941
940
|
* Mark a running entry as `stale-running` if it has been running longer than
|
|
942
941
|
* the threshold AND has no recent activity (no `updatedAt` change in the last
|
|
@@ -1040,7 +1039,7 @@ function delegationStateTone(state) {
|
|
|
1040
1039
|
/** Bounded tracker: child session id → latest running tool call. */
|
|
1041
1040
|
const latestToolActivity = /* @__PURE__ */ new Map();
|
|
1042
1041
|
const MAX_TOOL_ACTIVITY_ENTRIES = 200;
|
|
1043
|
-
const TOOL_ACTIVITY_TTL_MS =
|
|
1042
|
+
const TOOL_ACTIVITY_TTL_MS = 3e5;
|
|
1044
1043
|
/** First usable summary string from common tool input fields. */
|
|
1045
1044
|
function summarizeToolInput(input) {
|
|
1046
1045
|
if (!input) return "";
|
|
@@ -1558,9 +1557,7 @@ function formatDelegationHeader(entries) {
|
|
|
1558
1557
|
case "failed":
|
|
1559
1558
|
failed++;
|
|
1560
1559
|
break;
|
|
1561
|
-
case "done":
|
|
1562
|
-
done++;
|
|
1563
|
-
break;
|
|
1560
|
+
case "done": done++;
|
|
1564
1561
|
}
|
|
1565
1562
|
const tail = failed > 0 ? ` · ${failed} failed` : "";
|
|
1566
1563
|
return `(${active} active · ${done} done${tail})`;
|
|
@@ -1808,10 +1805,49 @@ function DelegationRow(props) {
|
|
|
1808
1805
|
return _el$13;
|
|
1809
1806
|
})();
|
|
1810
1807
|
}
|
|
1811
|
-
/** Plugin-level live delegation store shared
|
|
1812
|
-
*
|
|
1813
|
-
*
|
|
1814
|
-
|
|
1808
|
+
/** Plugin-level live delegation store shared by event subscriptions and View.
|
|
1809
|
+
* Mutations notify subscribers so the View can refresh its durable child
|
|
1810
|
+
* list while also reading the map as an optimistic live source. */
|
|
1811
|
+
/** Create the observable live store shared by task events and the sidebar. */
|
|
1812
|
+
function createLiveDelegationStore() {
|
|
1813
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
1814
|
+
return {
|
|
1815
|
+
map: /* @__PURE__ */ new Map(),
|
|
1816
|
+
subscribe(listener) {
|
|
1817
|
+
listeners.add(listener);
|
|
1818
|
+
return () => listeners.delete(listener);
|
|
1819
|
+
},
|
|
1820
|
+
bump() {
|
|
1821
|
+
for (const listener of listeners) listener();
|
|
1822
|
+
}
|
|
1823
|
+
};
|
|
1824
|
+
}
|
|
1825
|
+
/** Register the live task-part events that invalidate the sidebar store. */
|
|
1826
|
+
function registerLiveDelegationEvents(api, liveStore) {
|
|
1827
|
+
const unsubLive = [];
|
|
1828
|
+
try {
|
|
1829
|
+
unsubLive.push(api.event.on("message.part.updated", (event) => {
|
|
1830
|
+
const props = event?.properties ?? {};
|
|
1831
|
+
const part = props.part ?? props.info?.part;
|
|
1832
|
+
if (part === void 0) return;
|
|
1833
|
+
const sample = extractToolActivity(part);
|
|
1834
|
+
if (sample !== null) trackToolActivity(latestToolActivity, sample.sessionID, sample.activity);
|
|
1835
|
+
if (reduceDelegationToolPart(liveStore.map, part)) liveStore.bump();
|
|
1836
|
+
}));
|
|
1837
|
+
} catch {}
|
|
1838
|
+
try {
|
|
1839
|
+
unsubLive.push(api.event.on("message.part.removed", (event) => {
|
|
1840
|
+
const props = event?.properties ?? {};
|
|
1841
|
+
const partID = props.partID ?? props.part?.id;
|
|
1842
|
+
if (partID !== void 0 && removeDelegationEntry(liveStore.map, partID)) liveStore.bump();
|
|
1843
|
+
}));
|
|
1844
|
+
} catch {}
|
|
1845
|
+
return () => {
|
|
1846
|
+
for (const unsub of unsubLive) try {
|
|
1847
|
+
unsub();
|
|
1848
|
+
} catch {}
|
|
1849
|
+
};
|
|
1850
|
+
}
|
|
1815
1851
|
function View(props) {
|
|
1816
1852
|
const [showSessions, setShowSessions] = createSignal(false);
|
|
1817
1853
|
const [showDelegations, setShowDelegations] = createSignal(true);
|
|
@@ -1941,11 +1977,12 @@ function View(props) {
|
|
|
1941
1977
|
cleanup.push(props.api.event.on("session.deleted", eventRefresh));
|
|
1942
1978
|
cleanup.push(props.api.event.on("session.status", eventRefresh));
|
|
1943
1979
|
} catch {}
|
|
1944
|
-
|
|
1945
|
-
props.liveStore.version();
|
|
1980
|
+
cleanup.push(props.liveStore.subscribe(() => {
|
|
1946
1981
|
eventRefreshCount += 1;
|
|
1947
1982
|
refreshDelegations();
|
|
1948
|
-
});
|
|
1983
|
+
}));
|
|
1984
|
+
eventRefreshCount += 1;
|
|
1985
|
+
refreshDelegations();
|
|
1949
1986
|
const poll = setInterval(() => {
|
|
1950
1987
|
setNow(Date.now());
|
|
1951
1988
|
refreshDelegations();
|
|
@@ -2172,34 +2209,10 @@ const tui = (api, _options, _meta) => {
|
|
|
2172
2209
|
const [version, setVersion] = createSignal(null);
|
|
2173
2210
|
detectVersion(api).then((detected) => setVersion(detected)).catch(() => setVersion(null));
|
|
2174
2211
|
setupUsageBar(api);
|
|
2175
|
-
const
|
|
2176
|
-
const
|
|
2177
|
-
map: /* @__PURE__ */ new Map(),
|
|
2178
|
-
version: liveVersion,
|
|
2179
|
-
bump: () => setLiveVersion((v) => v + 1)
|
|
2180
|
-
};
|
|
2181
|
-
const unsubLive = [];
|
|
2182
|
-
try {
|
|
2183
|
-
unsubLive.push(api.event.on("message.part.updated", (event) => {
|
|
2184
|
-
const props = event?.properties ?? {};
|
|
2185
|
-
const part = props.part ?? props.info?.part;
|
|
2186
|
-
if (part === void 0) return;
|
|
2187
|
-
const sample = extractToolActivity(part);
|
|
2188
|
-
if (sample !== null) trackToolActivity(latestToolActivity, sample.sessionID, sample.activity);
|
|
2189
|
-
if (reduceDelegationToolPart(liveStore.map, part)) liveStore.bump();
|
|
2190
|
-
}));
|
|
2191
|
-
} catch {}
|
|
2192
|
-
try {
|
|
2193
|
-
unsubLive.push(api.event.on("message.part.removed", (event) => {
|
|
2194
|
-
const props = event?.properties ?? {};
|
|
2195
|
-
const partID = props.partID ?? props.part?.id;
|
|
2196
|
-
if (partID !== void 0 && removeDelegationEntry(liveStore.map, partID)) liveStore.bump();
|
|
2197
|
-
}));
|
|
2198
|
-
} catch {}
|
|
2212
|
+
const liveStore = createLiveDelegationStore();
|
|
2213
|
+
const unsubscribeLive = registerLiveDelegationEvents(api, liveStore);
|
|
2199
2214
|
api.lifecycle.onDispose(() => {
|
|
2200
|
-
|
|
2201
|
-
unsub();
|
|
2202
|
-
} catch {}
|
|
2215
|
+
unsubscribeLive();
|
|
2203
2216
|
liveStore.map.clear();
|
|
2204
2217
|
});
|
|
2205
2218
|
api.slots.register({
|
|
@@ -2224,6 +2237,6 @@ const plugin = {
|
|
|
2224
2237
|
setup: async () => {}
|
|
2225
2238
|
};
|
|
2226
2239
|
//#endregion
|
|
2227
|
-
export { DELEGATION_ALIAS_WIDTH, DELEGATION_CHILDREN_RECENCY_MS, DELEGATION_CHILD_STATUS_GRACE_MS, DELEGATION_DESCRIPTION_MAX, DELEGATION_DONE_RETENTION_MS, DELEGATION_ELAPSED_WIDTH, DELEGATION_FAILED_RETENTION_MS, DELEGATION_ROW_GLYPHS, DELEGATION_VISIBLE_CEILING, IDLE_SILENCE_MS, NATIVE_LIVE_ALIASLESS_TTL_MS, STALE_RUNNING_THRESHOLD_MS, buildChildrenPath, ceilingDelegationList, childStatusToState, childrenToDelegationEntries, collectDelegationToolParts, compareDelegationEntries, countDelegationSources, createDelegationRowOpenHandler, plugin as default, delegationActivity, delegationActivityLabel, delegationElapsed, delegationRowGlyph, delegationRowIdentity, delegationRowMarker, delegationRowStatus, delegationSpinnerFrame, delegationStateTone, extractToolActivity, filterDelegationsToSession, fmtElapsed, formatDelegationAlias, formatDelegationElapsed, formatDelegationHeader, formatDelegationRowLead, formatPanelLogLine, isValidSessionId, latestToolActivityFor, markStaleIfRunning, mergeChildDelegationSources, mergeDelegationSources, navigateToDelegationSession, panelLogDir, parseDelegationMarkdown, parseDelegationToolPart, readAllDelegationEntries, readDelegationEntries, reduceDelegationToolPart, removeDelegationEntry, resolveCurrentSessionID, resolveDelegationsDir, resolvePantheonRoot, safeSessionPath, seedLiveDelegationMap, splitDelegationList, toDelegationEntry, trackToolActivity, truncateDelegationDescription, tuiLogPath, visibleDelegationList };
|
|
2240
|
+
export { DELEGATION_ALIAS_WIDTH, DELEGATION_CHILDREN_RECENCY_MS, DELEGATION_CHILD_STATUS_GRACE_MS, DELEGATION_DESCRIPTION_MAX, DELEGATION_DONE_RETENTION_MS, DELEGATION_ELAPSED_WIDTH, DELEGATION_FAILED_RETENTION_MS, DELEGATION_ROW_GLYPHS, DELEGATION_VISIBLE_CEILING, IDLE_SILENCE_MS, NATIVE_LIVE_ALIASLESS_TTL_MS, STALE_RUNNING_THRESHOLD_MS, buildChildrenPath, ceilingDelegationList, childStatusToState, childrenToDelegationEntries, collectDelegationToolParts, compareDelegationEntries, countDelegationSources, createDelegationRowOpenHandler, createLiveDelegationStore, plugin as default, delegationActivity, delegationActivityLabel, delegationElapsed, delegationRowGlyph, delegationRowIdentity, delegationRowMarker, delegationRowStatus, delegationSpinnerFrame, delegationStateTone, extractToolActivity, filterDelegationsToSession, fmtElapsed, formatDelegationAlias, formatDelegationElapsed, formatDelegationHeader, formatDelegationRowLead, formatPanelLogLine, isValidSessionId, latestToolActivityFor, markStaleIfRunning, mergeChildDelegationSources, mergeDelegationSources, navigateToDelegationSession, panelLogDir, parseDelegationMarkdown, parseDelegationToolPart, readAllDelegationEntries, readDelegationEntries, reduceDelegationToolPart, registerLiveDelegationEvents, removeDelegationEntry, resolveCurrentSessionID, resolveDelegationsDir, resolvePantheonRoot, safeSessionPath, seedLiveDelegationMap, splitDelegationList, toDelegationEntry, trackToolActivity, truncateDelegationDescription, tuiLogPath, visibleDelegationList };
|
|
2228
2241
|
|
|
2229
2242
|
//# sourceMappingURL=tui.js.map
|