@narumitw/pi-subagents 2.1.4 → 3.0.0
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/README.md +187 -1228
- package/dist/child-communication-bridge.ts +136 -0
- package/dist/child-communication-bridge.ts.map +7 -0
- package/dist/chunks/chunk-UKTWUQRM.js +667 -0
- package/dist/chunks/chunk-UKTWUQRM.js.map +7 -0
- package/dist/index.ts +1448 -1614
- package/dist/index.ts.map +4 -4
- package/docs/design-principles.md +31 -0
- package/docs/ipc-transport-idea.md +103 -0
- package/docs/tools.md +109 -0
- package/package.json +11 -19
- package/src/broker-credentials.ts +71 -0
- package/src/child-communication-bridge.ts +153 -0
- package/src/child-communication-tools.ts +147 -0
- package/src/completion-renderer.ts +60 -0
- package/src/index.ts +1 -1
- package/src/message-broker.ts +628 -0
- package/src/model-output.ts +42 -0
- package/src/process.ts +688 -0
- package/src/runtime.ts +538 -0
- package/src/subagents.ts +33 -34
- package/src/tools.ts +416 -0
- package/src/types.ts +85 -0
- package/src/widget.ts +130 -0
- package/dist/chunks/auto-transport-FUUKFDIG.ts +0 -109
- package/dist/chunks/auto-transport-FUUKFDIG.ts.map +0 -7
- package/dist/chunks/capability-grant-PR72SWWS.ts +0 -19
- package/dist/chunks/capability-grant-PR72SWWS.ts.map +0 -7
- package/dist/chunks/child-peer-bridge.ts +0 -108
- package/dist/chunks/child-peer-bridge.ts.map +0 -7
- package/dist/chunks/chunk-2LMJU25E.ts +0 -1641
- package/dist/chunks/chunk-2LMJU25E.ts.map +0 -7
- package/dist/chunks/chunk-47SK2QYC.ts +0 -56
- package/dist/chunks/chunk-47SK2QYC.ts.map +0 -7
- package/dist/chunks/chunk-4AQSF7AS.ts +0 -29
- package/dist/chunks/chunk-4AQSF7AS.ts.map +0 -7
- package/dist/chunks/chunk-5DGRMKNV.ts +0 -126
- package/dist/chunks/chunk-5DGRMKNV.ts.map +0 -7
- package/dist/chunks/chunk-6H6TBBED.ts +0 -108
- package/dist/chunks/chunk-6H6TBBED.ts.map +0 -7
- package/dist/chunks/chunk-6KJ34M6S.ts +0 -159
- package/dist/chunks/chunk-6KJ34M6S.ts.map +0 -7
- package/dist/chunks/chunk-6NSJVPXX.ts +0 -480
- package/dist/chunks/chunk-6NSJVPXX.ts.map +0 -7
- package/dist/chunks/chunk-7AAJEUSL.ts +0 -238
- package/dist/chunks/chunk-7AAJEUSL.ts.map +0 -7
- package/dist/chunks/chunk-BFK2Z4ZF.ts +0 -189
- package/dist/chunks/chunk-BFK2Z4ZF.ts.map +0 -7
- package/dist/chunks/chunk-BOAXY55Y.ts +0 -153
- package/dist/chunks/chunk-BOAXY55Y.ts.map +0 -7
- package/dist/chunks/chunk-D4CR7T73.ts +0 -353
- package/dist/chunks/chunk-D4CR7T73.ts.map +0 -7
- package/dist/chunks/chunk-FEVPWRMU.ts +0 -300
- package/dist/chunks/chunk-FEVPWRMU.ts.map +0 -7
- package/dist/chunks/chunk-G6VZTCFH.ts +0 -70
- package/dist/chunks/chunk-G6VZTCFH.ts.map +0 -7
- package/dist/chunks/chunk-H3FP6DLR.ts +0 -160
- package/dist/chunks/chunk-H3FP6DLR.ts.map +0 -7
- package/dist/chunks/chunk-HA36LPCO.ts +0 -130
- package/dist/chunks/chunk-HA36LPCO.ts.map +0 -7
- package/dist/chunks/chunk-HOP5FXDT.ts +0 -27
- package/dist/chunks/chunk-HOP5FXDT.ts.map +0 -7
- package/dist/chunks/chunk-IGAMVWFN.ts +0 -139
- package/dist/chunks/chunk-IGAMVWFN.ts.map +0 -7
- package/dist/chunks/chunk-ILEQ27AL.ts +0 -45
- package/dist/chunks/chunk-ILEQ27AL.ts.map +0 -7
- package/dist/chunks/chunk-ITVWPNU4.ts +0 -819
- package/dist/chunks/chunk-ITVWPNU4.ts.map +0 -7
- package/dist/chunks/chunk-IWC32VPY.ts +0 -172
- package/dist/chunks/chunk-IWC32VPY.ts.map +0 -7
- package/dist/chunks/chunk-JSZIP73U.ts +0 -362
- package/dist/chunks/chunk-JSZIP73U.ts.map +0 -7
- package/dist/chunks/chunk-JU6LUNLP.ts +0 -380
- package/dist/chunks/chunk-JU6LUNLP.ts.map +0 -7
- package/dist/chunks/chunk-KMGKCEO4.ts +0 -38
- package/dist/chunks/chunk-KMGKCEO4.ts.map +0 -7
- package/dist/chunks/chunk-LASD73CM.ts +0 -339
- package/dist/chunks/chunk-LASD73CM.ts.map +0 -7
- package/dist/chunks/chunk-LEOYDZI3.ts +0 -22
- package/dist/chunks/chunk-LEOYDZI3.ts.map +0 -7
- package/dist/chunks/chunk-LL4LP2T7.ts +0 -737
- package/dist/chunks/chunk-LL4LP2T7.ts.map +0 -7
- package/dist/chunks/chunk-N2T5IN4X.ts +0 -18
- package/dist/chunks/chunk-N2T5IN4X.ts.map +0 -7
- package/dist/chunks/chunk-N7BLVXKK.ts +0 -73
- package/dist/chunks/chunk-N7BLVXKK.ts.map +0 -7
- package/dist/chunks/chunk-NLT67IZS.ts +0 -322
- package/dist/chunks/chunk-NLT67IZS.ts.map +0 -7
- package/dist/chunks/chunk-NTRPLF46.ts +0 -63
- package/dist/chunks/chunk-NTRPLF46.ts.map +0 -7
- package/dist/chunks/chunk-ONDTY4EL.ts +0 -91
- package/dist/chunks/chunk-ONDTY4EL.ts.map +0 -7
- package/dist/chunks/chunk-OVPHFGKO.ts +0 -1769
- package/dist/chunks/chunk-OVPHFGKO.ts.map +0 -7
- package/dist/chunks/chunk-P7OH4XMF.ts +0 -60
- package/dist/chunks/chunk-P7OH4XMF.ts.map +0 -7
- package/dist/chunks/chunk-PBZMBTNJ.ts +0 -422
- package/dist/chunks/chunk-PBZMBTNJ.ts.map +0 -7
- package/dist/chunks/chunk-PGLSFLYW.ts +0 -52
- package/dist/chunks/chunk-PGLSFLYW.ts.map +0 -7
- package/dist/chunks/chunk-RRR66UWR.ts +0 -28
- package/dist/chunks/chunk-RRR66UWR.ts.map +0 -7
- package/dist/chunks/chunk-RSUXZD6S.ts +0 -275
- package/dist/chunks/chunk-RSUXZD6S.ts.map +0 -7
- package/dist/chunks/chunk-RTCVYIZA.ts +0 -221
- package/dist/chunks/chunk-RTCVYIZA.ts.map +0 -7
- package/dist/chunks/chunk-RY2AEGMZ.ts +0 -34
- package/dist/chunks/chunk-RY2AEGMZ.ts.map +0 -7
- package/dist/chunks/chunk-SWGQLFSD.ts +0 -60
- package/dist/chunks/chunk-SWGQLFSD.ts.map +0 -7
- package/dist/chunks/chunk-TM2R67J3.ts +0 -52
- package/dist/chunks/chunk-TM2R67J3.ts.map +0 -7
- package/dist/chunks/chunk-TMZRHIIK.ts +0 -497
- package/dist/chunks/chunk-TMZRHIIK.ts.map +0 -7
- package/dist/chunks/chunk-TZ34IQ3M.ts +0 -59
- package/dist/chunks/chunk-TZ34IQ3M.ts.map +0 -7
- package/dist/chunks/chunk-UMBPMVJW.ts +0 -22
- package/dist/chunks/chunk-UMBPMVJW.ts.map +0 -7
- package/dist/chunks/chunk-VDG7LTYE.ts +0 -80
- package/dist/chunks/chunk-VDG7LTYE.ts.map +0 -7
- package/dist/chunks/chunk-X4NMONPE.ts +0 -73
- package/dist/chunks/chunk-X4NMONPE.ts.map +0 -7
- package/dist/chunks/chunk-YPJEN6NU.ts +0 -65
- package/dist/chunks/chunk-YPJEN6NU.ts.map +0 -7
- package/dist/chunks/chunk-YU53SHA7.ts +0 -328
- package/dist/chunks/chunk-YU53SHA7.ts.map +0 -7
- package/dist/chunks/completion-delivery-RSJU6BXL.ts +0 -17
- package/dist/chunks/completion-delivery-RSJU6BXL.ts.map +0 -7
- package/dist/chunks/config-status-FKGDECZ3.ts +0 -35
- package/dist/chunks/config-status-FKGDECZ3.ts.map +0 -7
- package/dist/chunks/config-ui-ABHYNGQ7.ts +0 -1212
- package/dist/chunks/config-ui-ABHYNGQ7.ts.map +0 -7
- package/dist/chunks/consult-LJU3IQY5.ts +0 -519
- package/dist/chunks/consult-LJU3IQY5.ts.map +0 -7
- package/dist/chunks/context-QDKLVQXE.ts +0 -11
- package/dist/chunks/context-QDKLVQXE.ts.map +0 -7
- package/dist/chunks/create-stateful-transport-JWC2EFYL.ts +0 -130
- package/dist/chunks/create-stateful-transport-JWC2EFYL.ts.map +0 -7
- package/dist/chunks/cwd-policy-NB6XZ5GF.ts +0 -17
- package/dist/chunks/cwd-policy-NB6XZ5GF.ts.map +0 -7
- package/dist/chunks/delegation-contract-LA56I5DT.ts +0 -24
- package/dist/chunks/delegation-contract-LA56I5DT.ts.map +0 -7
- package/dist/chunks/discovery-MIFB2U4Y.ts +0 -12
- package/dist/chunks/discovery-MIFB2U4Y.ts.map +0 -7
- package/dist/chunks/execution-Q2JZLKJA.ts +0 -4037
- package/dist/chunks/execution-Q2JZLKJA.ts.map +0 -7
- package/dist/chunks/in-process-transport-HJ6TZXC3.ts +0 -39
- package/dist/chunks/in-process-transport-HJ6TZXC3.ts.map +0 -7
- package/dist/chunks/inspect-UH2TKH6E.ts +0 -634
- package/dist/chunks/inspect-UH2TKH6E.ts.map +0 -7
- package/dist/chunks/peer-communication-KL36Z6CO.ts +0 -294
- package/dist/chunks/peer-communication-KL36Z6CO.ts.map +0 -7
- package/dist/chunks/persistence-UY3PY6E5.ts +0 -348
- package/dist/chunks/persistence-UY3PY6E5.ts.map +0 -7
- package/dist/chunks/registry-BT54L6CY.ts +0 -1445
- package/dist/chunks/registry-BT54L6CY.ts.map +0 -7
- package/dist/chunks/retained-semantic-state-GM75FZGE.ts +0 -81
- package/dist/chunks/retained-semantic-state-GM75FZGE.ts.map +0 -7
- package/dist/chunks/rpc-transport-7R7DVCEB.ts +0 -1222
- package/dist/chunks/rpc-transport-7R7DVCEB.ts.map +0 -7
- package/dist/chunks/runtime-policy-5YELCOVC.ts +0 -15
- package/dist/chunks/runtime-policy-5YELCOVC.ts.map +0 -7
- package/dist/chunks/semantic-snapshot-WPJ3UAFW.ts +0 -19
- package/dist/chunks/semantic-snapshot-WPJ3UAFW.ts.map +0 -7
- package/dist/chunks/spawn-idempotency-BNHOSMZW.ts +0 -13
- package/dist/chunks/spawn-idempotency-BNHOSMZW.ts.map +0 -7
- package/dist/chunks/stateful-lifecycle-JAR6K55H.ts +0 -15
- package/dist/chunks/stateful-lifecycle-JAR6K55H.ts.map +0 -7
- package/dist/chunks/subprocess-transport-VHZJRBTW.ts +0 -160
- package/dist/chunks/subprocess-transport-VHZJRBTW.ts.map +0 -7
- package/dist/chunks/usage-recording-store-CW3EH2SZ.ts +0 -164
- package/dist/chunks/usage-recording-store-CW3EH2SZ.ts.map +0 -7
- package/dist/chunks/workspace-WDKLN72J.ts +0 -11
- package/dist/chunks/workspace-WDKLN72J.ts.map +0 -7
- package/docs/async-runtime-protocol.md +0 -84
- package/docs/implementation-notes/pi-subagents-capability-matrix.md +0 -62
- package/docs/implementation-notes/pi-subagents-current-direction.md +0 -99
- package/docs/implementation-notes/pi-subagents-rpc-v1.md +0 -139
- package/docs/pi-subagents-diagrams.md +0 -183
- package/src/adaptive-scheduler.ts +0 -224
- package/src/admission-policy.ts +0 -78
- package/src/agent-projection.ts +0 -53
- package/src/agents/built-ins.ts +0 -71
- package/src/agents/catalog.ts +0 -241
- package/src/agents/discovery.ts +0 -265
- package/src/agents/types.ts +0 -100
- package/src/agents.ts +0 -51
- package/src/auto-transport.ts +0 -121
- package/src/blocking-status.ts +0 -63
- package/src/cached-module-loader.ts +0 -18
- package/src/capabilities.ts +0 -145
- package/src/capability-grant.ts +0 -115
- package/src/capability-router.ts +0 -107
- package/src/child-peer-bridge.ts +0 -124
- package/src/child-peer-tools.ts +0 -132
- package/src/completion-delivery.ts +0 -409
- package/src/completion-render.ts +0 -190
- package/src/completion-requirement.ts +0 -479
- package/src/completion-routing.ts +0 -24
- package/src/config-registration.ts +0 -114
- package/src/config-status.ts +0 -217
- package/src/config-ui.ts +0 -983
- package/src/consult-policy.ts +0 -15
- package/src/consult-registration.ts +0 -125
- package/src/consult-render.ts +0 -194
- package/src/consult-resources.ts +0 -51
- package/src/consult-tool.ts +0 -95
- package/src/consult.ts +0 -566
- package/src/context.ts +0 -126
- package/src/create-stateful-transport.ts +0 -157
- package/src/cwd-policy.ts +0 -183
- package/src/delegation-contract.ts +0 -463
- package/src/execution/budget.ts +0 -56
- package/src/execution/runtime-policy.ts +0 -19
- package/src/execution-plan.ts +0 -322
- package/src/execution-ui.ts +0 -259
- package/src/execution.ts +0 -1679
- package/src/in-process-transport.ts +0 -941
- package/src/inspect-registration.ts +0 -64
- package/src/inspect-render.ts +0 -334
- package/src/inspect-tool.ts +0 -45
- package/src/inspect.ts +0 -769
- package/src/integration-controller.ts +0 -98
- package/src/limits.ts +0 -75
- package/src/orchestration-metrics.ts +0 -116
- package/src/outcome.ts +0 -61
- package/src/panel-child-group.ts +0 -35
- package/src/panel-contract.ts +0 -343
- package/src/panel-evidence.ts +0 -59
- package/src/panel-execution.ts +0 -769
- package/src/panel-failure.ts +0 -56
- package/src/panel-planning.ts +0 -175
- package/src/panel-presets.ts +0 -3
- package/src/panel-prompts.ts +0 -132
- package/src/panel-reconciliation.ts +0 -57
- package/src/panel-render.ts +0 -103
- package/src/parallel-limit-ui.ts +0 -113
- package/src/params.ts +0 -278
- package/src/peer-communication.ts +0 -352
- package/src/peer-transport.ts +0 -49
- package/src/persistence.ts +0 -522
- package/src/pi-args.ts +0 -43
- package/src/pi-invocation.ts +0 -168
- package/src/process-control.ts +0 -43
- package/src/prompt-resources.ts +0 -38
- package/src/prompt-source-safety.ts +0 -48
- package/src/protocol.ts +0 -76
- package/src/registry-types.ts +0 -204
- package/src/registry.ts +0 -1698
- package/src/render-common.ts +0 -252
- package/src/render.ts +0 -704
- package/src/result-contract.ts +0 -431
- package/src/retained-semantic-state.ts +0 -100
- package/src/rpc-timeout-finalization.ts +0 -207
- package/src/rpc-transport-metadata.ts +0 -65
- package/src/rpc-transport.ts +0 -1035
- package/src/rpc-turn-capture.ts +0 -217
- package/src/runner-outcome.ts +0 -31
- package/src/runner-result.ts +0 -55
- package/src/runner-types.ts +0 -102
- package/src/runner-usage.ts +0 -48
- package/src/runner.ts +0 -866
- package/src/safe-text.ts +0 -67
- package/src/semantic-snapshot.ts +0 -214
- package/src/session-guidance-contract.ts +0 -399
- package/src/settings/inspection.ts +0 -302
- package/src/settings/schema.ts +0 -195
- package/src/settings-reader.ts +0 -215
- package/src/settings.ts +0 -452
- package/src/spawn-idempotency.ts +0 -68
- package/src/stateful-agent-view.ts +0 -85
- package/src/stateful-config.ts +0 -13
- package/src/stateful-guidance.ts +0 -29
- package/src/stateful-lifecycle.ts +0 -74
- package/src/stateful-limit-ui.ts +0 -249
- package/src/stateful-limits.ts +0 -96
- package/src/stateful-prompt.ts +0 -49
- package/src/stateful-registration.ts +0 -1320
- package/src/stateful-render.ts +0 -318
- package/src/stateful-safety.ts +0 -47
- package/src/stateful-tool-params.ts +0 -215
- package/src/stateful.ts +0 -12
- package/src/subagent-details.ts +0 -43
- package/src/subagents-extension.ts +0 -372
- package/src/subprocess-transport.ts +0 -145
- package/src/supervision.ts +0 -104
- package/src/task-path.ts +0 -65
- package/src/timeout-checkpoint.ts +0 -305
- package/src/timeout-finalization.ts +0 -75
- package/src/tool-schema-compatibility.ts +0 -73
- package/src/transport-types.ts +0 -74
- package/src/transport-ui.ts +0 -135
- package/src/transport.ts +0 -43
- package/src/turn-budget.ts +0 -109
- package/src/usage-format.ts +0 -42
- package/src/usage-recording-config.ts +0 -13
- package/src/usage-recording-store.ts +0 -183
- package/src/usage-recording.ts +0 -478
- package/src/verification-harness.ts +0 -516
- package/src/verification-policy.ts +0 -67
- package/src/verification-receipt.ts +0 -275
- package/src/verified-execution-benchmark.ts +0 -86
- package/src/verified-execution-contract.ts +0 -191
- package/src/verified-execution-schema.ts +0 -32
- package/src/work-item-ledger.ts +0 -1404
- package/src/work-item-persistence.ts +0 -254
- package/src/workflow-completion-controller.ts +0 -397
- package/src/workflow-planning.ts +0 -172
- package/src/workflow-tree-identity.ts +0 -289
- package/src/workflow-ui.ts +0 -69
- package/src/workflow-verification.ts +0 -296
- package/src/workspace.ts +0 -174
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
// @generated by scripts/build-runtime.mjs; do not edit.
|
|
2
|
-
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
|
-
import {
|
|
4
|
-
resolveAgentToolNames
|
|
5
|
-
} from "./chunk-4AQSF7AS.ts";
|
|
6
|
-
|
|
7
|
-
// src/admission-policy.ts
|
|
8
|
-
var DELEGATION_ADMISSION_VERSION = "pi-subagents:admission:v1";
|
|
9
|
-
function evaluateDelegationAdmission(input) {
|
|
10
|
-
if (!input.generationCurrent)
|
|
11
|
-
return decision("abstain-insufficient-evidence", ["stale-generation"]);
|
|
12
|
-
if (!input.requirementsComplete) {
|
|
13
|
-
return decision("abstain-insufficient-evidence", ["requirements-incomplete"]);
|
|
14
|
-
}
|
|
15
|
-
if (!input.capabilitiesSupported) {
|
|
16
|
-
return decision("abstain-insufficient-evidence", ["capability-unsupported"]);
|
|
17
|
-
}
|
|
18
|
-
if (!input.budgetAllowsChildren) {
|
|
19
|
-
return decision("parent-owned-direct", ["child-budget-insufficient"]);
|
|
20
|
-
}
|
|
21
|
-
if (input.independentWorkItems >= 2 && input.coupling === "sparse") {
|
|
22
|
-
return decision(
|
|
23
|
-
"bounded-two-child",
|
|
24
|
-
["declared-independent-work"],
|
|
25
|
-
"parallel-critical-path-reduction"
|
|
26
|
-
);
|
|
27
|
-
}
|
|
28
|
-
if (input.verificationRequired) {
|
|
29
|
-
return input.verificationAvailable ? decision(
|
|
30
|
-
"one-child-plus-verification",
|
|
31
|
-
["independent-verification-required"],
|
|
32
|
-
"independent-error-detection"
|
|
33
|
-
) : decision("abstain-insufficient-evidence", ["verification-unavailable"]);
|
|
34
|
-
}
|
|
35
|
-
if (input.contextPressure === "high") {
|
|
36
|
-
return decision("one-child", ["declared-context-pressure"], "context-isolation");
|
|
37
|
-
}
|
|
38
|
-
return decision("parent-owned-direct", ["delegation-benefit-not-established"]);
|
|
39
|
-
}
|
|
40
|
-
function decision(recommendation, reasonCodes, benefitHypothesis = "none") {
|
|
41
|
-
return {
|
|
42
|
-
version: DELEGATION_ADMISSION_VERSION,
|
|
43
|
-
recommendation,
|
|
44
|
-
reasonCodes,
|
|
45
|
-
benefitHypothesis,
|
|
46
|
-
auditOnly: true
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// src/execution-plan.ts
|
|
51
|
-
import { createHash } from "node:crypto";
|
|
52
|
-
var EXECUTION_PLAN_VERSION = "pi-subagents:execution-plan:v1";
|
|
53
|
-
var EXECUTION_ACKNOWLEDGEMENT_VERSION = "pi-subagents:acknowledgement:v1";
|
|
54
|
-
function createExecutionPlan(input) {
|
|
55
|
-
const manifest = input.agent.capabilityManifest;
|
|
56
|
-
const requestedCapabilities = unique(input.contract?.requestedAuthority?.capabilities ?? []);
|
|
57
|
-
const declaredCapabilities = unique(manifest?.capabilities ?? []);
|
|
58
|
-
const missingCapabilities = requestedCapabilities.filter(
|
|
59
|
-
(capability) => !declaredCapabilities.includes(capability)
|
|
60
|
-
);
|
|
61
|
-
const capabilityFit = manifest ? missingCapabilities.length > 0 ? "mismatch" : "match" : "unknown";
|
|
62
|
-
const requestedTools = unique(input.contract?.requestedAuthority?.tools ?? []);
|
|
63
|
-
const effectiveTools = input.effectiveTools ? unique(input.effectiveTools) : void 0;
|
|
64
|
-
const missingTools = requestedTools.filter((tool) => !(effectiveTools ?? []).includes(tool));
|
|
65
|
-
const overgrantedTools = requestedTools.length === 0 ? [] : (effectiveTools ?? []).filter((tool) => !requestedTools.includes(tool));
|
|
66
|
-
const resultFormatSupported = manifest ? manifest.resultFormats.includes(input.resultFormat) : "unknown";
|
|
67
|
-
const unsupportedGuarantees = unsupported(input.contract);
|
|
68
|
-
const taskGeneration = input.taskGeneration ?? 0;
|
|
69
|
-
const cancellationLineage = [...input.cancellationLineage ?? []];
|
|
70
|
-
const admissionRequest = input.contract?.admission;
|
|
71
|
-
const admission = evaluateDelegationAdmission({
|
|
72
|
-
contextPressure: admissionRequest?.contextPressure ?? "low",
|
|
73
|
-
independentWorkItems: admissionRequest?.independentWorkItems ?? 1,
|
|
74
|
-
coupling: admissionRequest?.coupling ?? "dense",
|
|
75
|
-
verificationRequired: admissionRequest?.verificationRequired ?? false,
|
|
76
|
-
verificationAvailable: admissionRequest?.verificationAvailable ?? false,
|
|
77
|
-
capabilitiesSupported: capabilityFit === "match" && missingTools.length === 0,
|
|
78
|
-
budgetAllowsChildren: admissionRequest?.budgetAllowsChildren ?? true,
|
|
79
|
-
generationCurrent: true,
|
|
80
|
-
requirementsComplete: admissionRequest?.requirementsComplete ?? false
|
|
81
|
-
});
|
|
82
|
-
const warnings = [];
|
|
83
|
-
if (!manifest) warnings.push("agent-capabilities-unknown");
|
|
84
|
-
if (missingCapabilities.length > 0) warnings.push("capability-mismatch");
|
|
85
|
-
if (missingTools.length > 0) warnings.push("requested-tools-missing");
|
|
86
|
-
if (overgrantedTools.length > 0) warnings.push("tools-overgranted");
|
|
87
|
-
if (resultFormatSupported === false) warnings.push("result-format-unsupported");
|
|
88
|
-
if (unsupportedGuarantees.length > 0) warnings.push("unsupported-guarantees");
|
|
89
|
-
const planWithoutId = {
|
|
90
|
-
version: EXECUTION_PLAN_VERSION,
|
|
91
|
-
mode: input.contract?.enforcement ?? "audit",
|
|
92
|
-
...input.contract?.taskId ? { taskId: input.contract.taskId } : {},
|
|
93
|
-
agent: {
|
|
94
|
-
name: input.agent.name,
|
|
95
|
-
source: input.agent.source,
|
|
96
|
-
capabilitiesKnown: manifest !== void 0
|
|
97
|
-
},
|
|
98
|
-
capabilityFit,
|
|
99
|
-
missingCapabilities,
|
|
100
|
-
requestedCapabilities,
|
|
101
|
-
declaredCapabilities,
|
|
102
|
-
requestedTools,
|
|
103
|
-
...effectiveTools === void 0 ? {} : { effectiveTools },
|
|
104
|
-
missingTools,
|
|
105
|
-
overgrantedTools,
|
|
106
|
-
resultFormat: input.resultFormat,
|
|
107
|
-
sideEffectPolicy: input.contract?.sideEffectPolicy ?? "mutating",
|
|
108
|
-
resultFormatSupported,
|
|
109
|
-
target: structuredClone(input.target),
|
|
110
|
-
workspaceMode: input.workspaceMode,
|
|
111
|
-
transport: input.transport,
|
|
112
|
-
...input.model === void 0 ? {} : { model: input.model },
|
|
113
|
-
...input.thinkingLevel === void 0 ? {} : { thinkingLevel: input.thinkingLevel },
|
|
114
|
-
...input.timeoutMs === void 0 ? {} : { timeoutMs: input.timeoutMs },
|
|
115
|
-
unsupportedGuarantees,
|
|
116
|
-
warnings,
|
|
117
|
-
taskGeneration,
|
|
118
|
-
cancellationLineage,
|
|
119
|
-
admission
|
|
120
|
-
};
|
|
121
|
-
return { ...planWithoutId, id: executionPlanId(planWithoutId) };
|
|
122
|
-
}
|
|
123
|
-
function resolveContractTools(configuredTools, contract) {
|
|
124
|
-
const requested = contract?.requestedAuthority?.tools;
|
|
125
|
-
if (contract?.enforcement !== "enforce" || requested === void 0) {
|
|
126
|
-
return configuredTools ? unique(configuredTools) : void 0;
|
|
127
|
-
}
|
|
128
|
-
const availableTools = resolveAgentToolNames(configuredTools);
|
|
129
|
-
return unique(requested.filter((tool) => availableTools.includes(tool)));
|
|
130
|
-
}
|
|
131
|
-
function acknowledgeExecutionPlan(plan) {
|
|
132
|
-
if (plan.mode === "audit") {
|
|
133
|
-
return {
|
|
134
|
-
version: EXECUTION_ACKNOWLEDGEMENT_VERSION,
|
|
135
|
-
status: "accepted",
|
|
136
|
-
reasonCodes: [],
|
|
137
|
-
recoveryActions: []
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
const reasonCodes = [];
|
|
141
|
-
const recoveryActions = [];
|
|
142
|
-
if (plan.capabilityFit === "unknown") {
|
|
143
|
-
reasonCodes.push("capabilities-unknown");
|
|
144
|
-
recoveryActions.push("declare-capabilities", "reroute");
|
|
145
|
-
}
|
|
146
|
-
if (plan.missingCapabilities.length > 0) {
|
|
147
|
-
reasonCodes.push("capability-mismatch");
|
|
148
|
-
recoveryActions.push("reroute");
|
|
149
|
-
}
|
|
150
|
-
if (plan.missingTools.length > 0) {
|
|
151
|
-
reasonCodes.push("authority-missing");
|
|
152
|
-
recoveryActions.push("grant-authority", "reroute");
|
|
153
|
-
}
|
|
154
|
-
if (plan.overgrantedTools.length > 0) {
|
|
155
|
-
reasonCodes.push("authority-overgranted");
|
|
156
|
-
recoveryActions.push("narrow-authority");
|
|
157
|
-
}
|
|
158
|
-
if (plan.resultFormatSupported !== true) {
|
|
159
|
-
reasonCodes.push("result-format-unsupported");
|
|
160
|
-
recoveryActions.push("reroute", "change-result-format");
|
|
161
|
-
}
|
|
162
|
-
if (plan.unsupportedGuarantees.length > 0) {
|
|
163
|
-
reasonCodes.push("unsupported-guarantee");
|
|
164
|
-
recoveryActions.push("repair-contract", "stop");
|
|
165
|
-
}
|
|
166
|
-
return {
|
|
167
|
-
version: EXECUTION_ACKNOWLEDGEMENT_VERSION,
|
|
168
|
-
status: reasonCodes.length === 0 ? "accepted" : "rejected",
|
|
169
|
-
reasonCodes: unique(reasonCodes),
|
|
170
|
-
recoveryActions: unique(recoveryActions)
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
function copyExecutionPlan(plan) {
|
|
174
|
-
const { id: _storedId, ...cloned } = structuredClone(plan);
|
|
175
|
-
const legacyAdmission = evaluateDelegationAdmission({
|
|
176
|
-
contextPressure: "low",
|
|
177
|
-
independentWorkItems: 1,
|
|
178
|
-
coupling: "dense",
|
|
179
|
-
verificationRequired: false,
|
|
180
|
-
verificationAvailable: false,
|
|
181
|
-
capabilitiesSupported: false,
|
|
182
|
-
budgetAllowsChildren: true,
|
|
183
|
-
generationCurrent: true,
|
|
184
|
-
requirementsComplete: false
|
|
185
|
-
});
|
|
186
|
-
const normalized = {
|
|
187
|
-
...cloned,
|
|
188
|
-
sideEffectPolicy: plan.sideEffectPolicy ?? "mutating",
|
|
189
|
-
taskGeneration: plan.taskGeneration ?? 0,
|
|
190
|
-
cancellationLineage: plan.cancellationLineage ?? [],
|
|
191
|
-
admission: plan.admission ?? legacyAdmission
|
|
192
|
-
};
|
|
193
|
-
return { ...normalized, id: executionPlanId(normalized) };
|
|
194
|
-
}
|
|
195
|
-
function rotateExecutionPlanGeneration(plan) {
|
|
196
|
-
const normalized = copyExecutionPlan(plan);
|
|
197
|
-
const { id: previousId, ...withoutId } = normalized;
|
|
198
|
-
const rotated = {
|
|
199
|
-
...withoutId,
|
|
200
|
-
taskGeneration: normalized.taskGeneration + 1,
|
|
201
|
-
cancellationLineage: [...normalized.cancellationLineage, previousId]
|
|
202
|
-
};
|
|
203
|
-
return { ...rotated, id: executionPlanId(rotated) };
|
|
204
|
-
}
|
|
205
|
-
function isExecutionPlan(value) {
|
|
206
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
207
|
-
const plan = value;
|
|
208
|
-
return plan.version === EXECUTION_PLAN_VERSION && (plan.mode === "audit" || plan.mode === "enforce") && Boolean(plan.agent) && typeof plan.agent?.name === "string" && ["built-in", "user", "project"].includes(String(plan.agent?.source)) && ["match", "mismatch", "unknown"].includes(String(plan.capabilityFit)) && Array.isArray(plan.missingCapabilities) && plan.missingCapabilities.every((item) => typeof item === "string") && Array.isArray(plan.requestedCapabilities) && plan.requestedCapabilities.every((item) => typeof item === "string") && Array.isArray(plan.declaredCapabilities) && plan.declaredCapabilities.every((item) => typeof item === "string") && Array.isArray(plan.missingTools) && plan.missingTools.every((item) => typeof item === "string") && Array.isArray(plan.requestedTools) && plan.requestedTools.every((item) => typeof item === "string") && (plan.effectiveTools === void 0 || Array.isArray(plan.effectiveTools) && plan.effectiveTools.every((item) => typeof item === "string")) && Array.isArray(plan.overgrantedTools) && plan.overgrantedTools.every((item) => typeof item === "string") && ["text", "structured-v1", "structured-v2"].includes(String(plan.resultFormat)) && (typeof plan.resultFormatSupported === "boolean" || plan.resultFormatSupported === "unknown") && Boolean(plan.target) && typeof plan.target?.cwd === "string" && ["current-workspace", "external"].includes(String(plan.target?.boundary)) && (plan.workspaceMode === "shared" || plan.workspaceMode === "worktree") && ["subprocess", "in-process", "rpc", "auto"].includes(String(plan.transport)) && typeof plan.id === "string" && /^[a-f0-9]{64}$/u.test(plan.id) && (plan.taskGeneration === void 0 || Number.isSafeInteger(plan.taskGeneration) && Number(plan.taskGeneration) >= 0) && (plan.cancellationLineage === void 0 || Array.isArray(plan.cancellationLineage) && plan.cancellationLineage.every((item) => typeof item === "string")) && (plan.admission === void 0 || typeof plan.admission === "object" && plan.admission.auditOnly === true && typeof plan.admission.recommendation === "string" && Array.isArray(plan.admission.reasonCodes) && plan.admission.reasonCodes.every((item) => typeof item === "string")) && (plan.sideEffectPolicy === void 0 || ["read-only", "idempotent", "mutating"].includes(String(plan.sideEffectPolicy))) && Array.isArray(plan.unsupportedGuarantees) && plan.unsupportedGuarantees.every((item) => typeof item === "string") && Array.isArray(plan.warnings) && plan.warnings.every((item) => typeof item === "string") && copyExecutionPlan(plan).id === plan.id;
|
|
209
|
-
}
|
|
210
|
-
function executionPlanId(plan) {
|
|
211
|
-
return createHash("sha256").update(JSON.stringify(plan)).digest("hex");
|
|
212
|
-
}
|
|
213
|
-
function unsupported(contract) {
|
|
214
|
-
if (!contract?.requestedAuthority) return [];
|
|
215
|
-
const authority = contract.requestedAuthority;
|
|
216
|
-
const result = [];
|
|
217
|
-
if (authority.readPaths && authority.readPaths.length > 0) result.push("read-path-scope");
|
|
218
|
-
if (authority.writePaths && authority.writePaths.length > 0) result.push("write-path-scope");
|
|
219
|
-
if (authority.network === "denied") result.push("network-denial");
|
|
220
|
-
if (authority.network === "required") result.push("network-availability");
|
|
221
|
-
if (authority.secrets === "denied") result.push("secret-denial");
|
|
222
|
-
if (authority.secrets === "required") result.push("secret-availability");
|
|
223
|
-
return result;
|
|
224
|
-
}
|
|
225
|
-
function unique(values) {
|
|
226
|
-
return [...new Set(values)];
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
export {
|
|
230
|
-
evaluateDelegationAdmission,
|
|
231
|
-
createExecutionPlan,
|
|
232
|
-
resolveContractTools,
|
|
233
|
-
acknowledgeExecutionPlan,
|
|
234
|
-
copyExecutionPlan,
|
|
235
|
-
rotateExecutionPlanGeneration,
|
|
236
|
-
isExecutionPlan
|
|
237
|
-
};
|
|
238
|
-
//# sourceMappingURL=chunk-7AAJEUSL.ts.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/admission-policy.ts", "../../src/execution-plan.ts"],
|
|
4
|
-
"sourcesContent": ["export const DELEGATION_ADMISSION_VERSION = \"pi-subagents:admission:v1\" as const;\n\nexport type DelegationAdmissionRecommendation =\n\t| \"parent-owned-direct\"\n\t| \"one-child\"\n\t| \"one-child-plus-verification\"\n\t| \"bounded-two-child\"\n\t| \"abstain-insufficient-evidence\";\n\nexport interface DelegationAdmissionInput {\n\tcontextPressure: \"low\" | \"medium\" | \"high\";\n\tindependentWorkItems: number;\n\tcoupling: \"dense\" | \"sparse\";\n\tverificationRequired: boolean;\n\tverificationAvailable: boolean;\n\tcapabilitiesSupported: boolean;\n\tbudgetAllowsChildren: boolean;\n\tgenerationCurrent: boolean;\n\trequirementsComplete: boolean;\n}\n\nexport interface DelegationAdmissionDecision {\n\tversion: typeof DELEGATION_ADMISSION_VERSION;\n\trecommendation: DelegationAdmissionRecommendation;\n\treasonCodes: string[];\n\tbenefitHypothesis: string;\n\tauditOnly: true;\n}\n\nexport function evaluateDelegationAdmission(\n\tinput: DelegationAdmissionInput,\n): DelegationAdmissionDecision {\n\tif (!input.generationCurrent)\n\t\treturn decision(\"abstain-insufficient-evidence\", [\"stale-generation\"]);\n\tif (!input.requirementsComplete) {\n\t\treturn decision(\"abstain-insufficient-evidence\", [\"requirements-incomplete\"]);\n\t}\n\tif (!input.capabilitiesSupported) {\n\t\treturn decision(\"abstain-insufficient-evidence\", [\"capability-unsupported\"]);\n\t}\n\tif (!input.budgetAllowsChildren) {\n\t\treturn decision(\"parent-owned-direct\", [\"child-budget-insufficient\"]);\n\t}\n\tif (input.independentWorkItems >= 2 && input.coupling === \"sparse\") {\n\t\treturn decision(\n\t\t\t\"bounded-two-child\",\n\t\t\t[\"declared-independent-work\"],\n\t\t\t\"parallel-critical-path-reduction\",\n\t\t);\n\t}\n\tif (input.verificationRequired) {\n\t\treturn input.verificationAvailable\n\t\t\t? decision(\n\t\t\t\t\t\"one-child-plus-verification\",\n\t\t\t\t\t[\"independent-verification-required\"],\n\t\t\t\t\t\"independent-error-detection\",\n\t\t\t\t)\n\t\t\t: decision(\"abstain-insufficient-evidence\", [\"verification-unavailable\"]);\n\t}\n\tif (input.contextPressure === \"high\") {\n\t\treturn decision(\"one-child\", [\"declared-context-pressure\"], \"context-isolation\");\n\t}\n\treturn decision(\"parent-owned-direct\", [\"delegation-benefit-not-established\"]);\n}\n\nfunction decision(\n\trecommendation: DelegationAdmissionRecommendation,\n\treasonCodes: string[],\n\tbenefitHypothesis = \"none\",\n): DelegationAdmissionDecision {\n\treturn {\n\t\tversion: DELEGATION_ADMISSION_VERSION,\n\t\trecommendation,\n\t\treasonCodes,\n\t\tbenefitHypothesis,\n\t\tauditOnly: true,\n\t};\n}\n", "import { createHash } from \"node:crypto\";\nimport {\n\ttype DelegationAdmissionDecision,\n\tevaluateDelegationAdmission,\n} from \"./admission-policy.js\";\nimport {\n\ttype AgentConfig,\n\ttype AgentSource,\n\tresolveAgentToolNames,\n\ttype SubagentThinkingLevel,\n} from \"./agents/types.js\";\nimport type { TargetPolicyAudit } from \"./cwd-policy.js\";\nimport type { DelegationContract } from \"./delegation-contract.js\";\nimport type { SubagentResultFormat } from \"./result-contract.js\";\n\nexport const EXECUTION_PLAN_VERSION = \"pi-subagents:execution-plan:v1\" as const;\nexport const EXECUTION_ACKNOWLEDGEMENT_VERSION = \"pi-subagents:acknowledgement:v1\" as const;\n\nexport type CapabilityFit = \"match\" | \"mismatch\" | \"unknown\";\nexport type ExecutionPlanTransport = \"subprocess\" | \"in-process\" | \"rpc\" | \"auto\";\n\nexport interface ExecutionPlanAgentProjection {\n\tname: string;\n\tsource: AgentSource;\n\tcapabilitiesKnown: boolean;\n}\n\nexport interface ExecutionPlan {\n\tversion: typeof EXECUTION_PLAN_VERSION;\n\tid: string;\n\tmode: \"audit\" | \"enforce\";\n\ttaskId?: string;\n\ttaskGeneration: number;\n\tcancellationLineage: string[];\n\tadmission: DelegationAdmissionDecision;\n\tagent: ExecutionPlanAgentProjection;\n\tcapabilityFit: CapabilityFit;\n\tmissingCapabilities: string[];\n\trequestedCapabilities: string[];\n\tdeclaredCapabilities: string[];\n\trequestedTools: string[];\n\teffectiveTools?: string[];\n\tmissingTools: string[];\n\tovergrantedTools: string[];\n\tresultFormat: SubagentResultFormat;\n\tsideEffectPolicy: \"read-only\" | \"idempotent\" | \"mutating\";\n\tresultFormatSupported: boolean | \"unknown\";\n\ttarget: TargetPolicyAudit;\n\tworkspaceMode: \"shared\" | \"worktree\";\n\ttransport: ExecutionPlanTransport;\n\tmodel?: string;\n\tthinkingLevel?: SubagentThinkingLevel;\n\ttimeoutMs?: number;\n\tunsupportedGuarantees: string[];\n\twarnings: string[];\n}\n\nexport interface ExecutionAcknowledgement {\n\tversion: typeof EXECUTION_ACKNOWLEDGEMENT_VERSION;\n\tstatus: \"accepted\" | \"rejected\";\n\treasonCodes: string[];\n\trecoveryActions: string[];\n}\n\nexport interface CreateExecutionPlanInput {\n\tcontract?: DelegationContract;\n\tagent: AgentConfig;\n\teffectiveTools?: string[];\n\ttarget: TargetPolicyAudit;\n\tworkspaceMode: \"shared\" | \"worktree\";\n\ttransport: ExecutionPlanTransport;\n\tresultFormat: SubagentResultFormat;\n\tmodel?: string;\n\tthinkingLevel?: SubagentThinkingLevel;\n\ttimeoutMs?: number;\n\ttaskGeneration?: number;\n\tcancellationLineage?: string[];\n}\n\nexport function createExecutionPlan(input: CreateExecutionPlanInput): ExecutionPlan {\n\tconst manifest = input.agent.capabilityManifest;\n\tconst requestedCapabilities = unique(input.contract?.requestedAuthority?.capabilities ?? []);\n\tconst declaredCapabilities = unique(manifest?.capabilities ?? []);\n\tconst missingCapabilities = requestedCapabilities.filter(\n\t\t(capability) => !declaredCapabilities.includes(capability),\n\t);\n\tconst capabilityFit: CapabilityFit = manifest\n\t\t? missingCapabilities.length > 0\n\t\t\t? \"mismatch\"\n\t\t\t: \"match\"\n\t\t: \"unknown\";\n\tconst requestedTools = unique(input.contract?.requestedAuthority?.tools ?? []);\n\tconst effectiveTools = input.effectiveTools ? unique(input.effectiveTools) : undefined;\n\tconst missingTools = requestedTools.filter((tool) => !(effectiveTools ?? []).includes(tool));\n\tconst overgrantedTools =\n\t\trequestedTools.length === 0\n\t\t\t? []\n\t\t\t: (effectiveTools ?? []).filter((tool) => !requestedTools.includes(tool));\n\tconst resultFormatSupported = manifest\n\t\t? manifest.resultFormats.includes(input.resultFormat)\n\t\t: \"unknown\";\n\tconst unsupportedGuarantees = unsupported(input.contract);\n\tconst taskGeneration = input.taskGeneration ?? 0;\n\tconst cancellationLineage = [...(input.cancellationLineage ?? [])];\n\tconst admissionRequest = input.contract?.admission;\n\tconst admission = evaluateDelegationAdmission({\n\t\tcontextPressure: admissionRequest?.contextPressure ?? \"low\",\n\t\tindependentWorkItems: admissionRequest?.independentWorkItems ?? 1,\n\t\tcoupling: admissionRequest?.coupling ?? \"dense\",\n\t\tverificationRequired: admissionRequest?.verificationRequired ?? false,\n\t\tverificationAvailable: admissionRequest?.verificationAvailable ?? false,\n\t\tcapabilitiesSupported: capabilityFit === \"match\" && missingTools.length === 0,\n\t\tbudgetAllowsChildren: admissionRequest?.budgetAllowsChildren ?? true,\n\t\tgenerationCurrent: true,\n\t\trequirementsComplete: admissionRequest?.requirementsComplete ?? false,\n\t});\n\tconst warnings: string[] = [];\n\tif (!manifest) warnings.push(\"agent-capabilities-unknown\");\n\tif (missingCapabilities.length > 0) warnings.push(\"capability-mismatch\");\n\tif (missingTools.length > 0) warnings.push(\"requested-tools-missing\");\n\tif (overgrantedTools.length > 0) warnings.push(\"tools-overgranted\");\n\tif (resultFormatSupported === false) warnings.push(\"result-format-unsupported\");\n\tif (unsupportedGuarantees.length > 0) warnings.push(\"unsupported-guarantees\");\n\tconst planWithoutId: Omit<ExecutionPlan, \"id\"> = {\n\t\tversion: EXECUTION_PLAN_VERSION,\n\t\tmode: input.contract?.enforcement ?? \"audit\",\n\t\t...(input.contract?.taskId ? { taskId: input.contract.taskId } : {}),\n\t\tagent: {\n\t\t\tname: input.agent.name,\n\t\t\tsource: input.agent.source,\n\t\t\tcapabilitiesKnown: manifest !== undefined,\n\t\t},\n\t\tcapabilityFit,\n\t\tmissingCapabilities,\n\t\trequestedCapabilities,\n\t\tdeclaredCapabilities,\n\t\trequestedTools,\n\t\t...(effectiveTools === undefined ? {} : { effectiveTools }),\n\t\tmissingTools,\n\t\tovergrantedTools,\n\t\tresultFormat: input.resultFormat,\n\t\tsideEffectPolicy: input.contract?.sideEffectPolicy ?? \"mutating\",\n\t\tresultFormatSupported,\n\t\ttarget: structuredClone(input.target),\n\t\tworkspaceMode: input.workspaceMode,\n\t\ttransport: input.transport,\n\t\t...(input.model === undefined ? {} : { model: input.model }),\n\t\t...(input.thinkingLevel === undefined ? {} : { thinkingLevel: input.thinkingLevel }),\n\t\t...(input.timeoutMs === undefined ? {} : { timeoutMs: input.timeoutMs }),\n\t\tunsupportedGuarantees,\n\t\twarnings,\n\t\ttaskGeneration,\n\t\tcancellationLineage,\n\t\tadmission,\n\t};\n\treturn { ...planWithoutId, id: executionPlanId(planWithoutId) };\n}\n\nexport function resolveContractTools(\n\tconfiguredTools: string[] | undefined,\n\tcontract: DelegationContract | undefined,\n): string[] | undefined {\n\tconst requested = contract?.requestedAuthority?.tools;\n\tif (contract?.enforcement !== \"enforce\" || requested === undefined) {\n\t\treturn configuredTools ? unique(configuredTools) : undefined;\n\t}\n\tconst availableTools = resolveAgentToolNames(configuredTools);\n\treturn unique(requested.filter((tool) => availableTools.includes(tool)));\n}\n\nexport function acknowledgeExecutionPlan(plan: ExecutionPlan): ExecutionAcknowledgement {\n\tif (plan.mode === \"audit\") {\n\t\treturn {\n\t\t\tversion: EXECUTION_ACKNOWLEDGEMENT_VERSION,\n\t\t\tstatus: \"accepted\",\n\t\t\treasonCodes: [],\n\t\t\trecoveryActions: [],\n\t\t};\n\t}\n\tconst reasonCodes: string[] = [];\n\tconst recoveryActions: string[] = [];\n\tif (plan.capabilityFit === \"unknown\") {\n\t\treasonCodes.push(\"capabilities-unknown\");\n\t\trecoveryActions.push(\"declare-capabilities\", \"reroute\");\n\t}\n\tif (plan.missingCapabilities.length > 0) {\n\t\treasonCodes.push(\"capability-mismatch\");\n\t\trecoveryActions.push(\"reroute\");\n\t}\n\tif (plan.missingTools.length > 0) {\n\t\treasonCodes.push(\"authority-missing\");\n\t\trecoveryActions.push(\"grant-authority\", \"reroute\");\n\t}\n\tif (plan.overgrantedTools.length > 0) {\n\t\treasonCodes.push(\"authority-overgranted\");\n\t\trecoveryActions.push(\"narrow-authority\");\n\t}\n\tif (plan.resultFormatSupported !== true) {\n\t\treasonCodes.push(\"result-format-unsupported\");\n\t\trecoveryActions.push(\"reroute\", \"change-result-format\");\n\t}\n\tif (plan.unsupportedGuarantees.length > 0) {\n\t\treasonCodes.push(\"unsupported-guarantee\");\n\t\trecoveryActions.push(\"repair-contract\", \"stop\");\n\t}\n\treturn {\n\t\tversion: EXECUTION_ACKNOWLEDGEMENT_VERSION,\n\t\tstatus: reasonCodes.length === 0 ? \"accepted\" : \"rejected\",\n\t\treasonCodes: unique(reasonCodes),\n\t\trecoveryActions: unique(recoveryActions),\n\t};\n}\n\nexport function copyExecutionPlan(plan: ExecutionPlan): ExecutionPlan {\n\tconst { id: _storedId, ...cloned } = structuredClone(plan);\n\tconst legacyAdmission = evaluateDelegationAdmission({\n\t\tcontextPressure: \"low\",\n\t\tindependentWorkItems: 1,\n\t\tcoupling: \"dense\",\n\t\tverificationRequired: false,\n\t\tverificationAvailable: false,\n\t\tcapabilitiesSupported: false,\n\t\tbudgetAllowsChildren: true,\n\t\tgenerationCurrent: true,\n\t\trequirementsComplete: false,\n\t});\n\tconst normalized = {\n\t\t...cloned,\n\t\tsideEffectPolicy: plan.sideEffectPolicy ?? \"mutating\",\n\t\ttaskGeneration: plan.taskGeneration ?? 0,\n\t\tcancellationLineage: plan.cancellationLineage ?? [],\n\t\tadmission: plan.admission ?? legacyAdmission,\n\t};\n\treturn { ...normalized, id: executionPlanId(normalized) };\n}\n\nexport function rotateExecutionPlanGeneration(plan: ExecutionPlan): ExecutionPlan {\n\tconst normalized = copyExecutionPlan(plan);\n\tconst { id: previousId, ...withoutId } = normalized;\n\tconst rotated = {\n\t\t...withoutId,\n\t\ttaskGeneration: normalized.taskGeneration + 1,\n\t\tcancellationLineage: [...normalized.cancellationLineage, previousId],\n\t};\n\treturn { ...rotated, id: executionPlanId(rotated) };\n}\n\nexport function isExecutionPlan(value: unknown): value is ExecutionPlan {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n\tconst plan = value as Partial<ExecutionPlan>;\n\treturn (\n\t\tplan.version === EXECUTION_PLAN_VERSION &&\n\t\t(plan.mode === \"audit\" || plan.mode === \"enforce\") &&\n\t\tBoolean(plan.agent) &&\n\t\ttypeof plan.agent?.name === \"string\" &&\n\t\t[\"built-in\", \"user\", \"project\"].includes(String(plan.agent?.source)) &&\n\t\t[\"match\", \"mismatch\", \"unknown\"].includes(String(plan.capabilityFit)) &&\n\t\tArray.isArray(plan.missingCapabilities) &&\n\t\tplan.missingCapabilities.every((item) => typeof item === \"string\") &&\n\t\tArray.isArray(plan.requestedCapabilities) &&\n\t\tplan.requestedCapabilities.every((item) => typeof item === \"string\") &&\n\t\tArray.isArray(plan.declaredCapabilities) &&\n\t\tplan.declaredCapabilities.every((item) => typeof item === \"string\") &&\n\t\tArray.isArray(plan.missingTools) &&\n\t\tplan.missingTools.every((item) => typeof item === \"string\") &&\n\t\tArray.isArray(plan.requestedTools) &&\n\t\tplan.requestedTools.every((item) => typeof item === \"string\") &&\n\t\t(plan.effectiveTools === undefined ||\n\t\t\t(Array.isArray(plan.effectiveTools) &&\n\t\t\t\tplan.effectiveTools.every((item) => typeof item === \"string\"))) &&\n\t\tArray.isArray(plan.overgrantedTools) &&\n\t\tplan.overgrantedTools.every((item) => typeof item === \"string\") &&\n\t\t[\"text\", \"structured-v1\", \"structured-v2\"].includes(String(plan.resultFormat)) &&\n\t\t(typeof plan.resultFormatSupported === \"boolean\" || plan.resultFormatSupported === \"unknown\") &&\n\t\tBoolean(plan.target) &&\n\t\ttypeof plan.target?.cwd === \"string\" &&\n\t\t[\"current-workspace\", \"external\"].includes(String(plan.target?.boundary)) &&\n\t\t(plan.workspaceMode === \"shared\" || plan.workspaceMode === \"worktree\") &&\n\t\t[\"subprocess\", \"in-process\", \"rpc\", \"auto\"].includes(String(plan.transport)) &&\n\t\ttypeof plan.id === \"string\" &&\n\t\t/^[a-f0-9]{64}$/u.test(plan.id) &&\n\t\t(plan.taskGeneration === undefined ||\n\t\t\t(Number.isSafeInteger(plan.taskGeneration) && Number(plan.taskGeneration) >= 0)) &&\n\t\t(plan.cancellationLineage === undefined ||\n\t\t\t(Array.isArray(plan.cancellationLineage) &&\n\t\t\t\tplan.cancellationLineage.every((item) => typeof item === \"string\"))) &&\n\t\t(plan.admission === undefined ||\n\t\t\t(typeof plan.admission === \"object\" &&\n\t\t\t\tplan.admission.auditOnly === true &&\n\t\t\t\ttypeof plan.admission.recommendation === \"string\" &&\n\t\t\t\tArray.isArray(plan.admission.reasonCodes) &&\n\t\t\t\tplan.admission.reasonCodes.every((item) => typeof item === \"string\"))) &&\n\t\t(plan.sideEffectPolicy === undefined ||\n\t\t\t[\"read-only\", \"idempotent\", \"mutating\"].includes(String(plan.sideEffectPolicy))) &&\n\t\tArray.isArray(plan.unsupportedGuarantees) &&\n\t\tplan.unsupportedGuarantees.every((item) => typeof item === \"string\") &&\n\t\tArray.isArray(plan.warnings) &&\n\t\tplan.warnings.every((item) => typeof item === \"string\") &&\n\t\tcopyExecutionPlan(plan as ExecutionPlan).id === plan.id\n\t);\n}\n\nfunction executionPlanId(plan: Omit<ExecutionPlan, \"id\"> | Record<string, unknown>): string {\n\treturn createHash(\"sha256\").update(JSON.stringify(plan)).digest(\"hex\");\n}\n\nfunction unsupported(contract: DelegationContract | undefined): string[] {\n\tif (!contract?.requestedAuthority) return [];\n\tconst authority = contract.requestedAuthority;\n\tconst result: string[] = [];\n\tif (authority.readPaths && authority.readPaths.length > 0) result.push(\"read-path-scope\");\n\tif (authority.writePaths && authority.writePaths.length > 0) result.push(\"write-path-scope\");\n\tif (authority.network === \"denied\") result.push(\"network-denial\");\n\tif (authority.network === \"required\") result.push(\"network-availability\");\n\tif (authority.secrets === \"denied\") result.push(\"secret-denial\");\n\tif (authority.secrets === \"required\") result.push(\"secret-availability\");\n\treturn result;\n}\n\nfunction unique(values: readonly string[]): string[] {\n\treturn [...new Set(values)];\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
// @generated by scripts/build-runtime.mjs; do not edit.
|
|
2
|
-
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
|
-
import {
|
|
4
|
-
boundedPrivateText,
|
|
5
|
-
safeTerminalLine
|
|
6
|
-
} from "./chunk-SWGQLFSD.ts";
|
|
7
|
-
|
|
8
|
-
// src/render-common.ts
|
|
9
|
-
import * as os from "node:os";
|
|
10
|
-
import {
|
|
11
|
-
keyHint
|
|
12
|
-
} from "@earendil-works/pi-coding-agent";
|
|
13
|
-
import { Text } from "@earendil-works/pi-tui";
|
|
14
|
-
var COLLAPSED_LIST_LIMIT = 5;
|
|
15
|
-
var COLLAPSED_ANSWER_LINES = 3;
|
|
16
|
-
var STATUS_PRESENTATION = {
|
|
17
|
-
starting: { icon: "\u23F3", label: "Starting", color: "warning" },
|
|
18
|
-
running: { icon: "\u23F3", label: "Running", color: "warning" },
|
|
19
|
-
completed: { icon: "\u2713", label: "Completed", color: "success" },
|
|
20
|
-
failed: { icon: "\u2717", label: "Failed", color: "error" },
|
|
21
|
-
cancelled: { icon: "\u25A0", label: "Cancelled", color: "warning" },
|
|
22
|
-
interrupted: { icon: "\u25A0", label: "Interrupted", color: "warning" },
|
|
23
|
-
idle: { icon: "\u25CB", label: "Idle", color: "muted" },
|
|
24
|
-
closed: { icon: "\u2713", label: "Closed", color: "muted" },
|
|
25
|
-
warning: { icon: "\u25D0", label: "Warning", color: "warning" }
|
|
26
|
-
};
|
|
27
|
-
function recordValue(value) {
|
|
28
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
29
|
-
}
|
|
30
|
-
function recordList(value) {
|
|
31
|
-
return Array.isArray(value) ? value.flatMap((item) => {
|
|
32
|
-
const record = recordValue(item);
|
|
33
|
-
return record ? [record] : [];
|
|
34
|
-
}) : [];
|
|
35
|
-
}
|
|
36
|
-
function stringValue(value, fallback = "") {
|
|
37
|
-
return typeof value === "string" ? value : fallback;
|
|
38
|
-
}
|
|
39
|
-
function numberValue(value, fallback = 0) {
|
|
40
|
-
return typeof value === "number" && Number.isFinite(value) ? value : fallback;
|
|
41
|
-
}
|
|
42
|
-
function booleanValue(value) {
|
|
43
|
-
return value === true;
|
|
44
|
-
}
|
|
45
|
-
function safeLine(value, fallback = "...", maxBytes = 2 * 1024) {
|
|
46
|
-
if (typeof value !== "string" || !value.trim()) return fallback;
|
|
47
|
-
return safeTerminalLine(value, maxBytes) || fallback;
|
|
48
|
-
}
|
|
49
|
-
function safeBlock(value, fallback = "", maxBytes = 50 * 1024) {
|
|
50
|
-
if (typeof value !== "string" || !value) return fallback;
|
|
51
|
-
return boundedPrivateText(value, maxBytes);
|
|
52
|
-
}
|
|
53
|
-
function previewLines(value, maxLines = COLLAPSED_ANSWER_LINES) {
|
|
54
|
-
const text = safeBlock(value, "", 8 * 1024).trim();
|
|
55
|
-
return text.split("\n").slice(0, maxLines).join("\n");
|
|
56
|
-
}
|
|
57
|
-
function textResult(result) {
|
|
58
|
-
return result.content.flatMap((part) => part.type === "text" ? [part.text] : []).join("\n").trim();
|
|
59
|
-
}
|
|
60
|
-
function toolHeader(theme, toolName, primary, metadata = []) {
|
|
61
|
-
let text = theme.fg("toolTitle", theme.bold(`${toolName} `));
|
|
62
|
-
if (primary !== void 0) text += theme.fg("accent", safeLine(primary));
|
|
63
|
-
const safeMetadata = metadata.filter(Boolean).map((item) => safeLine(item, "", 512));
|
|
64
|
-
if (safeMetadata.length > 0) text += theme.fg("muted", ` \xB7 ${safeMetadata.join(" \xB7 ")}`);
|
|
65
|
-
return text.trimEnd();
|
|
66
|
-
}
|
|
67
|
-
function statusBadge(theme, status, suffix) {
|
|
68
|
-
const presentation = STATUS_PRESENTATION[status];
|
|
69
|
-
const label = suffix ? `${presentation.label} \xB7 ${safeLine(suffix, "", 2 * 1024)}` : presentation.label;
|
|
70
|
-
return `${theme.fg(presentation.color, presentation.icon)} ${theme.fg(presentation.color, label)}`;
|
|
71
|
-
}
|
|
72
|
-
function renderFallbackResult(result, options, theme, isError = false) {
|
|
73
|
-
const status = isError ? "failed" : options.isPartial ? "running" : "completed";
|
|
74
|
-
const content = safeBlock(textResult(result), "(no output)", 8 * 1024);
|
|
75
|
-
return new Text(`${statusBadge(theme, status)}
|
|
76
|
-
${theme.fg("toolOutput", content)}`, 0, 0);
|
|
77
|
-
}
|
|
78
|
-
function expansionHint() {
|
|
79
|
-
return keyHint("app.tools.expand", "to expand");
|
|
80
|
-
}
|
|
81
|
-
function projectRenderActivity(value) {
|
|
82
|
-
if (!Array.isArray(value)) return [];
|
|
83
|
-
const items = [];
|
|
84
|
-
for (const item of value) {
|
|
85
|
-
const record = recordValue(item);
|
|
86
|
-
if (!record) continue;
|
|
87
|
-
if (record.type === "text" && typeof record.text === "string") {
|
|
88
|
-
items.push({ type: "text", text: safeBlock(record.text, "", 1024) });
|
|
89
|
-
continue;
|
|
90
|
-
}
|
|
91
|
-
if (record.type === "toolCall" && typeof record.name === "string") {
|
|
92
|
-
items.push({
|
|
93
|
-
type: "toolCall",
|
|
94
|
-
name: safeLine(record.name, "tool", 256),
|
|
95
|
-
args: recordValue(record.args) ?? {}
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return items;
|
|
100
|
-
}
|
|
101
|
-
function renderActivityLines(items, theme, limit, total = items.length) {
|
|
102
|
-
const selected = limit === void 0 ? items : items.slice(-limit);
|
|
103
|
-
const lines = [];
|
|
104
|
-
const skipped = Math.max(0, total - selected.length);
|
|
105
|
-
if (skipped > 0) lines.push(theme.fg("muted", `\u2026 ${skipped} earlier activities`));
|
|
106
|
-
for (const item of selected) {
|
|
107
|
-
if (item.type === "text") {
|
|
108
|
-
const text = safeBlock(item.text, "", 1024).trim();
|
|
109
|
-
if (text) lines.push(theme.fg("toolOutput", text));
|
|
110
|
-
} else {
|
|
111
|
-
lines.push(
|
|
112
|
-
theme.fg("muted", "\u2192 ") + formatToolActivity(item.name ?? "tool", item.args ?? {}, theme.fg.bind(theme))
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return lines.join("\n");
|
|
117
|
-
}
|
|
118
|
-
function formatToolActivity(toolNameValue, argsValue, themeFg) {
|
|
119
|
-
const toolName = safeLine(toolNameValue, "tool", 256);
|
|
120
|
-
const args = recordValue(argsValue) ?? {};
|
|
121
|
-
const shortenPath = (value, fallback = ".") => {
|
|
122
|
-
const filePath = safeLine(value, fallback, 2 * 1024);
|
|
123
|
-
const home = os.homedir();
|
|
124
|
-
return filePath.startsWith(home) ? `~${filePath.slice(home.length)}` : filePath;
|
|
125
|
-
};
|
|
126
|
-
switch (toolName) {
|
|
127
|
-
case "bash": {
|
|
128
|
-
const command = safeLine(args.command, "...", 512);
|
|
129
|
-
return themeFg("muted", "$ ") + themeFg("toolOutput", command);
|
|
130
|
-
}
|
|
131
|
-
case "read": {
|
|
132
|
-
const filePath = shortenPath(args.file_path ?? args.path, "...");
|
|
133
|
-
const offset = typeof args.offset === "number" ? args.offset : void 0;
|
|
134
|
-
const limit = typeof args.limit === "number" ? args.limit : void 0;
|
|
135
|
-
let text = themeFg("accent", filePath);
|
|
136
|
-
if (offset !== void 0 || limit !== void 0) {
|
|
137
|
-
const startLine = offset ?? 1;
|
|
138
|
-
const endLine = limit !== void 0 ? startLine + limit - 1 : "";
|
|
139
|
-
text += themeFg("warning", `:${startLine}${endLine ? `-${endLine}` : ""}`);
|
|
140
|
-
}
|
|
141
|
-
return themeFg("muted", "read ") + text;
|
|
142
|
-
}
|
|
143
|
-
case "write": {
|
|
144
|
-
const filePath = shortenPath(args.file_path ?? args.path, "...");
|
|
145
|
-
const content = safeBlock(args.content, "", 2 * 1024);
|
|
146
|
-
const lines = content ? content.split("\n").length : 0;
|
|
147
|
-
return themeFg("muted", "write ") + themeFg("accent", filePath) + (lines > 1 ? themeFg("dim", ` (${lines} lines)`) : "");
|
|
148
|
-
}
|
|
149
|
-
case "edit":
|
|
150
|
-
return themeFg("muted", "edit ") + themeFg("accent", shortenPath(args.file_path ?? args.path, "..."));
|
|
151
|
-
case "ls":
|
|
152
|
-
return themeFg("muted", "ls ") + themeFg("accent", shortenPath(args.path));
|
|
153
|
-
case "find":
|
|
154
|
-
return themeFg("muted", "find ") + themeFg("accent", safeLine(args.pattern, "*", 512)) + themeFg("dim", ` in ${shortenPath(args.path)}`);
|
|
155
|
-
case "grep":
|
|
156
|
-
return themeFg("muted", "grep ") + themeFg("accent", `/${safeLine(args.pattern, "", 512)}/`) + themeFg("dim", ` in ${shortenPath(args.path)}`);
|
|
157
|
-
default: {
|
|
158
|
-
let serialized = "{}";
|
|
159
|
-
try {
|
|
160
|
-
serialized = JSON.stringify(args);
|
|
161
|
-
} catch {
|
|
162
|
-
serialized = "{\u2026}";
|
|
163
|
-
}
|
|
164
|
-
return themeFg("accent", toolName) + themeFg("dim", ` ${safeLine(serialized, "{}", 512)}`);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
export {
|
|
170
|
-
COLLAPSED_LIST_LIMIT,
|
|
171
|
-
COLLAPSED_ANSWER_LINES,
|
|
172
|
-
recordValue,
|
|
173
|
-
recordList,
|
|
174
|
-
stringValue,
|
|
175
|
-
numberValue,
|
|
176
|
-
booleanValue,
|
|
177
|
-
safeLine,
|
|
178
|
-
safeBlock,
|
|
179
|
-
previewLines,
|
|
180
|
-
textResult,
|
|
181
|
-
toolHeader,
|
|
182
|
-
statusBadge,
|
|
183
|
-
renderFallbackResult,
|
|
184
|
-
expansionHint,
|
|
185
|
-
projectRenderActivity,
|
|
186
|
-
renderActivityLines,
|
|
187
|
-
formatToolActivity
|
|
188
|
-
};
|
|
189
|
-
//# sourceMappingURL=chunk-BFK2Z4ZF.ts.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/render-common.ts"],
|
|
4
|
-
"sourcesContent": ["import * as os from \"node:os\";\nimport type { AgentToolResult } from \"@earendil-works/pi-agent-core\";\nimport {\n\tkeyHint,\n\ttype Theme,\n\ttype ThemeColor,\n\ttype ToolRenderResultOptions,\n} from \"@earendil-works/pi-coding-agent\";\nimport { Text } from \"@earendil-works/pi-tui\";\nimport { boundedPrivateText, safeTerminalLine } from \"./safe-text.js\";\n\nexport const COLLAPSED_LIST_LIMIT = 5;\nexport const COLLAPSED_ANSWER_LINES = 3;\n\nexport interface ToolRendererContext<TArgs> {\n\targs: TArgs;\n\tisError: boolean;\n}\n\nexport type RenderStatus =\n\t| \"starting\"\n\t| \"running\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"cancelled\"\n\t| \"interrupted\"\n\t| \"idle\"\n\t| \"closed\"\n\t| \"warning\";\n\nconst STATUS_PRESENTATION: Record<\n\tRenderStatus,\n\t{ icon: string; label: string; color: ThemeColor }\n> = {\n\tstarting: { icon: \"\u23F3\", label: \"Starting\", color: \"warning\" },\n\trunning: { icon: \"\u23F3\", label: \"Running\", color: \"warning\" },\n\tcompleted: { icon: \"\u2713\", label: \"Completed\", color: \"success\" },\n\tfailed: { icon: \"\u2717\", label: \"Failed\", color: \"error\" },\n\tcancelled: { icon: \"\u25A0\", label: \"Cancelled\", color: \"warning\" },\n\tinterrupted: { icon: \"\u25A0\", label: \"Interrupted\", color: \"warning\" },\n\tidle: { icon: \"\u25CB\", label: \"Idle\", color: \"muted\" },\n\tclosed: { icon: \"\u2713\", label: \"Closed\", color: \"muted\" },\n\twarning: { icon: \"\u25D0\", label: \"Warning\", color: \"warning\" },\n};\n\nexport function recordValue(value: unknown): Record<string, unknown> | undefined {\n\treturn value !== null && typeof value === \"object\" && !Array.isArray(value)\n\t\t? (value as Record<string, unknown>)\n\t\t: undefined;\n}\n\nexport function recordList(value: unknown): Record<string, unknown>[] {\n\treturn Array.isArray(value)\n\t\t? value.flatMap((item) => {\n\t\t\t\tconst record = recordValue(item);\n\t\t\t\treturn record ? [record] : [];\n\t\t\t})\n\t\t: [];\n}\n\nexport function stringValue(value: unknown, fallback = \"\"): string {\n\treturn typeof value === \"string\" ? value : fallback;\n}\n\nexport function numberValue(value: unknown, fallback = 0): number {\n\treturn typeof value === \"number\" && Number.isFinite(value) ? value : fallback;\n}\n\nexport function booleanValue(value: unknown): boolean {\n\treturn value === true;\n}\n\nexport function safeLine(value: unknown, fallback = \"...\", maxBytes = 2 * 1024): string {\n\tif (typeof value !== \"string\" || !value.trim()) return fallback;\n\treturn safeTerminalLine(value, maxBytes) || fallback;\n}\n\nexport function safeBlock(value: unknown, fallback = \"\", maxBytes = 50 * 1024): string {\n\tif (typeof value !== \"string\" || !value) return fallback;\n\treturn boundedPrivateText(value, maxBytes);\n}\n\nexport function previewLines(value: unknown, maxLines = COLLAPSED_ANSWER_LINES): string {\n\tconst text = safeBlock(value, \"\", 8 * 1024).trim();\n\treturn text.split(\"\\n\").slice(0, maxLines).join(\"\\n\");\n}\n\nexport function textResult(result: AgentToolResult<unknown>): string {\n\treturn result.content\n\t\t.flatMap((part) => (part.type === \"text\" ? [part.text] : []))\n\t\t.join(\"\\n\")\n\t\t.trim();\n}\n\nexport function toolHeader(\n\ttheme: Theme,\n\ttoolName: string,\n\tprimary?: unknown,\n\tmetadata: readonly string[] = [],\n): string {\n\tlet text = theme.fg(\"toolTitle\", theme.bold(`${toolName} `));\n\tif (primary !== undefined) text += theme.fg(\"accent\", safeLine(primary));\n\tconst safeMetadata = metadata.filter(Boolean).map((item) => safeLine(item, \"\", 512));\n\tif (safeMetadata.length > 0) text += theme.fg(\"muted\", ` \u00B7 ${safeMetadata.join(\" \u00B7 \")}`);\n\treturn text.trimEnd();\n}\n\nexport function statusBadge(theme: Theme, status: RenderStatus, suffix?: string): string {\n\tconst presentation = STATUS_PRESENTATION[status];\n\tconst label = suffix\n\t\t? `${presentation.label} \u00B7 ${safeLine(suffix, \"\", 2 * 1024)}`\n\t\t: presentation.label;\n\treturn `${theme.fg(presentation.color, presentation.icon)} ${theme.fg(presentation.color, label)}`;\n}\n\nexport function renderFallbackResult(\n\tresult: AgentToolResult<unknown>,\n\toptions: ToolRenderResultOptions,\n\ttheme: Theme,\n\tisError = false,\n) {\n\tconst status: RenderStatus = isError ? \"failed\" : options.isPartial ? \"running\" : \"completed\";\n\tconst content = safeBlock(textResult(result), \"(no output)\", 8 * 1024);\n\treturn new Text(`${statusBadge(theme, status)}\\n${theme.fg(\"toolOutput\", content)}`, 0, 0);\n}\n\nexport function expansionHint(): string {\n\treturn keyHint(\"app.tools.expand\", \"to expand\");\n}\n\nexport interface RenderActivityItem {\n\ttype: \"text\" | \"toolCall\";\n\ttext?: string;\n\tname?: string;\n\targs?: Record<string, unknown>;\n}\n\nexport function projectRenderActivity(value: unknown): RenderActivityItem[] {\n\tif (!Array.isArray(value)) return [];\n\tconst items: RenderActivityItem[] = [];\n\tfor (const item of value) {\n\t\tconst record = recordValue(item);\n\t\tif (!record) continue;\n\t\tif (record.type === \"text\" && typeof record.text === \"string\") {\n\t\t\titems.push({ type: \"text\", text: safeBlock(record.text, \"\", 1024) });\n\t\t\tcontinue;\n\t\t}\n\t\tif (record.type === \"toolCall\" && typeof record.name === \"string\") {\n\t\t\titems.push({\n\t\t\t\ttype: \"toolCall\",\n\t\t\t\tname: safeLine(record.name, \"tool\", 256),\n\t\t\t\targs: recordValue(record.args) ?? {},\n\t\t\t});\n\t\t}\n\t}\n\treturn items;\n}\n\nexport function renderActivityLines(\n\titems: readonly RenderActivityItem[],\n\ttheme: Theme,\n\tlimit?: number,\n\ttotal = items.length,\n): string {\n\tconst selected = limit === undefined ? items : items.slice(-limit);\n\tconst lines: string[] = [];\n\tconst skipped = Math.max(0, total - selected.length);\n\tif (skipped > 0) lines.push(theme.fg(\"muted\", `\u2026 ${skipped} earlier activities`));\n\tfor (const item of selected) {\n\t\tif (item.type === \"text\") {\n\t\t\tconst text = safeBlock(item.text, \"\", 1024).trim();\n\t\t\tif (text) lines.push(theme.fg(\"toolOutput\", text));\n\t\t} else {\n\t\t\tlines.push(\n\t\t\t\ttheme.fg(\"muted\", \"\u2192 \") +\n\t\t\t\t\tformatToolActivity(item.name ?? \"tool\", item.args ?? {}, theme.fg.bind(theme)),\n\t\t\t);\n\t\t}\n\t}\n\treturn lines.join(\"\\n\");\n}\n\nexport function formatToolActivity(\n\ttoolNameValue: unknown,\n\targsValue: unknown,\n\tthemeFg: (color: ThemeColor, text: string) => string,\n): string {\n\tconst toolName = safeLine(toolNameValue, \"tool\", 256);\n\tconst args = recordValue(argsValue) ?? {};\n\tconst shortenPath = (value: unknown, fallback = \".\") => {\n\t\tconst filePath = safeLine(value, fallback, 2 * 1024);\n\t\tconst home = os.homedir();\n\t\treturn filePath.startsWith(home) ? `~${filePath.slice(home.length)}` : filePath;\n\t};\n\n\tswitch (toolName) {\n\t\tcase \"bash\": {\n\t\t\tconst command = safeLine(args.command, \"...\", 512);\n\t\t\treturn themeFg(\"muted\", \"$ \") + themeFg(\"toolOutput\", command);\n\t\t}\n\t\tcase \"read\": {\n\t\t\tconst filePath = shortenPath(args.file_path ?? args.path, \"...\");\n\t\t\tconst offset = typeof args.offset === \"number\" ? args.offset : undefined;\n\t\t\tconst limit = typeof args.limit === \"number\" ? args.limit : undefined;\n\t\t\tlet text = themeFg(\"accent\", filePath);\n\t\t\tif (offset !== undefined || limit !== undefined) {\n\t\t\t\tconst startLine = offset ?? 1;\n\t\t\t\tconst endLine = limit !== undefined ? startLine + limit - 1 : \"\";\n\t\t\t\ttext += themeFg(\"warning\", `:${startLine}${endLine ? `-${endLine}` : \"\"}`);\n\t\t\t}\n\t\t\treturn themeFg(\"muted\", \"read \") + text;\n\t\t}\n\t\tcase \"write\": {\n\t\t\tconst filePath = shortenPath(args.file_path ?? args.path, \"...\");\n\t\t\tconst content = safeBlock(args.content, \"\", 2 * 1024);\n\t\t\tconst lines = content ? content.split(\"\\n\").length : 0;\n\t\t\treturn (\n\t\t\t\tthemeFg(\"muted\", \"write \") +\n\t\t\t\tthemeFg(\"accent\", filePath) +\n\t\t\t\t(lines > 1 ? themeFg(\"dim\", ` (${lines} lines)`) : \"\")\n\t\t\t);\n\t\t}\n\t\tcase \"edit\":\n\t\t\treturn (\n\t\t\t\tthemeFg(\"muted\", \"edit \") +\n\t\t\t\tthemeFg(\"accent\", shortenPath(args.file_path ?? args.path, \"...\"))\n\t\t\t);\n\t\tcase \"ls\":\n\t\t\treturn themeFg(\"muted\", \"ls \") + themeFg(\"accent\", shortenPath(args.path));\n\t\tcase \"find\":\n\t\t\treturn (\n\t\t\t\tthemeFg(\"muted\", \"find \") +\n\t\t\t\tthemeFg(\"accent\", safeLine(args.pattern, \"*\", 512)) +\n\t\t\t\tthemeFg(\"dim\", ` in ${shortenPath(args.path)}`)\n\t\t\t);\n\t\tcase \"grep\":\n\t\t\treturn (\n\t\t\t\tthemeFg(\"muted\", \"grep \") +\n\t\t\t\tthemeFg(\"accent\", `/${safeLine(args.pattern, \"\", 512)}/`) +\n\t\t\t\tthemeFg(\"dim\", ` in ${shortenPath(args.path)}`)\n\t\t\t);\n\t\tdefault: {\n\t\t\tlet serialized = \"{}\";\n\t\t\ttry {\n\t\t\t\tserialized = JSON.stringify(args);\n\t\t\t} catch {\n\t\t\t\tserialized = \"{\u2026}\";\n\t\t\t}\n\t\t\treturn themeFg(\"accent\", toolName) + themeFg(\"dim\", ` ${safeLine(serialized, \"{}\", 512)}`);\n\t\t}\n\t}\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|