@tekmidian/pai 1.0.4 → 1.0.6
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/{aibroker-client-CQPGqLxL.mjs → aibroker-client-CXsyC7A8.mjs} +2 -2
- package/dist/aibroker-client-ChB7gSxV.mjs +3 -0
- package/dist/auto-route-Bc8xP6TQ.mjs +11 -0
- package/dist/{auto-route-21GdHL70.mjs → auto-route-YaEGVrFl.mjs} +2 -2
- package/dist/budget-DEiebT2A.mjs +15 -0
- package/dist/{caller-identity-yLFb7CKq.mjs → caller-identity-C6Nc96iM.mjs} +4 -4
- package/dist/{capacity-DEveQdFV.mjs → capacity-B2PgKAg4.mjs} +69 -6
- package/dist/{chain-D7PFur8Y.mjs → chain-CtK49-Ma.mjs} +5 -5
- package/dist/cli/index.mjs +2126 -290
- package/dist/{cockpit-actions-BfRMr2sm.mjs → cockpit-actions-C73mJAJ8.mjs} +18 -18
- package/dist/{cockpit-actions-OodH_vx_.mjs → cockpit-actions-D1OPP6Es.mjs} +30 -26
- package/dist/cockpit-memory-CLHZD64W.mjs +20 -0
- package/dist/config/defaults/config.yaml +21 -1
- package/dist/{config-XpZWOYOG.mjs → config-Bz8pAU5Q.mjs} +30 -5
- package/dist/{config-DtENJ6cL.mjs → config-DHgPx3ER.mjs} +1 -1
- package/dist/config-DLmyEK2q.mjs +4 -0
- package/dist/{config-Bu1_vbY8.mjs → config-SlZ-Z52i.mjs} +4 -3
- package/dist/{controls-JLm6g0yP.mjs → controls-rIItFeIJ.mjs} +59 -66
- package/dist/daemon/index.mjs +40 -39
- package/dist/daemon-176qA79N.mjs +46 -0
- package/dist/{daemon-nXanenDM.mjs → daemon-SoUvPUOf.mjs} +80 -30
- package/dist/daemon-mcp/index.mjs +49 -38
- package/dist/detect-C8nFP-kR.mjs +10 -0
- package/dist/{detect-BLKsUOgG.mjs → detect-DLjeYwnt.mjs} +2 -2
- package/dist/{embed-pass-e64AwDCa.mjs → embed-pass-CN1D8MXl.mjs} +5 -5
- package/dist/{embedding-gate-Cnk4YCyX.mjs → embedding-gate-BVQvUmox.mjs} +2 -2
- package/dist/{embedding-gate-6rZrWRXa.mjs → embedding-gate-iq0oQEkF.mjs} +3 -3
- package/dist/{endreason-BC-v05H_.mjs → endreason-C2-hYK0_.mjs} +4 -4
- package/dist/{factory-B7nv75rC.mjs → factory-CYwa0jYj.mjs} +6 -6
- package/dist/factory-DFwez99M.mjs +9 -0
- package/dist/{fallback-CBWpp2F2.mjs → fallback-CwPSCrX8.mjs} +9 -231
- package/dist/{health-C4FQmkJn.mjs → health-D0mUAVdw.mjs} +5 -5
- package/dist/{helpers-DSNK_1KP.mjs → helpers-Dj2nY56t.mjs} +2 -2
- package/dist/{helpers-Dz7mjTSw.mjs → helpers-DyHKAwrW.mjs} +6 -6
- package/dist/hooks/block-sleep-poll.mjs +1 -1
- package/dist/hooks/capture-all-events.mjs +68 -3
- package/dist/hooks/capture-tool-output.mjs +68 -3
- package/dist/hooks/handoff-link.mjs +128 -0
- package/dist/hooks/load-project-context.mjs +8 -8
- package/dist/hooks/local-model-hint.mjs +1 -1
- package/dist/hooks/route-agents-to-worker.mjs +1 -1
- package/dist/hooks/security-validator.mjs +842 -90
- package/dist/hooks/supervision-banner.mjs +186 -48
- package/dist/hooks/worker-edit-repair.mjs +2 -2
- package/dist/hooks/worker-guard.mjs +65 -9
- package/dist/hooks/worker-note.mjs +70 -5
- package/dist/hooks/worker-pool-host.mjs +1518 -265
- package/dist/hooks/worker-proxy.mjs +1 -1
- package/dist/hooks/worker-status-line.mjs +225 -86
- package/dist/hooks/worker-supervision.mjs +1 -1
- package/dist/hooks/worker-tool-name-repair.mjs +2 -2
- package/dist/index.mjs +9 -9
- package/dist/{ipc-client-CnYEF31R.mjs → ipc-client-CmagIFLh.mjs} +2 -2
- package/dist/{ipc-client-DN7EvoVo.mjs → ipc-client-DmbSIBUK.mjs} +1 -1
- package/dist/{kill-tree-DleMNZX3.mjs → kill-tree-DPiMscaY.mjs} +8 -8
- package/dist/kill-tree-Dxei6qlR.mjs +10 -0
- package/dist/{launch-DlZTKE3u.mjs → launch-BZT3JDoZ.mjs} +3 -3
- package/dist/{launch-Di7N-J5X.mjs → launch-Bn2Zf90h.mjs} +3 -3
- package/dist/{indexer-backend-BdjeL4P8.mjs → lessons-CFVU0cwA.mjs} +262 -43
- package/dist/{local-candidate-DLdwQt0s.mjs → local-candidate-DFd4pp-w.mjs} +3 -3
- package/dist/{local-instances-DOxSgT_L.mjs → local-instances-DhF4_sV2.mjs} +2 -2
- package/dist/{local-instances-ZeRkkuS5.mjs → local-instances-KTh8IeOT.mjs} +4 -4
- package/dist/{local-tiers-BE4jGaMa.mjs → local-tiers-CqwGUcEn.mjs} +3 -3
- package/dist/{local-tiers-DNMI5W86.mjs → local-tiers-DSlIYvvm.mjs} +3 -3
- package/dist/{main-config-ops-kTXR8Pyv.mjs → main-config-ops-rda08BCD.mjs} +3 -3
- package/dist/{main-resolver-yp_puSSb.mjs → main-resolver-BKwI0I6H.mjs} +18 -18
- package/dist/{migrate-DrA_OwlZ.mjs → migrate-C2z1YmWC.mjs} +2 -2
- package/dist/{model-inventory-h6Z9fN_o.mjs → model-inventory-BXv15B0d.mjs} +13 -13
- package/dist/{models-add-TVni3A7V.mjs → models-add-5yXTyz3g.mjs} +38 -37
- package/dist/operator-Bmv5tiHQ.mjs +7 -0
- package/dist/{operator-CyuB3aVw.mjs → operator-Br6GeswF.mjs} +2 -2
- package/dist/{pai-marker-BcZyJguM.mjs → pai-marker-D6OoVbM_.mjs} +2 -2
- package/dist/{pane-audit-Lqy9N_Ki.mjs → pane-audit-DLYy9-4g.mjs} +13 -23
- package/dist/{paths-CHifubDh.mjs → paths-CypxFTfn.mjs} +4 -4
- package/dist/{paths-CFHTloSe.mjs → paths-DIOwNcj-.mjs} +3 -3
- package/dist/{planner-j77ndkBf.mjs → planner-BzZ_2lc-.mjs} +29 -29
- package/dist/{pool-Dh-q3iJi.mjs → pool-9EsbKD-U.mjs} +2 -2
- package/dist/{pool-cli-DQ6OzRy2.mjs → pool-cli-Cy5mlycP.mjs} +6 -6
- package/dist/{pool-cli-BggU8GRp.mjs → pool-cli-Db0uDwB9.mjs} +5 -5
- package/dist/{postgres-BK4FP9Zg.mjs → postgres-B1B80bcj.mjs} +3 -3
- package/dist/{postgres-DNIOQijl.mjs → postgres-BL5oBBgY.mjs} +3 -3
- package/dist/{project-setup-CBRtFFh0.mjs → project-setup-DHxdJjEc.mjs} +24 -25
- package/dist/providers-BH6hQYbU.mjs +16 -0
- package/dist/{providers-C9QC0TtO.mjs → providers-BNV7CzC-.mjs} +6 -6
- package/dist/{query-feedback-DN52N9C5.mjs → query-feedback-BWl2HRwN.mjs} +2 -2
- package/dist/registrable-BwFiqazy.mjs +9 -0
- package/dist/{registrable-DpyTtajg.mjs → registrable-Dxs4oKIj.mjs} +4 -4
- package/dist/render-DVGXpfaT.mjs +13 -0
- package/dist/render-jPpMrudf.mjs +2240 -0
- package/dist/root-C8cxhdn9.mjs +36 -0
- package/dist/{root-C4oXlXS_.mjs → root-DmOzMeSv.mjs} +10 -10
- package/dist/route-table-COAmc1nB.mjs +15 -0
- package/dist/{router-CQSc3lk3.mjs → router-D2476pOp.mjs} +2 -2
- package/dist/{router-DwHJRgG9.mjs → router-ghujlEFb.mjs} +1 -1
- package/dist/{routing-f2zulGwD.mjs → routing-B_cg1_Xx.mjs} +13 -13
- package/dist/{routing-DmkheCRH.mjs → routing-aJKMIagQ.mjs} +16 -16
- package/dist/{run-BwZKBJZZ.mjs → run-DE9Q0ldN.mjs} +55 -31
- package/dist/{runtime-paths-WsO9sJFc.mjs → runtime-paths-twfV23YL.mjs} +2 -2
- package/dist/{scan-BBGvU5EB.mjs → scan-CNMcltOX.mjs} +7 -7
- package/dist/{scope-D-h6F6DN.mjs → scope-BTWstJ1B.mjs} +4 -4
- package/dist/session-DgZifjLx.mjs +35 -0
- package/dist/{session-Dn5OJXlg.mjs → session-HBYOABWU.mjs} +28 -28
- package/dist/session-scan-BZxnYN1v.mjs +9 -0
- package/dist/{session-scan-DUn10MBd.mjs → session-scan-CX3MKCNg.mjs} +6 -6
- package/dist/{session-usage-CPvXvSkw.mjs → session-usage-CCmPFFa6.mjs} +117 -2
- package/dist/{status-ggJ7lgVg.mjs → status-Cecau8Ps.mjs} +9 -5
- package/dist/status-D52xC_i0.mjs +6 -0
- package/dist/{tool-errors-7E13StWd.mjs → tool-errors-BFw1gv-z.mjs} +2 -2
- package/dist/{tool-errors-CJWODvlo.mjs → tool-errors-COM2JGEr.mjs} +6 -6
- package/dist/viewer-Ce-Xa9L3.mjs +22 -0
- package/dist/{viewer-wfKnvnrI.mjs → viewer-DvBg6N22.mjs} +16 -14
- package/dist/{wait-ByV0OyMZ.mjs → wait-C5iWILj_.mjs} +3 -3
- package/dist/worker-config-BmcJ9R0U.mjs +42 -0
- package/dist/{worker-config-eY5Qy4vl.mjs → worker-config-DkONNk_H.mjs} +164 -107
- package/dist/workers-config-DwzrtdYu.mjs +4 -0
- package/dist/{worktree-CRs2gyg0.mjs → worktree-O_kU6Q3y.mjs} +164 -8
- package/dist/{zettelkasten-tpCRBYvH.mjs → zettelkasten-BH8AdNh8.mjs} +4 -4
- package/dist/{zettelkasten-_h_tUm2T.mjs → zettelkasten-FFhQFESJ.mjs} +2 -2
- package/docs/commands/README.md +33 -2
- package/docs/commands/audit.md +34 -3
- package/docs/commands/backup.md +1 -1
- package/docs/commands/build.md +4 -4
- package/docs/commands/cd.md +1 -1
- package/docs/commands/clear-names.md +1 -1
- package/docs/commands/cockpit.md +1 -1
- package/docs/commands/config.md +21 -1
- package/docs/commands/daemon.md +1 -1
- package/docs/commands/db.md +1 -1
- package/docs/commands/doc.md +1 -1
- package/docs/commands/end.md +1 -1
- package/docs/commands/find.md +1 -1
- package/docs/commands/git.md +110 -0
- package/docs/commands/handoff.md +70 -0
- package/docs/commands/harness.md +74 -0
- package/docs/commands/help.md +1 -1
- package/docs/commands/home.md +1 -1
- package/docs/commands/hooks-db.md +1 -1
- package/docs/commands/identity.md +1 -1
- package/docs/commands/install.md +1 -1
- package/docs/commands/issue.md +1 -1
- package/docs/commands/kg.md +1 -1
- package/docs/commands/launch.md +1 -1
- package/docs/commands/lessons.md +201 -0
- package/docs/commands/list.md +1 -1
- package/docs/commands/ls.md +1 -1
- package/docs/commands/mcp.md +1 -1
- package/docs/commands/memory.md +1 -1
- package/docs/commands/models.md +1 -1
- package/docs/commands/more.md +1 -1
- package/docs/commands/new.md +1 -1
- package/docs/commands/notes.md +1 -1
- package/docs/commands/notify.md +1 -1
- package/docs/commands/observation.md +1 -1
- package/docs/commands/obsidian.md +1 -1
- package/docs/commands/open.md +1 -1
- package/docs/commands/pane.md +1 -1
- package/docs/commands/pause.md +1 -1
- package/docs/commands/plan.md +1 -1
- package/docs/commands/project.md +1 -1
- package/docs/commands/projects.md +1 -1
- package/docs/commands/providers.md +1 -1
- package/docs/commands/queue.md +1 -1
- package/docs/commands/registry.md +1 -1
- package/docs/commands/reload.md +1 -1
- package/docs/commands/rename.md +1 -1
- package/docs/commands/restore.md +1 -1
- package/docs/commands/resume.md +1 -1
- package/docs/commands/router.md +1 -1
- package/docs/commands/rules.md +70 -0
- package/docs/commands/session.md +1 -1
- package/docs/commands/sessions.md +1 -1
- package/docs/commands/setup.md +1 -1
- package/docs/commands/setups.md +1 -1
- package/docs/commands/shell-init.md +1 -1
- package/docs/commands/skill.md +1 -1
- package/docs/commands/task.md +1 -1
- package/docs/commands/tasks.md +1 -1
- package/docs/commands/topic.md +1 -1
- package/docs/commands/update.md +1 -1
- package/docs/commands/worker.md +1 -1
- package/docs/commands/zettel.md +1 -1
- package/docs/concepts/panes.md +3 -2
- package/gemini-extension.json +1 -1
- package/package.json +2 -2
- 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/lib/loop-guard.ts +3 -5
- package/src/hooks/ts/lib/rules/builtin/base64-decode-to-shell.rule.yaml +13 -0
- package/src/hooks/ts/lib/rules/builtin/chmod-world-writable.rule.yaml +13 -0
- package/src/hooks/ts/lib/rules/builtin/chmod-zero.rule.yaml +11 -0
- package/src/hooks/ts/lib/rules/builtin/credential-file-read.rule.yaml +13 -0
- package/src/hooks/ts/lib/rules/builtin/credential-read-then-network.rule.yaml +29 -0
- package/src/hooks/ts/lib/rules/builtin/crontab-persistence.rule.yaml +10 -0
- package/src/hooks/ts/lib/rules/builtin/curl-piped-to-shell.rule.yaml +15 -0
- package/src/hooks/ts/lib/rules/builtin/download-then-execute.rule.yaml +30 -0
- package/src/hooks/ts/lib/rules/builtin/find-root-delete.rule.yaml +11 -0
- package/src/hooks/ts/lib/rules/builtin/git-push-force.rule.yaml +24 -0
- package/src/hooks/ts/lib/rules/builtin/git-push-plus-refspec.rule.yaml +12 -0
- package/src/hooks/ts/lib/rules/builtin/git-reset-hard.rule.yaml +12 -0
- package/src/hooks/ts/lib/rules/builtin/injection-then-tool.rule.yaml +30 -0
- package/src/hooks/ts/lib/rules/builtin/instruction-override-disregard.rule.yaml +12 -0
- package/src/hooks/ts/lib/rules/builtin/instruction-override-ignore.rule.yaml +13 -0
- package/src/hooks/ts/lib/rules/builtin/launchagents-write-persistence.rule.yaml +12 -0
- package/src/hooks/ts/lib/rules/builtin/launchctl-load-persistence.rule.yaml +10 -0
- package/src/hooks/ts/lib/rules/builtin/reverse-shell-dev-tcp.rule.yaml +11 -0
- package/src/hooks/ts/lib/rules/builtin/reverse-shell-interactive-bash.rule.yaml +11 -0
- package/src/hooks/ts/lib/rules/builtin/rm-recursive-parent.rule.yaml +11 -0
- package/src/hooks/ts/lib/rules/builtin/rm-recursive-relative.rule.yaml +11 -0
- package/src/hooks/ts/lib/rules/builtin/rm-recursive-root.rule.yaml +24 -0
- package/src/hooks/ts/lib/rules/builtin/rm-trailing-tilde.rule.yaml +11 -0
- package/src/hooks/ts/lib/rules/builtin/sudoers-nopasswd.rule.yaml +15 -0
- package/src/hooks/ts/lib/rules/builtin.generated.ts +530 -0
- package/src/hooks/ts/lib/rules/eval.ts +74 -0
- package/src/hooks/ts/lib/rules/lint.ts +102 -0
- package/src/hooks/ts/lib/rules/load.ts +229 -0
- package/src/hooks/ts/lib/rules/types.ts +56 -0
- package/src/hooks/ts/pre-tool-use/security-validator.ts +27 -96
- package/src/hooks/ts/user-prompt/handoff-link.ts +34 -0
- package/dist/aibroker-client-BxzeEHPF.mjs +0 -3
- package/dist/auto-route-C3S2W3Bc.mjs +0 -11
- package/dist/budget-BrloTOZW.mjs +0 -15
- package/dist/cockpit-memory-teG9M8bG.mjs +0 -20
- package/dist/config-Cxi-aBf4.mjs +0 -4
- package/dist/daemon-DeYImF1F.mjs +0 -45
- package/dist/detect-Rrimh0xc.mjs +0 -10
- package/dist/factory-Bs9imVMq.mjs +0 -9
- package/dist/kill-tree-SV6hrIa3.mjs +0 -10
- package/dist/operator-BTqvTIc8.mjs +0 -7
- package/dist/providers-FvCLzFge.mjs +0 -16
- package/dist/registrable-BzH4TObg.mjs +0 -9
- package/dist/render-B35bQTE-.mjs +0 -13
- package/dist/render-C84BqQRC.mjs +0 -903
- package/dist/root-DD1xx_Vu.mjs +0 -36
- package/dist/route-table-FEfDuhIV.mjs +0 -15
- package/dist/session-BAhtXdxj.mjs +0 -35
- package/dist/session-scan-B57dNuA4.mjs +0 -9
- package/dist/status-Dm4dYciN.mjs +0 -6
- package/dist/viewer-DEySE4c_.mjs +0 -22
- package/dist/worker-config-CO5FXLAT.mjs +0 -41
- package/dist/workers-config-f8KrkY4L.mjs +0 -4
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import "./config-
|
|
2
|
-
import "./config-
|
|
3
|
-
import "./paths-
|
|
4
|
-
import "./status-
|
|
5
|
-
import "./scope-
|
|
6
|
-
import "./routing-
|
|
7
|
-
import "./tool-errors-
|
|
8
|
-
import "./wait-
|
|
9
|
-
import "./local-tiers-
|
|
10
|
-
import "./caller-identity-
|
|
11
|
-
import "./capacity-
|
|
12
|
-
import "./local-instances-
|
|
13
|
-
import "./local-candidate-
|
|
14
|
-
import "./providers-
|
|
15
|
-
import "./main-config-ops-
|
|
16
|
-
import { C as runtimeOpRefusal, D as writeLedgerLine, E as tierNames, S as runtimeJobProgress, T as spawnMemoryRun, _ as resolveTierName, a as classesOnProvider, b as runningRuntimeJob, c as defaultDeps, d as labelPath, f as logTailSince, g as readLabels, h as readCockpitJob, i as WORKER_ROLE_CLASSES, l as engineInflight, m as orchestratorProvider, n as RUNTIME_START_EVENT, o as cockpitActionLedger, p as memoryRunRefusal, r as RUNTIME_STOP_EVENT, s as cockpitJobFile, t as COCKPIT_ACTION_EVENT, u as labelFor, v as runCockpitAction, w as runtimeStartStop, x as runningRuntimeJobs, y as runningLocalModel } from "./cockpit-actions-
|
|
17
|
-
import "./ipc-client-
|
|
18
|
-
import "./embed-pass-
|
|
1
|
+
import "./config-Bz8pAU5Q.mjs";
|
|
2
|
+
import "./config-SlZ-Z52i.mjs";
|
|
3
|
+
import "./paths-CypxFTfn.mjs";
|
|
4
|
+
import "./status-Cecau8Ps.mjs";
|
|
5
|
+
import "./scope-BTWstJ1B.mjs";
|
|
6
|
+
import "./routing-aJKMIagQ.mjs";
|
|
7
|
+
import "./tool-errors-BFw1gv-z.mjs";
|
|
8
|
+
import "./wait-C5iWILj_.mjs";
|
|
9
|
+
import "./local-tiers-CqwGUcEn.mjs";
|
|
10
|
+
import "./caller-identity-C6Nc96iM.mjs";
|
|
11
|
+
import "./capacity-B2PgKAg4.mjs";
|
|
12
|
+
import "./local-instances-DhF4_sV2.mjs";
|
|
13
|
+
import "./local-candidate-DFd4pp-w.mjs";
|
|
14
|
+
import "./providers-BNV7CzC-.mjs";
|
|
15
|
+
import "./main-config-ops-rda08BCD.mjs";
|
|
16
|
+
import { C as runtimeOpRefusal, D as writeLedgerLine, E as tierNames, S as runtimeJobProgress, T as spawnMemoryRun, _ as resolveTierName, a as classesOnProvider, b as runningRuntimeJob, c as defaultDeps, d as labelPath, f as logTailSince, g as readLabels, h as readCockpitJob, i as WORKER_ROLE_CLASSES, l as engineInflight, m as orchestratorProvider, n as RUNTIME_START_EVENT, o as cockpitActionLedger, p as memoryRunRefusal, r as RUNTIME_STOP_EVENT, s as cockpitJobFile, t as COCKPIT_ACTION_EVENT, u as labelFor, v as runCockpitAction, w as runtimeStartStop, x as runningRuntimeJobs, y as runningLocalModel } from "./cockpit-actions-D1OPP6Es.mjs";
|
|
17
|
+
import "./ipc-client-CmagIFLh.mjs";
|
|
18
|
+
import "./embed-pass-CN1D8MXl.mjs";
|
|
19
19
|
|
|
20
20
|
export { COCKPIT_ACTION_EVENT, RUNTIME_START_EVENT, RUNTIME_STOP_EVENT, WORKER_ROLE_CLASSES, classesOnProvider, cockpitActionLedger, cockpitJobFile, defaultDeps, engineInflight, labelFor, labelPath, logTailSince, memoryRunRefusal, orchestratorProvider, readCockpitJob, readLabels, resolveTierName, runCockpitAction, runningLocalModel, runningRuntimeJob, runningRuntimeJobs, runtimeJobProgress, runtimeOpRefusal, runtimeStartStop, spawnMemoryRun, tierNames, writeLedgerLine };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Et as
|
|
3
|
-
import { c as loadConfig, f as readMainConfigRaw, h as effectiveMainConfig, m as deepMergeConfig, p as writeMainConfigRaw, u as paiConfigFilePath, y as shippedMainDefaults } from "./config-
|
|
4
|
-
import { i as ledgerPath, u as workersLogDir } from "./paths-
|
|
5
|
-
import { it as readInventory } from "./routing-
|
|
6
|
-
import { _ as readLocalConfig } from "./local-tiers-
|
|
1
|
+
import { _ as paiHomePath, g as paiHomeDir } from "./runtime-paths-twfV23YL.mjs";
|
|
2
|
+
import { Et as appendLedger, M as readWorkersSection, Ot as parseLedger, rt as workersYamlPath, t as ANTHROPIC_NATIVE } from "./config-Bz8pAU5Q.mjs";
|
|
3
|
+
import { c as loadConfig, f as readMainConfigRaw, h as effectiveMainConfig, m as deepMergeConfig, p as writeMainConfigRaw, u as paiConfigFilePath, y as shippedMainDefaults } from "./config-SlZ-Z52i.mjs";
|
|
4
|
+
import { i as ledgerPath, u as workersLogDir } from "./paths-CypxFTfn.mjs";
|
|
5
|
+
import { it as readInventory } from "./routing-aJKMIagQ.mjs";
|
|
6
|
+
import { _ as readLocalConfig } from "./local-tiers-CqwGUcEn.mjs";
|
|
7
7
|
import { f as sharedScheduler } from "./scheduler-CtUyWJ3O.mjs";
|
|
8
|
-
import { r as instanceEngineKey } from "./local-instances-
|
|
9
|
-
import { o as primaryLocal, s as readLocalStatus } from "./local-candidate-
|
|
8
|
+
import { r as instanceEngineKey } from "./local-instances-DhF4_sV2.mjs";
|
|
9
|
+
import { o as primaryLocal, s as readLocalStatus } from "./local-candidate-DFd4pp-w.mjs";
|
|
10
10
|
import { t as LOCAL_PROBE_TIMEOUT_MS } from "./timeouts-1MLooEBB.mjs";
|
|
11
|
-
import { f as setClass } from "./providers-
|
|
12
|
-
import { o as setConfigValueOp, s as unsetConfigValueOp } from "./main-config-ops-
|
|
13
|
-
import { n as PaiClient } from "./ipc-client-
|
|
14
|
-
import { l as readEmbedPasses } from "./embed-pass-
|
|
11
|
+
import { f as setClass } from "./providers-BNV7CzC-.mjs";
|
|
12
|
+
import { o as setConfigValueOp, s as unsetConfigValueOp } from "./main-config-ops-rda08BCD.mjs";
|
|
13
|
+
import { n as PaiClient } from "./ipc-client-CmagIFLh.mjs";
|
|
14
|
+
import { l as readEmbedPasses } from "./embed-pass-CN1D8MXl.mjs";
|
|
15
15
|
import { appendFileSync, closeSync, existsSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, rmSync, rmdirSync, statSync, writeFileSync } from "node:fs";
|
|
16
16
|
import { randomBytes } from "node:crypto";
|
|
17
17
|
import { dirname, join } from "node:path";
|
|
@@ -343,6 +343,8 @@ const SHIPPED = {
|
|
|
343
343
|
jobPollMs: 5e3,
|
|
344
344
|
jobFirstDelayMs: 2e3,
|
|
345
345
|
jobMaxTries: 120,
|
|
346
|
+
concurrencyMin: 1,
|
|
347
|
+
concurrencyMax: 16,
|
|
346
348
|
serverCounterStaleSecs: 60,
|
|
347
349
|
gaugeWarnPct: 70,
|
|
348
350
|
gaugeBadPct: 90,
|
|
@@ -412,6 +414,8 @@ function cockpitLayout() {
|
|
|
412
414
|
jobPollMs: num(s, "jobPollMs", SHIPPED.jobPollMs),
|
|
413
415
|
jobFirstDelayMs: numZ(s, "jobFirstDelayMs", SHIPPED.jobFirstDelayMs),
|
|
414
416
|
jobMaxTries: num(s, "jobMaxTries", SHIPPED.jobMaxTries),
|
|
417
|
+
concurrencyMin: num(s, "concurrencyMin", SHIPPED.concurrencyMin),
|
|
418
|
+
concurrencyMax: num(s, "concurrencyMax", SHIPPED.concurrencyMax),
|
|
415
419
|
serverCounterStaleSecs: num(s, "serverCounterStaleSecs", SHIPPED.serverCounterStaleSecs),
|
|
416
420
|
gaugeWarnPct: numZ(s, "gaugeWarnPct", SHIPPED.gaugeWarnPct),
|
|
417
421
|
gaugeBadPct: numZ(s, "gaugeBadPct", SHIPPED.gaugeBadPct),
|
|
@@ -1275,23 +1279,23 @@ function defaultDeps() {
|
|
|
1275
1279
|
const logDir = workersLogDir(workers);
|
|
1276
1280
|
return {
|
|
1277
1281
|
startTier: async (tierName) => {
|
|
1278
|
-
const { startTier } = await import("./worker-config-
|
|
1282
|
+
const { startTier } = await import("./worker-config-BmcJ9R0U.mjs");
|
|
1279
1283
|
const cfg = readLocalConfig(workersYamlPath());
|
|
1280
1284
|
const tier = cfg.tiers[tierName];
|
|
1281
1285
|
if (!tier) throw new Error(`no tier "${tierName}" (configured: ${Object.keys(cfg.tiers).join(", ") || "none"})`);
|
|
1282
1286
|
await startTier(cfg, tierName, tier);
|
|
1283
1287
|
},
|
|
1284
1288
|
stopAll: async () => {
|
|
1285
|
-
const { stopAll } = await import("./worker-config-
|
|
1289
|
+
const { stopAll } = await import("./worker-config-BmcJ9R0U.mjs");
|
|
1286
1290
|
await stopAll(readLocalConfig(workersYamlPath()));
|
|
1287
1291
|
},
|
|
1288
1292
|
startModel: async (model) => {
|
|
1289
|
-
const { startInstance } = await import("./worker-config-
|
|
1293
|
+
const { startInstance } = await import("./worker-config-BmcJ9R0U.mjs");
|
|
1290
1294
|
await startInstance(readLocalConfig(workersYamlPath()), model);
|
|
1291
1295
|
},
|
|
1292
1296
|
stopModel: async (target, opts) => {
|
|
1293
|
-
const { stopInstance } = await import("./worker-config-
|
|
1294
|
-
const { currentInstances } = await import("./worker-config-
|
|
1297
|
+
const { stopInstance } = await import("./worker-config-BmcJ9R0U.mjs");
|
|
1298
|
+
const { currentInstances } = await import("./worker-config-BmcJ9R0U.mjs");
|
|
1295
1299
|
const cfg = readLocalConfig(workersYamlPath());
|
|
1296
1300
|
const keys = new Map(currentInstances(cfg).map((r) => [r.id, instanceEngineKey(r)]));
|
|
1297
1301
|
await stopInstance(cfg, target, opts, {
|
|
@@ -1300,7 +1304,7 @@ function defaultDeps() {
|
|
|
1300
1304
|
});
|
|
1301
1305
|
},
|
|
1302
1306
|
runningCount: async (model) => {
|
|
1303
|
-
const { currentInstances } = await import("./worker-config-
|
|
1307
|
+
const { currentInstances } = await import("./worker-config-BmcJ9R0U.mjs");
|
|
1304
1308
|
return currentInstances(readLocalConfig(workersYamlPath())).filter((r) => r.model === model && r.state !== "failed").length;
|
|
1305
1309
|
},
|
|
1306
1310
|
setClass: (cls, target) => void setClass(cls, target),
|
|
@@ -1584,7 +1588,7 @@ async function runCockpitAction(body, deps, hooks = {}) {
|
|
|
1584
1588
|
if (action === "route.set") {
|
|
1585
1589
|
if (!target) return fail("target (tier) required");
|
|
1586
1590
|
try {
|
|
1587
|
-
const { setRoute } = await import("./route-table-
|
|
1591
|
+
const { setRoute } = await import("./route-table-COAmc1nB.mjs");
|
|
1588
1592
|
const models = Array.isArray(body.models) ? body.models : value !== void 0 ? value.split(",") : body.models;
|
|
1589
1593
|
const change = setRoute(target, models, deps.configPath);
|
|
1590
1594
|
writeLedgerLine(deps, action, change.id, `set:${change.entries.join(">")}`);
|
|
@@ -1601,7 +1605,7 @@ async function runCockpitAction(body, deps, hooks = {}) {
|
|
|
1601
1605
|
if (value !== "on" && value !== "off") return fail(`value must be on or off, got "${value ?? ""}"`);
|
|
1602
1606
|
if (!deps.workers.providers[target]?.characteristics) return fail(`"${target}" is not a registered endpoint (providers.${target}.characteristics)`);
|
|
1603
1607
|
try {
|
|
1604
|
-
const { setProviderEnabled } = await import("./providers-
|
|
1608
|
+
const { setProviderEnabled } = await import("./providers-BH6hQYbU.mjs");
|
|
1605
1609
|
setProviderEnabled(target, value === "on", deps.configPath);
|
|
1606
1610
|
writeLedgerLine(deps, action, target, `routing ${value}`);
|
|
1607
1611
|
return {
|
|
@@ -1627,7 +1631,7 @@ async function runCockpitAction(body, deps, hooks = {}) {
|
|
|
1627
1631
|
message: `worker classes → ${provider}`
|
|
1628
1632
|
};
|
|
1629
1633
|
}
|
|
1630
|
-
const { useProvider } = await import("./providers-
|
|
1634
|
+
const { useProvider } = await import("./providers-BH6hQYbU.mjs");
|
|
1631
1635
|
useProvider(provider);
|
|
1632
1636
|
try {
|
|
1633
1637
|
const raw = readMainConfigRaw();
|
|
@@ -1662,14 +1666,14 @@ async function memoryRunRefusal(deps, nowMs = Date.now()) {
|
|
|
1662
1666
|
}
|
|
1663
1667
|
/** The daemon's count of chunks without vectors; null when it does not answer. */
|
|
1664
1668
|
async function daemonEmbedBacklog() {
|
|
1665
|
-
const { fetchDaemonMemory } = await import("./cockpit-memory-
|
|
1669
|
+
const { fetchDaemonMemory } = await import("./cockpit-memory-CLHZD64W.mjs");
|
|
1666
1670
|
return (await fetchDaemonMemory())?.embedBacklog ?? null;
|
|
1667
1671
|
}
|
|
1668
1672
|
/** The daemon's in-process passes (no child, so no marker): its status says whether one runs. */
|
|
1669
1673
|
async function daemonMemoryBusy() {
|
|
1670
1674
|
try {
|
|
1671
|
-
const { PaiClient } = await import("./ipc-client-
|
|
1672
|
-
const { loadConfig } = await import("./config-
|
|
1675
|
+
const { PaiClient } = await import("./ipc-client-DmbSIBUK.mjs");
|
|
1676
|
+
const { loadConfig } = await import("./config-DHgPx3ER.mjs");
|
|
1673
1677
|
const s = await new PaiClient(loadConfig().socketPath).call("status", {}, 5e3);
|
|
1674
1678
|
if (s.embedInProgress) return "embed already running (started by daemon)";
|
|
1675
1679
|
if (s.indexInProgress) return "index already running (started by daemon)";
|
|
@@ -1783,7 +1787,7 @@ async function finishRuntimeJob(deps, hooks, id, runtime, op) {
|
|
|
1783
1787
|
end(state, message);
|
|
1784
1788
|
}
|
|
1785
1789
|
async function defaultRefreshInventory() {
|
|
1786
|
-
const { computeInventory, readInventoryInput, writeInventory } = await import("./model-inventory-
|
|
1790
|
+
const { computeInventory, readInventoryInput, writeInventory } = await import("./model-inventory-BXv15B0d.mjs");
|
|
1787
1791
|
writeInventory(workersLogDir(readWorkersSection().workers), await computeInventory(readInventoryInput()));
|
|
1788
1792
|
}
|
|
1789
1793
|
/** Runs the injected local job, records its outcome in the job file and ledger. */
|
|
@@ -1853,4 +1857,4 @@ function cockpitActionLedger(ledgerFile, lastN = 10) {
|
|
|
1853
1857
|
|
|
1854
1858
|
//#endregion
|
|
1855
1859
|
export { cockpitMemoryPayload as A, cockpitLayout as B, runtimeOpRefusal as C, writeLedgerLine as D, tierNames as E, memoryRunLog as F, acquireRun as H, rateSeries as I, runProgress as L, latestMemoryJob as M, liveMemoryDeps as N, embeddingRuntimeName as O, memoryJobProgress as P, runningMemoryJob as R, runtimeJobProgress as S, spawnMemoryRun as T, readRun as U, cockpitProbeSettings as V, resolveTierName as _, classesOnProvider as a, runningRuntimeJob as b, defaultDeps as c, labelPath as d, logTailSince as f, readLabels as g, readCockpitJob as h, WORKER_ROLE_CLASSES as i, fetchDaemonMemory as j, readRuntimeCommands as k, engineInflight as l, orchestratorProvider as m, RUNTIME_START_EVENT as n, cockpitActionLedger as o, memoryRunRefusal as p, RUNTIME_STOP_EVENT as r, cockpitJobFile as s, COCKPIT_ACTION_EVENT as t, labelFor as u, runCockpitAction as v, runtimeStartStop as w, runningRuntimeJobs as x, runningLocalModel as y, sameModel as z };
|
|
1856
|
-
//# sourceMappingURL=cockpit-actions-
|
|
1860
|
+
//# sourceMappingURL=cockpit-actions-D1OPP6Es.mjs.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import "./config-Bz8pAU5Q.mjs";
|
|
2
|
+
import "./config-SlZ-Z52i.mjs";
|
|
3
|
+
import "./paths-CypxFTfn.mjs";
|
|
4
|
+
import "./status-Cecau8Ps.mjs";
|
|
5
|
+
import "./scope-BTWstJ1B.mjs";
|
|
6
|
+
import "./routing-aJKMIagQ.mjs";
|
|
7
|
+
import "./tool-errors-BFw1gv-z.mjs";
|
|
8
|
+
import "./wait-C5iWILj_.mjs";
|
|
9
|
+
import "./local-tiers-CqwGUcEn.mjs";
|
|
10
|
+
import "./caller-identity-C6Nc96iM.mjs";
|
|
11
|
+
import "./capacity-B2PgKAg4.mjs";
|
|
12
|
+
import "./local-instances-DhF4_sV2.mjs";
|
|
13
|
+
import "./local-candidate-DFd4pp-w.mjs";
|
|
14
|
+
import "./providers-BNV7CzC-.mjs";
|
|
15
|
+
import "./main-config-ops-rda08BCD.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-D1OPP6Es.mjs";
|
|
17
|
+
import "./ipc-client-CmagIFLh.mjs";
|
|
18
|
+
import "./embed-pass-CN1D8MXl.mjs";
|
|
19
|
+
|
|
20
|
+
export { fetchDaemonMemory };
|
|
@@ -132,6 +132,16 @@ sessions:
|
|
|
132
132
|
minContextTokens: 20000
|
|
133
133
|
# The exact word typed into the session.
|
|
134
134
|
prompt: keepalive
|
|
135
|
+
# Worker settings.
|
|
136
|
+
workers:
|
|
137
|
+
merge:
|
|
138
|
+
# Globs of generated files. When a `pai worker merge` conflicts only in
|
|
139
|
+
# these (plus pure-addition clashes, which are union-merged), the merge
|
|
140
|
+
# takes our side, runs `regenerate`, stages these paths and completes.
|
|
141
|
+
generated:
|
|
142
|
+
- "docs/commands/**"
|
|
143
|
+
# Shell command, run in the target checkout, that rewrites the generated files.
|
|
144
|
+
regenerate: "npm run build"
|
|
135
145
|
# Obsidian sync into the PAI-generated vault. Gates only writing; vault
|
|
136
146
|
# indexing is vaultIndex.
|
|
137
147
|
obsidian:
|
|
@@ -140,6 +150,13 @@ obsidian:
|
|
|
140
150
|
# obsidian.enabled.
|
|
141
151
|
vaultIndex:
|
|
142
152
|
enabled: true
|
|
153
|
+
# Index <PAI home>/lessons (review-gated lessons) for memory search.
|
|
154
|
+
lessonsIndex:
|
|
155
|
+
enabled: true
|
|
156
|
+
# Harness session ingestion (src/harness): names from the adapter registry
|
|
157
|
+
# (claude-code, codex). Read-only; an adapter whose store is absent never runs.
|
|
158
|
+
harness:
|
|
159
|
+
adapters: [claude-code]
|
|
143
160
|
# Keep `pai router` (127.0.0.1:8790) running under the daemon.
|
|
144
161
|
router:
|
|
145
162
|
enabled: false
|
|
@@ -243,6 +260,9 @@ router:
|
|
|
243
260
|
jobFirstDelayMs: 2000
|
|
244
261
|
jobPollMs: 5000
|
|
245
262
|
jobMaxTries: 120
|
|
263
|
+
# bounds of the parallel-runs +/- stepper on a provider card in the Models section.
|
|
264
|
+
concurrencyMin: 1
|
|
265
|
+
concurrencyMax: 16
|
|
246
266
|
# a server prefix-cache counter older than this (seconds) is marked.
|
|
247
267
|
serverCounterStaleSecs: 60
|
|
248
268
|
# colour thresholds, stated per pair: for a limits gauge and an error
|
|
@@ -332,7 +352,7 @@ models:
|
|
|
332
352
|
note: idle loads a model on the first request
|
|
333
353
|
# Worker panes (src/workers/pane*.ts; read through src/workers/pane-policy.ts).
|
|
334
354
|
panes:
|
|
335
|
-
# Smallest pane a worker may be placed in;
|
|
355
|
+
# Smallest pane a worker may be placed in; guides which pane is split. A small pane is never a violation.
|
|
336
356
|
minCols: 40
|
|
337
357
|
minRows: 6
|
|
338
358
|
# Verify a new pane: attempts and the poll interval between them.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _ as
|
|
2
|
-
import { D as
|
|
3
|
-
import { appendFileSync, chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
1
|
+
import { _ as paiHomePath, f as legacyConfigDir, h as migratePaiFile, l as claudeHomeDir, v as resolvePaiFile } from "./runtime-paths-twfV23YL.mjs";
|
|
2
|
+
import { D as writeYamlFileAtomic, E as YamlStoreError, O as readJsonStrict, _ as effectiveWorkersYamlRaw, b as shippedWorkersDefaults, f as readMainConfigRaw, g as effectiveWorkersYamlDoc, h as effectiveMainConfig, k as writeJsonAtomic, n as CONFIG_FILE, o as expandHome, p as writeMainConfigRaw, u as paiConfigFilePath, x as userWorkersYamlRaw } from "./config-SlZ-Z52i.mjs";
|
|
3
|
+
import { appendFileSync, chmodSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { dirname, join, resolve } from "node:path";
|
|
5
5
|
import { Document, Scalar, parseDocument } from "yaml";
|
|
6
6
|
|
|
@@ -2283,6 +2283,31 @@ function readWorkersSection(path = paiConfigFilePath(), onWarn = (msg) => proces
|
|
|
2283
2283
|
workers
|
|
2284
2284
|
};
|
|
2285
2285
|
}
|
|
2286
|
+
let cachedWorkers = null;
|
|
2287
|
+
function mtimeOf(path) {
|
|
2288
|
+
try {
|
|
2289
|
+
return statSync(path).mtimeMs;
|
|
2290
|
+
} catch {
|
|
2291
|
+
return 0;
|
|
2292
|
+
}
|
|
2293
|
+
}
|
|
2294
|
+
/** Signature of the files the workers config reads: changes whenever either is saved. */
|
|
2295
|
+
function workersConfigStamp(path = paiConfigFilePath()) {
|
|
2296
|
+
return `${path}:${mtimeOf(path)}:${mtimeOf(workersYamlPath())}`;
|
|
2297
|
+
}
|
|
2298
|
+
/**
|
|
2299
|
+
* readWorkersSection for pollers (the capacity gate re-reads the cap on every
|
|
2300
|
+
* poll): the parsed config is reused until the config file or workers.yaml
|
|
2301
|
+
* changes mtime, so a saved change applies without a restart and a poll costs two stats.
|
|
2302
|
+
*/
|
|
2303
|
+
function readWorkersCached(path = paiConfigFilePath()) {
|
|
2304
|
+
const key = workersConfigStamp(path);
|
|
2305
|
+
if (cachedWorkers?.key !== key) cachedWorkers = {
|
|
2306
|
+
key,
|
|
2307
|
+
workers: readWorkersSection(path, () => {}).workers
|
|
2308
|
+
};
|
|
2309
|
+
return cachedWorkers.workers;
|
|
2310
|
+
}
|
|
2286
2311
|
/**
|
|
2287
2312
|
* Write the workers section back, atomically. When workers.yaml exists, its
|
|
2288
2313
|
* providers/classes/mcpSets/active are synced there (comment-preserving,
|
|
@@ -2474,5 +2499,5 @@ function escalationCloud() {
|
|
|
2474
2499
|
}
|
|
2475
2500
|
|
|
2476
2501
|
//#endregion
|
|
2477
|
-
export {
|
|
2478
|
-
//# sourceMappingURL=config-
|
|
2502
|
+
export { readWorkersYaml as $, providerQuotaSkipAt as A, isLoopbackUrl as B, parseMcpSetsValue as C, planEscalation as Ct, providerContextWindow as D, ledgerSummary as Dt, parseWorkersConfig as E, appendLedger as Et, resolveProviderKey as F, effectiveWorkersYamlData as G, WORKERS_YAML_FILENAME as H, workersConfigStamp as I, migrateWorkersToYaml as J, initWorkersYaml as K, writeWorkersSection as L, readWorkersSection as M, resolveCapability as N, providerCostTier as O, parseLedger as Ot, resolveModelCapability as P, readMergeVerify as Q, LOOPBACK_HOST as R, parseClassesValue as S, ledgerEscalate as St, parseProvider as T, withSummary as Tt, buildWorkersYamlText as U, loopbackUrl as V, defaultWorkersYamlPath as W, parseBuiltinAnthropic as X, needsWorkersYamlRelocation as Y, parseWorkersYamlDocument as Z, maskKey as _, DEFAULT_CONTEXT_WINDOW as _t, MODEL_CAPABILITIES as a, writeWorkersYamlText as at, nativeOrchestratorModel as b, stripModelVariant as bt, WorkersConfigError as c, applyRouteOverrides as ct, defaultWorkersConfig as d, findTier as dt, relocateWorkersYaml as et, escalationCloud as f, listForPolicy as ft, keysDir as g, targetList as gt, isModelCapability as h, sessionTier as ht, DEFAULT_POOL_PORT as i, writeWorkersYaml as it, readWorkersCached as j, providerKeyPath as k, assertProviderRunnable as l, classRoute as lt, isLocalProvider as m, parseEntry as mt, CAPABILITY_NAME_RE as n, workersYamlLegacyNotice as nt, PROVIDER_TAGS as o, yamlProviderToRaw as ot, getProviderOrNative as p, migrateSessionRoutes as pt, inlineWorkersYamlKeys as q, DEFAULT_COST_TIER as r, workersYamlPath as rt, WORKER_CLASSES as s, MAX_ROUTE_MODELS as st, ANTHROPIC_NATIVE as t, starterWorkersYamlText as tt, classModelCapability as u, entryProvider as ut, nativeAnthropicModels as v, certainContextWindow as vt, parseModelsBlock as w, sessionNote as wt, parseCapabilitiesValue as x, ESCALATE_FAILURES as xt, nativeAnthropicProvider as y, contextWindowFromModelId as yt, isLoopbackHostname as z };
|
|
2503
|
+
//# sourceMappingURL=config-Bz8pAU5Q.mjs.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as ensureConfigDir, c as loadConfig, d as paiConfigYamlFilePath, f as readMainConfigRaw, i as defaults, l as migrateConfigFile, n as CONFIG_FILE, o as expandHome, p as writeMainConfigRaw, r as ConfigMigrationError, s as homeRel, t as CONFIG_DIR, u as paiConfigFilePath } from "./config-
|
|
1
|
+
import { a as ensureConfigDir, c as loadConfig, d as paiConfigYamlFilePath, f as readMainConfigRaw, i as defaults, l as migrateConfigFile, n as CONFIG_FILE, o as expandHome, p as writeMainConfigRaw, r as ConfigMigrationError, s as homeRel, t as CONFIG_DIR, u as paiConfigFilePath } from "./config-SlZ-Z52i.mjs";
|
|
2
2
|
|
|
3
3
|
export { CONFIG_DIR, CONFIG_FILE, ConfigMigrationError, defaults, ensureConfigDir, expandHome, homeRel, loadConfig, migrateConfigFile, paiConfigFilePath, paiConfigYamlFilePath, readMainConfigRaw, writeMainConfigRaw };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { A as providerQuotaSkipAt, C as parseMcpSetsValue, D as providerContextWindow, E as parseWorkersConfig, F as resolveProviderKey, I as workersConfigStamp, L as writeWorkersSection, M as readWorkersSection, N as resolveCapability, O as providerCostTier, P as resolveModelCapability, S as parseClassesValue, T as parseProvider, _ as maskKey, _t as DEFAULT_CONTEXT_WINDOW, a as MODEL_CAPABILITIES, b as nativeOrchestratorModel, c as WorkersConfigError, d as defaultWorkersConfig, f as escalationCloud, g as keysDir, h as isModelCapability, i as DEFAULT_POOL_PORT, j as readWorkersCached, 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-Bz8pAU5Q.mjs";
|
|
2
|
+
import { o as expandHome, s as homeRel } from "./config-SlZ-Z52i.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, readWorkersCached, readWorkersSection, resolveCapability, resolveModelCapability, resolveProviderKey, workersConfigStamp, writeWorkersSection };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as
|
|
1
|
+
import { _ as paiHomePath, c as PaiFileMigrationError, f as legacyConfigDir, h as migratePaiFile, l as claudeHomeDir, o as paiSocketPath, v as resolvePaiFile } from "./runtime-paths-twfV23YL.mjs";
|
|
2
2
|
import { t as assertTestWriteAllowed } from "./test-isolation-lqSmYxr0.mjs";
|
|
3
3
|
import { chmodSync, copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { basename, dirname, join } from "node:path";
|
|
@@ -352,6 +352,7 @@ const MAIN_CONFIG_SECTION_COMMENTS = {
|
|
|
352
352
|
logLevel: "Daemon log level: debug, info, warn, or error.",
|
|
353
353
|
obsidian: "Obsidian sync into the PAI-generated vault: { enabled } (default false). Gates only writing; vault indexing is vaultIndex.",
|
|
354
354
|
vaultIndex: "Read-only indexing of vaultPath for memory search: { enabled } (default true). Independent of obsidian.enabled.",
|
|
355
|
+
lessonsIndex: "Indexing of <PAI home>/lessons (review-gated lessons) for memory search: { enabled } (default true).",
|
|
355
356
|
vaultPath: "Obsidian vault root path for zettelkasten indexing, if any.",
|
|
356
357
|
vaultProjectId: "Registry project_id used for vault chunks in memory_chunks. Default: auto-detected.",
|
|
357
358
|
notifications: "Notification subsystem configuration.",
|
|
@@ -791,5 +792,5 @@ function ensureConfigDir() {
|
|
|
791
792
|
}
|
|
792
793
|
|
|
793
794
|
//#endregion
|
|
794
|
-
export {
|
|
795
|
-
//# sourceMappingURL=config-
|
|
795
|
+
export { DEFAULT_PG_CONNECTION_TIMEOUT_MS as A, migrateMainConfigToYaml as C, writeYamlFileAtomic as D, YamlStoreError as E, quoteIdent as F, isContainerTarget as M, postgresConnectionString as N, readJsonStrict as O, postgresFullTarget as P, MainConfigError as S, resolvedMainConfigPath as T, effectiveWorkersYamlRaw as _, ensureConfigDir as a, shippedWorkersDefaults as b, loadConfig as c, paiConfigYamlFilePath as d, readMainConfigRaw as f, effectiveWorkersYamlDoc as g, effectiveMainConfig as h, defaults as i, assertPgName as j, writeJsonAtomic as k, migrateConfigFile as l, deepMergeConfig as m, CONFIG_FILE as n, expandHome as o, writeMainConfigRaw as p, ConfigMigrationError as r, homeRel as s, CONFIG_DIR as t, paiConfigFilePath as u, shippedDefaultsDir as v, readDualFormatConfigRaw as w, userWorkersYamlRaw as x, shippedMainDefaults as y };
|
|
796
|
+
//# sourceMappingURL=config-SlZ-Z52i.mjs.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Et as
|
|
3
|
-
import { h as effectiveMainConfig, u as paiConfigFilePath } from "./config-
|
|
4
|
-
import { i as ledgerPath, l as statusPath, o as panesDir, u as workersLogDir } from "./paths-
|
|
5
|
-
import { C as nowStamp, D as pidAlive$1, T as ownsPidCached, b as loadStatusesCached, g as isLive, h as isChatPane, k as saveStatus, v as loadStatus } from "./status-
|
|
6
|
-
import { c as scopeKey, i as itermUuid$1, p as currentWorkerId } from "./scope-
|
|
7
|
-
import { a as buildsDir, l as listBuildsSync, m as ticketKind } from "./caller-identity-
|
|
8
|
-
import { o as providerCap, s as queueRows } from "./capacity-
|
|
9
|
-
import { n as tierProviderNames, s as readLocalStatus, t as isLocalCandidate } from "./local-candidate-
|
|
10
|
-
import { d as paneRunStatusRow, f as paneStatusRow } from "./render-
|
|
11
|
-
import { r as sayToWorker } from "./operator-
|
|
1
|
+
import { _ as paiHomePath } from "./runtime-paths-twfV23YL.mjs";
|
|
2
|
+
import { Et as appendLedger, M as readWorkersSection, Ot as parseLedger, d as defaultWorkersConfig, f as escalationCloud, m as isLocalProvider, xt as ESCALATE_FAILURES } from "./config-Bz8pAU5Q.mjs";
|
|
3
|
+
import { h as effectiveMainConfig, u as paiConfigFilePath } from "./config-SlZ-Z52i.mjs";
|
|
4
|
+
import { i as ledgerPath, l as statusPath, o as panesDir, u as workersLogDir } from "./paths-CypxFTfn.mjs";
|
|
5
|
+
import { C as nowStamp, D as pidAlive$1, T as ownsPidCached, b as loadStatusesCached, g as isLive, h as isChatPane, k as saveStatus, v as loadStatus } from "./status-Cecau8Ps.mjs";
|
|
6
|
+
import { c as scopeKey, i as itermUuid$1, p as currentWorkerId } from "./scope-BTWstJ1B.mjs";
|
|
7
|
+
import { a as buildsDir, l as listBuildsSync, m as ticketKind } from "./caller-identity-C6Nc96iM.mjs";
|
|
8
|
+
import { c as queuedFilePath, d as readQueued, f as removeQueued, l as queuedPaneLine, o as providerCap, s as queueRows, v as writeQueued } from "./capacity-B2PgKAg4.mjs";
|
|
9
|
+
import { n as tierProviderNames, s as readLocalStatus, t as isLocalCandidate } from "./local-candidate-DFd4pp-w.mjs";
|
|
10
|
+
import { J as psTableOrNull, d as paneRunStatusRow, f as paneStatusRow, q as psTable } from "./render-jPpMrudf.mjs";
|
|
11
|
+
import { r as sayToWorker } from "./operator-Br6GeswF.mjs";
|
|
12
12
|
import { appendFileSync, existsSync, mkdirSync, mkdtempSync, openSync, readFileSync, readdirSync, renameSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
|
|
13
13
|
import { createHash } from "node:crypto";
|
|
14
14
|
import { dirname, isAbsolute, join, resolve } from "node:path";
|
|
@@ -569,6 +569,8 @@ function startPaneBar(d) {
|
|
|
569
569
|
let status = null;
|
|
570
570
|
const text = () => {
|
|
571
571
|
if (d.spec.kind === "run") return paneRunStatusRow(d.spec.label, d.spec.startedMs, new Date(now()));
|
|
572
|
+
const queued = (d.readQueued ?? readQueued)(d.queuedDir ?? paneExecDir(), d.spec.id);
|
|
573
|
+
if (queued) return paneStatusRow(status ?? {}, new Date(now()), d.columns(), queued);
|
|
572
574
|
status = (d.loadStatus ?? (() => null))(d.spec.logDir, d.spec.id) ?? status;
|
|
573
575
|
return status ? paneStatusRow(status, new Date(now()), d.columns()) : d.spec.id;
|
|
574
576
|
};
|
|
@@ -667,6 +669,8 @@ const PANE_EXEC_PID_ENV = "PAI_PANE_EXEC_PID";
|
|
|
667
669
|
const paneExecDir = () => paiHomePath("state", "pane-exec");
|
|
668
670
|
const exitFilePath = (id) => join(paneExecDir(), `${id}.exit`);
|
|
669
671
|
const recordPath = (id) => join(paneExecDir(), `${id}.json`);
|
|
672
|
+
/** The caller's queue file beside the launch record: what the pane shows while the run waits for a provider slot. */
|
|
673
|
+
const queuedPath = (id) => queuedFilePath(paneExecDir(), id);
|
|
670
674
|
/** Unix socket path; the home path is hashed into /tmp when it would exceed the sockaddr limit. */
|
|
671
675
|
function sockPath(id) {
|
|
672
676
|
const p = join(paneExecDir(), `${id}.sock`);
|
|
@@ -764,8 +768,27 @@ async function runPaneExec(id, d = {}) {
|
|
|
764
768
|
await Promise.race([d.closePane?.().catch(() => void 0), new Promise((r) => setTimeout(r, CLOSE_WAIT_MS).unref())]);
|
|
765
769
|
return rec.code;
|
|
766
770
|
};
|
|
771
|
+
const qdir = d.queuedDir ?? paneExecDir();
|
|
772
|
+
let qShown = null;
|
|
773
|
+
const drawQueued = (clear = false) => {
|
|
774
|
+
const q = readQueued(qdir, id);
|
|
775
|
+
const line = q ? queuedPaneLine(q) : null;
|
|
776
|
+
if (clear) {
|
|
777
|
+
if (qShown === null) return;
|
|
778
|
+
err("\r\x1B[K");
|
|
779
|
+
return;
|
|
780
|
+
}
|
|
781
|
+
if (line === qShown) return;
|
|
782
|
+
qShown = line;
|
|
783
|
+
err(line ? `\r\x1b[K${line}` : "\r\x1B[K");
|
|
784
|
+
};
|
|
785
|
+
const queuedWatch = setInterval(() => drawQueued(), d.queuedPollMs ?? 2e3);
|
|
786
|
+
queuedWatch.unref();
|
|
787
|
+
drawQueued();
|
|
767
788
|
const sock = await connect$1(sockPath(id), d.connectMs ?? panePolicy().connectMs);
|
|
768
789
|
if (!sock) {
|
|
790
|
+
clearInterval(queuedWatch);
|
|
791
|
+
drawQueued(true);
|
|
769
792
|
err(`pai pane exec: no caller listens for ${id}; nothing to run\n`);
|
|
770
793
|
return finish({
|
|
771
794
|
code: 1,
|
|
@@ -832,23 +855,26 @@ async function runPaneExec(id, d = {}) {
|
|
|
832
855
|
});
|
|
833
856
|
const cleanup = () => sigs.forEach((s, i) => proc.off(s, handlers[i]));
|
|
834
857
|
await started;
|
|
858
|
+
clearInterval(queuedWatch);
|
|
835
859
|
if (cancelled || callerGone || !spec) {
|
|
836
860
|
cleanup();
|
|
837
861
|
sock.destroy();
|
|
862
|
+
drawQueued(true);
|
|
838
863
|
return finish({
|
|
839
864
|
code: cancelled ? 0 : 143,
|
|
840
865
|
cancelled,
|
|
841
866
|
reason: cancelled ? "cancelled" : "caller gone"
|
|
842
867
|
});
|
|
843
868
|
}
|
|
869
|
+
drawQueued(true);
|
|
844
870
|
const sp = spec;
|
|
845
871
|
if (sp.title) d.setTitle?.(sp.title);
|
|
846
872
|
let bar = null;
|
|
847
873
|
let show = out;
|
|
848
874
|
let showErr = err;
|
|
849
875
|
if (sp.statusLine && (d.tty ?? process.stdout.isTTY === true)) {
|
|
850
|
-
const { loadStatus } = await import("./status-
|
|
851
|
-
const { sayToWorker } = await import("./operator-
|
|
876
|
+
const { loadStatus } = await import("./status-D52xC_i0.mjs");
|
|
877
|
+
const { sayToWorker } = await import("./operator-Bmv5tiHQ.mjs");
|
|
852
878
|
const b = startPaneBar({
|
|
853
879
|
spec: sp.statusLine,
|
|
854
880
|
write: (x) => out(x),
|
|
@@ -955,8 +981,8 @@ async function renderer(sp, id, out, err) {
|
|
|
955
981
|
err: (c) => err(c),
|
|
956
982
|
end: () => void 0
|
|
957
983
|
};
|
|
958
|
-
const { applyEvent, initialFollowState } = await import("./viewer-
|
|
959
|
-
const { makeColor } = await import("./render-
|
|
984
|
+
const { applyEvent, initialFollowState } = await import("./viewer-Ce-Xa9L3.mjs");
|
|
985
|
+
const { makeColor } = await import("./render-DVGXpfaT.mjs");
|
|
960
986
|
const c = makeColor(true);
|
|
961
987
|
let state = initialFollowState("");
|
|
962
988
|
let buf = "";
|
|
@@ -1049,7 +1075,12 @@ let exitHooked = false;
|
|
|
1049
1075
|
*/
|
|
1050
1076
|
async function openOwnedPane(o) {
|
|
1051
1077
|
mkdirSync(paneExecDir(), { recursive: true });
|
|
1052
|
-
for (const f of [
|
|
1078
|
+
for (const f of [
|
|
1079
|
+
exitFilePath(o.id),
|
|
1080
|
+
queuedPath(o.id),
|
|
1081
|
+
sockPath(o.id)
|
|
1082
|
+
]) rmQuiet(f);
|
|
1083
|
+
removeQueued(paneExecDir(), o.id);
|
|
1053
1084
|
let wrapper = 0;
|
|
1054
1085
|
let session;
|
|
1055
1086
|
let sock = null;
|
|
@@ -1102,6 +1133,7 @@ async function openOwnedPane(o) {
|
|
|
1102
1133
|
ended = true;
|
|
1103
1134
|
live.delete(pane);
|
|
1104
1135
|
clearInterval(watch);
|
|
1136
|
+
removeQueued(paneExecDir(), o.id);
|
|
1105
1137
|
if (proc) {
|
|
1106
1138
|
proc.exitCode = code;
|
|
1107
1139
|
proc.stdout.end();
|
|
@@ -1162,7 +1194,13 @@ async function openOwnedPane(o) {
|
|
|
1162
1194
|
ended = true;
|
|
1163
1195
|
live.delete(pane);
|
|
1164
1196
|
clearInterval(watch);
|
|
1197
|
+
removeQueued(paneExecDir(), o.id);
|
|
1165
1198
|
s.end();
|
|
1199
|
+
},
|
|
1200
|
+
setQueued: (q) => {
|
|
1201
|
+
if (ended) return;
|
|
1202
|
+
if (q === null) removeQueued(paneExecDir(), o.id);
|
|
1203
|
+
else writeQueued(paneExecDir(), o.id, q);
|
|
1166
1204
|
}
|
|
1167
1205
|
};
|
|
1168
1206
|
live.add(pane);
|
|
@@ -1178,42 +1216,6 @@ function rmQuiet(path) {
|
|
|
1178
1216
|
} catch {}
|
|
1179
1217
|
}
|
|
1180
1218
|
|
|
1181
|
-
//#endregion
|
|
1182
|
-
//#region src/workers/ps-table.ts
|
|
1183
|
-
/**
|
|
1184
|
-
* The one way PAI reads the whole process table. A table with a few dozen
|
|
1185
|
-
* Xcode swift-frontend processes (23k-99k char command lines) is over 1 MB,
|
|
1186
|
-
* Node's default maxBuffer, so a bare execFileSync("ps", ...) died with ENOBUFS.
|
|
1187
|
-
* Here the buffer is large and every line is cut to MAX_LINE chars after reading
|
|
1188
|
-
* (the identifying words of a command come first).
|
|
1189
|
-
*/
|
|
1190
|
-
const PS_MAX_BUFFER = 64 * 1024 * 1024;
|
|
1191
|
-
const PS_MAX_LINE = 1024;
|
|
1192
|
-
const realRunner = (args) => execFileSync("ps", args, {
|
|
1193
|
-
encoding: "utf8",
|
|
1194
|
-
env: {
|
|
1195
|
-
...process.env,
|
|
1196
|
-
LC_ALL: "C"
|
|
1197
|
-
},
|
|
1198
|
-
maxBuffer: PS_MAX_BUFFER,
|
|
1199
|
-
timeout: 15e3
|
|
1200
|
-
});
|
|
1201
|
-
/** Cut each line of `text` to `max` chars. */
|
|
1202
|
-
function truncateLines(text, max = PS_MAX_LINE) {
|
|
1203
|
-
return text.split("\n").map((l) => l.length > max ? l.slice(0, max) : l).join("\n");
|
|
1204
|
-
}
|
|
1205
|
-
/** `ps -axo <format>` with a large buffer and truncated lines; throws when ps fails. */
|
|
1206
|
-
function psTable(format, run = realRunner, maxLine = PS_MAX_LINE) {
|
|
1207
|
-
return truncateLines(run(["-axo", format]), maxLine);
|
|
1208
|
-
}
|
|
1209
|
-
/** psTable that retries, then returns null ("unknown") instead of throwing. */
|
|
1210
|
-
function psTableOrNull(format, run = realRunner, tries = 3, maxLine = PS_MAX_LINE) {
|
|
1211
|
-
for (let i = 0; i < tries; i++) try {
|
|
1212
|
-
return psTable(format, run, maxLine);
|
|
1213
|
-
} catch {}
|
|
1214
|
-
return null;
|
|
1215
|
-
}
|
|
1216
|
-
|
|
1217
1219
|
//#endregion
|
|
1218
1220
|
//#region src/workers/pane-title.ts
|
|
1219
1221
|
/**
|
|
@@ -2735,7 +2737,7 @@ function followRunsOn(tty, wid) {
|
|
|
2735
2737
|
/**
|
|
2736
2738
|
* Check the iTerm pane of a worker. Resolves with a line naming window, tab and size,
|
|
2737
2739
|
* followed by a mark for each visibility shortfall (NOT SELECTED, MINIMISED, HIDDEN,
|
|
2738
|
-
* OFF SCREEN
|
|
2740
|
+
* OFF SCREEN); rejects only when the pane does not exist or does not run the
|
|
2739
2741
|
* worker: gone, other window or tab, or its follow command not running
|
|
2740
2742
|
* (polled for up to ~7 s while the new session starts it).
|
|
2741
2743
|
*/
|
|
@@ -2762,7 +2764,6 @@ async function verifyPane(hostUid, paneUid, wid, run = osascript, running = foll
|
|
|
2762
2764
|
if (r.miniaturized === true) marks.push("MINIMISED");
|
|
2763
2765
|
if (r.hidden === true) marks.push("HIDDEN");
|
|
2764
2766
|
if (r.onScreen !== true) marks.push("OFF SCREEN");
|
|
2765
|
-
if (rows < panePolicy().minRows || cols < panePolicy().minCols) marks.push(`SMALL (< ${panePolicy().minCols}x${panePolicy().minRows})`);
|
|
2766
2767
|
if (running(String(r.tty), wid)) return marks.length ? `${where} ${marks.join(" ")}` : where;
|
|
2767
2768
|
last = where;
|
|
2768
2769
|
await new Promise((res) => setTimeout(res, pollMs));
|
|
@@ -2800,14 +2801,6 @@ async function openVerifiedPane(logDir, config, wid, term, env, ops = realPaneOp
|
|
|
2800
2801
|
try {
|
|
2801
2802
|
const where = await verify(hostUid, r.session, wid);
|
|
2802
2803
|
placements.set(wid, "split");
|
|
2803
|
-
if (/ SMALL /.test(where)) {
|
|
2804
|
-
appendLedger(ledgerPath(logDir), "PANE-SMALL", {
|
|
2805
|
-
id: wid,
|
|
2806
|
-
session: r.session,
|
|
2807
|
-
where
|
|
2808
|
-
});
|
|
2809
|
-
process.stderr.write(`[pai worker] pane: small pane for ${wid}: ${where}\n`);
|
|
2810
|
-
}
|
|
2811
2804
|
const shown = where.match(/\b(NOT SELECTED|MINIMISED|HIDDEN|OFF SCREEN)\b/g);
|
|
2812
2805
|
if (shown) {
|
|
2813
2806
|
appendLedger(ledgerPath(logDir), "PANE-MARK", {
|
|
@@ -4159,11 +4152,11 @@ function originTarget(origin) {
|
|
|
4159
4152
|
}
|
|
4160
4153
|
/** Real messenger over AIBroker's socket; unreachable AIBroker is logged and ignored. */
|
|
4161
4154
|
function aibrokerMessenger(logDir, warn = (s) => process.stderr.write(s + "\n"), resolveHost = async () => "", send = async (target, text) => {
|
|
4162
|
-
const { sendToSession } = await import("./aibroker-client-
|
|
4155
|
+
const { sendToSession } = await import("./aibroker-client-ChB7gSxV.mjs");
|
|
4163
4156
|
return sendToSession(target, text);
|
|
4164
4157
|
}, toPailot = (text) => guardedPailot(logDir, text, async (t) => {
|
|
4165
4158
|
try {
|
|
4166
|
-
const { callAiBroker } = await import("./aibroker-client-
|
|
4159
|
+
const { callAiBroker } = await import("./aibroker-client-ChB7gSxV.mjs");
|
|
4167
4160
|
await callAiBroker("pailot_send", { text: t }, 8e3);
|
|
4168
4161
|
return true;
|
|
4169
4162
|
} catch (e) {
|
|
@@ -4707,5 +4700,5 @@ async function returnControlsIfHeld(logDir, id) {
|
|
|
4707
4700
|
}
|
|
4708
4701
|
|
|
4709
4702
|
//#endregion
|
|
4710
|
-
export { checkPaneForWorker as $, tail as A,
|
|
4711
|
-
//# sourceMappingURL=controls-
|
|
4703
|
+
export { checkPaneForWorker as $, tail as A, CHAT_HELP as At, loadPlanStatus as B, wrapText as Bt, readRunLog as C, openOwnedPane as Ct, resumeState as D, recordPath as Dt, requestPlanStop as E, readRecord as Et, runLogPath as F, chatPromptRow as Ft, planRunId as G, LOCAL_FAILURE_LIMIT as Gt, planLogTail as H, handoffFromInside as Ht, PlanTracker as I, chatScrollRegion as It, queueLockPath as J, routeLine as Jt, renderPlanLines as K, classifyRoute as Kt, fmtElapsed as L, chatTickerRow as Lt, dirtyConflicts as M, chatEnter as Mt, filesOverlap as N, chatInsertLine as Nt, runExitCode as O, runPaneExec as Ot, loadPlan as P, chatLeave as Pt, NoTerminalError as Q, followPlanLog as R, holdAutoExit as Rt, planStopPath as S, listRecords as St, renderStatus as T, readExit as Tt, planRows as U, isHandoffMessage as Ut, loadPlanStatuses as V, deliverHandoff as Vt, planRunEnded as W, readInbox as Wt, sinceText as X, readRunLock as Y, withRunLock as Z, troublePolicy as _, paneTitle as _t, localIdleTick as a, headlessAllowed as at, idleText as b, PANE_EXEC_PID_ENV as bt, setMuted as c, openFollowPane as ct, aibrokerMessenger as d, osascript as dt, closeEndedPanes as et, detachRun as f, paneBackend as ft, sweepRuns as g, workerEnded as gt, originFromEnv as h, resolveHostSession as ht, localIdleLine as i, followCommand as it, PlanError as j, chatBlankRow as jt, runPlan as k, panePolicy as kt, PlanReporter as l, openPaneForWorker as lt, markRunDone as m, realPaneOps as mt, markControlsHeld as n, closePaneForWorker as nt, ownerOf as o, inVisiblePane as ot, eventLine as p, paneMayClose as pt, planLockPath as q, localFailures as qt, returnControlsIfHeld as r, closeSelfPane as rt, readLocalIdle as s, loadRegistry as st, clickrControlsArgv as t, closeOwnPane as tt, QueueReporter as u, openVerifiedPane as ut, appendRunLog as v, writePaneTitle as vt, renderSchedule as w, pidAlive as wt, planStatus as x, exitFilePath as xt, blockedMessage as y, PANE_EXEC_ENV as yt, gatePhaseName as z, parseChatLine as zt };
|
|
4704
|
+
//# sourceMappingURL=controls-rIItFeIJ.mjs.map
|