@tekmidian/pai 1.0.3 → 1.0.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.
Files changed (147) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/dist/{auto-route-B7Yu6Uam.mjs → auto-route-DUYr57rs.mjs} +2 -2
  3. package/dist/auto-route-DWYK_0i0.mjs +11 -0
  4. package/dist/budget-DX-VIWGf.mjs +15 -0
  5. package/dist/{caller-identity-yLFb7CKq.mjs → caller-identity-Bim8JT-D.mjs} +3 -3
  6. package/dist/{capacity-DEveQdFV.mjs → capacity-CsZMkVyg.mjs} +7 -4
  7. package/dist/{chain-7n9Gx56r.mjs → chain-Dzz6xcKH.mjs} +5 -5
  8. package/dist/cli/index.mjs +114 -208
  9. package/dist/{cockpit-actions-BBHeyEZI.mjs → cockpit-actions-BTA1njMO.mjs} +31 -25
  10. package/dist/{cockpit-actions-DR9X514g.mjs → cockpit-actions-BgsiNcUY.mjs} +18 -18
  11. package/dist/cockpit-memory-DIrNs4xr.mjs +20 -0
  12. package/dist/config/defaults/config.yaml +9 -0
  13. package/dist/{config-XpZWOYOG.mjs → config-CST2uq1v.mjs} +29 -4
  14. package/dist/{config-Bu1_vbY8.mjs → config-DYbyEe4-.mjs} +2 -2
  15. package/dist/{config-DtENJ6cL.mjs → config-Dv3t7xnT.mjs} +1 -1
  16. package/dist/config-h5qK3fst.mjs +4 -0
  17. package/dist/{controls-CPoeudou.mjs → controls-OiVVbe-f.mjs} +18 -16
  18. package/dist/daemon/index.mjs +38 -37
  19. package/dist/{daemon-DPAo6WTa.mjs → daemon-C1dycZ3W.mjs} +35 -29
  20. package/dist/daemon-ieo0lnpq.mjs +46 -0
  21. package/dist/daemon-mcp/index.mjs +35 -35
  22. package/dist/detect-C0ZBXqDL.mjs +10 -0
  23. package/dist/{detect-9CZNO0yf.mjs → detect-CHuxFrLy.mjs} +2 -2
  24. package/dist/{embed-pass-DIWjA68P.mjs → embed-pass-DtVF2fOV.mjs} +4 -4
  25. package/dist/{embedding-gate-Cnk4YCyX.mjs → embedding-gate-B98PK_wz.mjs} +2 -2
  26. package/dist/{embedding-gate-6rZrWRXa.mjs → embedding-gate-CTAk8STe.mjs} +2 -2
  27. package/dist/{endreason-C577xIQz.mjs → endreason-BqyyU7BH.mjs} +20 -6
  28. package/dist/{factory-DjAAsqr_.mjs → factory-BV0MQA3T.mjs} +4 -4
  29. package/dist/{factory-Bsib-qDG.mjs → factory-DeASMV7Z.mjs} +4 -4
  30. package/dist/{fallback-DFlItw1Z.mjs → fallback-Bj2cyVk_.mjs} +230 -8
  31. package/dist/{health-Dnym-qcT.mjs → health-kufVIf6i.mjs} +4 -4
  32. package/dist/{helpers-BD6V-p9w.mjs → helpers-CvbYEKoD.mjs} +2 -2
  33. package/dist/{helpers-CMGjy_0N.mjs → helpers-WV8tdQHM.mjs} +5 -5
  34. package/dist/hooks/block-sleep-poll.mjs +1 -1
  35. package/dist/hooks/capture-all-events.mjs +21 -2
  36. package/dist/hooks/capture-tool-output.mjs +21 -2
  37. package/dist/hooks/load-project-context.mjs +7 -7
  38. package/dist/hooks/local-model-hint.mjs +1 -1
  39. package/dist/hooks/route-agents-to-worker.mjs +1 -1
  40. package/dist/hooks/security-validator.mjs +2 -2
  41. package/dist/hooks/worker-edit-repair.mjs +2 -2
  42. package/dist/hooks/worker-guard.mjs +8 -8
  43. package/dist/hooks/worker-note.mjs +2 -2
  44. package/dist/hooks/worker-pool-host.mjs +158 -55
  45. package/dist/hooks/worker-proxy.mjs +1 -1
  46. package/dist/hooks/worker-status-line.mjs +50 -22
  47. package/dist/hooks/worker-supervision.mjs +1 -1
  48. package/dist/hooks/worker-tool-name-repair.mjs +2 -2
  49. package/dist/index.mjs +8 -8
  50. package/dist/{indexer-backend-Cll7le4P.mjs → indexer-backend-B2vtFl38.mjs} +37 -234
  51. package/dist/{ipc-client-CaiGJnSM.mjs → ipc-client-CnYEF31R.mjs} +1 -1
  52. package/dist/{ipc-client-ZRmDKd5Z.mjs → ipc-client-DN7EvoVo.mjs} +1 -1
  53. package/dist/kill-tree-CXZ0WfVf.mjs +10 -0
  54. package/dist/{kill-tree-EWYaEk5v.mjs → kill-tree-CcpsRLCZ.mjs} +7 -7
  55. package/dist/{launch-Jh5NVeNe.mjs → launch-DpQPZGsT.mjs} +3 -3
  56. package/dist/{launch-CXVlZjHt.mjs → launch-UPQBoW2q.mjs} +3 -3
  57. package/dist/{local-candidate-DLdwQt0s.mjs → local-candidate-Cp_bw4kK.mjs} +3 -3
  58. package/dist/{local-instances-ZeRkkuS5.mjs → local-instances-B-c-CxzP.mjs} +4 -4
  59. package/dist/{local-instances-DOxSgT_L.mjs → local-instances-bdCNNSsL.mjs} +2 -2
  60. package/dist/{local-tiers-BE4jGaMa.mjs → local-tiers-BtdEEe5n.mjs} +2 -2
  61. package/dist/{local-tiers-DNMI5W86.mjs → local-tiers-OBqAAfOg.mjs} +3 -3
  62. package/dist/{main-config-ops-BEMpuhDz.mjs → main-config-ops-BYsK3BxM.mjs} +3 -3
  63. package/dist/{main-resolver-3Ns1HPmS.mjs → main-resolver-CAC3xfZM.mjs} +17 -17
  64. package/dist/{model-inventory-BFVSNFT3.mjs → model-inventory-BuTpi9a6.mjs} +13 -13
  65. package/dist/{models-add-C1QIc1DA.mjs → models-add-CJx2YAwh.mjs} +37 -36
  66. package/dist/operator-Bpxq_WB5.mjs +7 -0
  67. package/dist/{operator-CyuB3aVw.mjs → operator-DrwWItVt.mjs} +2 -2
  68. package/dist/{pai-marker-BcZyJguM.mjs → pai-marker-DLKJ9Yr5.mjs} +2 -2
  69. package/dist/{pane-audit-DKQt71s4.mjs → pane-audit-wv9UkyCe.mjs} +27 -9
  70. package/dist/{paths-CFHTloSe.mjs → paths-DBd78I7Z.mjs} +3 -3
  71. package/dist/{paths-CHifubDh.mjs → paths-DS5VQKoR.mjs} +3 -3
  72. package/dist/{planner-BmFACdLa.mjs → planner-K0mFrCpL.mjs} +28 -28
  73. package/dist/{pool-Dh-q3iJi.mjs → pool-BZ94nFuq.mjs} +2 -2
  74. package/dist/{pool-cli-BggU8GRp.mjs → pool-cli-B1eKySeN.mjs} +5 -5
  75. package/dist/{pool-cli-DQ6OzRy2.mjs → pool-cli-BjYQDfx6.mjs} +6 -6
  76. package/dist/{postgres-C6ti4haA.mjs → postgres-C-T5OWer.mjs} +19 -9
  77. package/dist/{postgres-BdBNkL_l.mjs → postgres-CBHY5PIi.mjs} +3 -3
  78. package/dist/{project-setup-jvfONJTQ.mjs → project-setup-pIPHZaXf.mjs} +26 -246
  79. package/dist/{providers-CblTFrhz.mjs → providers-Dzx5GAUI.mjs} +6 -6
  80. package/dist/providers-QJzpaNhX.mjs +16 -0
  81. package/dist/{query-feedback-BRfPtqki.mjs → query-feedback-DN52N9C5.mjs} +1 -1
  82. package/dist/{registrable-DpyTtajg.mjs → registrable-CXBBpUcz.mjs} +4 -4
  83. package/dist/registrable-Drn8wIDO.mjs +9 -0
  84. package/dist/render-C4KR8qQ8.mjs +13 -0
  85. package/dist/{render-BYmQkuLd.mjs → render-Cz3BWIBO.mjs} +8 -8
  86. package/dist/root-Bfb1zgwE.mjs +36 -0
  87. package/dist/{root-Xglu0OPD.mjs → root-bG48WVpW.mjs} +10 -10
  88. package/dist/route-table-ZVMNBsy7.mjs +15 -0
  89. package/dist/{routing-BAAST9vT.mjs → routing-BlD_tKjW.mjs} +136 -18
  90. package/dist/{routing-CENt4HH1.mjs → routing-D27jxj9x.mjs} +13 -13
  91. package/dist/{run-CSC7mgPf.mjs → run-AZVwceiU.mjs} +49 -27
  92. package/dist/{scan-C_Y5W9py.mjs → scan-C3uotg_f.mjs} +5 -5
  93. package/dist/{scope-D-h6F6DN.mjs → scope-D8HK6vU7.mjs} +4 -4
  94. package/dist/{session-8iqQDkqb.mjs → session-BAfypQb9.mjs} +26 -26
  95. package/dist/session-BcnhepLZ.mjs +35 -0
  96. package/dist/{session-scan-W-gbwJHM.mjs → session-scan-BmnjSReu.mjs} +5 -5
  97. package/dist/session-scan-CqUQdCac.mjs +9 -0
  98. package/dist/session-usage-oycSdiD3.mjs +337 -0
  99. package/dist/{sources-ESUkZaWv.mjs → sources-CiE3rZek.mjs} +1 -1
  100. package/dist/{status-ggJ7lgVg.mjs → status-COtzewKV.mjs} +3 -3
  101. package/dist/{status-Dm4dYciN.mjs → status-D_SWmOlH.mjs} +4 -4
  102. package/dist/{tool-errors-CJWODvlo.mjs → tool-errors-B2LnIqR0.mjs} +6 -6
  103. package/dist/{tool-errors-7E13StWd.mjs → tool-errors-DXJ70-sr.mjs} +2 -2
  104. package/dist/{viewer-mDXUNHNy.mjs → viewer-BgGRqXfD.mjs} +14 -14
  105. package/dist/viewer-CbGN2Ri4.mjs +22 -0
  106. package/dist/{wait-ByV0OyMZ.mjs → wait-ChpHKJZV.mjs} +3 -3
  107. package/dist/worker-config-D1KVAMp4.mjs +42 -0
  108. package/dist/{worker-config-CJhEMk19.mjs → worker-config-DgdT0iTB.mjs} +443 -40
  109. package/dist/workers-config-BhZBrR-Q.mjs +4 -0
  110. package/dist/{worktree-CRs2gyg0.mjs → worktree-BY--Rgmy.mjs} +5 -5
  111. package/dist/{zettelkasten-B_rRRRvD.mjs → zettelkasten-BHVx5zj-.mjs} +4 -4
  112. package/dist/{zettelkasten-BzMm8REH.mjs → zettelkasten-LoH9RBiN.mjs} +2 -2
  113. package/docs/cockpit.md +1 -0
  114. package/docs/commands/README.md +1 -0
  115. package/docs/commands/config.md +20 -0
  116. package/gemini-extension.json +1 -1
  117. package/package.json +1 -1
  118. package/pai-plugin.json +1 -1
  119. package/plugins/context-preservation/plugin.json +1 -1
  120. package/plugins/core/plugin.json +1 -1
  121. package/plugins/creative/plugin.json +1 -1
  122. package/plugins/observability/plugin.json +1 -1
  123. package/plugins/productivity/plugin.json +1 -1
  124. package/plugins/semantic-search/plugin.json +1 -1
  125. package/plugins/ui/plugin.json +1 -1
  126. package/plugins/zettelkasten/plugin.json +1 -1
  127. package/src/hooks/ts/capture-all-events.ts +15 -3
  128. package/src/hooks/ts/lib/raw-capture.ts +7 -0
  129. package/src/hooks/ts/post-tool-use/capture-tool-output.ts +13 -3
  130. package/dist/auto-route-CjjQqU1o.mjs +0 -11
  131. package/dist/budget-Dod6rnA9.mjs +0 -15
  132. package/dist/cockpit-memory--dnShXBA.mjs +0 -20
  133. package/dist/config-Cxi-aBf4.mjs +0 -4
  134. package/dist/daemon-DKdBNKfa.mjs +0 -45
  135. package/dist/detect-D1ziFFfA.mjs +0 -10
  136. package/dist/kill-tree-BG7dRVtp.mjs +0 -10
  137. package/dist/operator-BTqvTIc8.mjs +0 -7
  138. package/dist/providers-BeDiVEb-.mjs +0 -16
  139. package/dist/registrable-BzH4TObg.mjs +0 -9
  140. package/dist/render-CoMvwMPs.mjs +0 -13
  141. package/dist/root-FtJsxYnm.mjs +0 -36
  142. package/dist/route-table-B7zpoypi.mjs +0 -15
  143. package/dist/session-BeqAbNPd.mjs +0 -35
  144. package/dist/session-scan-BJI_ZO8M.mjs +0 -9
  145. package/dist/viewer-CqozWW39.mjs +0 -22
  146. package/dist/worker-config-DESkIjMF.mjs +0 -41
  147. package/dist/workers-config-f8KrkY4L.mjs +0 -4
@@ -0,0 +1,4 @@
1
+ import { $ as readWorkersYaml, G as effectiveWorkersYamlData, H as WORKERS_YAML_FILENAME, J as migrateWorkersToYaml, K as initWorkersYaml, Q as readMergeVerify, U as buildWorkersYamlText, W as defaultWorkersYamlPath, X as parseBuiltinAnthropic, Y as needsWorkersYamlRelocation, Z as parseWorkersYamlDocument, at as writeWorkersYamlText, et as relocateWorkersYaml, it as writeWorkersYaml, nt as workersYamlLegacyNotice, ot as yamlProviderToRaw, q as inlineWorkersYamlKeys, rt as workersYamlPath, tt as starterWorkersYamlText } from "./config-CST2uq1v.mjs";
2
+ import "./config-DYbyEe4-.mjs";
3
+
4
+ export { workersYamlPath };
@@ -1,9 +1,9 @@
1
1
  import { t as writeFileAtomic } from "./atomic-file-BorMa4T3.mjs";
2
- import { wt as appendLedger } from "./config-XpZWOYOG.mjs";
3
- import { i as ledgerPath, l as statusPath } from "./paths-CHifubDh.mjs";
4
- import { a as UNLABELED, g as isLive, k as saveStatus, v as loadStatus, y as loadStatuses } from "./status-ggJ7lgVg.mjs";
2
+ import { Et as appendLedger } from "./config-CST2uq1v.mjs";
3
+ import { i as ledgerPath, l as statusPath } from "./paths-DS5VQKoR.mjs";
4
+ import { a as UNLABELED, g as isLive, k as saveStatus, v as loadStatus, y as loadStatuses } from "./status-COtzewKV.mjs";
5
5
  import { t as fmtAge } from "./fmt-age-ByDkvkoU.mjs";
6
- import { v as readPoolState } from "./pool-Dh-q3iJi.mjs";
6
+ import { v as readPoolState } from "./pool-BZ94nFuq.mjs";
7
7
  import { existsSync, lstatSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, readlinkSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
8
8
  import { basename, dirname, isAbsolute, join, resolve, sep } from "node:path";
9
9
  import { platform, tmpdir } from "node:os";
@@ -2710,4 +2710,4 @@ function gcWorktreesThrottled(logDir, everyMin = 60, now = Date.now(), opts = {}
2710
2710
 
2711
2711
  //#endregion
2712
2712
  export { applyScratchEnv as A, worktreeWanted as C, formatPending as D, worktreesStatsCached as E, pendingGate as O, worktreeSystemPrompt as S, worktreesStats as T, ownedTree as _, archiveEmptyResult as a, verifyWorker as b, formatKnowledge as c, gcWorktrees as d, gcWorktreesThrottled as f, mergeWorker as g, markResumed as h, adoptTree as i, scratchPromptLine as j, pendingResults as k, formatWorktreesStats as l, leftoverWorktrees as m, MergeConflictError as n, commitLines as o, inPlaceSystemPrompt as p, addWorktree as r, discardWorker as s, GATE_MARK as t, gcPoolWorktrees as u, recordWorktree as v, worktreesDir as w, worktreeRefusesStart as x, salvageOnExit as y };
2713
- //# sourceMappingURL=worktree-CRs2gyg0.mjs.map
2713
+ //# sourceMappingURL=worktree-BY--Rgmy.mjs.map
@@ -1,7 +1,7 @@
1
- import "./config-Bu1_vbY8.mjs";
2
- import "./embedding-gate-6rZrWRXa.mjs";
1
+ import "./config-DYbyEe4-.mjs";
2
+ import "./embedding-gate-CTAk8STe.mjs";
3
3
  import "./embeddings-BVq3esBF.mjs";
4
- import { r as saveQueryResult } from "./query-feedback-BRfPtqki.mjs";
5
- import { a as zettelThemes, c as zettelExplore, i as zettelHealth, n as zettelGodNotes, o as zettelConverse, r as zettelSuggest, s as zettelSurprise, t as zettelCommunities } from "./zettelkasten-BzMm8REH.mjs";
4
+ import { r as saveQueryResult } from "./query-feedback-DN52N9C5.mjs";
5
+ import { a as zettelThemes, c as zettelExplore, i as zettelHealth, n as zettelGodNotes, o as zettelConverse, r as zettelSuggest, s as zettelSurprise, t as zettelCommunities } from "./zettelkasten-LoH9RBiN.mjs";
6
6
 
7
7
  export { zettelConverse, zettelExplore, zettelHealth, zettelSuggest, zettelSurprise, zettelThemes };
@@ -1,5 +1,5 @@
1
1
  import { t as STOP_WORDS$1 } from "./stop-words-DSEYQdNe.mjs";
2
- import { a as requireQueryEmbedding } from "./embedding-gate-6rZrWRXa.mjs";
2
+ import { a as requireQueryEmbedding } from "./embedding-gate-CTAk8STe.mjs";
3
3
  import { i as deserializeEmbedding, r as cosineSimilarity } from "./embeddings-BVq3esBF.mjs";
4
4
  import { basename, dirname } from "node:path";
5
5
 
@@ -1213,4 +1213,4 @@ async function zettelCommunities(backend, opts) {
1213
1213
 
1214
1214
  //#endregion
1215
1215
  export { zettelThemes as a, zettelExplore as c, zettelHealth as i, zettelGodNotes as n, zettelConverse as o, zettelSuggest as r, zettelSurprise as s, zettelCommunities as t };
1216
- //# sourceMappingURL=zettelkasten-BzMm8REH.mjs.map
1216
+ //# sourceMappingURL=zettelkasten-LoH9RBiN.mjs.map
package/docs/cockpit.md CHANGED
@@ -169,6 +169,7 @@ An empty list shows every section. Unknown ids are ignored, and if all are unkno
169
169
  | `dailyDays` | 14 | Days in Tokens per day per model |
170
170
  | `sessionsRows` | 20 | Rows in Sessions by tokens |
171
171
  | `sessionsTopRows` | 10 | Sessions shown before the rest collapse into one "+N more sessions" row |
172
+ | `sessionDetailTurns` | 200 | Turns kept in the per-session drill-down (click a session row) |
172
173
  | `sessionNameMaxPct` | 35 | Session-name column cap, percent of the table width |
173
174
  | `workerRows` | 15 | Rows in Worker runs |
174
175
  | `lowRequestMin` | 5 | Models under this many requests become chips, not rings |
@@ -104,6 +104,7 @@ Generated reference for every `pai` command. Read any page in the terminal with
104
104
  | `pai config path` | Print where PAI keeps its settings |
105
105
  | `pai config set` | Change one setting |
106
106
  | `pai config unset` | Reset one setting to its default |
107
+ | `pai config validate` | Warn about workers settings that are shadowed or unused |
107
108
  | `pai config yaml` | Convert config.json to config.yaml |
108
109
  | `pai daemon` | The background service: status, start, stop, restart, logs |
109
110
  | `pai daemon install` | Install the daemon as a login service |
@@ -168,6 +168,25 @@ pai config list
168
168
 
169
169
  See also: `pai config migrate`, `pai config set`
170
170
 
171
+ ### pai config validate
172
+
173
+ Warn about workers settings that are shadowed or unused
174
+
175
+ ```
176
+ pai config validate
177
+ ```
178
+
179
+ Warn about workers settings that are shadowed or unused.
180
+
181
+ The non-provider workers.* settings (pool, pane, routing, …) are read from config.yaml only; the routing tables (providers, tiers, classes, mcp_sets, …) from workers.yaml only. Names every key written in the file that does not win, and every top-level workers.yaml block nothing reads.
182
+
183
+ ```sh
184
+ pai config validate
185
+ pai config get workers.pool.maxSlots --source
186
+ ```
187
+
188
+ See also: `pai config get`, `pai config set`
189
+
171
190
  ### pai config migrate
172
191
 
173
192
  Move old settings files into the current layout
@@ -218,6 +237,7 @@ See also: `pai config unset`
218
237
  | `pai config get` | Print one setting |
219
238
  | `pai config set` | Change one setting |
220
239
  | `pai config unset` | Reset one setting to its default |
240
+ | `pai config validate` | Warn about workers settings that are shadowed or unused |
221
241
  | `pai config migrate` | Move old settings files into the current layout |
222
242
 
223
243
  ## See also
@@ -2,7 +2,7 @@
2
2
  "name": "@tekmidian/pai",
3
3
  "displayName": "PAI Knowledge OS",
4
4
  "description": "Personal AI Infrastructure — persistent memory and session continuity for AI coding assistants",
5
- "version": "1.0.3",
5
+ "version": "1.0.5",
6
6
  "author": "Matthias Nott",
7
7
  "license": "MIT",
8
8
  "homepage": "https://github.com/mnott/PAI",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekmidian/pai",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "PAI Knowledge OS — Personal AI Infrastructure with federated memory and project management",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",
package/pai-plugin.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "@tekmidian/pai",
4
4
  "displayName": "PAI Knowledge OS",
5
5
  "description": "Personal AI Infrastructure — persistent memory, session continuity, and knowledge graph",
6
- "version": "1.0.3",
6
+ "version": "1.0.5",
7
7
  "author": "Matthias Nott",
8
8
  "license": "MIT",
9
9
  "homepage": "https://github.com/mnott/PAI",
@@ -2,6 +2,6 @@
2
2
  "name": "pai-context-preservation",
3
3
  "displayName": "PAI Context Preservation",
4
4
  "description": "Context compression and relay across compaction cycles",
5
- "version": "1.0.3",
5
+ "version": "1.0.5",
6
6
  "hooks": "./hooks/hooks.json"
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "name": "pai-core",
3
3
  "displayName": "PAI Core",
4
4
  "description": "Core memory engine, session management, and project registry",
5
- "version": "1.0.3",
5
+ "version": "1.0.5",
6
6
  "hooks": "./hooks/hooks.json"
7
7
  }
@@ -2,5 +2,5 @@
2
2
  "name": "pai-creative",
3
3
  "displayName": "PAI Creative Studio",
4
4
  "description": "Art direction, story explanation, voice/prosody configuration",
5
- "version": "1.0.3"
5
+ "version": "1.0.5"
6
6
  }
@@ -2,6 +2,6 @@
2
2
  "name": "pai-observability",
3
3
  "displayName": "PAI Observability Suite",
4
4
  "description": "Automatic observation capture, classification, session summaries, and search history",
5
- "version": "1.0.3",
5
+ "version": "1.0.5",
6
6
  "hooks": "./hooks/hooks.json"
7
7
  }
@@ -2,7 +2,7 @@
2
2
  "name": "pai-productivity",
3
3
  "displayName": "PAI Productivity",
4
4
  "description": "Planning, journaling, reviewing, research, sharing, and cross-session task routing",
5
- "version": "1.0.3",
5
+ "version": "1.0.5",
6
6
  "hooks": "./hooks/hooks.json",
7
7
  "skills": ["./skills/"]
8
8
  }
@@ -2,5 +2,5 @@
2
2
  "name": "pai-semantic-search",
3
3
  "displayName": "PAI Semantic Search",
4
4
  "description": "Vector search with pgvector, cross-encoder reranking, hybrid mode, recency boost",
5
- "version": "1.0.3"
5
+ "version": "1.0.5"
6
6
  }
@@ -2,6 +2,6 @@
2
2
  "name": "pai-ui",
3
3
  "displayName": "PAI UI Customization",
4
4
  "description": "Terminal tab titles, statusline, tab coloring, and visual customization",
5
- "version": "1.0.3",
5
+ "version": "1.0.5",
6
6
  "hooks": "./hooks/hooks.json"
7
7
  }
@@ -2,5 +2,5 @@
2
2
  "name": "pai-zettelkasten",
3
3
  "displayName": "PAI Zettelkasten Intelligence",
4
4
  "description": "Luhmann-inspired vault intelligence with graph operations and Obsidian integration",
5
- "version": "1.0.3"
5
+ "version": "1.0.5"
6
6
  }
@@ -11,7 +11,7 @@ import { join } from 'path';
11
11
  import { historyDir, agentSessionsPath } from './lib/pai-paths.js';
12
12
  import { enrichEventWithAgentMetadata, isAgentSpawningCall } from './lib/metadata-extraction.js';
13
13
  import { isProbeSession } from './lib/project-utils.js';
14
- import { appendRawCapture, redactDeep } from './lib/raw-capture.js';
14
+ import { appendRawCapture, captureEventId, redactDeep } from './lib/raw-capture.js';
15
15
  import { writeJsonAtomic } from '../../config/json-store.js';
16
16
 
17
17
  interface HookEvent {
@@ -21,6 +21,9 @@ interface HookEvent {
21
21
  payload: Record<string, any>;
22
22
  timestamp: number;
23
23
  timestamp_local: string;
24
+ source: string;
25
+ fidelity: string;
26
+ eventId: string;
24
27
  }
25
28
 
26
29
  // Get local timestamp using system timezone
@@ -154,13 +157,22 @@ async function main() {
154
157
  }
155
158
 
156
159
  // Create base event object
160
+ const timestamp = Date.now();
157
161
  let event: HookEvent = {
158
162
  source_app: agentName,
159
163
  session_id: hookData.session_id || 'main',
160
164
  hook_event_type: eventType,
161
165
  payload: redactDeep(hookData),
162
- timestamp: Date.now(),
163
- timestamp_local: getLocalTimestamp()
166
+ timestamp,
167
+ timestamp_local: getLocalTimestamp(),
168
+ source: 'hook',
169
+ fidelity: 'observed',
170
+ eventId: captureEventId({
171
+ sessionId: hookData.session_id,
172
+ toolUseId: hookData.tool_use_id,
173
+ event: eventType,
174
+ ts: String(timestamp)
175
+ })
164
176
  };
165
177
 
166
178
  // Enrich with agent instance metadata if this is a Task tool call
@@ -5,9 +5,16 @@
5
5
 
6
6
  import { appendFileSync, chmodSync, existsSync, mkdirSync, renameSync, statSync } from 'fs';
7
7
  import { maskSecrets } from './loop-guard.js';
8
+ import { sha256 } from '../../../utils/hash.js';
8
9
 
9
10
  export const RAW_CAPTURE_MAX_BYTES = 10 * 1024 * 1024;
10
11
 
12
+ /** Deterministic 16-hex id for a captured event: sha256 of the joined parts. */
13
+ export function captureEventId(parts: { sessionId?: string; toolUseId?: string; event?: string; ts?: string }): string {
14
+ const joined = `${parts.sessionId ?? ""}|${parts.toolUseId ?? ""}|${parts.event ?? ""}|${parts.ts ?? ""}`;
15
+ return sha256(joined).slice(0, 16);
16
+ }
17
+
11
18
  /** Deep copy with every string value passed through the loop guard's secret-line masking. */
12
19
  export function redactDeep<T>(value: T): T {
13
20
  if (typeof value === 'string') return maskSecrets(value) as unknown as T;
@@ -9,13 +9,14 @@
9
9
 
10
10
  import { join } from 'path';
11
11
  import { historyDir } from '../lib/pai-paths.js';
12
- import { appendRawCapture, redactDeep } from '../lib/raw-capture.js';
12
+ import { appendRawCapture, captureEventId, redactDeep } from '../lib/raw-capture.js';
13
13
 
14
14
  interface ToolUseData {
15
15
  tool_name: string;
16
16
  tool_input: Record<string, any>;
17
17
  tool_response: Record<string, any>;
18
18
  session_id: string;
19
+ tool_use_id?: string;
19
20
  timestamp: string;
20
21
  }
21
22
 
@@ -51,12 +52,21 @@ async function main() {
51
52
 
52
53
  // Format output as JSONL (one JSON object per line)
53
54
  const captureFile = join(dateDir, `${today}_tool-outputs.jsonl`);
55
+ const timestamp = data.timestamp || now.toISOString();
54
56
  const captureEntry = JSON.stringify({
55
- timestamp: data.timestamp || now.toISOString(),
57
+ timestamp,
56
58
  tool: data.tool_name,
57
59
  input: redactDeep(data.tool_input),
58
60
  output: redactDeep(data.tool_response),
59
- session: data.session_id
61
+ session: data.session_id,
62
+ source: 'hook',
63
+ fidelity: 'observed',
64
+ eventId: captureEventId({
65
+ sessionId: data.session_id,
66
+ toolUseId: data.tool_use_id,
67
+ event: 'PostToolUse',
68
+ ts: timestamp
69
+ })
60
70
  }) + '\n';
61
71
 
62
72
  // Append to daily log
@@ -1,11 +0,0 @@
1
- import "./config-XpZWOYOG.mjs";
2
- import "./config-Bu1_vbY8.mjs";
3
- import "./paths-CHifubDh.mjs";
4
- import "./worktree-CRs2gyg0.mjs";
5
- import "./status-ggJ7lgVg.mjs";
6
- import "./pool-Dh-q3iJi.mjs";
7
- import "./registrable-DpyTtajg.mjs";
8
- import "./pai-marker-BcZyJguM.mjs";
9
- import { n as formatAutoRouteJson, t as autoRoute } from "./auto-route-B7Yu6Uam.mjs";
10
-
11
- export { autoRoute, formatAutoRouteJson };
@@ -1,15 +0,0 @@
1
- import "./config-XpZWOYOG.mjs";
2
- import "./config-Bu1_vbY8.mjs";
3
- import "./paths-CHifubDh.mjs";
4
- import "./status-ggJ7lgVg.mjs";
5
- import "./scope-D-h6F6DN.mjs";
6
- import { A as budgetSkipReason, D as budgetExceeded, E as budgetCache, M as budgetWall, N as fetchBudgetReading, O as budgetFresh, P as pickBudgetWindow, T as BudgetCache, j as budgetUntilLabel, k as budgetFull, w as BUDGET_TTL_MS } from "./routing-BAAST9vT.mjs";
7
- import "./tool-errors-7E13StWd.mjs";
8
- import "./wait-ByV0OyMZ.mjs";
9
- import "./local-tiers-BE4jGaMa.mjs";
10
- import "./caller-identity-yLFb7CKq.mjs";
11
- import "./capacity-DEveQdFV.mjs";
12
- import "./local-instances-DOxSgT_L.mjs";
13
- import "./local-candidate-DLdwQt0s.mjs";
14
-
15
- export { BUDGET_TTL_MS, BudgetCache, budgetCache, budgetExceeded, budgetFresh, budgetFull, budgetSkipReason, budgetUntilLabel, budgetWall, fetchBudgetReading, pickBudgetWindow };
@@ -1,20 +0,0 @@
1
- import "./config-XpZWOYOG.mjs";
2
- import "./config-Bu1_vbY8.mjs";
3
- import "./paths-CHifubDh.mjs";
4
- import "./status-ggJ7lgVg.mjs";
5
- import "./scope-D-h6F6DN.mjs";
6
- import "./routing-BAAST9vT.mjs";
7
- import "./tool-errors-7E13StWd.mjs";
8
- import "./wait-ByV0OyMZ.mjs";
9
- import "./local-tiers-BE4jGaMa.mjs";
10
- import "./caller-identity-yLFb7CKq.mjs";
11
- import "./capacity-DEveQdFV.mjs";
12
- import "./local-instances-DOxSgT_L.mjs";
13
- import "./local-candidate-DLdwQt0s.mjs";
14
- import "./providers-CblTFrhz.mjs";
15
- import "./main-config-ops-BEMpuhDz.mjs";
16
- import { A as cockpitMemoryPayload, F as memoryRunLog, I as rateSeries, L as runProgress, M as latestMemoryJob, N as liveMemoryDeps, P as memoryJobProgress, R as runningMemoryJob, j as fetchDaemonMemory, z as sameModel } from "./cockpit-actions-BBHeyEZI.mjs";
17
- import "./ipc-client-CaiGJnSM.mjs";
18
- import "./embed-pass-DIWjA68P.mjs";
19
-
20
- export { fetchDaemonMemory };
@@ -1,4 +0,0 @@
1
- import { A as providerQuotaSkipAt, C as parseMcpSetsValue, D as providerContextWindow, E as parseWorkersConfig, F as writeWorkersSection, M as resolveCapability, N as resolveModelCapability, O as providerCostTier, P as resolveProviderKey, S as parseClassesValue, T as parseProvider, _ as maskKey, a as MODEL_CAPABILITIES, b as nativeOrchestratorModel, c as WorkersConfigError, d as defaultWorkersConfig, f as escalationCloud, g as keysDir, h as isModelCapability, ht as DEFAULT_CONTEXT_WINDOW, i as DEFAULT_POOL_PORT, j as readWorkersSection, k as providerKeyPath, l as assertProviderRunnable, m as isLocalProvider, n as CAPABILITY_NAME_RE, o as PROVIDER_TAGS, p as getProviderOrNative, r as DEFAULT_COST_TIER, s as WORKER_CLASSES, t as ANTHROPIC_NATIVE, u as classModelCapability, v as nativeAnthropicModels, w as parseModelsBlock, x as parseCapabilitiesValue, y as nativeAnthropicProvider } from "./config-XpZWOYOG.mjs";
2
- import { o as expandHome, s as homeRel } from "./config-Bu1_vbY8.mjs";
3
-
4
- export { ANTHROPIC_NATIVE, CAPABILITY_NAME_RE, DEFAULT_CONTEXT_WINDOW, DEFAULT_COST_TIER, DEFAULT_POOL_PORT, MODEL_CAPABILITIES, PROVIDER_TAGS, WORKER_CLASSES, WorkersConfigError, assertProviderRunnable, classModelCapability, defaultWorkersConfig, escalationCloud, expandHome, getProviderOrNative, homeRel, isLocalProvider, isModelCapability, keysDir, maskKey, nativeAnthropicModels, nativeAnthropicProvider, nativeOrchestratorModel, parseCapabilitiesValue, parseClassesValue, parseMcpSetsValue, parseModelsBlock, parseProvider, parseWorkersConfig, providerContextWindow, providerCostTier, providerKeyPath, providerQuotaSkipAt, readWorkersSection, resolveCapability, resolveModelCapability, resolveProviderKey, writeWorkersSection };
@@ -1,45 +0,0 @@
1
- import "./utils-J2b9y8PC.mjs";
2
- import "./migrate-DrA_OwlZ.mjs";
3
- import "./config-XpZWOYOG.mjs";
4
- import "./config-Bu1_vbY8.mjs";
5
- import "./paths-CHifubDh.mjs";
6
- import "./worktree-CRs2gyg0.mjs";
7
- import "./status-ggJ7lgVg.mjs";
8
- import "./pool-Dh-q3iJi.mjs";
9
- import "./registrable-DpyTtajg.mjs";
10
- import "./pai-marker-BcZyJguM.mjs";
11
- import "./helpers-CRuBUas3.mjs";
12
- import "./reranker-CqCbpGnX.mjs";
13
- import "./scope-D-h6F6DN.mjs";
14
- import "./routing-BAAST9vT.mjs";
15
- import "./tool-errors-7E13StWd.mjs";
16
- import "./wait-ByV0OyMZ.mjs";
17
- import "./local-tiers-BE4jGaMa.mjs";
18
- import "./caller-identity-yLFb7CKq.mjs";
19
- import "./capacity-DEveQdFV.mjs";
20
- import "./local-instances-DOxSgT_L.mjs";
21
- import "./local-candidate-DLdwQt0s.mjs";
22
- import "./factory-DjAAsqr_.mjs";
23
- import "./postgres-C6ti4haA.mjs";
24
- import "./embedding-gate-6rZrWRXa.mjs";
25
- import "./embeddings-BVq3esBF.mjs";
26
- import "./router-CQSc3lk3.mjs";
27
- import "./detect-9CZNO0yf.mjs";
28
- import "./scan-C_Y5W9py.mjs";
29
- import "./launch-Jh5NVeNe.mjs";
30
- import "./run-CSC7mgPf.mjs";
31
- import "./controls-CPoeudou.mjs";
32
- import "./endreason-C577xIQz.mjs";
33
- import "./render-BYmQkuLd.mjs";
34
- import "./operator-CyuB3aVw.mjs";
35
- import "./kill-tree-EWYaEk5v.mjs";
36
- import "./pool-cli-BggU8GRp.mjs";
37
- import "./pane-audit-DKQt71s4.mjs";
38
- import "./ipc-client-CaiGJnSM.mjs";
39
- import "./embed-pass-DIWjA68P.mjs";
40
- import "./indexer-backend-Cll7le4P.mjs";
41
- import { t as serve } from "./daemon-DPAo6WTa.mjs";
42
- import "./auto-route-B7Yu6Uam.mjs";
43
- import "./zettelkasten-BzMm8REH.mjs";
44
-
45
- export { serve };
@@ -1,10 +0,0 @@
1
- import "./config-Bu1_vbY8.mjs";
2
- import "./helpers-CRuBUas3.mjs";
3
- import "./factory-DjAAsqr_.mjs";
4
- import "./postgres-C6ti4haA.mjs";
5
- import "./embedding-gate-6rZrWRXa.mjs";
6
- import "./embeddings-BVq3esBF.mjs";
7
- import "./router-CQSc3lk3.mjs";
8
- import { n as formatDetection, r as formatDetectionJson, t as detectProject } from "./detect-9CZNO0yf.mjs";
9
-
10
- export { detectProject };
@@ -1,10 +0,0 @@
1
- import "./config-XpZWOYOG.mjs";
2
- import "./config-Bu1_vbY8.mjs";
3
- import "./paths-CHifubDh.mjs";
4
- import "./status-ggJ7lgVg.mjs";
5
- import "./scope-D-h6F6DN.mjs";
6
- import "./caller-identity-yLFb7CKq.mjs";
7
- import "./endreason-C577xIQz.mjs";
8
- import { i as killTree, n as isOwner, r as killRefusal, t as descendantsLeavesFirst } from "./kill-tree-EWYaEk5v.mjs";
9
-
10
- export { killTree };
@@ -1,7 +0,0 @@
1
- import "./config-XpZWOYOG.mjs";
2
- import "./config-Bu1_vbY8.mjs";
3
- import "./paths-CHifubDh.mjs";
4
- import "./status-ggJ7lgVg.mjs";
5
- import { n as operatorSocketPath, r as sayToWorker, t as createOperatorServer } from "./operator-CyuB3aVw.mjs";
6
-
7
- export { sayToWorker };
@@ -1,16 +0,0 @@
1
- import "./config-XpZWOYOG.mjs";
2
- import "./config-Bu1_vbY8.mjs";
3
- import "./paths-CHifubDh.mjs";
4
- import "./status-ggJ7lgVg.mjs";
5
- import "./scope-D-h6F6DN.mjs";
6
- import "./routing-BAAST9vT.mjs";
7
- import "./tool-errors-7E13StWd.mjs";
8
- import "./wait-ByV0OyMZ.mjs";
9
- import "./local-tiers-BE4jGaMa.mjs";
10
- import "./caller-identity-yLFb7CKq.mjs";
11
- import "./capacity-DEveQdFV.mjs";
12
- import "./local-instances-DOxSgT_L.mjs";
13
- import "./local-candidate-DLdwQt0s.mjs";
14
- import { _ as unsetCapabilityPreference, a as describeCapabilities, b as useProvider, c as modelPrefsText, d as setCapabilityPreference, f as setClass, g as setWorkersEnabled, h as setProviderModel, i as describeCap, l as removeProvider, m as setProviderEnabled, n as capText, o as describeModels, p as setProviderCap, r as classTargetText, s as describeProviders, t as addProvider, u as resolveProviderName, v as unsetClass, y as updateProvider } from "./providers-CblTFrhz.mjs";
15
-
16
- export { setProviderEnabled, useProvider };
@@ -1,9 +0,0 @@
1
- import "./config-XpZWOYOG.mjs";
2
- import "./config-Bu1_vbY8.mjs";
3
- import "./paths-CHifubDh.mjs";
4
- import "./worktree-CRs2gyg0.mjs";
5
- import "./status-ggJ7lgVg.mjs";
6
- import "./pool-Dh-q3iJi.mjs";
7
- import { a as unregistrableReason, i as reportUnregistrable, n as mainRepoOf, o as workerWorktreesRoot, r as pruneWorktreeProjects, s as worktreeReason, t as isLinkedWorktree } from "./registrable-DpyTtajg.mjs";
8
-
9
- export { reportUnregistrable };
@@ -1,13 +0,0 @@
1
- import "./config-XpZWOYOG.mjs";
2
- import "./config-Bu1_vbY8.mjs";
3
- import "./paths-CHifubDh.mjs";
4
- import "./worktree-CRs2gyg0.mjs";
5
- import "./status-ggJ7lgVg.mjs";
6
- import "./pool-Dh-q3iJi.mjs";
7
- import "./scope-D-h6F6DN.mjs";
8
- import { D as fmtElapsed } from "./wait-ByV0OyMZ.mjs";
9
- import "./capacity-DEveQdFV.mjs";
10
- import "./endreason-C577xIQz.mjs";
11
- import { S as warmupText, _ as renderTable, a as fullLines, b as tickerTool, c as headerLine, d as paneRunStatusRow, f as paneStatusRow, g as renderStatusLine, h as renderEvent, i as dayOf, l as intentOf, m as relPath, n as clockOf, o as goalOf, p as providerTag, r as contextMeter, s as gutterFor, t as blankBetween, u as makeColor, v as shortModel, x as unifiedDiffLines, y as tickerText } from "./render-BYmQkuLd.mjs";
12
-
13
- export { makeColor };
@@ -1,36 +0,0 @@
1
- import "./utils-J2b9y8PC.mjs";
2
- import "./migrate-DrA_OwlZ.mjs";
3
- import "./config-XpZWOYOG.mjs";
4
- import "./config-Bu1_vbY8.mjs";
5
- import "./paths-CHifubDh.mjs";
6
- import "./worktree-CRs2gyg0.mjs";
7
- import "./status-ggJ7lgVg.mjs";
8
- import "./pool-Dh-q3iJi.mjs";
9
- import "./registrable-DpyTtajg.mjs";
10
- import "./pai-marker-BcZyJguM.mjs";
11
- import "./helpers-CRuBUas3.mjs";
12
- import "./scope-D-h6F6DN.mjs";
13
- import "./routing-BAAST9vT.mjs";
14
- import "./tool-errors-7E13StWd.mjs";
15
- import "./wait-ByV0OyMZ.mjs";
16
- import "./local-tiers-BE4jGaMa.mjs";
17
- import "./caller-identity-yLFb7CKq.mjs";
18
- import "./capacity-DEveQdFV.mjs";
19
- import "./local-instances-DOxSgT_L.mjs";
20
- import "./local-candidate-DLdwQt0s.mjs";
21
- import "./factory-DjAAsqr_.mjs";
22
- import "./postgres-C6ti4haA.mjs";
23
- import "./embedding-gate-6rZrWRXa.mjs";
24
- import "./embeddings-BVq3esBF.mjs";
25
- import "./router-CQSc3lk3.mjs";
26
- import "./detect-9CZNO0yf.mjs";
27
- import "./helpers-BD6V-p9w.mjs";
28
- import "./scan-C_Y5W9py.mjs";
29
- import "./session-8iqQDkqb.mjs";
30
- import "./launch-Jh5NVeNe.mjs";
31
- import "./health-Dnym-qcT.mjs";
32
- import "./launch-CXVlZjHt.mjs";
33
- import { _ as setupsTable, a as lastSetup, b as truncate, c as localState, d as pickerOpts, f as plainTable, g as runRoot, h as runNewWith, i as lastOnLabel, l as matchRows, m as rootCommand, n as ago, o as launchKey, p as resolveSetup, r as finishCd, s as launchScreen, t as CANCELLED, u as pickerLayout, v as startSession, y as systemTerm } from "./root-Xglu0OPD.mjs";
34
- import "./session-scan-W-gbwJHM.mjs";
35
-
36
- export { runNewWith };
@@ -1,15 +0,0 @@
1
- import "./config-XpZWOYOG.mjs";
2
- import "./config-Bu1_vbY8.mjs";
3
- import "./paths-CHifubDh.mjs";
4
- import "./status-ggJ7lgVg.mjs";
5
- import "./scope-D-h6F6DN.mjs";
6
- import { At as TIGHT_PERCENT, Bt as routeRows, Ft as flowText, Gt as setRoute, Ht as servingChip, It as parseSelector, Jt as validateRoute, Kt as setSessionRoute, Lt as resolveSelector, Mt as clearSessionRoute, Nt as configuredLocal, Pt as entryLabel, Rt as resolveSessionArg, Ut as sessionRoutesPatch, Vt as routeText, Wt as sessionStartTarget, jt as applyPolicyToRoutes, qt as tierFlow, zt as routeChoices } from "./routing-BAAST9vT.mjs";
7
- import "./tool-errors-7E13StWd.mjs";
8
- import "./wait-ByV0OyMZ.mjs";
9
- import "./local-tiers-BE4jGaMa.mjs";
10
- import "./caller-identity-yLFb7CKq.mjs";
11
- import "./capacity-DEveQdFV.mjs";
12
- import "./local-instances-DOxSgT_L.mjs";
13
- import "./local-candidate-DLdwQt0s.mjs";
14
-
15
- export { setRoute };
@@ -1,35 +0,0 @@
1
- import "./utils-J2b9y8PC.mjs";
2
- import "./migrate-DrA_OwlZ.mjs";
3
- import "./config-XpZWOYOG.mjs";
4
- import "./config-Bu1_vbY8.mjs";
5
- import "./paths-CHifubDh.mjs";
6
- import "./worktree-CRs2gyg0.mjs";
7
- import "./status-ggJ7lgVg.mjs";
8
- import "./pool-Dh-q3iJi.mjs";
9
- import "./registrable-DpyTtajg.mjs";
10
- import "./pai-marker-BcZyJguM.mjs";
11
- import "./helpers-CRuBUas3.mjs";
12
- import "./scope-D-h6F6DN.mjs";
13
- import "./routing-BAAST9vT.mjs";
14
- import "./tool-errors-7E13StWd.mjs";
15
- import "./wait-ByV0OyMZ.mjs";
16
- import "./local-tiers-BE4jGaMa.mjs";
17
- import "./caller-identity-yLFb7CKq.mjs";
18
- import "./capacity-DEveQdFV.mjs";
19
- import "./local-instances-DOxSgT_L.mjs";
20
- import "./local-candidate-DLdwQt0s.mjs";
21
- import "./factory-DjAAsqr_.mjs";
22
- import "./postgres-C6ti4haA.mjs";
23
- import "./embedding-gate-6rZrWRXa.mjs";
24
- import "./embeddings-BVq3esBF.mjs";
25
- import "./router-CQSc3lk3.mjs";
26
- import "./detect-9CZNO0yf.mjs";
27
- import "./helpers-BD6V-p9w.mjs";
28
- import "./scan-C_Y5W9py.mjs";
29
- import { a as newTop, c as planOpen, d as runNewDefault, f as sessionCommand, i as lsCommand, l as renameTop, n as collectRows, o as oneLine, p as sessionDir, r as collectView, s as openTop, t as applyProfileChat, u as rowsTable } from "./session-8iqQDkqb.mjs";
30
- import "./launch-Jh5NVeNe.mjs";
31
- import "./health-Dnym-qcT.mjs";
32
- import "./launch-CXVlZjHt.mjs";
33
- import "./session-scan-W-gbwJHM.mjs";
34
-
35
- export { runNewDefault };
@@ -1,9 +0,0 @@
1
- import "./utils-J2b9y8PC.mjs";
2
- import "./config-XpZWOYOG.mjs";
3
- import "./config-Bu1_vbY8.mjs";
4
- import "./paths-CHifubDh.mjs";
5
- import "./status-ggJ7lgVg.mjs";
6
- import "./scope-D-h6F6DN.mjs";
7
- import { a as resolveSessionByNameOrId, c as transcriptCustomTitle, i as resolveFriendlyName, n as loadBrokerNames, o as scanCacheFilePath, r as migrateSessionScanCache, s as scanSessions, t as fmtAge } from "./session-scan-W-gbwJHM.mjs";
8
-
9
- export { loadBrokerNames, transcriptCustomTitle };
@@ -1,22 +0,0 @@
1
- import "./config-XpZWOYOG.mjs";
2
- import "./config-Bu1_vbY8.mjs";
3
- import "./paths-CHifubDh.mjs";
4
- import "./worktree-CRs2gyg0.mjs";
5
- import "./status-ggJ7lgVg.mjs";
6
- import "./pool-Dh-q3iJi.mjs";
7
- import "./scope-D-h6F6DN.mjs";
8
- import "./tool-errors-7E13StWd.mjs";
9
- import "./wait-ByV0OyMZ.mjs";
10
- import "./local-tiers-BE4jGaMa.mjs";
11
- import "./caller-identity-yLFb7CKq.mjs";
12
- import "./capacity-DEveQdFV.mjs";
13
- import "./local-candidate-DLdwQt0s.mjs";
14
- import "./controls-CPoeudou.mjs";
15
- import "./endreason-C577xIQz.mjs";
16
- import "./render-BYmQkuLd.mjs";
17
- import "./operator-CyuB3aVw.mjs";
18
- import "./kill-tree-EWYaEk5v.mjs";
19
- import "./pane-audit-DKQt71s4.mjs";
20
- import { a as followTailOutput, c as inboxCounts, d as psOutput, f as replayOutput, g as workerEnded, h as strayWorkerProcesses, i as backfillLines, l as initialFollowState, m as statusLineOutput, n as FOLLOW_TAIL_ENTRIES, o as followWorkers, p as resumeArgv, r as applyEvent, s as gutterBody, t as BACKFILL_EVENTS, u as makeOperatorInput } from "./viewer-mDXUNHNy.mjs";
21
-
22
- export { applyEvent, initialFollowState };