@tekmidian/pai 1.0.2 → 1.0.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/.claude-plugin/plugin.json +1 -1
- package/dist/{auto-route-B4azPk4l.mjs → auto-route-21GdHL70.mjs} +2 -2
- package/dist/auto-route-C3S2W3Bc.mjs +11 -0
- package/dist/{budget-Dod6rnA9.mjs → budget-BrloTOZW.mjs} +1 -1
- package/dist/{chain-D-yvET_y.mjs → chain-D7PFur8Y.mjs} +2 -2
- package/dist/cli/index.mjs +82 -198
- package/dist/{cockpit-actions-BWunx3rY.mjs → cockpit-actions-BfRMr2sm.mjs} +6 -6
- package/dist/{cockpit-actions-C8GlTzts.mjs → cockpit-actions-OodH_vx_.mjs} +20 -18
- package/dist/{cockpit-memory-vTlFWV7F.mjs → cockpit-memory-teG9M8bG.mjs} +6 -6
- package/dist/config/defaults/config.yaml +6 -0
- package/dist/{controls-BcKFHeG1.mjs → controls-JLm6g0yP.mjs} +7 -5
- package/dist/daemon/index.mjs +23 -23
- package/dist/daemon-DeYImF1F.mjs +45 -0
- package/dist/daemon-mcp/index.mjs +21 -21
- package/dist/{daemon-ColVHwGZ.mjs → daemon-nXanenDM.mjs} +23 -19
- package/dist/{detect-9CZNO0yf.mjs → detect-BLKsUOgG.mjs} +2 -2
- package/dist/{detect-D1ziFFfA.mjs → detect-Rrimh0xc.mjs} +3 -3
- package/dist/{embed-pass-DIWjA68P.mjs → embed-pass-e64AwDCa.mjs} +1 -1
- package/dist/{endreason-C577xIQz.mjs → endreason-BC-v05H_.mjs} +17 -3
- package/dist/{factory-DjAAsqr_.mjs → factory-B7nv75rC.mjs} +2 -2
- package/dist/{factory-Bsib-qDG.mjs → factory-Bs9imVMq.mjs} +2 -2
- package/dist/{fallback-DFlItw1Z.mjs → fallback-CBWpp2F2.mjs} +227 -5
- package/dist/{health-Dnym-qcT.mjs → health-C4FQmkJn.mjs} +2 -2
- package/dist/{helpers-BD6V-p9w.mjs → helpers-DSNK_1KP.mjs} +2 -2
- package/dist/{helpers-CMGjy_0N.mjs → helpers-Dz7mjTSw.mjs} +3 -3
- package/dist/hooks/capture-all-events.mjs +21 -2
- package/dist/hooks/capture-tool-output.mjs +21 -2
- package/dist/hooks/worker-pool-host.mjs +167 -124
- package/dist/hooks/worker-status-line.mjs +34 -6
- package/dist/index.mjs +4 -4
- package/dist/{indexer-backend-_a6UNhXJ.mjs → indexer-backend-BdjeL4P8.mjs} +32 -229
- package/dist/{ipc-client-CaiGJnSM.mjs → ipc-client-CnYEF31R.mjs} +1 -1
- package/dist/{ipc-client-ZRmDKd5Z.mjs → ipc-client-DN7EvoVo.mjs} +1 -1
- package/dist/{kill-tree-EWYaEk5v.mjs → kill-tree-DleMNZX3.mjs} +2 -2
- package/dist/{kill-tree-BG7dRVtp.mjs → kill-tree-SV6hrIa3.mjs} +2 -2
- package/dist/{launch-Jh5NVeNe.mjs → launch-Di7N-J5X.mjs} +2 -2
- package/dist/{launch-CXVlZjHt.mjs → launch-DlZTKE3u.mjs} +2 -2
- package/dist/{main-config-ops-BEMpuhDz.mjs → main-config-ops-kTXR8Pyv.mjs} +1 -1
- package/dist/{main-resolver-3Ns1HPmS.mjs → main-resolver-yp_puSSb.mjs} +5 -5
- package/dist/{model-inventory-BFVSNFT3.mjs → model-inventory-h6Z9fN_o.mjs} +1 -1
- package/dist/{models-add-BtB3Se6f.mjs → models-add-TVni3A7V.mjs} +22 -22
- package/dist/{pai-marker-DurzIbw8.mjs → pai-marker-BcZyJguM.mjs} +2 -2
- package/dist/{pane-audit-BQytYa60.mjs → pane-audit-Lqy9N_Ki.mjs} +23 -5
- package/dist/{planner-BM27GBfC.mjs → planner-j77ndkBf.mjs} +14 -14
- package/dist/{pool-BRvoOkv6.mjs → pool-Dh-q3iJi.mjs} +43 -4
- package/dist/{pool-cli-B_YR8_Gl.mjs → pool-cli-BggU8GRp.mjs} +2 -2
- package/dist/{pool-cli-DkZTAlSW.mjs → pool-cli-DQ6OzRy2.mjs} +2 -2
- package/dist/{postgres-BdBNkL_l.mjs → postgres-BK4FP9Zg.mjs} +1 -1
- package/dist/{postgres-C6ti4haA.mjs → postgres-DNIOQijl.mjs} +17 -7
- package/dist/{project-setup-CfpApz5o.mjs → project-setup-CBRtFFh0.mjs} +16 -236
- package/dist/{providers-CblTFrhz.mjs → providers-C9QC0TtO.mjs} +2 -2
- package/dist/{providers-BeDiVEb-.mjs → providers-FvCLzFge.mjs} +2 -2
- package/dist/{query-feedback-BRfPtqki.mjs → query-feedback-DN52N9C5.mjs} +1 -1
- package/dist/{registrable-C7b6givx.mjs → registrable-BzH4TObg.mjs} +3 -3
- package/dist/{registrable-Uzgmfyhz.mjs → registrable-DpyTtajg.mjs} +2 -2
- package/dist/{render-Cc2j5QG9.mjs → render-B35bQTE-.mjs} +4 -4
- package/dist/{render-CwIrgxLi.mjs → render-C84BqQRC.mjs} +3 -3
- package/dist/{root-BWy0c2Lq.mjs → root-C4oXlXS_.mjs} +7 -7
- package/dist/{root-wC_6Fx0B.mjs → root-DD1xx_Vu.mjs} +16 -16
- package/dist/route-table-FEfDuhIV.mjs +15 -0
- package/dist/{routing-BAAST9vT.mjs → routing-DmkheCRH.mjs} +126 -8
- package/dist/{routing-CENt4HH1.mjs → routing-f2zulGwD.mjs} +1 -1
- package/dist/{run-6Q9kCPem.mjs → run-BwZKBJZZ.mjs} +28 -14
- package/dist/{scan-ZQWm-_se.mjs → scan-BBGvU5EB.mjs} +4 -4
- package/dist/{session-Bok2PqRS.mjs → session-BAhtXdxj.mjs} +15 -15
- package/dist/{session-DVUExUnX.mjs → session-Dn5OJXlg.mjs} +23 -23
- package/dist/{session-scan-BJI_ZO8M.mjs → session-scan-B57dNuA4.mjs} +1 -1
- package/dist/{session-scan-W-gbwJHM.mjs → session-scan-DUn10MBd.mjs} +2 -2
- package/dist/session-usage-CPvXvSkw.mjs +222 -0
- package/dist/{sources-ESUkZaWv.mjs → sources-CiE3rZek.mjs} +1 -1
- package/dist/{viewer-MWBVJP3u.mjs → viewer-DEySE4c_.mjs} +8 -8
- package/dist/{viewer-DcpJwGKE.mjs → viewer-wfKnvnrI.mjs} +6 -6
- package/dist/{worker-config-gmAq_-rI.mjs → worker-config-CO5FXLAT.mjs} +21 -21
- package/dist/{worker-config-BDYNxbYz.mjs → worker-config-eY5Qy4vl.mjs} +322 -25
- package/dist/{worktree-CrnOqTBW.mjs → worktree-CRs2gyg0.mjs} +2 -2
- package/dist/{zettelkasten-BzMm8REH.mjs → zettelkasten-_h_tUm2T.mjs} +1 -1
- package/dist/{zettelkasten-B_rRRRvD.mjs → zettelkasten-tpCRBYvH.mjs} +2 -2
- package/docs/cockpit.md +1 -0
- package/docs/images/architecture.png +0 -0
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
- package/pai-plugin.json +1 -1
- package/plugins/context-preservation/plugin.json +1 -1
- package/plugins/core/plugin.json +1 -1
- package/plugins/creative/plugin.json +1 -1
- package/plugins/observability/plugin.json +1 -1
- package/plugins/productivity/plugin.json +1 -1
- package/plugins/semantic-search/plugin.json +1 -1
- package/plugins/ui/plugin.json +1 -1
- package/plugins/zettelkasten/plugin.json +1 -1
- package/src/hooks/ts/capture-all-events.ts +15 -3
- package/src/hooks/ts/lib/raw-capture.ts +7 -0
- package/src/hooks/ts/post-tool-use/capture-tool-output.ts +13 -3
- package/dist/auto-route-BjoMHKyI.mjs +0 -11
- package/dist/daemon-N7WhYi6I.mjs +0 -45
- package/dist/route-table-B7zpoypi.mjs +0 -15
|
@@ -10565,6 +10565,7 @@ var init_pane_audit = __esm({
|
|
|
10565
10565
|
init_ledger();
|
|
10566
10566
|
init_paths();
|
|
10567
10567
|
init_kill_tree();
|
|
10568
|
+
init_endreason();
|
|
10568
10569
|
init_status();
|
|
10569
10570
|
init_plan_status();
|
|
10570
10571
|
init_pane_run();
|
|
@@ -18041,6 +18042,17 @@ var init_kg_triples = __esm({
|
|
|
18041
18042
|
async function ensureObservationTables(pool) {
|
|
18042
18043
|
if (_tablesEnsured) return;
|
|
18043
18044
|
await pool.query(SCHEMA_SQL);
|
|
18045
|
+
const colCheck = await pool.query(
|
|
18046
|
+
`SELECT column_name FROM information_schema.columns
|
|
18047
|
+
WHERE table_name = 'pai_observations' AND column_name IN ('source', 'fidelity')`
|
|
18048
|
+
);
|
|
18049
|
+
const existing = new Set(colCheck.rows.map((r) => r.column_name));
|
|
18050
|
+
if (!existing.has("source")) {
|
|
18051
|
+
await pool.query("ALTER TABLE pai_observations ADD COLUMN IF NOT EXISTS source TEXT");
|
|
18052
|
+
}
|
|
18053
|
+
if (!existing.has("fidelity")) {
|
|
18054
|
+
await pool.query("ALTER TABLE pai_observations ADD COLUMN IF NOT EXISTS fidelity TEXT");
|
|
18055
|
+
}
|
|
18044
18056
|
_tablesEnsured = true;
|
|
18045
18057
|
}
|
|
18046
18058
|
async function ensureSkillTelemetryTable(pool) {
|
|
@@ -18068,8 +18080,9 @@ async function storeObservation(pool, obs) {
|
|
|
18068
18080
|
const result = await pool.query(
|
|
18069
18081
|
`INSERT INTO pai_observations
|
|
18070
18082
|
(session_id, project_id, project_slug, type, title, narrative,
|
|
18071
|
-
tool_name, tool_input_summary, files_read, files_modified, concepts, content_hash
|
|
18072
|
-
|
|
18083
|
+
tool_name, tool_input_summary, files_read, files_modified, concepts, content_hash,
|
|
18084
|
+
source, fidelity)
|
|
18085
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9::jsonb, $10::jsonb, $11::jsonb, $12, $13, $14)
|
|
18073
18086
|
RETURNING id`,
|
|
18074
18087
|
[
|
|
18075
18088
|
obs.session_id,
|
|
@@ -18083,7 +18096,9 @@ async function storeObservation(pool, obs) {
|
|
|
18083
18096
|
JSON.stringify(obs.files_read),
|
|
18084
18097
|
JSON.stringify(obs.files_modified),
|
|
18085
18098
|
JSON.stringify(obs.concepts),
|
|
18086
|
-
hash
|
|
18099
|
+
hash,
|
|
18100
|
+
obs.source ?? null,
|
|
18101
|
+
obs.fidelity ?? null
|
|
18087
18102
|
]
|
|
18088
18103
|
);
|
|
18089
18104
|
return result.rows[0]?.id ?? null;
|
|
@@ -18125,7 +18140,7 @@ async function queryObservations(pool, opts = {}) {
|
|
|
18125
18140
|
`SELECT id, session_id, project_id, project_slug, type, title, narrative,
|
|
18126
18141
|
tool_name, tool_input_summary,
|
|
18127
18142
|
files_read, files_modified, concepts,
|
|
18128
|
-
content_hash, created_at
|
|
18143
|
+
content_hash, source, fidelity, created_at
|
|
18129
18144
|
FROM pai_observations
|
|
18130
18145
|
${where}
|
|
18131
18146
|
ORDER BY created_at DESC
|
|
@@ -18140,7 +18155,7 @@ async function queryRecentObservations(pool, projectId, limit) {
|
|
|
18140
18155
|
`SELECT id, session_id, project_id, project_slug, type, title, narrative,
|
|
18141
18156
|
tool_name, tool_input_summary,
|
|
18142
18157
|
files_read, files_modified, concepts,
|
|
18143
|
-
content_hash, created_at
|
|
18158
|
+
content_hash, source, fidelity, created_at
|
|
18144
18159
|
FROM pai_observations
|
|
18145
18160
|
WHERE project_id = $1
|
|
18146
18161
|
ORDER BY created_at DESC
|
|
@@ -18155,7 +18170,7 @@ async function querySessionObservations(pool, sessionId) {
|
|
|
18155
18170
|
`SELECT id, session_id, project_id, project_slug, type, title, narrative,
|
|
18156
18171
|
tool_name, tool_input_summary,
|
|
18157
18172
|
files_read, files_modified, concepts,
|
|
18158
|
-
content_hash, created_at
|
|
18173
|
+
content_hash, source, fidelity, created_at
|
|
18159
18174
|
FROM pai_observations
|
|
18160
18175
|
WHERE session_id = $1
|
|
18161
18176
|
ORDER BY created_at ASC`,
|
|
@@ -18325,6 +18340,8 @@ CREATE TABLE IF NOT EXISTS pai_observations (
|
|
|
18325
18340
|
files_modified JSONB DEFAULT '[]'::jsonb,
|
|
18326
18341
|
concepts JSONB DEFAULT '[]'::jsonb,
|
|
18327
18342
|
content_hash TEXT,
|
|
18343
|
+
source TEXT,
|
|
18344
|
+
fidelity TEXT,
|
|
18328
18345
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
18329
18346
|
);
|
|
18330
18347
|
|
|
@@ -24629,6 +24646,16 @@ var init_loopback_guard = __esm({
|
|
|
24629
24646
|
}
|
|
24630
24647
|
});
|
|
24631
24648
|
|
|
24649
|
+
// src/router/cockpit-auth.ts
|
|
24650
|
+
var init_cockpit_auth = __esm({
|
|
24651
|
+
"src/router/cockpit-auth.ts"() {
|
|
24652
|
+
"use strict";
|
|
24653
|
+
init_pai_home();
|
|
24654
|
+
init_loopback();
|
|
24655
|
+
init_timeouts();
|
|
24656
|
+
}
|
|
24657
|
+
});
|
|
24658
|
+
|
|
24632
24659
|
// src/router/router.ts
|
|
24633
24660
|
var init_router2 = __esm({
|
|
24634
24661
|
"src/router/router.ts"() {
|
|
@@ -24647,6 +24674,7 @@ var init_router2 = __esm({
|
|
|
24647
24674
|
init_local_instances();
|
|
24648
24675
|
init_route_table();
|
|
24649
24676
|
init_loopback_guard();
|
|
24677
|
+
init_cockpit_auth();
|
|
24650
24678
|
}
|
|
24651
24679
|
});
|
|
24652
24680
|
|
package/dist/index.mjs
CHANGED
|
@@ -3,11 +3,11 @@ import { a as slugify, i as parseSessionFilename, n as decodeEncodedDir, r as mi
|
|
|
3
3
|
import "./config-XpZWOYOG.mjs";
|
|
4
4
|
import "./config-Bu1_vbY8.mjs";
|
|
5
5
|
import "./paths-CHifubDh.mjs";
|
|
6
|
-
import "./worktree-
|
|
6
|
+
import "./worktree-CRs2gyg0.mjs";
|
|
7
7
|
import "./status-ggJ7lgVg.mjs";
|
|
8
|
-
import "./pool-
|
|
9
|
-
import "./registrable-
|
|
10
|
-
import { n as ensurePaiMarker, r as readPaiMarker, t as discoverPaiMarkers } from "./pai-marker-
|
|
8
|
+
import "./pool-Dh-q3iJi.mjs";
|
|
9
|
+
import "./registrable-DpyTtajg.mjs";
|
|
10
|
+
import { n as ensurePaiMarker, r as readPaiMarker, t as discoverPaiMarkers } from "./pai-marker-BcZyJguM.mjs";
|
|
11
11
|
import { d as estimateTokens, l as buildOutline, p as parseHeadings, r as detectTier, u as chunkMarkdown } from "./helpers-CRuBUas3.mjs";
|
|
12
12
|
import { i as populateSlugs, n as buildFtsQuery } from "./search-RSyeQqj1.mjs";
|
|
13
13
|
import { n as rerankResults, t as configureRerankerModel } from "./reranker-CqCbpGnX.mjs";
|
|
@@ -3,21 +3,21 @@ import { t as writeFileAtomic } from "./atomic-file-BorMa4T3.mjs";
|
|
|
3
3
|
import { N as resolveModelCapability, d as defaultWorkersConfig, j as readWorkersSection, wt as appendLedger } from "./config-XpZWOYOG.mjs";
|
|
4
4
|
import { O as writeJsonAtomic, c as loadConfig, f as readMainConfigRaw, n as CONFIG_FILE, p as writeMainConfigRaw } from "./config-Bu1_vbY8.mjs";
|
|
5
5
|
import { n as ensureNoMcpConfig, u as workersLogDir } from "./paths-CHifubDh.mjs";
|
|
6
|
-
import { w as worktreesDir } from "./worktree-
|
|
6
|
+
import { w as worktreesDir } from "./worktree-CRs2gyg0.mjs";
|
|
7
7
|
import { B as loadStatusConfig, W as writeContinueToForge } from "./status-ggJ7lgVg.mjs";
|
|
8
8
|
import { i as itermUuid, l as sessionMapPath } from "./scope-D-h6F6DN.mjs";
|
|
9
|
-
import { _ as resolveTarget, mt as loopbackRouterChoice, ut as buildRunEnv } from "./routing-
|
|
10
|
-
import { i as getRegistryBackend, r as createStorageBackend } from "./factory-
|
|
11
|
-
import { c as ensureProxyRunning, l as proxyPort } from "./launch-
|
|
9
|
+
import { _ as resolveTarget, mt as loopbackRouterChoice, ut as buildRunEnv } from "./routing-DmkheCRH.mjs";
|
|
10
|
+
import { i as getRegistryBackend, r as createStorageBackend } from "./factory-B7nv75rC.mjs";
|
|
11
|
+
import { c as ensureProxyRunning, l as proxyPort } from "./launch-Di7N-J5X.mjs";
|
|
12
12
|
import { n as fetchLiveSessions, r as sendToSession } from "./aibroker-client-CQPGqLxL.mjs";
|
|
13
|
-
import { E as probeRouter, z as recordSystemJobStart } from "./run-
|
|
14
|
-
import { bt as psTableOrNull } from "./controls-
|
|
15
|
-
import {
|
|
13
|
+
import { E as probeRouter, z as recordSystemJobStart } from "./run-BwZKBJZZ.mjs";
|
|
14
|
+
import { bt as psTableOrNull } from "./controls-JLm6g0yP.mjs";
|
|
15
|
+
import { n as isRealUserPrompt, t as extractUserPromptText } from "./session-usage-CPvXvSkw.mjs";
|
|
16
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
16
17
|
import { randomUUID } from "node:crypto";
|
|
17
18
|
import { basename, delimiter, dirname, join } from "node:path";
|
|
18
19
|
import { homedir, setPriority, userInfo } from "node:os";
|
|
19
20
|
import { spawn, spawnSync } from "node:child_process";
|
|
20
|
-
import { createInterface } from "node:readline";
|
|
21
21
|
import { copyFileSync as copyFileSync$1, existsSync as existsSync$1, linkSync as linkSync$1, mkdirSync as mkdirSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1, renameSync as renameSync$1, writeFileSync as writeFileSync$1 } from "fs";
|
|
22
22
|
import { basename as basename$1, join as join$1, resolve as resolve$1 } from "path";
|
|
23
23
|
import { homedir as homedir$1 } from "os";
|
|
@@ -945,223 +945,6 @@ function startQuietWatcher() {
|
|
|
945
945
|
if (timer.unref) timer.unref();
|
|
946
946
|
}
|
|
947
947
|
|
|
948
|
-
//#endregion
|
|
949
|
-
//#region src/audit/session-usage.ts
|
|
950
|
-
/**
|
|
951
|
-
* session-usage.ts — parse the usage numbers out of a Claude Code session
|
|
952
|
-
* (or subagent, or pai-worker event-mirror) JSONL transcript.
|
|
953
|
-
*
|
|
954
|
-
* All three log shapes share the same assistant-message envelope
|
|
955
|
-
* ({ type: "assistant", message: { id, model, usage } }), so one parser
|
|
956
|
-
* covers `pai audit tokens session` and the per-log readings feeding
|
|
957
|
-
* `pai audit tokens spawn`.
|
|
958
|
-
*
|
|
959
|
-
* Streaming writes one JSONL line per content block of the same logical
|
|
960
|
-
* turn, repeating message.id and usage each time — summing every line would
|
|
961
|
-
* multiply usage by the block count. Keeping only the first line seen per
|
|
962
|
-
* message.id is what the reference script (and this parser) count instead.
|
|
963
|
-
*/
|
|
964
|
-
const USAGE_KEYS = [
|
|
965
|
-
"cache_read_input_tokens",
|
|
966
|
-
"cache_creation_input_tokens",
|
|
967
|
-
"input_tokens",
|
|
968
|
-
"output_tokens"
|
|
969
|
-
];
|
|
970
|
-
function emptyTotals() {
|
|
971
|
-
return {
|
|
972
|
-
cache_read_input_tokens: 0,
|
|
973
|
-
cache_creation_input_tokens: 0,
|
|
974
|
-
input_tokens: 0,
|
|
975
|
-
output_tokens: 0
|
|
976
|
-
};
|
|
977
|
-
}
|
|
978
|
-
/**
|
|
979
|
-
* `type:"system"` `subtype:"compact_boundary"` lines mark a compaction.
|
|
980
|
-
* turnIndex is the count of assistant turns already folded when it fired,
|
|
981
|
-
* so it lines up with the turn numbering the text/JSON report prints.
|
|
982
|
-
*/
|
|
983
|
-
function isCompactBoundary(line) {
|
|
984
|
-
return line.type === "system" && line.subtype === "compact_boundary";
|
|
985
|
-
}
|
|
986
|
-
function parseCompactionEvent(line, turnIndex) {
|
|
987
|
-
const meta = line.compactMetadata;
|
|
988
|
-
if (!meta || typeof meta.preTokens !== "number") return null;
|
|
989
|
-
return {
|
|
990
|
-
trigger: meta.trigger ?? "unknown",
|
|
991
|
-
preTokens: meta.preTokens,
|
|
992
|
-
turnIndex
|
|
993
|
-
};
|
|
994
|
-
}
|
|
995
|
-
/**
|
|
996
|
-
* `type:"system"` `subtype:"model_refusal_fallback"` lines mark an
|
|
997
|
-
* automatic model switch fired by an API safety refusal (e.g. "cyber"
|
|
998
|
-
* category), not a user or config choice — worth flagging separately since
|
|
999
|
-
* it can rebuild the whole prompt cache mid-session.
|
|
1000
|
-
*/
|
|
1001
|
-
function isModelFallback(line) {
|
|
1002
|
-
return line.type === "system" && line.subtype === "model_refusal_fallback";
|
|
1003
|
-
}
|
|
1004
|
-
function parseFallbackEvent(line, turnIndex) {
|
|
1005
|
-
return {
|
|
1006
|
-
turnIndex,
|
|
1007
|
-
from: line.originalModel ?? "unknown",
|
|
1008
|
-
to: line.fallbackModel ?? "unknown",
|
|
1009
|
-
category: line.apiRefusalCategory ?? "unknown",
|
|
1010
|
-
scope: line.scope ?? "unknown"
|
|
1011
|
-
};
|
|
1012
|
-
}
|
|
1013
|
-
/**
|
|
1014
|
-
* Fold one already-parsed JSONL line into a report being accumulated.
|
|
1015
|
-
* Exported separately so both the streaming file reader below and tests
|
|
1016
|
-
* (which build fixtures as arrays of objects, not files) share one path.
|
|
1017
|
-
* Returns the turn's context value when a new turn was counted, else null
|
|
1018
|
-
* (non-assistant line, no usage, or a duplicate message.id already seen).
|
|
1019
|
-
*/
|
|
1020
|
-
function foldAssistantLine(report, seenIds, line, threshold) {
|
|
1021
|
-
if (line.type !== "assistant") return null;
|
|
1022
|
-
const message = line.message;
|
|
1023
|
-
const usage = message?.usage;
|
|
1024
|
-
if (!usage) return null;
|
|
1025
|
-
const id = message?.id ?? line.uuid;
|
|
1026
|
-
if (id) {
|
|
1027
|
-
if (seenIds.has(id)) return null;
|
|
1028
|
-
seenIds.add(id);
|
|
1029
|
-
}
|
|
1030
|
-
report.turns++;
|
|
1031
|
-
for (const key of USAGE_KEYS) {
|
|
1032
|
-
const v = usage[key];
|
|
1033
|
-
if (typeof v === "number") report.totals[key] += v;
|
|
1034
|
-
}
|
|
1035
|
-
const context = (Number(usage.cache_read_input_tokens) || 0) + (Number(usage.cache_creation_input_tokens) || 0) + (Number(usage.input_tokens) || 0);
|
|
1036
|
-
if (report.firstTurnContext === null) {
|
|
1037
|
-
report.firstTurnContext = context;
|
|
1038
|
-
report.firstTurnAt = line.timestamp ?? null;
|
|
1039
|
-
}
|
|
1040
|
-
const atMs = line.timestamp ? Date.parse(line.timestamp) : NaN;
|
|
1041
|
-
if (!Number.isNaN(atMs)) {
|
|
1042
|
-
if (report.lastTurnAtMs !== null && atMs - report.lastTurnAtMs > 3600 * 1e3) report.idleGapsOver60min++;
|
|
1043
|
-
report.lastTurnAtMs = atMs;
|
|
1044
|
-
}
|
|
1045
|
-
report.lastTurnContext = context;
|
|
1046
|
-
report.maxContext = report.maxContext === null ? context : Math.max(report.maxContext, context);
|
|
1047
|
-
if (context > threshold) report.turnsAboveThreshold++;
|
|
1048
|
-
if ((Number(usage.cache_creation_input_tokens) || 0) > 2e4) report.cacheRebuildTurns++;
|
|
1049
|
-
const model = message?.model ?? "unknown";
|
|
1050
|
-
report.models[model] = (report.models[model] ?? 0) + 1;
|
|
1051
|
-
if (report.lastModel !== null && report.lastModel !== model) report.modelSwitches.push({
|
|
1052
|
-
turnIndex: report.turns,
|
|
1053
|
-
from: report.lastModel,
|
|
1054
|
-
to: model,
|
|
1055
|
-
cacheRead: Number(usage.cache_read_input_tokens) || 0,
|
|
1056
|
-
cacheCreation: Number(usage.cache_creation_input_tokens) || 0
|
|
1057
|
-
});
|
|
1058
|
-
report.lastModel = model;
|
|
1059
|
-
const split = usage.cache_creation;
|
|
1060
|
-
if (split) {
|
|
1061
|
-
report.cacheCreationSplit.ephemeral5m += Number(split.ephemeral_5m_input_tokens) || 0;
|
|
1062
|
-
report.cacheCreationSplit.ephemeral1h += Number(split.ephemeral_1h_input_tokens) || 0;
|
|
1063
|
-
}
|
|
1064
|
-
return context;
|
|
1065
|
-
}
|
|
1066
|
-
/**
|
|
1067
|
-
* True for a real human-authored `type:"user"` prompt line: content is a
|
|
1068
|
-
* plain string, or a content array with no `tool_result` block. Claude Code
|
|
1069
|
-
* encodes tool results as `type:"user"` messages whose content array is
|
|
1070
|
-
* entirely (or partly) tool_result blocks — those must not count as prompts.
|
|
1071
|
-
*/
|
|
1072
|
-
function isRealUserPrompt(line) {
|
|
1073
|
-
if (line.type !== "user") return false;
|
|
1074
|
-
if (line.isMeta) return false;
|
|
1075
|
-
if (line.origin?.kind && line.origin.kind !== "human") return false;
|
|
1076
|
-
const content = line.message?.content;
|
|
1077
|
-
if (typeof content === "string") return true;
|
|
1078
|
-
if (Array.isArray(content)) return !content.some((block) => block?.type === "tool_result");
|
|
1079
|
-
return false;
|
|
1080
|
-
}
|
|
1081
|
-
/** Plain text of a real user prompt: the string content, or its first text block. */
|
|
1082
|
-
function extractUserPromptText(line) {
|
|
1083
|
-
const content = line.message?.content;
|
|
1084
|
-
if (typeof content === "string") return content;
|
|
1085
|
-
if (Array.isArray(content)) return content.find((b) => b?.type === "text")?.text ?? "";
|
|
1086
|
-
return "";
|
|
1087
|
-
}
|
|
1088
|
-
/**
|
|
1089
|
-
* Parse a session/subagent/worker-event JSONL file into a usage report.
|
|
1090
|
-
* `keepaliveWord`, when given, counts real user prompts whose text exactly
|
|
1091
|
-
* matches it (trimmed) — the sessions.cacheKeepalive beat prompt — into
|
|
1092
|
-
* `keepaliveBeats`; omitted, `keepaliveBeats` stays null.
|
|
1093
|
-
*/
|
|
1094
|
-
async function parseSessionUsage(path, threshold = 2e5, keepaliveWord) {
|
|
1095
|
-
const report = {
|
|
1096
|
-
path,
|
|
1097
|
-
sizeBytes: existsSync(path) ? readFileSync(path).byteLength : 0,
|
|
1098
|
-
turns: 0,
|
|
1099
|
-
totals: emptyTotals(),
|
|
1100
|
-
models: {},
|
|
1101
|
-
firstTurnContext: null,
|
|
1102
|
-
lastTurnContext: null,
|
|
1103
|
-
cacheCreationSplit: {
|
|
1104
|
-
ephemeral5m: 0,
|
|
1105
|
-
ephemeral1h: 0
|
|
1106
|
-
},
|
|
1107
|
-
avgContext: null,
|
|
1108
|
-
maxContext: null,
|
|
1109
|
-
turnsAboveThreshold: 0,
|
|
1110
|
-
cacheRebuildTurns: 0,
|
|
1111
|
-
userPrompts: 0,
|
|
1112
|
-
promptExposure: 0,
|
|
1113
|
-
compactions: [],
|
|
1114
|
-
firstTurnAt: null,
|
|
1115
|
-
lastModel: null,
|
|
1116
|
-
modelSwitches: [],
|
|
1117
|
-
fallbacks: [],
|
|
1118
|
-
lastTurnAtMs: null,
|
|
1119
|
-
idleGapsOver60min: 0,
|
|
1120
|
-
keepaliveBeats: keepaliveWord ? 0 : null
|
|
1121
|
-
};
|
|
1122
|
-
const seenIds = /* @__PURE__ */ new Set();
|
|
1123
|
-
let contextSum = 0;
|
|
1124
|
-
const rl = createInterface({
|
|
1125
|
-
input: createReadStream(path, "utf8"),
|
|
1126
|
-
crlfDelay: Infinity
|
|
1127
|
-
});
|
|
1128
|
-
for await (const raw of rl) {
|
|
1129
|
-
if (!raw.trim()) continue;
|
|
1130
|
-
let obj;
|
|
1131
|
-
try {
|
|
1132
|
-
obj = JSON.parse(raw);
|
|
1133
|
-
} catch {
|
|
1134
|
-
continue;
|
|
1135
|
-
}
|
|
1136
|
-
if (obj.type === "user") {
|
|
1137
|
-
if (isRealUserPrompt(obj)) {
|
|
1138
|
-
report.userPrompts++;
|
|
1139
|
-
if (keepaliveWord && extractUserPromptText(obj).trim() === keepaliveWord) report.keepaliveBeats = (report.keepaliveBeats ?? 0) + 1;
|
|
1140
|
-
}
|
|
1141
|
-
continue;
|
|
1142
|
-
}
|
|
1143
|
-
if (isCompactBoundary(obj)) {
|
|
1144
|
-
const event = parseCompactionEvent(obj, report.turns);
|
|
1145
|
-
if (event) report.compactions.push(event);
|
|
1146
|
-
continue;
|
|
1147
|
-
}
|
|
1148
|
-
if (isModelFallback(obj)) {
|
|
1149
|
-
report.fallbacks.push(parseFallbackEvent(obj, report.turns));
|
|
1150
|
-
continue;
|
|
1151
|
-
}
|
|
1152
|
-
const context = foldAssistantLine(report, seenIds, obj, threshold);
|
|
1153
|
-
if (context !== null) {
|
|
1154
|
-
contextSum += context;
|
|
1155
|
-
report.promptExposure += report.userPrompts;
|
|
1156
|
-
}
|
|
1157
|
-
}
|
|
1158
|
-
report.avgContext = report.turns > 0 ? Math.round(contextSum / report.turns) : null;
|
|
1159
|
-
return report;
|
|
1160
|
-
}
|
|
1161
|
-
function totalUsageTokens(totals) {
|
|
1162
|
-
return totals.cache_read_input_tokens + totals.cache_creation_input_tokens + totals.input_tokens + totals.output_tokens;
|
|
1163
|
-
}
|
|
1164
|
-
|
|
1165
948
|
//#endregion
|
|
1166
949
|
//#region src/daemon/session-keepalive.ts
|
|
1167
950
|
/**
|
|
@@ -3777,10 +3560,30 @@ async function handleSessionSummary(payload) {
|
|
|
3777
3560
|
process.stderr.write(`[session-summary] ${selectedModel} produced ${summaryText.length} char summary.\n`);
|
|
3778
3561
|
const notePath = writeSessionNote(cwd, summaryText, extracted.filesModified, sessionId);
|
|
3779
3562
|
if (notePath) process.stderr.write(`[session-summary] Session note written: ${basename(notePath)}\n`);
|
|
3563
|
+
const effectiveSlug = projectSlug ?? basename(cwd);
|
|
3564
|
+
const projectId = projectSlug ? await lookupProjectId(projectSlug) : null;
|
|
3565
|
+
if (storageBackend?.supportsPostgresFeatures) try {
|
|
3566
|
+
await storageBackend.storeObservation({
|
|
3567
|
+
session_id: sessionId ?? cwd,
|
|
3568
|
+
project_id: projectId,
|
|
3569
|
+
project_slug: effectiveSlug,
|
|
3570
|
+
type: "discovery",
|
|
3571
|
+
title: `session summary (${selectedModel})`,
|
|
3572
|
+
narrative: summaryText.slice(0, 2e3),
|
|
3573
|
+
tool_name: "session-summary",
|
|
3574
|
+
files_read: [],
|
|
3575
|
+
files_modified: extracted.filesModified,
|
|
3576
|
+
concepts: [],
|
|
3577
|
+
source: "daemon",
|
|
3578
|
+
fidelity: "inferred"
|
|
3579
|
+
});
|
|
3580
|
+
} catch (err) {
|
|
3581
|
+
process.stderr.write(`[session-summary] Summary observation failed: ${err}\n`);
|
|
3582
|
+
}
|
|
3780
3583
|
await extractAndStoreTriples({
|
|
3781
3584
|
summaryText,
|
|
3782
|
-
projectSlug:
|
|
3783
|
-
projectId
|
|
3585
|
+
projectSlug: effectiveSlug,
|
|
3586
|
+
projectId,
|
|
3784
3587
|
sessionId: sessionId ?? cwd,
|
|
3785
3588
|
gitLog,
|
|
3786
3589
|
model: selectedModel
|
|
@@ -4341,5 +4144,5 @@ function reexecBackground() {
|
|
|
4341
4144
|
}
|
|
4342
4145
|
|
|
4343
4146
|
//#endregion
|
|
4344
|
-
export { setStartTime as $, indexSchedulerTimer as A,
|
|
4345
|
-
//# sourceMappingURL=indexer-backend-
|
|
4147
|
+
export { setStartTime as $, indexSchedulerTimer as A, startQuietWatcher as At, setDaemonConfig as B, findLatestNote as Bt, migrateSummaryCooldowns as C, runSessionKeepaliveTick as Ct, embedInProgress as D, nextOccurrence as Dt, daemonConfig as E, describeQuiet as Et, lastVaultIndexTime as F, writeDaemonPidfile as Ft, setLastEmbedPass as G, setEmbedSchedulerTimer as H, readBodyFile as Ht, notificationConfig as I, readContextHandoverCache as It, setLastIndexTime as J, setLastEmbedTime as K, passFailures as L, writeContextHandoverCache as Lt, lastEmbedTime as M, LAUNCHD_LABEL as Mt, lastIndexPass as N, removeDaemonPidfile as Nt, embedSchedulerTimer as O, readQuiet as Ot, lastIndexTime as P, resolveDaemonPid as Pt, setShutdownRequested as Q, registryBackend as R, appendCheckpointToNote as Rt, handleSessionSummary as S, loadSessionKeepaliveState as St, cacheKeepaliveTimer as T, deferIfQuiet as Tt, setIndexInProgress as U, restartRouter as Ut, setEmbedInProgress as V, findNotesDir$1 as Vt, setIndexSchedulerTimer as W, setNotificationConfig as X, setLastVaultIndexTime as Y, setRegistryBackend as Z, markFailed as _, buildWakeupContext as _t, runPassChild as a, vaultIndexInProgress as at, findLatestJsonl as b, reapJob as bt, NonRetryableError as c, addWorkToSessionNote as ct, enqueue as d, getCurrentNotePath as dt, setStorageBackend as et, enqueueCoalesced as f, archiveSessionFilesToSessionsDir as ft, markCompleted as g, vaultIndexEnabled as gt, loadQueue as h, obsidianEnabled as ht, reexecBackground as i, storageBackend as it, lastEmbedPass as j, writeQuiet as jt, indexInProgress as k, registerQuietRunner as kt, cleanup as l, appendCheckpoint as lt, hasPendingOrProcessingOfType as m, OBSIDIAN_DISABLED_MESSAGE as mt, buildPassCommand as n, shutdownRequested as nt, backfillKgFromNotes as o, sessionIdFromTranscript as ot, getStats as p, findNotesDir as pt, setLastIndexPass as q, cliEntry as r, startTime as rt, migrateKgBackfillState as s, updateTodoContinue as st, PassSpawnError as t, setVaultIndexInProgress as tt, dequeue as u, finalizeSessionNote as ut, migrateWorkQueue as v, migrateIdentityFile as vt, spawnSummarizer as w, sessionKeepaliveLedgerSummary as wt, getGitContext as x, sweepOrphans as xt, contentToText as y, jobPaths as yt, setCacheKeepaliveTimer as z, applyContinue as zt };
|
|
4148
|
+
//# sourceMappingURL=indexer-backend-BdjeL4P8.mjs.map
|
|
@@ -3,7 +3,7 @@ import { i as ledgerPath } from "./paths-CHifubDh.mjs";
|
|
|
3
3
|
import { D as pidAlive, P as waitForTerminalStatus, k as saveStatus, v as loadStatus, w as ownsPid, y as loadStatuses } from "./status-ggJ7lgVg.mjs";
|
|
4
4
|
import { i as itermUuid } from "./scope-D-h6F6DN.mjs";
|
|
5
5
|
import { a as buildsDir, d as releaseBuildsOf, t as callerIdentity } from "./caller-identity-yLFb7CKq.mjs";
|
|
6
|
-
import { n as callerDescription, s as requestKill, t as appendStopEvent } from "./endreason-
|
|
6
|
+
import { n as callerDescription, s as requestKill, t as appendStopEvent } from "./endreason-BC-v05H_.mjs";
|
|
7
7
|
import { readFileSync } from "node:fs";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
import { homedir } from "node:os";
|
|
@@ -257,4 +257,4 @@ async function killTree(logDir, id, opts = {}) {
|
|
|
257
257
|
|
|
258
258
|
//#endregion
|
|
259
259
|
export { killTree as i, isOwner as n, killRefusal as r, descendantsLeavesFirst as t };
|
|
260
|
-
//# sourceMappingURL=kill-tree-
|
|
260
|
+
//# sourceMappingURL=kill-tree-DleMNZX3.mjs.map
|
|
@@ -4,7 +4,7 @@ import "./paths-CHifubDh.mjs";
|
|
|
4
4
|
import "./status-ggJ7lgVg.mjs";
|
|
5
5
|
import "./scope-D-h6F6DN.mjs";
|
|
6
6
|
import "./caller-identity-yLFb7CKq.mjs";
|
|
7
|
-
import "./endreason-
|
|
8
|
-
import { i as killTree, n as isOwner, r as killRefusal, t as descendantsLeavesFirst } from "./kill-tree-
|
|
7
|
+
import "./endreason-BC-v05H_.mjs";
|
|
8
|
+
import { i as killTree, n as isOwner, r as killRefusal, t as descendantsLeavesFirst } from "./kill-tree-DleMNZX3.mjs";
|
|
9
9
|
|
|
10
10
|
export { killTree };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { I as LOOPBACK_HOST, _ as maskKey, a as MODEL_CAPABILITIES, b as nativeOrchestratorModel, c as WorkersConfigError, j as readWorkersSection, p as getProviderOrNative, t as ANTHROPIC_NATIVE, y as nativeAnthropicProvider } from "./config-XpZWOYOG.mjs";
|
|
2
|
-
import { _t as nativeRoutePreflight, b as SESSION_PROVIDER_ENV, ut as buildRunEnv, yt as pinnedSettingsArgs } from "./routing-
|
|
2
|
+
import { _t as nativeRoutePreflight, b as SESSION_PROVIDER_ENV, ut as buildRunEnv, yt as pinnedSettingsArgs } from "./routing-DmkheCRH.mjs";
|
|
3
3
|
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import { spawn } from "node:child_process";
|
|
@@ -258,4 +258,4 @@ function maskLaunchEnv(env) {
|
|
|
258
258
|
|
|
259
259
|
//#endregion
|
|
260
260
|
export { detectCurrentProviderName as a, ensureProxyRunning as c, detectCurrentModel as i, proxyPort as l, buildLaunchPlan as n, launchableProviderNames as o, buildLaunchRows as r, maskLaunchEnv as s, LaunchError as t, stopProxy as u };
|
|
261
|
-
//# sourceMappingURL=launch-
|
|
261
|
+
//# sourceMappingURL=launch-Di7N-J5X.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as err } from "./utils-J2b9y8PC.mjs";
|
|
2
2
|
import { j as readWorkersSection, t as ANTHROPIC_NATIVE, vt as stripModelVariant } from "./config-XpZWOYOG.mjs";
|
|
3
|
-
import { _t as nativeRoutePreflight, b as SESSION_PROVIDER_ENV, dt as claudeCommand, gt as nativeLaunchSettingsArgs, ht as nativeLaunchEnv, ut as buildRunEnv, xt as routeVerdictLine, yt as pinnedSettingsArgs } from "./routing-
|
|
3
|
+
import { _t as nativeRoutePreflight, b as SESSION_PROVIDER_ENV, dt as claudeCommand, gt as nativeLaunchSettingsArgs, ht as nativeLaunchEnv, ut as buildRunEnv, xt as routeVerdictLine, yt as pinnedSettingsArgs } from "./routing-DmkheCRH.mjs";
|
|
4
4
|
import { closeSync, copyFileSync, existsSync, fstatSync, linkSync, openSync, readSync, realpathSync } from "node:fs";
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import chalk from "chalk";
|
|
@@ -740,4 +740,4 @@ function launchInDir(dir, name, opts = {}) {
|
|
|
740
740
|
|
|
741
741
|
//#endregion
|
|
742
742
|
export { providerResumePlan as a, resumeOfferBlock as c, printExitDir as d, probeResume as i, resumeRouteFor as l, launchInDir as n, restoreTopLevel as o, launchPrompt as r, resumeArgvText as s, hasConversation as t, transcriptModelFor as u };
|
|
743
|
-
//# sourceMappingURL=launch-
|
|
743
|
+
//# sourceMappingURL=launch-DlZTKE3u.mjs.map
|
|
@@ -239,4 +239,4 @@ function unsetConfigValueOp(dottedPath) {
|
|
|
239
239
|
|
|
240
240
|
//#endregion
|
|
241
241
|
export { listConfigOp as a, getConfigValueOp as i, formatConfigGetOutput as n, setConfigValueOp as o, formatConfigSource as r, unsetConfigValueOp as s, MainConfigOpsError as t };
|
|
242
|
-
//# sourceMappingURL=main-config-ops-
|
|
242
|
+
//# sourceMappingURL=main-config-ops-kTXR8Pyv.mjs.map
|
|
@@ -4,7 +4,7 @@ import "./config-Bu1_vbY8.mjs";
|
|
|
4
4
|
import "./paths-CHifubDh.mjs";
|
|
5
5
|
import "./status-ggJ7lgVg.mjs";
|
|
6
6
|
import { d as terminalHasName } from "./scope-D-h6F6DN.mjs";
|
|
7
|
-
import "./routing-
|
|
7
|
+
import "./routing-DmkheCRH.mjs";
|
|
8
8
|
import "./tool-errors-7E13StWd.mjs";
|
|
9
9
|
import "./wait-ByV0OyMZ.mjs";
|
|
10
10
|
import "./local-tiers-BE4jGaMa.mjs";
|
|
@@ -12,9 +12,9 @@ import "./caller-identity-yLFb7CKq.mjs";
|
|
|
12
12
|
import "./capacity-DEveQdFV.mjs";
|
|
13
13
|
import "./local-instances-DOxSgT_L.mjs";
|
|
14
14
|
import "./local-candidate-DLdwQt0s.mjs";
|
|
15
|
-
import { c as resumeOfferBlock, l as resumeRouteFor, n as launchInDir } from "./launch-
|
|
15
|
+
import { c as resumeOfferBlock, l as resumeRouteFor, n as launchInDir } from "./launch-DlZTKE3u.mjs";
|
|
16
16
|
import { i as switchToSession, n as fetchLiveSessions } from "./aibroker-client-CQPGqLxL.mjs";
|
|
17
|
-
import { s as scanSessions, t as fmtAge } from "./session-scan-
|
|
17
|
+
import { s as scanSessions, t as fmtAge } from "./session-scan-DUn10MBd.mjs";
|
|
18
18
|
import { createReadStream, existsSync, realpathSync } from "node:fs";
|
|
19
19
|
import { basename, join } from "node:path";
|
|
20
20
|
import chalk from "chalk";
|
|
@@ -600,7 +600,7 @@ async function openMatch(entry, allSessions, dryRun, resume, auto) {
|
|
|
600
600
|
}
|
|
601
601
|
async function getRegisteredProjects(all = false) {
|
|
602
602
|
try {
|
|
603
|
-
const { getRegistryBackend } = await import("./factory-
|
|
603
|
+
const { getRegistryBackend } = await import("./factory-Bs9imVMq.mjs");
|
|
604
604
|
return await (await getRegistryBackend()).listProjectsWithSessionStats(all ? {} : { status: "active" });
|
|
605
605
|
} catch {
|
|
606
606
|
return [];
|
|
@@ -784,4 +784,4 @@ async function cmdMain(query, pickN, opts) {
|
|
|
784
784
|
|
|
785
785
|
//#endregion
|
|
786
786
|
export { cmdMain };
|
|
787
|
-
//# sourceMappingURL=main-resolver-
|
|
787
|
+
//# sourceMappingURL=main-resolver-yp_puSSb.mjs.map
|
|
@@ -3,7 +3,7 @@ import "./config-Bu1_vbY8.mjs";
|
|
|
3
3
|
import "./paths-CHifubDh.mjs";
|
|
4
4
|
import "./status-ggJ7lgVg.mjs";
|
|
5
5
|
import "./scope-D-h6F6DN.mjs";
|
|
6
|
-
import { $ as parseFootprint, B as MODEL_INVENTORY_MAX_AGE_MS, G as fmtMem, H as ProbeHold, J as inventoryRows, K as fmtMemMapped, Q as modelLabel, R as DOWN_AFTER_MISSES, U as computeInventory, V as MODEL_INVENTORY_REFRESH_MS, W as currentInventory, X as liveDeps, Y as inventoryText, Z as modelKind, at as readInventoryInput, ct as writeInventory, et as parseSizeMb, it as readInventory, nt as processTreeMemory, ot as readModelLabels, q as inventoryPath, rt as processTreeRssMb, st as startInventoryRefresh, tt as parseTable, z as INVENTORY_HEADERS } from "./routing-
|
|
6
|
+
import { $ as parseFootprint, B as MODEL_INVENTORY_MAX_AGE_MS, G as fmtMem, H as ProbeHold, J as inventoryRows, K as fmtMemMapped, Q as modelLabel, R as DOWN_AFTER_MISSES, U as computeInventory, V as MODEL_INVENTORY_REFRESH_MS, W as currentInventory, X as liveDeps, Y as inventoryText, Z as modelKind, at as readInventoryInput, ct as writeInventory, et as parseSizeMb, it as readInventory, nt as processTreeMemory, ot as readModelLabels, q as inventoryPath, rt as processTreeRssMb, st as startInventoryRefresh, tt as parseTable, z as INVENTORY_HEADERS } from "./routing-DmkheCRH.mjs";
|
|
7
7
|
import "./tool-errors-7E13StWd.mjs";
|
|
8
8
|
import "./wait-ByV0OyMZ.mjs";
|
|
9
9
|
import "./local-tiers-BE4jGaMa.mjs";
|
|
@@ -2,12 +2,12 @@ import "./utils-J2b9y8PC.mjs";
|
|
|
2
2
|
import { tt as workersYamlPath } from "./config-XpZWOYOG.mjs";
|
|
3
3
|
import "./config-Bu1_vbY8.mjs";
|
|
4
4
|
import "./paths-CHifubDh.mjs";
|
|
5
|
-
import "./worktree-
|
|
5
|
+
import "./worktree-CRs2gyg0.mjs";
|
|
6
6
|
import "./status-ggJ7lgVg.mjs";
|
|
7
|
-
import "./pool-
|
|
7
|
+
import "./pool-Dh-q3iJi.mjs";
|
|
8
8
|
import "./helpers-CRuBUas3.mjs";
|
|
9
9
|
import "./scope-D-h6F6DN.mjs";
|
|
10
|
-
import "./routing-
|
|
10
|
+
import "./routing-DmkheCRH.mjs";
|
|
11
11
|
import "./tool-errors-7E13StWd.mjs";
|
|
12
12
|
import "./wait-ByV0OyMZ.mjs";
|
|
13
13
|
import { g as planStart, m as parseLocalConfig, o as defaultLauncher, y as shellQuote } from "./local-tiers-BE4jGaMa.mjs";
|
|
@@ -15,28 +15,28 @@ import "./caller-identity-yLFb7CKq.mjs";
|
|
|
15
15
|
import "./capacity-DEveQdFV.mjs";
|
|
16
16
|
import "./local-instances-DOxSgT_L.mjs";
|
|
17
17
|
import "./local-candidate-DLdwQt0s.mjs";
|
|
18
|
-
import "./factory-
|
|
19
|
-
import "./postgres-
|
|
18
|
+
import "./factory-B7nv75rC.mjs";
|
|
19
|
+
import "./postgres-DNIOQijl.mjs";
|
|
20
20
|
import "./embedding-gate-6rZrWRXa.mjs";
|
|
21
21
|
import "./embeddings-BVq3esBF.mjs";
|
|
22
22
|
import "./router-CQSc3lk3.mjs";
|
|
23
|
-
import "./launch-
|
|
24
|
-
import "./health-
|
|
25
|
-
import "./run-
|
|
26
|
-
import "./controls-
|
|
27
|
-
import "./endreason-
|
|
28
|
-
import "./render-
|
|
23
|
+
import "./launch-Di7N-J5X.mjs";
|
|
24
|
+
import "./health-C4FQmkJn.mjs";
|
|
25
|
+
import "./run-BwZKBJZZ.mjs";
|
|
26
|
+
import "./controls-JLm6g0yP.mjs";
|
|
27
|
+
import "./endreason-BC-v05H_.mjs";
|
|
28
|
+
import "./render-C84BqQRC.mjs";
|
|
29
29
|
import "./operator-CyuB3aVw.mjs";
|
|
30
|
-
import "./kill-tree-
|
|
31
|
-
import "./pool-cli-
|
|
32
|
-
import "./pane-audit-
|
|
33
|
-
import "./
|
|
34
|
-
import
|
|
35
|
-
import "./
|
|
36
|
-
import "./
|
|
37
|
-
import "./
|
|
38
|
-
import "./
|
|
39
|
-
import "./
|
|
30
|
+
import "./kill-tree-DleMNZX3.mjs";
|
|
31
|
+
import "./pool-cli-BggU8GRp.mjs";
|
|
32
|
+
import "./pane-audit-Lqy9N_Ki.mjs";
|
|
33
|
+
import "./fallback-CBWpp2F2.mjs";
|
|
34
|
+
import "./providers-C9QC0TtO.mjs";
|
|
35
|
+
import { H as canBind, U as sizeOnDiskGb, V as allocatePort, ct as saveRegistry, f as killInstance, g as portListeners, ot as defaultRegistryCtx, p as launchDetached, st as hashText, u as healthOk } from "./worker-config-eY5Qy4vl.mjs";
|
|
36
|
+
import "./main-config-ops-kTXR8Pyv.mjs";
|
|
37
|
+
import "./cockpit-actions-OodH_vx_.mjs";
|
|
38
|
+
import "./ipc-client-CnYEF31R.mjs";
|
|
39
|
+
import "./embed-pass-e64AwDCa.mjs";
|
|
40
40
|
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
41
41
|
import { basename, join } from "node:path";
|
|
42
42
|
import { homedir } from "node:os";
|
|
@@ -332,4 +332,4 @@ async function smokeTest(cfg, name, d = {}) {
|
|
|
332
332
|
|
|
333
333
|
//#endregion
|
|
334
334
|
export { addModel };
|
|
335
|
-
//# sourceMappingURL=models-add-
|
|
335
|
+
//# sourceMappingURL=models-add-TVni3A7V.mjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as writeFileAtomic } from "./atomic-file-BorMa4T3.mjs";
|
|
2
|
-
import { s as worktreeReason } from "./registrable-
|
|
2
|
+
import { s as worktreeReason } from "./registrable-DpyTtajg.mjs";
|
|
3
3
|
import { existsSync, mkdirSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
4
4
|
import { join, resolve } from "node:path";
|
|
5
5
|
import { homedir } from "node:os";
|
|
@@ -228,4 +228,4 @@ function discoverPaiMarkers(searchDirs) {
|
|
|
228
228
|
|
|
229
229
|
//#endregion
|
|
230
230
|
export { ensurePaiMarker as n, readPaiMarker as r, discoverPaiMarkers as t };
|
|
231
|
-
//# sourceMappingURL=pai-marker-
|
|
231
|
+
//# sourceMappingURL=pai-marker-BcZyJguM.mjs.map
|