@tekmidian/pai 1.0.5 → 1.0.7
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-CAlZ5p-h.mjs +11 -0
- package/dist/{auto-route-DUYr57rs.mjs → auto-route-PDOAYszN.mjs} +2 -2
- package/dist/budget-BXmsSBLI.mjs +15 -0
- package/dist/{caller-identity-Bim8JT-D.mjs → caller-identity-DPDSrZE2.mjs} +4 -4
- package/dist/{capacity-CsZMkVyg.mjs → capacity-CThSydrd.mjs} +82 -10
- package/dist/{chain-Dzz6xcKH.mjs → chain-BvdKqRiZ.mjs} +5 -5
- package/dist/cli/index.mjs +2175 -284
- package/dist/{cockpit-actions-BTA1njMO.mjs → cockpit-actions-BgdKB9G3.mjs} +26 -26
- package/dist/{cockpit-actions-BgsiNcUY.mjs → cockpit-actions-DNl0rKfW.mjs} +18 -18
- package/dist/cockpit-memory-CqLPjcWe.mjs +20 -0
- package/dist/config/defaults/config.yaml +24 -1
- package/dist/config/defaults/workers.yaml +2 -0
- package/dist/{config-h5qK3fst.mjs → config-C2dd2SXS.mjs} +2 -2
- package/dist/{config-CST2uq1v.mjs → config-DGV64YJa.mjs} +11 -3
- package/dist/{config-Dv3t7xnT.mjs → config-DHgPx3ER.mjs} +1 -1
- package/dist/{config-DYbyEe4-.mjs → config-SlZ-Z52i.mjs} +3 -2
- package/dist/{controls-OiVVbe-f.mjs → controls-ByrcupcA.mjs} +59 -66
- package/dist/daemon/index.mjs +40 -40
- package/dist/{daemon-C1dycZ3W.mjs → daemon-BjgJyJMP.mjs} +79 -31
- package/dist/daemon-iymy18Ie.mjs +46 -0
- package/dist/daemon-mcp/index.mjs +49 -38
- package/dist/detect-C8nFP-kR.mjs +10 -0
- package/dist/{detect-CHuxFrLy.mjs → detect-DLjeYwnt.mjs} +2 -2
- package/dist/{embed-pass-DtVF2fOV.mjs → embed-pass-DdTMn4DH.mjs} +5 -5
- package/dist/{embedding-gate-B98PK_wz.mjs → embedding-gate-BVQvUmox.mjs} +2 -2
- package/dist/{embedding-gate-CTAk8STe.mjs → embedding-gate-iq0oQEkF.mjs} +3 -3
- package/dist/{endreason-BqyyU7BH.mjs → endreason-BjPom527.mjs} +4 -4
- package/dist/{factory-BV0MQA3T.mjs → factory-CYwa0jYj.mjs} +6 -6
- package/dist/factory-DFwez99M.mjs +9 -0
- package/dist/{fallback-Bj2cyVk_.mjs → fallback-CQ8_CuVu.mjs} +9 -231
- package/dist/{health-kufVIf6i.mjs → health-Bb2U4PNK.mjs} +5 -5
- package/dist/{helpers-CvbYEKoD.mjs → helpers-Dj2nY56t.mjs} +2 -2
- package/dist/{helpers-WV8tdQHM.mjs → helpers-DyHKAwrW.mjs} +6 -6
- package/dist/hooks/block-sleep-poll.mjs +9 -0
- package/dist/hooks/capture-all-events.mjs +99 -3
- package/dist/hooks/capture-tool-output.mjs +99 -3
- package/dist/hooks/handoff-link.mjs +159 -0
- package/dist/hooks/load-project-context.mjs +10 -1
- package/dist/hooks/local-model-hint.mjs +9 -0
- package/dist/hooks/route-agents-to-worker.mjs +9 -0
- package/dist/hooks/security-validator.mjs +940 -92
- package/dist/hooks/supervision-banner.mjs +219 -48
- package/dist/hooks/worker-edit-repair.mjs +9 -0
- package/dist/hooks/worker-guard.mjs +97 -1
- package/dist/hooks/worker-note.mjs +108 -3
- package/dist/hooks/worker-pool-host.mjs +1670 -315
- package/dist/hooks/worker-proxy.mjs +9 -0
- package/dist/hooks/worker-status-line.mjs +251 -70
- package/dist/hooks/worker-supervision.mjs +9 -0
- package/dist/hooks/worker-tool-name-repair.mjs +9 -0
- 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-BlPw1vaU.mjs +10 -0
- package/dist/{kill-tree-CcpsRLCZ.mjs → kill-tree-DTmiEb3T.mjs} +8 -8
- package/dist/{launch-DpQPZGsT.mjs → launch-CV6oPHI2.mjs} +3 -3
- package/dist/{launch-UPQBoW2q.mjs → launch-Dy8qQnSD.mjs} +3 -3
- package/dist/{indexer-backend-B2vtFl38.mjs → lessons-CdmqZD0G.mjs} +262 -43
- package/dist/{local-candidate-Cp_bw4kK.mjs → local-candidate-C2FGhf54.mjs} +3 -3
- package/dist/{local-instances-bdCNNSsL.mjs → local-instances-DhF4_sV2.mjs} +2 -2
- package/dist/{local-instances-B-c-CxzP.mjs → local-instances-GgXydQ2P.mjs} +4 -4
- package/dist/{local-tiers-BtdEEe5n.mjs → local-tiers-CqwGUcEn.mjs} +3 -3
- package/dist/{local-tiers-OBqAAfOg.mjs → local-tiers-X_dQfI4Q.mjs} +3 -3
- package/dist/{main-config-ops-BYsK3BxM.mjs → main-config-ops-C_fkINDv.mjs} +3 -3
- package/dist/{main-resolver-CAC3xfZM.mjs → main-resolver-CN_sfG1R.mjs} +18 -18
- package/dist/{migrate-DrA_OwlZ.mjs → migrate-C2z1YmWC.mjs} +2 -2
- package/dist/{model-inventory-BuTpi9a6.mjs → model-inventory-BYNrSTaY.mjs} +13 -13
- package/dist/{models-add-CJx2YAwh.mjs → models-add-Dc7VXmcu.mjs} +38 -38
- package/dist/operator-IrLbk8hy.mjs +7 -0
- package/dist/{operator-DrwWItVt.mjs → operator-lRGvYr3D.mjs} +2 -2
- package/dist/{pai-marker-DLKJ9Yr5.mjs → pai-marker-kA0iM7rP.mjs} +2 -2
- package/dist/{pane-audit-wv9UkyCe.mjs → pane-audit-DUuilP1V.mjs} +13 -23
- package/dist/{paths-DS5VQKoR.mjs → paths-BwfwHOvN.mjs} +4 -4
- package/dist/{paths-DBd78I7Z.mjs → paths-CKGYM0Lb.mjs} +3 -3
- package/dist/{planner-K0mFrCpL.mjs → planner-BDHVUkIM.mjs} +29 -29
- package/dist/{pool-BZ94nFuq.mjs → pool-CFeHGX7q.mjs} +2 -2
- package/dist/{pool-cli-BjYQDfx6.mjs → pool-cli-Bj2TeA-d.mjs} +6 -6
- package/dist/{pool-cli-B1eKySeN.mjs → pool-cli-DOLgPgOM.mjs} +5 -5
- package/dist/{postgres-CBHY5PIi.mjs → postgres-B1B80bcj.mjs} +3 -3
- package/dist/{postgres-C-T5OWer.mjs → postgres-BL5oBBgY.mjs} +3 -3
- package/dist/{project-setup-pIPHZaXf.mjs → project-setup-i5D0xkTn.mjs} +24 -25
- package/dist/{providers-Dzx5GAUI.mjs → providers-BC2Myo_O.mjs} +6 -6
- package/dist/providers-C-mnlH1b.mjs +16 -0
- package/dist/{query-feedback-DN52N9C5.mjs → query-feedback-BWl2HRwN.mjs} +2 -2
- package/dist/registrable-Ct0DKNKS.mjs +9 -0
- package/dist/{registrable-CXBBpUcz.mjs → registrable-D_4qXCnq.mjs} +4 -4
- package/dist/render-CbifCwTb.mjs +2350 -0
- package/dist/render-FB4Fv_fi.mjs +13 -0
- package/dist/root-80ESg6b7.mjs +36 -0
- package/dist/{root-bG48WVpW.mjs → root-B-ZYiEgi.mjs} +10 -10
- package/dist/route-table-DcBZCuco.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-BlD_tKjW.mjs → routing-CF0wlR-_.mjs} +15 -15
- package/dist/{routing-D27jxj9x.mjs → routing-CJ8ioPl2.mjs} +13 -13
- package/dist/{run-AZVwceiU.mjs → run-CAjfKBQV.mjs} +74 -31
- package/dist/{runtime-paths-WsO9sJFc.mjs → runtime-paths-twfV23YL.mjs} +2 -2
- package/dist/{scan-C3uotg_f.mjs → scan-ew8M6tTH.mjs} +7 -7
- package/dist/{scope-D8HK6vU7.mjs → scope-BRcaPw5D.mjs} +4 -4
- package/dist/session-BmQsXF_a.mjs +35 -0
- package/dist/{session-BAfypQb9.mjs → session-C1JnDXvP.mjs} +28 -28
- package/dist/session-scan-DWCUKhDM.mjs +9 -0
- package/dist/{session-scan-BmnjSReu.mjs → session-scan-DihMibI-.mjs} +6 -6
- package/dist/{session-usage-oycSdiD3.mjs → session-usage-BRIWFYPS.mjs} +3 -3
- package/dist/status-Bj4yVKj0.mjs +6 -0
- package/dist/{status-COtzewKV.mjs → status-DTMT5lyn.mjs} +9 -5
- package/dist/{tool-errors-DXJ70-sr.mjs → tool-errors-BOW2n882.mjs} +2 -2
- package/dist/{tool-errors-B2LnIqR0.mjs → tool-errors-jNJj3Gzm.mjs} +6 -6
- package/dist/{viewer-BgGRqXfD.mjs → viewer-4BU8w_gK.mjs} +16 -14
- package/dist/viewer-D3VEdqhC.mjs +22 -0
- package/dist/{wait-ChpHKJZV.mjs → wait-BindDA5w.mjs} +3 -3
- package/dist/{worker-config-DgdT0iTB.mjs → worker-config-CdPmb4_2.mjs} +54 -103
- package/dist/worker-config-CfV2dgSb.mjs +42 -0
- package/dist/{workers-config-BhZBrR-Q.mjs → workers-config-2VipVOYk.mjs} +2 -2
- package/dist/{worktree-BY--Rgmy.mjs → worktree-7ZS3RBf8.mjs} +175 -9
- package/dist/{zettelkasten-BHVx5zj-.mjs → zettelkasten-BH8AdNh8.mjs} +4 -4
- package/dist/{zettelkasten-LoH9RBiN.mjs → zettelkasten-FFhQFESJ.mjs} +2 -2
- package/docs/commands/README.md +32 -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 +1 -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 +15 -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 +13 -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 +22 -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 +14 -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 +14 -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 +14 -0
- package/src/hooks/ts/lib/rules/builtin/reverse-shell-interactive-bash.rule.yaml +12 -0
- package/src/hooks/ts/lib/rules/builtin/rm-recursive-parent.rule.yaml +13 -0
- package/src/hooks/ts/lib/rules/builtin/rm-recursive-relative.rule.yaml +12 -0
- package/src/hooks/ts/lib/rules/builtin/rm-recursive-root.rule.yaml +27 -0
- package/src/hooks/ts/lib/rules/builtin/rm-trailing-tilde.rule.yaml +12 -0
- package/src/hooks/ts/lib/rules/builtin/sudoers-nopasswd.rule.yaml +15 -0
- package/src/hooks/ts/lib/rules/builtin.generated.ts +557 -0
- package/src/hooks/ts/lib/rules/eval.ts +76 -0
- package/src/hooks/ts/lib/rules/lint.ts +108 -0
- package/src/hooks/ts/lib/rules/load.ts +264 -0
- package/src/hooks/ts/lib/rules/types.ts +58 -0
- package/src/hooks/ts/pre-tool-use/security-validator.ts +35 -96
- package/src/hooks/ts/user-prompt/handoff-link.ts +34 -0
- package/dist/aibroker-client-BxzeEHPF.mjs +0 -3
- package/dist/auto-route-DWYK_0i0.mjs +0 -11
- package/dist/budget-DX-VIWGf.mjs +0 -15
- package/dist/cockpit-memory-DIrNs4xr.mjs +0 -20
- package/dist/daemon-ieo0lnpq.mjs +0 -46
- package/dist/detect-C0ZBXqDL.mjs +0 -10
- package/dist/factory-DeASMV7Z.mjs +0 -9
- package/dist/kill-tree-CXZ0WfVf.mjs +0 -10
- package/dist/operator-Bpxq_WB5.mjs +0 -7
- package/dist/providers-QJzpaNhX.mjs +0 -16
- package/dist/registrable-Drn8wIDO.mjs +0 -9
- package/dist/render-C4KR8qQ8.mjs +0 -13
- package/dist/render-Cz3BWIBO.mjs +0 -903
- package/dist/root-Bfb1zgwE.mjs +0 -36
- package/dist/route-table-ZVMNBsy7.mjs +0 -15
- package/dist/session-BcnhepLZ.mjs +0 -35
- package/dist/session-scan-CqUQdCac.mjs +0 -9
- package/dist/status-D_SWmOlH.mjs +0 -6
- package/dist/viewer-CbGN2Ri4.mjs +0 -22
- package/dist/worker-config-D1KVAMp4.mjs +0 -42
|
@@ -8179,6 +8179,7 @@ function defaultWorkersConfig() {
|
|
|
8179
8179
|
cacheKeepaliveSecs: num(w.cacheKeepaliveSecs, 0),
|
|
8180
8180
|
defaultMaxMinutes: num(w.defaultMaxMinutes, 60),
|
|
8181
8181
|
waitAlarmMinutes: num(w.waitAlarmMinutes, 120),
|
|
8182
|
+
scanBudgetMs: num(w.scanBudgetMs, 5e3),
|
|
8182
8183
|
stagger: {
|
|
8183
8184
|
enabled: bool(stagger.enabled, true),
|
|
8184
8185
|
localDefaultSec: num(stagger.localDefaultSec, 20),
|
|
@@ -8773,6 +8774,13 @@ function parseWorkersConfig(raw, yamlProviders = {}) {
|
|
|
8773
8774
|
}
|
|
8774
8775
|
waitAlarmMinutes = w.waitAlarmMinutes;
|
|
8775
8776
|
}
|
|
8777
|
+
let scanBudgetMs = d.scanBudgetMs ?? 5e3;
|
|
8778
|
+
if (w.scanBudgetMs !== void 0) {
|
|
8779
|
+
if (typeof w.scanBudgetMs !== "number" || !Number.isInteger(w.scanBudgetMs) || w.scanBudgetMs < 1) {
|
|
8780
|
+
bad(".scanBudgetMs", "must be a positive integer (milliseconds)");
|
|
8781
|
+
}
|
|
8782
|
+
scanBudgetMs = w.scanBudgetMs;
|
|
8783
|
+
}
|
|
8776
8784
|
const stagger = { ...d.stagger };
|
|
8777
8785
|
if (w.stagger !== void 0) {
|
|
8778
8786
|
if (typeof w.stagger !== "object" || w.stagger === null || Array.isArray(w.stagger)) {
|
|
@@ -8909,6 +8917,7 @@ function parseWorkersConfig(raw, yamlProviders = {}) {
|
|
|
8909
8917
|
cacheKeepaliveSecs,
|
|
8910
8918
|
defaultMaxMinutes,
|
|
8911
8919
|
waitAlarmMinutes,
|
|
8920
|
+
scanBudgetMs,
|
|
8912
8921
|
stagger,
|
|
8913
8922
|
capacity,
|
|
8914
8923
|
localIdle,
|
|
@@ -7445,7 +7445,7 @@ var require_public_api = __commonJS({
|
|
|
7445
7445
|
}
|
|
7446
7446
|
return doc;
|
|
7447
7447
|
}
|
|
7448
|
-
function
|
|
7448
|
+
function parse5(src, reviver, options) {
|
|
7449
7449
|
let _reviver = void 0;
|
|
7450
7450
|
if (typeof reviver === "function") {
|
|
7451
7451
|
_reviver = reviver;
|
|
@@ -7486,7 +7486,7 @@ var require_public_api = __commonJS({
|
|
|
7486
7486
|
return value.toString(options);
|
|
7487
7487
|
return new Document5.Document(value, _replacer, options).toString(options);
|
|
7488
7488
|
}
|
|
7489
|
-
exports.parse =
|
|
7489
|
+
exports.parse = parse5;
|
|
7490
7490
|
exports.parseAllDocuments = parseAllDocuments;
|
|
7491
7491
|
exports.parseDocument = parseDocument5;
|
|
7492
7492
|
exports.stringify = stringify2;
|
|
@@ -8416,6 +8416,7 @@ function defaultWorkersConfig() {
|
|
|
8416
8416
|
cacheKeepaliveSecs: num2(w.cacheKeepaliveSecs, 0),
|
|
8417
8417
|
defaultMaxMinutes: num2(w.defaultMaxMinutes, 60),
|
|
8418
8418
|
waitAlarmMinutes: num2(w.waitAlarmMinutes, 120),
|
|
8419
|
+
scanBudgetMs: num2(w.scanBudgetMs, 5e3),
|
|
8419
8420
|
stagger: {
|
|
8420
8421
|
enabled: bool(stagger.enabled, true),
|
|
8421
8422
|
localDefaultSec: num2(stagger.localDefaultSec, 20),
|
|
@@ -9008,6 +9009,13 @@ function parseWorkersConfig(raw, yamlProviders = {}) {
|
|
|
9008
9009
|
}
|
|
9009
9010
|
waitAlarmMinutes = w.waitAlarmMinutes;
|
|
9010
9011
|
}
|
|
9012
|
+
let scanBudgetMs = d.scanBudgetMs ?? 5e3;
|
|
9013
|
+
if (w.scanBudgetMs !== void 0) {
|
|
9014
|
+
if (typeof w.scanBudgetMs !== "number" || !Number.isInteger(w.scanBudgetMs) || w.scanBudgetMs < 1) {
|
|
9015
|
+
bad(".scanBudgetMs", "must be a positive integer (milliseconds)");
|
|
9016
|
+
}
|
|
9017
|
+
scanBudgetMs = w.scanBudgetMs;
|
|
9018
|
+
}
|
|
9011
9019
|
const stagger = { ...d.stagger };
|
|
9012
9020
|
if (w.stagger !== void 0) {
|
|
9013
9021
|
if (typeof w.stagger !== "object" || w.stagger === null || Array.isArray(w.stagger)) {
|
|
@@ -9144,6 +9152,7 @@ function parseWorkersConfig(raw, yamlProviders = {}) {
|
|
|
9144
9152
|
cacheKeepaliveSecs,
|
|
9145
9153
|
defaultMaxMinutes,
|
|
9146
9154
|
waitAlarmMinutes,
|
|
9155
|
+
scanBudgetMs,
|
|
9147
9156
|
stagger,
|
|
9148
9157
|
capacity,
|
|
9149
9158
|
localIdle,
|
|
@@ -9560,7 +9569,7 @@ function ownsPid(status) {
|
|
|
9560
9569
|
env: { ...process.env, LC_ALL: "C" }
|
|
9561
9570
|
}).trim();
|
|
9562
9571
|
const psStart = Date.parse(out);
|
|
9563
|
-
const started = spawnTimeOf(status) ?? Date.parse(status.started.replace(" ", "T"));
|
|
9572
|
+
const started = status.procStart ?? spawnTimeOf(status) ?? Date.parse(status.started.replace(" ", "T"));
|
|
9564
9573
|
if (Number.isNaN(psStart) || Number.isNaN(started)) return alive(status.pid);
|
|
9565
9574
|
return Math.abs(psStart - started) <= 12e4;
|
|
9566
9575
|
} catch {
|
|
@@ -9813,6 +9822,7 @@ var init_worktree = __esm({
|
|
|
9813
9822
|
init_paths();
|
|
9814
9823
|
init_pending();
|
|
9815
9824
|
init_pool();
|
|
9825
|
+
init_config2();
|
|
9816
9826
|
}
|
|
9817
9827
|
});
|
|
9818
9828
|
|
|
@@ -9958,27 +9968,6 @@ var init_pane_title = __esm({
|
|
|
9958
9968
|
}
|
|
9959
9969
|
});
|
|
9960
9970
|
|
|
9961
|
-
// src/workers/chatui.ts
|
|
9962
|
-
var init_chatui = __esm({
|
|
9963
|
-
"src/workers/chatui.ts"() {
|
|
9964
|
-
"use strict";
|
|
9965
|
-
}
|
|
9966
|
-
});
|
|
9967
|
-
|
|
9968
|
-
// src/workers/deadline.ts
|
|
9969
|
-
var init_deadline = __esm({
|
|
9970
|
-
"src/workers/deadline.ts"() {
|
|
9971
|
-
"use strict";
|
|
9972
|
-
}
|
|
9973
|
-
});
|
|
9974
|
-
|
|
9975
|
-
// src/workers/active-time.ts
|
|
9976
|
-
var init_active_time = __esm({
|
|
9977
|
-
"src/workers/active-time.ts"() {
|
|
9978
|
-
"use strict";
|
|
9979
|
-
}
|
|
9980
|
-
});
|
|
9981
|
-
|
|
9982
9971
|
// src/workers/stagger.ts
|
|
9983
9972
|
var init_stagger = __esm({
|
|
9984
9973
|
"src/workers/stagger.ts"() {
|
|
@@ -9987,6 +9976,14 @@ var init_stagger = __esm({
|
|
|
9987
9976
|
}
|
|
9988
9977
|
});
|
|
9989
9978
|
|
|
9979
|
+
// src/workers/waiting.ts
|
|
9980
|
+
var init_waiting = __esm({
|
|
9981
|
+
"src/workers/waiting.ts"() {
|
|
9982
|
+
"use strict";
|
|
9983
|
+
init_args();
|
|
9984
|
+
}
|
|
9985
|
+
});
|
|
9986
|
+
|
|
9990
9987
|
// src/workers/capacity.ts
|
|
9991
9988
|
function resolveCap(maxConcurrent, local, localDefaultCap = DEFAULT_CAPACITY.localDefaultCap) {
|
|
9992
9989
|
return maxConcurrent ?? (local ? localDefaultCap : void 0);
|
|
@@ -9997,23 +9994,37 @@ var init_capacity = __esm({
|
|
|
9997
9994
|
"use strict";
|
|
9998
9995
|
init_stagger();
|
|
9999
9996
|
init_config3();
|
|
9997
|
+
init_waiting();
|
|
10000
9998
|
init_status();
|
|
10001
9999
|
DEFAULT_CAPACITY = { enabled: true, localDefaultCap: 1, uncappedQueueCap: 3, maxTotalWaitMs: 2 * 36e5, heartbeatMs: 6e4, agingMs: 15 * 6e4 };
|
|
10002
10000
|
}
|
|
10003
10001
|
});
|
|
10004
10002
|
|
|
10005
|
-
// src/workers/
|
|
10006
|
-
var
|
|
10007
|
-
"src/workers/
|
|
10003
|
+
// src/workers/chatui.ts
|
|
10004
|
+
var init_chatui = __esm({
|
|
10005
|
+
"src/workers/chatui.ts"() {
|
|
10008
10006
|
"use strict";
|
|
10009
10007
|
}
|
|
10010
10008
|
});
|
|
10011
10009
|
|
|
10012
|
-
// src/workers/
|
|
10013
|
-
var
|
|
10014
|
-
"src/workers/
|
|
10010
|
+
// src/workers/deadline.ts
|
|
10011
|
+
var init_deadline = __esm({
|
|
10012
|
+
"src/workers/deadline.ts"() {
|
|
10013
|
+
"use strict";
|
|
10014
|
+
}
|
|
10015
|
+
});
|
|
10016
|
+
|
|
10017
|
+
// src/workers/active-time.ts
|
|
10018
|
+
var init_active_time = __esm({
|
|
10019
|
+
"src/workers/active-time.ts"() {
|
|
10020
|
+
"use strict";
|
|
10021
|
+
}
|
|
10022
|
+
});
|
|
10023
|
+
|
|
10024
|
+
// src/workers/denials.ts
|
|
10025
|
+
var init_denials = __esm({
|
|
10026
|
+
"src/workers/denials.ts"() {
|
|
10015
10027
|
"use strict";
|
|
10016
|
-
init_args();
|
|
10017
10028
|
}
|
|
10018
10029
|
});
|
|
10019
10030
|
|
|
@@ -10195,6 +10206,180 @@ var init_endreason = __esm({
|
|
|
10195
10206
|
}
|
|
10196
10207
|
});
|
|
10197
10208
|
|
|
10209
|
+
// src/workers/ps-table.ts
|
|
10210
|
+
var PS_MAX_BUFFER;
|
|
10211
|
+
var init_ps_table = __esm({
|
|
10212
|
+
"src/workers/ps-table.ts"() {
|
|
10213
|
+
"use strict";
|
|
10214
|
+
PS_MAX_BUFFER = 64 * 1024 * 1024;
|
|
10215
|
+
}
|
|
10216
|
+
});
|
|
10217
|
+
|
|
10218
|
+
// src/workers/hang-probe.ts
|
|
10219
|
+
var init_hang_probe = __esm({
|
|
10220
|
+
"src/workers/hang-probe.ts"() {
|
|
10221
|
+
"use strict";
|
|
10222
|
+
init_ps_table();
|
|
10223
|
+
}
|
|
10224
|
+
});
|
|
10225
|
+
|
|
10226
|
+
// src/utils/redact.ts
|
|
10227
|
+
var REDACTED, REDACTED_RE, KEY_WORDS, PROSE, VAL, REDACT_RULES, LINE_RULES, LONG_RUN, LONG_RUN_MAX_LINE, KEY_LINE;
|
|
10228
|
+
var init_redact = __esm({
|
|
10229
|
+
"src/utils/redact.ts"() {
|
|
10230
|
+
"use strict";
|
|
10231
|
+
REDACTED = "[REDACTED]";
|
|
10232
|
+
REDACTED_RE = String.raw`\[REDACTED\]`;
|
|
10233
|
+
KEY_WORDS = "password|passwd|secret|token|api[_-]?key|credential|auth(?:orization)?|bearer";
|
|
10234
|
+
PROSE = "is|are|was|were|be|to|of|in|on|for|and|or|the|a|an|that|this|it|not|out|here|there|so|as|at|by|with|if|when|which";
|
|
10235
|
+
VAL = String.raw`(?:"[^"]*"|'[^']*'|[^\s'"]+)`;
|
|
10236
|
+
REDACT_RULES = [
|
|
10237
|
+
{
|
|
10238
|
+
// `Authorization: Bearer xxx` / `Authorization: Basic xxx` — keep the scheme
|
|
10239
|
+
id: "authorization",
|
|
10240
|
+
re: /(Authorization\s*:\s*)(Bearer|Basic)\s+([^\s'"]+)/gi,
|
|
10241
|
+
replace: (_m, head, scheme) => `${head}${scheme} ${REDACTED}`
|
|
10242
|
+
},
|
|
10243
|
+
{
|
|
10244
|
+
// `Cookie: a=b; c=d` — keep the cookie names, redact every value
|
|
10245
|
+
id: "cookie",
|
|
10246
|
+
re: /((?:Set-)?Cookie\s*:\s*)([^\n]+)/gi,
|
|
10247
|
+
replace: (_m, head, rest) => `${head}${rest.replace(/([^=;\s'"]+=)[^;'"]*/g, `$1${REDACTED}`)}`
|
|
10248
|
+
},
|
|
10249
|
+
{
|
|
10250
|
+
// `key=value`, `key: value`, `"key": "value"` — key carries a secret-ish word;
|
|
10251
|
+
// the word must be a whole key segment, so `monkeys=` stays untouched.
|
|
10252
|
+
// The separator may start with the key's closing quote (JSON); it is kept.
|
|
10253
|
+
id: "key-value",
|
|
10254
|
+
re: new RegExp(String.raw`(?<![A-Za-z0-9])((?:[A-Za-z0-9]+[_-])?(?:${KEY_WORDS})(?![A-Za-z0-9])[A-Za-z0-9_-]*)(["']?\s*[:=]\s*)(?!(?:Bearer|Basic) ${REDACTED_RE})(?!(?:${PROSE})\b)(${VAL})`, "gi"),
|
|
10255
|
+
replace: (m, key, sep, val) => {
|
|
10256
|
+
if (/[_-](?:count|length|len|size|limit|max|min|budget)$/i.test(key) && /^\d+$/.test(val)) return m;
|
|
10257
|
+
const q = sep[0] === '"' || sep[0] === "'" ? val[0] : "";
|
|
10258
|
+
return q && (q === '"' || q === "'") ? `${key}${sep}${q}${REDACTED}${q}` : `${key}${sep}${REDACTED}`;
|
|
10259
|
+
}
|
|
10260
|
+
},
|
|
10261
|
+
{
|
|
10262
|
+
// npmrc `//registry/:_authToken=xxx`
|
|
10263
|
+
id: "npm-auth-token",
|
|
10264
|
+
re: new RegExp(String.raw`(_authToken\s*=\s*)(${VAL})`, "g"),
|
|
10265
|
+
replace: (_m, head) => `${head}${REDACTED}`
|
|
10266
|
+
},
|
|
10267
|
+
{
|
|
10268
|
+
// `curl -u user:pass` / `--user user:pass` — keep the user
|
|
10269
|
+
id: "curl-user",
|
|
10270
|
+
re: /(\bcurl\b[^\n]{0,500}?\s(?:-u|--user)[\s=]+['"]?[^\s:'"]+:)([^\s'"]+)/g,
|
|
10271
|
+
replace: (_m, head) => `${head}${REDACTED}`
|
|
10272
|
+
},
|
|
10273
|
+
{
|
|
10274
|
+
// `mysql -phunter2` / `mysqldump -p'hunter2'` — attached password only
|
|
10275
|
+
id: "mysql-p",
|
|
10276
|
+
re: /(\bmysql(?:dump)?\b[^\n]{0,300}?\s-p)('[^']*'|"[^"]*"|[^\s'"-][^\s'"]*)/g,
|
|
10277
|
+
replace: (_m, head) => `${head}${REDACTED}`
|
|
10278
|
+
},
|
|
10279
|
+
{
|
|
10280
|
+
// `export FOO_TOKEN=...` / `FOO_KEY=...` — SCREAMING_SNAKE env style
|
|
10281
|
+
id: "env-style",
|
|
10282
|
+
re: new RegExp(String.raw`(?<![A-Za-z0-9])((?:export\s+)?[A-Z][A-Z0-9]*_(?:KEY|SECRET|TOKEN|PASS\w*|CRED\w*|AUTH\w*)\s*=\s*)(${VAL})`, "g"),
|
|
10283
|
+
replace: (_m, head) => `${head}${REDACTED}`
|
|
10284
|
+
},
|
|
10285
|
+
{
|
|
10286
|
+
// long CLI flags only: `--password X`, `--token X`, `--api-key X`, `--secret X`, `--passwd X`
|
|
10287
|
+
id: "cli-flag",
|
|
10288
|
+
re: new RegExp(String.raw`(--(?:password|token|api-key|secret|passwd)(?:\s*=\s*|\s+))(${VAL})`, "gi"),
|
|
10289
|
+
replace: (_m, head) => `${head}${REDACTED}`
|
|
10290
|
+
},
|
|
10291
|
+
{
|
|
10292
|
+
// `scheme://user:pass@host` — redact the password, keep user and host
|
|
10293
|
+
id: "url-credentials",
|
|
10294
|
+
re: /((?<![a-z0-9+.-])[a-z][a-z0-9+.-]*:\/\/[^\s/@:]+:)([^\s/@]+)(@)/gi,
|
|
10295
|
+
replace: (_m, head, _pass, at) => `${head}${REDACTED}${at}`
|
|
10296
|
+
},
|
|
10297
|
+
{
|
|
10298
|
+
// provider token prefixes: sk-ant-, sk-, ghp_/gho_/ghu_/ghs_/ghr_, github_pat_,
|
|
10299
|
+
// glpat-, xoxb-/xoxp-/xoxa-, AKIA/ASIA + 16 chars, AIza + 35 chars, JWT (eyJ… three segments)
|
|
10300
|
+
id: "token-prefix",
|
|
10301
|
+
re: /\b(?:sk-ant-[A-Za-z0-9_-]{20,}|sk-[A-Za-z0-9_-]{20,}|gh[pousr]_[A-Za-z0-9]{30,}|github_pat_[A-Za-z0-9_]{22,}|glpat-[A-Za-z0-9_-]{20,}|xox[bap]-[A-Za-z0-9-]{10,}|(?:AKIA|ASIA|AGPA|AIDA|AROA)[A-Z0-9]{16}|[sr]k_(?:live|test)_[A-Za-z0-9]{20,}|npm_[A-Za-z0-9]{36}|hf_[A-Za-z0-9]{30,}|AIza[A-Za-z0-9_-]{35}(?![A-Za-z0-9_-])|eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+)(?![A-Za-z0-9_-])/g,
|
|
10302
|
+
replace: REDACTED
|
|
10303
|
+
},
|
|
10304
|
+
{
|
|
10305
|
+
// 40+ char opaque base64/hex run, only on a line that also has a secret-ish key word
|
|
10306
|
+
id: "long-run",
|
|
10307
|
+
re: /(?<![A-Za-z0-9+/])[A-Za-z0-9+/]{40,4096}={0,2}(?![\w/])/g,
|
|
10308
|
+
// a bare 40-hex git SHA stays; it is only redacted as the value of a secret key
|
|
10309
|
+
replace: (m) => /^[0-9a-f]{40}$/i.test(m) ? m : REDACTED
|
|
10310
|
+
}
|
|
10311
|
+
];
|
|
10312
|
+
LINE_RULES = REDACT_RULES.filter((r) => r.id !== "long-run");
|
|
10313
|
+
LONG_RUN = REDACT_RULES.find((r) => r.id === "long-run");
|
|
10314
|
+
LONG_RUN_MAX_LINE = 64 * 1024;
|
|
10315
|
+
KEY_LINE = new RegExp(`(?:${KEY_WORDS})`, "i");
|
|
10316
|
+
}
|
|
10317
|
+
});
|
|
10318
|
+
|
|
10319
|
+
// src/hooks/ts/lib/build-gate.ts
|
|
10320
|
+
var init_build_gate = __esm({
|
|
10321
|
+
"src/hooks/ts/lib/build-gate.ts"() {
|
|
10322
|
+
"use strict";
|
|
10323
|
+
}
|
|
10324
|
+
});
|
|
10325
|
+
|
|
10326
|
+
// src/hooks/ts/lib/loop-guard.ts
|
|
10327
|
+
var LOOP_MAX_REPEATS, LOOP_READ_STREAK, SELF, LOOP_DENY_REASON, WAIT_CAP_MS, FP_FULL_READ_BYTES, FP_TOTAL_BYTES;
|
|
10328
|
+
var init_loop_guard = __esm({
|
|
10329
|
+
"src/hooks/ts/lib/loop-guard.ts"() {
|
|
10330
|
+
"use strict";
|
|
10331
|
+
init_hang_probe();
|
|
10332
|
+
init_redact();
|
|
10333
|
+
init_build_gate();
|
|
10334
|
+
LOOP_MAX_REPEATS = 4;
|
|
10335
|
+
LOOP_READ_STREAK = Number(process.env.PAI_LOOP_READ_STREAK) > 0 ? Number(process.env.PAI_LOOP_READ_STREAK) : 15;
|
|
10336
|
+
SELF = "If your part is done, commit and write your R report. If you are stuck, report the blocker in R x= (or use pai worker help if available).";
|
|
10337
|
+
LOOP_DENY_REASON = `loop guard: you ran this command ${LOOP_MAX_REPEATS} times with the same result and nothing changed. Stop repeating it. ${SELF}`;
|
|
10338
|
+
WAIT_CAP_MS = 45 * 6e4;
|
|
10339
|
+
FP_FULL_READ_BYTES = 256 * 1024;
|
|
10340
|
+
FP_TOTAL_BYTES = 4 * 1024 * 1024;
|
|
10341
|
+
}
|
|
10342
|
+
});
|
|
10343
|
+
|
|
10344
|
+
// src/audit/scan.ts
|
|
10345
|
+
var MAX_TEXT_BYTES;
|
|
10346
|
+
var init_scan = __esm({
|
|
10347
|
+
"src/audit/scan.ts"() {
|
|
10348
|
+
"use strict";
|
|
10349
|
+
init_loop_guard();
|
|
10350
|
+
MAX_TEXT_BYTES = 256 * 1024;
|
|
10351
|
+
}
|
|
10352
|
+
});
|
|
10353
|
+
|
|
10354
|
+
// src/hooks/ts/lib/rules/builtin.generated.ts
|
|
10355
|
+
var init_builtin_generated = __esm({
|
|
10356
|
+
"src/hooks/ts/lib/rules/builtin.generated.ts"() {
|
|
10357
|
+
"use strict";
|
|
10358
|
+
}
|
|
10359
|
+
});
|
|
10360
|
+
|
|
10361
|
+
// src/hooks/ts/lib/rules/load.ts
|
|
10362
|
+
var import_yaml6;
|
|
10363
|
+
var init_load = __esm({
|
|
10364
|
+
"src/hooks/ts/lib/rules/load.ts"() {
|
|
10365
|
+
"use strict";
|
|
10366
|
+
import_yaml6 = __toESM(require_dist(), 1);
|
|
10367
|
+
init_pai_home();
|
|
10368
|
+
init_builtin_generated();
|
|
10369
|
+
}
|
|
10370
|
+
});
|
|
10371
|
+
|
|
10372
|
+
// src/workers/scan.ts
|
|
10373
|
+
var init_scan2 = __esm({
|
|
10374
|
+
"src/workers/scan.ts"() {
|
|
10375
|
+
"use strict";
|
|
10376
|
+
init_scan();
|
|
10377
|
+
init_load();
|
|
10378
|
+
init_paths();
|
|
10379
|
+
init_status();
|
|
10380
|
+
}
|
|
10381
|
+
});
|
|
10382
|
+
|
|
10198
10383
|
// src/workers/render.ts
|
|
10199
10384
|
function shortModel(model) {
|
|
10200
10385
|
const raw = String(model ?? "").trim();
|
|
@@ -10257,6 +10442,7 @@ var init_render = __esm({
|
|
|
10257
10442
|
init_scope();
|
|
10258
10443
|
init_endreason();
|
|
10259
10444
|
init_report();
|
|
10445
|
+
init_scan2();
|
|
10260
10446
|
}
|
|
10261
10447
|
});
|
|
10262
10448
|
|
|
@@ -10266,6 +10452,8 @@ var init_pane_bar = __esm({
|
|
|
10266
10452
|
"use strict";
|
|
10267
10453
|
init_chatui();
|
|
10268
10454
|
init_render();
|
|
10455
|
+
init_capacity();
|
|
10456
|
+
init_pane_exec();
|
|
10269
10457
|
init_pane_policy();
|
|
10270
10458
|
}
|
|
10271
10459
|
});
|
|
@@ -10275,20 +10463,12 @@ var init_pane_exec = __esm({
|
|
|
10275
10463
|
"src/workers/pane-exec.ts"() {
|
|
10276
10464
|
"use strict";
|
|
10277
10465
|
init_pai_home();
|
|
10466
|
+
init_capacity();
|
|
10278
10467
|
init_pane_bar();
|
|
10279
10468
|
init_pane_policy();
|
|
10280
10469
|
}
|
|
10281
10470
|
});
|
|
10282
10471
|
|
|
10283
|
-
// src/workers/ps-table.ts
|
|
10284
|
-
var PS_MAX_BUFFER;
|
|
10285
|
-
var init_ps_table = __esm({
|
|
10286
|
-
"src/workers/ps-table.ts"() {
|
|
10287
|
-
"use strict";
|
|
10288
|
-
PS_MAX_BUFFER = 64 * 1024 * 1024;
|
|
10289
|
-
}
|
|
10290
|
-
});
|
|
10291
|
-
|
|
10292
10472
|
// src/workers/pane.ts
|
|
10293
10473
|
var FIND_SESSION, CAPTURE_ACTIVE, RESTORE_ACTIVE, REBALANCE, TAB_SIZES_SCRIPT, WORKER_SPLIT_SCRIPT, TAB_TTYS_SCRIPT, WINDOW_BOUNDS_SCRIPT, SPLIT_SCRIPT, SESSION_TTY_SCRIPT, END_SESSION_SCRIPT, REBALANCE_SCRIPT, VERIFY_PANE_SCRIPT, HOST_TAB_SCRIPT;
|
|
10294
10474
|
var init_pane = __esm({
|
|
@@ -10591,11 +10771,11 @@ var init_run_lock = __esm({
|
|
|
10591
10771
|
});
|
|
10592
10772
|
|
|
10593
10773
|
// src/workers/plan.ts
|
|
10594
|
-
var
|
|
10774
|
+
var import_yaml7;
|
|
10595
10775
|
var init_plan = __esm({
|
|
10596
10776
|
"src/workers/plan.ts"() {
|
|
10597
10777
|
"use strict";
|
|
10598
|
-
|
|
10778
|
+
import_yaml7 = __toESM(require_dist(), 1);
|
|
10599
10779
|
}
|
|
10600
10780
|
});
|
|
10601
10781
|
|
|
@@ -10653,11 +10833,11 @@ var init_run_events = __esm({
|
|
|
10653
10833
|
});
|
|
10654
10834
|
|
|
10655
10835
|
// src/workers/local-tiers.ts
|
|
10656
|
-
var
|
|
10836
|
+
var import_yaml8, VLLM_READY_MS, STRATA_READY_MS;
|
|
10657
10837
|
var init_local_tiers = __esm({
|
|
10658
10838
|
"src/workers/local-tiers.ts"() {
|
|
10659
10839
|
"use strict";
|
|
10660
|
-
|
|
10840
|
+
import_yaml8 = __toESM(require_dist(), 1);
|
|
10661
10841
|
init_pai_home();
|
|
10662
10842
|
init_config3();
|
|
10663
10843
|
VLLM_READY_MS = 10 * 60 * 1e3;
|
|
@@ -10816,6 +10996,7 @@ var init_viewer = __esm({
|
|
|
10816
10996
|
init_render();
|
|
10817
10997
|
init_waiting();
|
|
10818
10998
|
init_denials();
|
|
10999
|
+
init_scan2();
|
|
10819
11000
|
init_tool_errors();
|
|
10820
11001
|
init_wait();
|
|
10821
11002
|
init_ps_table();
|
|
@@ -10904,11 +11085,11 @@ var init_timeouts = __esm({
|
|
|
10904
11085
|
});
|
|
10905
11086
|
|
|
10906
11087
|
// src/workers/local-provider.ts
|
|
10907
|
-
var
|
|
11088
|
+
var import_yaml9;
|
|
10908
11089
|
var init_local_provider = __esm({
|
|
10909
11090
|
"src/workers/local-provider.ts"() {
|
|
10910
11091
|
"use strict";
|
|
10911
|
-
|
|
11092
|
+
import_yaml9 = __toESM(require_dist(), 1);
|
|
10912
11093
|
init_config3();
|
|
10913
11094
|
init_run_env();
|
|
10914
11095
|
init_status();
|
|
@@ -10964,7 +11145,7 @@ function cleanProfile(v) {
|
|
|
10964
11145
|
function writeAtomic(path, profiles) {
|
|
10965
11146
|
mkdirSync8(dirname7(path), { recursive: true });
|
|
10966
11147
|
const tmp = `${path}.tmp-${process.pid}`;
|
|
10967
|
-
writeFileSync8(tmp, (0,
|
|
11148
|
+
writeFileSync8(tmp, (0, import_yaml10.stringify)(profiles));
|
|
10968
11149
|
renameSync7(tmp, path);
|
|
10969
11150
|
}
|
|
10970
11151
|
function migrateLegacy(path, profiles) {
|
|
@@ -10989,7 +11170,7 @@ function readProfiles(path = profilesPath()) {
|
|
|
10989
11170
|
const profiles = {};
|
|
10990
11171
|
if (existsSync13(path)) {
|
|
10991
11172
|
try {
|
|
10992
|
-
const raw = (0,
|
|
11173
|
+
const raw = (0, import_yaml10.parse)(readFileSync14(path, "utf8"));
|
|
10993
11174
|
for (const [name, v] of Object.entries(raw ?? {})) profiles[name] = cleanProfile(v);
|
|
10994
11175
|
} catch {
|
|
10995
11176
|
return {};
|
|
@@ -11008,11 +11189,11 @@ function getProfile(name, path = profilesPath()) {
|
|
|
11008
11189
|
function currentSessionName(env = process.env) {
|
|
11009
11190
|
return env[SESSION_NAME_ENV]?.trim() || void 0;
|
|
11010
11191
|
}
|
|
11011
|
-
var
|
|
11192
|
+
var import_yaml10, SESSION_NAME_ENV, profilesPath, legacyWorkersPath;
|
|
11012
11193
|
var init_session_profile_store = __esm({
|
|
11013
11194
|
"src/workers/session-profile-store.ts"() {
|
|
11014
11195
|
"use strict";
|
|
11015
|
-
|
|
11196
|
+
import_yaml10 = __toESM(require_dist(), 1);
|
|
11016
11197
|
init_pai_home();
|
|
11017
11198
|
init_route_lists();
|
|
11018
11199
|
SESSION_NAME_ENV = "PAI_SESSION_NAME";
|
|
@@ -11262,7 +11443,7 @@ var require_postgres_interval = __commonJS({
|
|
|
11262
11443
|
if (!(this instanceof PostgresInterval)) {
|
|
11263
11444
|
return new PostgresInterval(raw);
|
|
11264
11445
|
}
|
|
11265
|
-
extend(this,
|
|
11446
|
+
extend(this, parse5(raw));
|
|
11266
11447
|
}
|
|
11267
11448
|
var properties = ["seconds", "minutes", "hours", "days", "months", "years"];
|
|
11268
11449
|
PostgresInterval.prototype.toPostgres = function() {
|
|
@@ -11323,7 +11504,7 @@ var require_postgres_interval = __commonJS({
|
|
|
11323
11504
|
var microseconds = fraction + "000000".slice(fraction.length);
|
|
11324
11505
|
return parseInt(microseconds, 10) / 1e3;
|
|
11325
11506
|
}
|
|
11326
|
-
function
|
|
11507
|
+
function parse5(interval) {
|
|
11327
11508
|
if (!interval) return {};
|
|
11328
11509
|
var matches = INTERVAL.exec(interval);
|
|
11329
11510
|
var isNegative = matches[8] === "-";
|
|
@@ -11810,13 +11991,13 @@ var require_binaryParsers = __commonJS({
|
|
|
11810
11991
|
console.log("ERROR: ElementType not implemented: " + elementType2);
|
|
11811
11992
|
}
|
|
11812
11993
|
};
|
|
11813
|
-
var
|
|
11994
|
+
var parse5 = function(dimension, elementType2) {
|
|
11814
11995
|
var array = [];
|
|
11815
11996
|
var i2;
|
|
11816
11997
|
if (dimension.length > 1) {
|
|
11817
11998
|
var count = dimension.shift();
|
|
11818
11999
|
for (i2 = 0; i2 < count; i2++) {
|
|
11819
|
-
array[i2] =
|
|
12000
|
+
array[i2] = parse5(dimension, elementType2);
|
|
11820
12001
|
}
|
|
11821
12002
|
dimension.unshift(count);
|
|
11822
12003
|
} else {
|
|
@@ -11826,7 +12007,7 @@ var require_binaryParsers = __commonJS({
|
|
|
11826
12007
|
}
|
|
11827
12008
|
return array;
|
|
11828
12009
|
};
|
|
11829
|
-
return
|
|
12010
|
+
return parse5(dims, elementType);
|
|
11830
12011
|
};
|
|
11831
12012
|
var parseText = function(value) {
|
|
11832
12013
|
return value.toString("utf8");
|
|
@@ -12614,7 +12795,7 @@ var require_type_overrides = __commonJS({
|
|
|
12614
12795
|
var require_pg_connection_string = __commonJS({
|
|
12615
12796
|
"node_modules/pg-connection-string/index.js"(exports, module) {
|
|
12616
12797
|
"use strict";
|
|
12617
|
-
function
|
|
12798
|
+
function parse5(str2, options = {}) {
|
|
12618
12799
|
if (str2.charAt(0) === "/") {
|
|
12619
12800
|
const config2 = str2.split(" ");
|
|
12620
12801
|
return { host: config2[0], database: config2[1] };
|
|
@@ -12773,7 +12954,7 @@ var require_pg_connection_string = __commonJS({
|
|
|
12773
12954
|
return poolConfig;
|
|
12774
12955
|
}
|
|
12775
12956
|
function parseIntoClientConfig(str2) {
|
|
12776
|
-
return toClientConfig(
|
|
12957
|
+
return toClientConfig(parse5(str2));
|
|
12777
12958
|
}
|
|
12778
12959
|
function deprecatedSslModeWarning(sslmode) {
|
|
12779
12960
|
if (!deprecatedSslModeWarning.warned && typeof process !== "undefined" && process.emitWarning) {
|
|
@@ -12788,10 +12969,10 @@ To prepare for this change:
|
|
|
12788
12969
|
See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode definitions.`);
|
|
12789
12970
|
}
|
|
12790
12971
|
}
|
|
12791
|
-
module.exports =
|
|
12792
|
-
|
|
12793
|
-
|
|
12794
|
-
|
|
12972
|
+
module.exports = parse5;
|
|
12973
|
+
parse5.parse = parse5;
|
|
12974
|
+
parse5.toClientConfig = toClientConfig;
|
|
12975
|
+
parse5.parseIntoClientConfig = parseIntoClientConfig;
|
|
12795
12976
|
}
|
|
12796
12977
|
});
|
|
12797
12978
|
|
|
@@ -12801,7 +12982,7 @@ var require_connection_parameters = __commonJS({
|
|
|
12801
12982
|
"use strict";
|
|
12802
12983
|
var dns = __require("dns");
|
|
12803
12984
|
var defaults3 = require_defaults();
|
|
12804
|
-
var
|
|
12985
|
+
var parse5 = require_pg_connection_string().parse;
|
|
12805
12986
|
var val = function(key, config, envVar) {
|
|
12806
12987
|
if (config[key]) {
|
|
12807
12988
|
return config[key];
|
|
@@ -12839,9 +13020,9 @@ var require_connection_parameters = __commonJS({
|
|
|
12839
13020
|
};
|
|
12840
13021
|
var ConnectionParameters = class {
|
|
12841
13022
|
constructor(config) {
|
|
12842
|
-
config = typeof config === "string" ?
|
|
13023
|
+
config = typeof config === "string" ? parse5(config) : config || {};
|
|
12843
13024
|
if (config.connectionString) {
|
|
12844
|
-
config = Object.assign({}, config,
|
|
13025
|
+
config = Object.assign({}, config, parse5(config.connectionString));
|
|
12845
13026
|
}
|
|
12846
13027
|
this.user = val("user", config);
|
|
12847
13028
|
this.database = val("database", config);
|
|
@@ -13520,7 +13701,7 @@ var require_serializer = __commonJS({
|
|
|
13520
13701
|
);
|
|
13521
13702
|
};
|
|
13522
13703
|
var emptyArray = [];
|
|
13523
|
-
var
|
|
13704
|
+
var parse5 = (query2) => {
|
|
13524
13705
|
const name = query2.name || "";
|
|
13525
13706
|
if (name.length > 63) {
|
|
13526
13707
|
console.error("Warning! Postgres only supports 63 characters for query names.");
|
|
@@ -13670,7 +13851,7 @@ var require_serializer = __commonJS({
|
|
|
13670
13851
|
sendSASLInitialResponseMessage,
|
|
13671
13852
|
sendSCRAMClientFinalMessage,
|
|
13672
13853
|
query,
|
|
13673
|
-
parse:
|
|
13854
|
+
parse: parse5,
|
|
13674
13855
|
bind,
|
|
13675
13856
|
execute,
|
|
13676
13857
|
describe,
|
|
@@ -14069,12 +14250,12 @@ var require_dist2 = __commonJS({
|
|
|
14069
14250
|
return serializer_1.serialize;
|
|
14070
14251
|
} });
|
|
14071
14252
|
var parser_1 = require_parser2();
|
|
14072
|
-
function
|
|
14253
|
+
function parse5(stream, callback) {
|
|
14073
14254
|
const parser = new parser_1.Parser();
|
|
14074
14255
|
stream.on("data", (buffer) => parser.parse(buffer, callback));
|
|
14075
14256
|
return new Promise((resolve4) => stream.on("end", () => resolve4()));
|
|
14076
14257
|
}
|
|
14077
|
-
exports.parse =
|
|
14258
|
+
exports.parse = parse5;
|
|
14078
14259
|
}
|
|
14079
14260
|
});
|
|
14080
14261
|
|
|
@@ -14158,7 +14339,7 @@ var require_connection = __commonJS({
|
|
|
14158
14339
|
"node_modules/pg/lib/connection.js"(exports, module) {
|
|
14159
14340
|
"use strict";
|
|
14160
14341
|
var EventEmitter = __require("events").EventEmitter;
|
|
14161
|
-
var { parse:
|
|
14342
|
+
var { parse: parse5, serialize } = require_dist2();
|
|
14162
14343
|
var { getStream, getSecureStream } = require_stream();
|
|
14163
14344
|
var flushBuffer = serialize.flush();
|
|
14164
14345
|
var syncBuffer = serialize.sync();
|
|
@@ -14244,7 +14425,7 @@ var require_connection = __commonJS({
|
|
|
14244
14425
|
});
|
|
14245
14426
|
}
|
|
14246
14427
|
attachListeners(stream) {
|
|
14247
|
-
|
|
14428
|
+
parse5(stream, (msg) => {
|
|
14248
14429
|
const eventName = msg.name === "error" ? "errorMessage" : msg.name;
|
|
14249
14430
|
if (this._emitMessage) {
|
|
14250
14431
|
this.emit("message", msg);
|
|
@@ -8183,6 +8183,7 @@ function defaultWorkersConfig() {
|
|
|
8183
8183
|
cacheKeepaliveSecs: num(w.cacheKeepaliveSecs, 0),
|
|
8184
8184
|
defaultMaxMinutes: num(w.defaultMaxMinutes, 60),
|
|
8185
8185
|
waitAlarmMinutes: num(w.waitAlarmMinutes, 120),
|
|
8186
|
+
scanBudgetMs: num(w.scanBudgetMs, 5e3),
|
|
8186
8187
|
stagger: {
|
|
8187
8188
|
enabled: bool(stagger.enabled, true),
|
|
8188
8189
|
localDefaultSec: num(stagger.localDefaultSec, 20),
|
|
@@ -8777,6 +8778,13 @@ function parseWorkersConfig(raw, yamlProviders = {}) {
|
|
|
8777
8778
|
}
|
|
8778
8779
|
waitAlarmMinutes = w.waitAlarmMinutes;
|
|
8779
8780
|
}
|
|
8781
|
+
let scanBudgetMs = d.scanBudgetMs ?? 5e3;
|
|
8782
|
+
if (w.scanBudgetMs !== void 0) {
|
|
8783
|
+
if (typeof w.scanBudgetMs !== "number" || !Number.isInteger(w.scanBudgetMs) || w.scanBudgetMs < 1) {
|
|
8784
|
+
bad(".scanBudgetMs", "must be a positive integer (milliseconds)");
|
|
8785
|
+
}
|
|
8786
|
+
scanBudgetMs = w.scanBudgetMs;
|
|
8787
|
+
}
|
|
8780
8788
|
const stagger = { ...d.stagger };
|
|
8781
8789
|
if (w.stagger !== void 0) {
|
|
8782
8790
|
if (typeof w.stagger !== "object" || w.stagger === null || Array.isArray(w.stagger)) {
|
|
@@ -8913,6 +8921,7 @@ function parseWorkersConfig(raw, yamlProviders = {}) {
|
|
|
8913
8921
|
cacheKeepaliveSecs,
|
|
8914
8922
|
defaultMaxMinutes,
|
|
8915
8923
|
waitAlarmMinutes,
|
|
8924
|
+
scanBudgetMs,
|
|
8916
8925
|
stagger,
|
|
8917
8926
|
capacity,
|
|
8918
8927
|
localIdle,
|
|
@@ -8177,6 +8177,7 @@ function defaultWorkersConfig() {
|
|
|
8177
8177
|
cacheKeepaliveSecs: num(w.cacheKeepaliveSecs, 0),
|
|
8178
8178
|
defaultMaxMinutes: num(w.defaultMaxMinutes, 60),
|
|
8179
8179
|
waitAlarmMinutes: num(w.waitAlarmMinutes, 120),
|
|
8180
|
+
scanBudgetMs: num(w.scanBudgetMs, 5e3),
|
|
8180
8181
|
stagger: {
|
|
8181
8182
|
enabled: bool(stagger.enabled, true),
|
|
8182
8183
|
localDefaultSec: num(stagger.localDefaultSec, 20),
|
|
@@ -8771,6 +8772,13 @@ function parseWorkersConfig(raw, yamlProviders = {}) {
|
|
|
8771
8772
|
}
|
|
8772
8773
|
waitAlarmMinutes = w.waitAlarmMinutes;
|
|
8773
8774
|
}
|
|
8775
|
+
let scanBudgetMs = d.scanBudgetMs ?? 5e3;
|
|
8776
|
+
if (w.scanBudgetMs !== void 0) {
|
|
8777
|
+
if (typeof w.scanBudgetMs !== "number" || !Number.isInteger(w.scanBudgetMs) || w.scanBudgetMs < 1) {
|
|
8778
|
+
bad(".scanBudgetMs", "must be a positive integer (milliseconds)");
|
|
8779
|
+
}
|
|
8780
|
+
scanBudgetMs = w.scanBudgetMs;
|
|
8781
|
+
}
|
|
8774
8782
|
const stagger = { ...d.stagger };
|
|
8775
8783
|
if (w.stagger !== void 0) {
|
|
8776
8784
|
if (typeof w.stagger !== "object" || w.stagger === null || Array.isArray(w.stagger)) {
|
|
@@ -8907,6 +8915,7 @@ function parseWorkersConfig(raw, yamlProviders = {}) {
|
|
|
8907
8915
|
cacheKeepaliveSecs,
|
|
8908
8916
|
defaultMaxMinutes,
|
|
8909
8917
|
waitAlarmMinutes,
|
|
8918
|
+
scanBudgetMs,
|
|
8910
8919
|
stagger,
|
|
8911
8920
|
capacity,
|
|
8912
8921
|
localIdle,
|