@caupulican/pi-adaptative 0.93.2 → 0.93.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/bundled-resources/skills/worker-profile-writer/SKILL.md +6 -6
- package/dist/cli/args.js +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session-contracts.d.ts +2 -2
- package/dist/core/agent-session-contracts.d.ts.map +1 -1
- package/dist/core/agent-session-contracts.js.map +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +16 -11
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/autonomy/approval-gate.d.ts +1 -0
- package/dist/core/autonomy/approval-gate.d.ts.map +1 -1
- package/dist/core/autonomy/approval-gate.js +4 -1
- package/dist/core/autonomy/approval-gate.js.map +1 -1
- package/dist/core/autonomy/composite-tool-gate.d.ts +13 -0
- package/dist/core/autonomy/composite-tool-gate.d.ts.map +1 -0
- package/dist/core/autonomy/composite-tool-gate.js +44 -0
- package/dist/core/autonomy/composite-tool-gate.js.map +1 -0
- package/dist/core/autonomy/envelope-enforcement.d.ts +2 -0
- package/dist/core/autonomy/envelope-enforcement.d.ts.map +1 -1
- package/dist/core/autonomy/envelope-enforcement.js +48 -7
- package/dist/core/autonomy/envelope-enforcement.js.map +1 -1
- package/dist/core/autonomy/gates.d.ts.map +1 -1
- package/dist/core/autonomy/gates.js +48 -76
- package/dist/core/autonomy/gates.js.map +1 -1
- package/dist/core/autonomy/path-scope.d.ts.map +1 -1
- package/dist/core/autonomy/path-scope.js +7 -7
- package/dist/core/autonomy/path-scope.js.map +1 -1
- package/dist/core/autonomy/subagent-prompt.d.ts +1 -1
- package/dist/core/autonomy/subagent-prompt.js.map +1 -1
- package/dist/core/background-tool-task-controller.d.ts +2 -0
- package/dist/core/background-tool-task-controller.d.ts.map +1 -1
- package/dist/core/background-tool-task-controller.js +13 -5
- package/dist/core/background-tool-task-controller.js.map +1 -1
- package/dist/core/compaction-controller.d.ts +3 -0
- package/dist/core/compaction-controller.d.ts.map +1 -1
- package/dist/core/compaction-controller.js +132 -97
- package/dist/core/compaction-controller.js.map +1 -1
- package/dist/core/cost-guard.js +1 -1
- package/dist/core/cost-guard.js.map +1 -1
- package/dist/core/delegation/session-root-mailbox.d.ts.map +1 -1
- package/dist/core/delegation/session-root-mailbox.js +14 -1
- package/dist/core/delegation/session-root-mailbox.js.map +1 -1
- package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-agent-control-coordinator.js +6 -9
- package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
- package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
- package/dist/core/delegation/worker-attempt-executor.js +7 -5
- package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
- package/dist/core/delegation/worker-authority-resolver.d.ts.map +1 -1
- package/dist/core/delegation/worker-authority-resolver.js +3 -2
- package/dist/core/delegation/worker-authority-resolver.js.map +1 -1
- package/dist/core/delegation/worker-delegation-request.d.ts +5 -2
- package/dist/core/delegation/worker-delegation-request.d.ts.map +1 -1
- package/dist/core/delegation/worker-delegation-request.js +1 -1
- package/dist/core/delegation/worker-delegation-request.js.map +1 -1
- package/dist/core/delegation/worker-execution-policy.d.ts.map +1 -1
- package/dist/core/delegation/worker-execution-policy.js +10 -8
- package/dist/core/delegation/worker-execution-policy.js.map +1 -1
- package/dist/core/foreground-recovery-controller.d.ts +2 -0
- package/dist/core/foreground-recovery-controller.d.ts.map +1 -1
- package/dist/core/foreground-recovery-controller.js +18 -9
- package/dist/core/foreground-recovery-controller.js.map +1 -1
- package/dist/core/goal-loop-controller.d.ts.map +1 -1
- package/dist/core/goal-loop-controller.js +3 -5
- package/dist/core/goal-loop-controller.js.map +1 -1
- package/dist/core/goals/goal-auto-continue-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-auto-continue-controller.js +6 -0
- package/dist/core/goals/goal-auto-continue-controller.js.map +1 -1
- package/dist/core/goals/goal-session-controller.js +1 -1
- package/dist/core/goals/goal-session-controller.js.map +1 -1
- package/dist/core/goals/goal-state.d.ts.map +1 -1
- package/dist/core/goals/goal-state.js +1 -0
- package/dist/core/goals/goal-state.js.map +1 -1
- package/dist/core/goals/goal-tool-core.d.ts +2 -0
- package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
- package/dist/core/goals/goal-tool-core.js +1 -1
- package/dist/core/goals/goal-tool-core.js.map +1 -1
- package/dist/core/model-router-controller.js +2 -2
- package/dist/core/model-router-controller.js.map +1 -1
- package/dist/core/orchestration/capability-gateway.d.ts.map +1 -1
- package/dist/core/orchestration/capability-gateway.js +32 -9
- package/dist/core/orchestration/capability-gateway.js.map +1 -1
- package/dist/core/orchestration/lane-tool-manifests.js +5 -5
- package/dist/core/orchestration/lane-tool-manifests.js.map +1 -1
- package/dist/core/orchestration/policy-compiler.d.ts.map +1 -1
- package/dist/core/orchestration/policy-compiler.js +7 -0
- package/dist/core/orchestration/policy-compiler.js.map +1 -1
- package/dist/core/orchestration/profile-registry.js +2 -2
- package/dist/core/orchestration/profile-registry.js.map +1 -1
- package/dist/core/orchestration/risk-budget.d.ts +0 -10
- package/dist/core/orchestration/risk-budget.d.ts.map +1 -1
- package/dist/core/orchestration/risk-budget.js +0 -14
- package/dist/core/orchestration/risk-budget.js.map +1 -1
- package/dist/core/pipelines/active-context.d.ts +16 -0
- package/dist/core/pipelines/active-context.d.ts.map +1 -0
- package/dist/core/pipelines/active-context.js +29 -0
- package/dist/core/pipelines/active-context.js.map +1 -0
- package/dist/core/pipelines/context.d.ts +1 -1
- package/dist/core/pipelines/context.d.ts.map +1 -1
- package/dist/core/pipelines/context.js +40 -31
- package/dist/core/pipelines/context.js.map +1 -1
- package/dist/core/pipelines/discover.d.ts +5 -1
- package/dist/core/pipelines/discover.d.ts.map +1 -1
- package/dist/core/pipelines/discover.js +91 -33
- package/dist/core/pipelines/discover.js.map +1 -1
- package/dist/core/pipelines/increment.d.ts +0 -2
- package/dist/core/pipelines/increment.d.ts.map +1 -1
- package/dist/core/pipelines/increment.js +35 -13
- package/dist/core/pipelines/increment.js.map +1 -1
- package/dist/core/pipelines/index.d.ts +4 -3
- package/dist/core/pipelines/index.d.ts.map +1 -1
- package/dist/core/pipelines/index.js +4 -3
- package/dist/core/pipelines/index.js.map +1 -1
- package/dist/core/pipelines/run-state.d.ts +8 -0
- package/dist/core/pipelines/run-state.d.ts.map +1 -1
- package/dist/core/pipelines/run-state.js +172 -38
- package/dist/core/pipelines/run-state.js.map +1 -1
- package/dist/core/pipelines/types.d.ts +2 -0
- package/dist/core/pipelines/types.d.ts.map +1 -1
- package/dist/core/pipelines/types.js +21 -4
- package/dist/core/pipelines/types.js.map +1 -1
- package/dist/core/provider-prompt-contracts.d.ts +1 -0
- package/dist/core/provider-prompt-contracts.d.ts.map +1 -1
- package/dist/core/provider-prompt-contracts.js +6 -5
- package/dist/core/provider-prompt-contracts.js.map +1 -1
- package/dist/core/reflection-controller.js +1 -1
- package/dist/core/reflection-controller.js.map +1 -1
- package/dist/core/runtime-builder.d.ts +2 -1
- package/dist/core/runtime-builder.d.ts.map +1 -1
- package/dist/core/runtime-builder.js +46 -10
- package/dist/core/runtime-builder.js.map +1 -1
- package/dist/core/settings-manager.d.ts +5 -6
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +8 -13
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt-builder.d.ts +2 -4
- package/dist/core/system-prompt-builder.d.ts.map +1 -1
- package/dist/core/system-prompt-builder.js +35 -11
- package/dist/core/system-prompt-builder.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +6 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tasks/task-projection.d.ts +2 -0
- package/dist/core/tasks/task-projection.d.ts.map +1 -1
- package/dist/core/tasks/task-projection.js +2 -0
- package/dist/core/tasks/task-projection.js.map +1 -1
- package/dist/core/tasks/task-state.d.ts +10 -0
- package/dist/core/tasks/task-state.d.ts.map +1 -1
- package/dist/core/tasks/task-state.js +43 -2
- package/dist/core/tasks/task-state.js.map +1 -1
- package/dist/core/tool-capability-policy.d.ts +13 -3
- package/dist/core/tool-capability-policy.d.ts.map +1 -1
- package/dist/core/tool-capability-policy.js +136 -28
- package/dist/core/tool-capability-policy.js.map +1 -1
- package/dist/core/tools/delegate.d.ts +0 -16
- package/dist/core/tools/delegate.d.ts.map +1 -1
- package/dist/core/tools/delegate.js +21 -11
- package/dist/core/tools/delegate.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js +45 -7
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +5 -1
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/goal.d.ts.map +1 -1
- package/dist/core/tools/goal.js +17 -1
- package/dist/core/tools/goal.js.map +1 -1
- package/dist/core/tools/orchestration-panel.d.ts.map +1 -1
- package/dist/core/tools/orchestration-panel.js +1 -0
- package/dist/core/tools/orchestration-panel.js.map +1 -1
- package/dist/core/tools/persistent-process-coordinator.d.ts.map +1 -1
- package/dist/core/tools/persistent-process-coordinator.js +12 -7
- package/dist/core/tools/persistent-process-coordinator.js.map +1 -1
- package/dist/core/tools/pipeline.d.ts +1 -0
- package/dist/core/tools/pipeline.d.ts.map +1 -1
- package/dist/core/tools/pipeline.js +95 -44
- package/dist/core/tools/pipeline.js.map +1 -1
- package/dist/core/tools/profile-writer.d.ts +0 -9
- package/dist/core/tools/profile-writer.d.ts.map +1 -1
- package/dist/core/tools/profile-writer.js +0 -3
- package/dist/core/tools/profile-writer.js.map +1 -1
- package/dist/core/tools/secret-store.d.ts.map +1 -1
- package/dist/core/tools/secret-store.js +2 -1
- package/dist/core/tools/secret-store.js.map +1 -1
- package/dist/core/tools/shell-session.d.ts.map +1 -1
- package/dist/core/tools/shell-session.js +6 -1
- package/dist/core/tools/shell-session.js.map +1 -1
- package/dist/core/tools/task-steps.d.ts +10 -0
- package/dist/core/tools/task-steps.d.ts.map +1 -1
- package/dist/core/tools/task-steps.js +70 -29
- package/dist/core/tools/task-steps.js.map +1 -1
- package/dist/core/tools/windows-shell-engine.d.ts.map +1 -1
- package/dist/core/tools/windows-shell-engine.js +6 -1
- package/dist/core/tools/windows-shell-engine.js.map +1 -1
- package/dist/core/util/bounded-file.d.ts +8 -0
- package/dist/core/util/bounded-file.d.ts.map +1 -1
- package/dist/core/util/bounded-file.js +81 -16
- package/dist/core/util/bounded-file.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +7 -16
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +2 -11
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/local-model-commands.d.ts.map +1 -1
- package/dist/modes/interactive/local-model-commands.js +1 -10
- package/dist/modes/interactive/local-model-commands.js.map +1 -1
- package/dist/modes/interactive/thinking-level-descriptions.d.ts +4 -0
- package/dist/modes/interactive/thinking-level-descriptions.d.ts.map +1 -0
- package/dist/modes/interactive/thinking-level-descriptions.js +12 -0
- package/dist/modes/interactive/thinking-level-descriptions.js.map +1 -0
- package/docs/resources.md +1 -1
- package/docs/settings.md +7 -5
- package/docs/worker-profiles.md +3 -3
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +12 -12
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-capability-policy.js","sourceRoot":"","sources":["../../src/core/tool-capability-policy.ts"],"names":[],"mappings":"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","sourcesContent":["import type { HarnessCapability } from \"./capability-contract.ts\";\nimport { GOAL_LIFECYCLE_TOOL_NAMES } from \"./goals/goal-tool-names.ts\";\nimport type { CapabilityEnforcementKind, OrchestrationProfile } from \"./orchestration/contracts.ts\";\n\nexport interface ToolCapabilityPolicy {\n\tcapabilityCandidates: readonly HarnessCapability[];\n\tenforcement: CapabilityEnforcementKind;\n}\n\nfunction policy(\n\tcapabilityCandidates: readonly HarnessCapability[],\n\tenforcement: CapabilityEnforcementKind,\n): ToolCapabilityPolicy {\n\treturn Object.freeze({\n\t\tcapabilityCandidates: Object.freeze([...capabilityCandidates]),\n\t\tenforcement,\n\t});\n}\n\nconst READ_POLICY = policy([\"filesystem.read\", \"worktree.read\"], \"path-scope\");\nconst WRITE_POLICY = policy([\"filesystem.write\", \"worktree.mutate\"], \"path-scope\");\nconst PROCESS_POLICY = policy([\"process.exec\", \"tests.execute\"], \"process-launcher\");\nconst NETWORK_POLICY = policy([\"network.http\", \"service.mcp\"], \"service-proxy\");\nconst DELEGATE_POLICY = policy([\"workflow.delegate\"], \"control-plane\");\n\nconst TOOL_CAPABILITY_POLICIES = new Map<string, ToolCapabilityPolicy>([\n\t...[\"read\", \"ls\", \"grep\", \"find\"].map((toolName) => [toolName, READ_POLICY] as const),\n\t...[\"write\", \"edit\", \"edit-diff\"].map((toolName) => [toolName, WRITE_POLICY] as const),\n\t...[\"bash\", \"python\", \"powershell\", \"shell\", \"run_toolkit_script\", \"run_process\"].map(\n\t\t(toolName) => [toolName, PROCESS_POLICY] as const,\n\t),\n\t...[\"fetch\", \"web_search\"].map((toolName) => [toolName, NETWORK_POLICY] as const),\n\t[\"skill\", policy([\"skill.read\"], \"path-scope\")],\n\t[\"skill_audit\", policy([\"skill.read\"], \"path-scope\")],\n\t[\"skillify\", policy([\"skill.write\"], \"path-scope\")],\n\t[\"extensionify\", policy([\"source.write\"], \"path-scope\")],\n\t...[\"goal\", ...GOAL_LIFECYCLE_TOOL_NAMES].map(\n\t\t(toolName) => [toolName, policy([\"memory.mutate\"], \"memory-broker\")] as const,\n\t),\n\t[\"memory\", policy([\"memory.mutate\", \"memory.query\"], \"memory-broker\")],\n\t[\"secret_store\", policy([\"credentials.use\"], \"service-proxy\")],\n\t[\"delegate\", DELEGATE_POLICY],\n\t[\"model_fitness\", policy([\"research.execute\"], \"control-plane\")],\n]);\n\nexport function getToolCapabilityPolicy(toolName: string): ToolCapabilityPolicy | undefined {\n\treturn TOOL_CAPABILITY_POLICIES.get(toolName.toLowerCase());\n}\n\nexport function hasToolCapabilityPolicy(toolName: string): boolean {\n\treturn getToolCapabilityPolicy(toolName) !== undefined;\n}\n\nexport function requiredEnvelopeCapabilities(toolName: string, args?: unknown): readonly HarnessCapability[] {\n\treturn toolCapabilityCandidates(toolName, args).slice(0, 1);\n}\n\nexport function envelopeHasToolCapability(\n\tcapabilities: readonly HarnessCapability[],\n\ttoolName: string,\n\targs?: unknown,\n): boolean {\n\tconst candidates = toolCapabilityCandidates(toolName, args);\n\treturn candidates.length > 0 && candidates.some((capability) => capabilities.includes(capability));\n}\n\nexport function resolveProfileToolCapability(\n\tprofile: Pick<OrchestrationProfile, \"capabilityCeiling\">,\n\ttoolName: string,\n): HarnessCapability | undefined {\n\treturn getToolCapabilityPolicy(toolName)?.capabilityCandidates.find((capability) =>\n\t\tprofile.capabilityCeiling.includes(capability),\n\t);\n}\n\nexport function describeToolCapabilityAuthority(toolName: string): string {\n\tswitch (getToolCapabilityPolicy(toolName)?.capabilityCandidates[0]) {\n\t\tcase \"filesystem.read\":\n\t\tcase \"worktree.read\":\n\t\t\treturn \"read\";\n\t\tcase \"filesystem.write\":\n\t\tcase \"worktree.mutate\":\n\t\t\treturn \"write\";\n\t\tcase \"process.exec\":\n\t\tcase \"tests.execute\":\n\t\t\treturn \"process\";\n\t\tcase \"network.http\":\n\t\tcase \"service.mcp\":\n\t\t\treturn \"network\";\n\t\tcase \"memory.query\":\n\t\tcase \"memory.mutate\":\n\t\t\treturn \"memory\";\n\t\tcase \"workflow.delegate\":\n\t\t\treturn \"delegation\";\n\t\tcase \"skill.read\":\n\t\tcase \"skill.write\":\n\t\t\treturn \"skill\";\n\t\tcase \"source.read\":\n\t\tcase \"source.write\":\n\t\t\treturn \"source\";\n\t\tcase \"research.execute\":\n\t\t\treturn \"research\";\n\t\tcase \"settings.read\":\n\t\tcase \"settings.write\":\n\t\t\treturn \"settings\";\n\t\tcase \"publish.execute\":\n\t\t\treturn \"publish\";\n\t\tcase \"credentials.use\":\n\t\t\treturn \"authentication\";\n\t\tdefault:\n\t\t\treturn \"capability\";\n\t}\n}\n\nfunction toolCapabilityCandidates(toolName: string, args?: unknown): readonly HarnessCapability[] {\n\tif (toolName.toLowerCase() === \"memory\") {\n\t\treturn args && typeof args === \"object\" && \"query\" in args ? [\"memory.query\"] : [\"memory.mutate\"];\n\t}\n\treturn getToolCapabilityPolicy(toolName)?.capabilityCandidates ?? [];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tool-capability-policy.js","sourceRoot":"","sources":["../../src/core/tool-capability-policy.ts"],"names":[],"mappings":"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","sourcesContent":["import type { HarnessCapability } from \"./capability-contract.ts\";\nimport { GOAL_LIFECYCLE_TOOL_NAMES } from \"./goals/goal-tool-names.ts\";\nimport type { CapabilityEnforcementKind, OrchestrationProfile } from \"./orchestration/contracts.ts\";\n\nexport interface ToolCapabilityPolicy {\n\t/** AND across clauses; OR across the capability alternatives inside one clause. */\n\tcapabilityClauses: readonly (readonly HarnessCapability[])[];\n\tenforcements: readonly CapabilityEnforcementKind[];\n}\n\nexport type ToolPathAccess = \"none\" | \"read\" | \"write\";\n\nconst READ_PATH_CAPABILITIES: ReadonlySet<HarnessCapability> = new Set([\n\t\"filesystem.read\",\n\t\"worktree.read\",\n\t\"skill.read\",\n\t\"source.read\",\n]);\nconst WRITE_PATH_CAPABILITIES: ReadonlySet<HarnessCapability> = new Set([\n\t\"filesystem.write\",\n\t\"worktree.mutate\",\n\t\"skill.write\",\n\t\"source.write\",\n]);\n\nfunction policy(\n\tcapabilityClauses: readonly (readonly HarnessCapability[])[],\n\tenforcements: CapabilityEnforcementKind | readonly CapabilityEnforcementKind[],\n): ToolCapabilityPolicy {\n\treturn Object.freeze({\n\t\tcapabilityClauses: Object.freeze(capabilityClauses.map((clause) => Object.freeze([...clause]))),\n\t\tenforcements: Object.freeze(typeof enforcements === \"string\" ? [enforcements] : [...enforcements]),\n\t});\n}\n\nconst READ_POLICY = policy([[\"filesystem.read\", \"worktree.read\"]], \"path-scope\");\nconst WRITE_POLICY = policy([[\"filesystem.write\", \"worktree.mutate\"]], \"path-scope\");\nconst PROCESS_POLICY = policy([[\"process.exec\", \"tests.execute\"]], \"process-launcher\");\nconst NETWORK_POLICY = policy([[\"network.http\", \"service.mcp\"]], \"service-proxy\");\nconst DELEGATE_POLICY = policy([[\"workflow.delegate\"]], \"control-plane\");\n\nconst TOOL_CAPABILITY_POLICIES = new Map<string, ToolCapabilityPolicy>([\n\t...[\"read\", \"ls\", \"grep\", \"find\"].map((toolName) => [toolName, READ_POLICY] as const),\n\t...[\"write\", \"edit\", \"edit-diff\"].map((toolName) => [toolName, WRITE_POLICY] as const),\n\t...[\"bash\", \"python\", \"powershell\", \"shell\", \"run_toolkit_script\", \"run_process\"].map(\n\t\t(toolName) => [toolName, PROCESS_POLICY] as const,\n\t),\n\t...[\"fetch\", \"web_search\"].map((toolName) => [toolName, NETWORK_POLICY] as const),\n\t[\"skill\", policy([[\"skill.read\"]], \"path-scope\")],\n\t[\"skill_audit\", policy([[\"skill.read\"]], \"path-scope\")],\n\t[\"skillify\", policy([[\"skill.write\"]], \"path-scope\")],\n\t[\"extensionify\", policy([[\"source.write\"]], \"path-scope\")],\n\t[\"goal\", policy([[\"memory.mutate\", \"memory.query\"]], \"memory-broker\")],\n\t[GOAL_LIFECYCLE_TOOL_NAMES[0], policy([[\"memory.mutate\"]], \"memory-broker\")],\n\t[GOAL_LIFECYCLE_TOOL_NAMES[1], policy([[\"memory.query\"]], \"memory-broker\")],\n\t[GOAL_LIFECYCLE_TOOL_NAMES[2], policy([[\"memory.mutate\"]], \"memory-broker\")],\n\t[\"memory\", policy([[\"memory.mutate\", \"memory.query\"]], \"memory-broker\")],\n\t[\"secret_store\", policy([[\"credentials.use\"]], [\"service-proxy\", \"path-scope\"])],\n\t[\"delegate\", DELEGATE_POLICY],\n\t[\"model_fitness\", policy([[\"research.execute\"]], \"control-plane\")],\n\t[\"task_steps\", policy([[\"workflow.plan\", \"memory.mutate\"]], \"control-plane\")],\n\t[\"pipeline\", policy([[\"workflow.plan\"], [\"filesystem.write\", \"worktree.mutate\"]], [\"control-plane\", \"path-scope\"])],\n\t[\"tool_task\", policy([[\"process.exec\", \"workflow.delegate\"]], \"control-plane\")],\n\t[\"worktree_sync\", policy([[\"worktree.mutate\", \"filesystem.write\"]], \"path-scope\")],\n\t[\"ask_question\", policy([[\"workflow.plan\", \"memory.query\"]], \"control-plane\")],\n\t[\"artifact_retrieve\", policy([[\"filesystem.read\"]], \"path-scope\")],\n\t[\"context_scout\", policy([[\"filesystem.read\"]], \"path-scope\")],\n\t[\"tmux_dispatch\", policy([[\"process.exec\", \"workflow.delegate\"]], \"process-launcher\")],\n\t[\"improvement_loop\", policy([[\"process.exec\", \"tests.execute\"]], \"process-launcher\")],\n]);\n\nexport function getToolCapabilityPolicy(toolName: string): ToolCapabilityPolicy | undefined {\n\treturn TOOL_CAPABILITY_POLICIES.get(toolName.toLowerCase());\n}\n\nexport function hasToolCapabilityPolicy(toolName: string): boolean {\n\treturn getToolCapabilityPolicy(toolName) !== undefined;\n}\n\nexport function toolUsesPathScope(toolName: string): boolean {\n\treturn getToolCapabilityPolicy(toolName)?.enforcements.includes(\"path-scope\") ?? false;\n}\n\nexport function toolCapabilityRequirementClauses(\n\ttoolName: string,\n\targs?: unknown,\n): readonly (readonly HarnessCapability[])[] {\n\tconst name = toolName.toLowerCase();\n\tif (name === \"memory\" && args !== undefined) {\n\t\tconst record =\n\t\t\targs && typeof args === \"object\" && !Array.isArray(args) ? (args as Record<string, unknown>) : undefined;\n\t\tconst isUnambiguousQuery =\n\t\t\trecord !== undefined &&\n\t\t\ttypeof record.query === \"string\" &&\n\t\t\tObject.keys(record).every((key) => key === \"query\");\n\t\treturn isUnambiguousQuery ? [[\"memory.query\"]] : [[\"memory.mutate\"]];\n\t}\n\tif (name === \"goal\" && args !== undefined) {\n\t\tconst action =\n\t\t\targs && typeof args === \"object\" && !Array.isArray(args) && \"action\" in args\n\t\t\t\t? (args as { action: unknown }).action\n\t\t\t\t: undefined;\n\t\treturn action === \"get\" ? [[\"memory.query\"]] : [[\"memory.mutate\"]];\n\t}\n\tif (name === \"pipeline\") {\n\t\tconst action =\n\t\t\targs && typeof args === \"object\" && \"action\" in args ? (args as { action: unknown }).action : undefined;\n\t\tif (action === \"list\" || action === \"status\") {\n\t\t\treturn [[\"workflow.plan\", \"filesystem.read\"]];\n\t\t}\n\t\treturn [[\"workflow.plan\"], [\"filesystem.write\", \"worktree.mutate\"]];\n\t}\n\tconst itemPolicy = getToolCapabilityPolicy(name);\n\tif (!itemPolicy) return [];\n\treturn itemPolicy.capabilityClauses;\n}\n\nexport function requiredEnvelopeCapabilities(toolName: string, args?: unknown): readonly HarnessCapability[] {\n\tconst clauses = toolCapabilityRequirementClauses(toolName, args);\n\treturn clauses.map((clause) => clause[0]).filter((c): c is HarnessCapability => c !== undefined);\n}\n\nexport function formatToolCapabilityRequirement(toolName: string, args?: unknown): string {\n\treturn toolCapabilityRequirementClauses(toolName, args)\n\t\t.map((clause) => (clause.length === 1 ? clause[0] : `(${clause.join(\" or \")})`))\n\t\t.filter((clause): clause is string => clause !== undefined)\n\t\t.join(\" and \");\n}\n\nexport function envelopeHasToolCapability(\n\tcapabilities: readonly HarnessCapability[],\n\ttoolName: string,\n\targs?: unknown,\n): boolean {\n\treturn resolveToolCallCapabilities(capabilities, toolName, args) !== undefined;\n}\n\n/** Resolve the exact alternative selected from every conjunctive clause for one invocation. */\nexport function resolveToolCallCapabilities(\n\tcapabilities: readonly HarnessCapability[],\n\ttoolName: string,\n\targs?: unknown,\n): readonly HarnessCapability[] | undefined {\n\tconst clauses = toolCapabilityRequirementClauses(toolName, args);\n\tif (clauses.length === 0) return undefined;\n\tconst resolved: HarnessCapability[] = [];\n\tfor (const clause of clauses) {\n\t\tconst match = clause.find((capability) => capabilities.includes(capability));\n\t\tif (!match) return undefined;\n\t\tresolved.push(match);\n\t}\n\treturn resolved;\n}\n\nexport function resolveCapabilityPathAccess(\n\tcapabilities: readonly HarnessCapability[],\n): Exclude<ToolPathAccess, \"none\"> | undefined {\n\tif (capabilities.some((capability) => WRITE_PATH_CAPABILITIES.has(capability))) return \"write\";\n\tif (capabilities.some((capability) => READ_PATH_CAPABILITIES.has(capability))) return \"read\";\n\treturn undefined;\n}\n\n/** Resolve whether one authorized invocation exposes caller-controlled paths to a scoped boundary. */\nexport function resolveToolCallPathAccess(\n\tcapabilities: readonly HarnessCapability[],\n\ttoolName: string,\n\targs?: unknown,\n): ToolPathAccess {\n\tconst policy = getToolCapabilityPolicy(toolName);\n\tif (!policy?.enforcements.includes(\"path-scope\")) return \"none\";\n\tconst selected = resolveToolCallCapabilities(capabilities, toolName, args);\n\tif (!selected) return \"none\";\n\tconst name = toolName.toLowerCase();\n\t// These tools accept identifiers or natural-language queries, not filesystem paths. Their\n\t// fixed stores are owned by the tool, while context_scout gates each concrete child read.\n\tif (name === \"artifact_retrieve\" || name === \"context_scout\") return \"none\";\n\tif (name === \"pipeline\" && selected.includes(\"workflow.plan\") && selected.length === 1) return \"none\";\n\tif (name === \"secret_store\") {\n\t\tconst action =\n\t\t\targs && typeof args === \"object\" && !Array.isArray(args) && \"action\" in args\n\t\t\t\t? (args as { action: unknown }).action\n\t\t\t\t: undefined;\n\t\treturn action === \"migrate\" ? \"read\" : \"none\";\n\t}\n\treturn resolveCapabilityPathAccess(selected) ?? \"none\";\n}\n\nexport function resolveProfileToolCapabilities(\n\tprofile: Pick<OrchestrationProfile, \"capabilityCeiling\">,\n\ttoolName: string,\n): readonly HarnessCapability[] | undefined {\n\tconst clauses = toolCapabilityRequirementClauses(toolName);\n\tif (clauses.length === 0) return undefined;\n\tconst resolved: HarnessCapability[] = [];\n\tfor (const clause of clauses) {\n\t\tconst match = clause.find((capability) => profile.capabilityCeiling.includes(capability));\n\t\tif (!match) return undefined;\n\t\tresolved.push(match);\n\t}\n\treturn resolved;\n}\n\nexport function describeToolCapabilityAuthority(toolName: string): string {\n\tswitch (getToolCapabilityPolicy(toolName)?.capabilityClauses[0]?.[0]) {\n\t\tcase \"filesystem.read\":\n\t\tcase \"worktree.read\":\n\t\t\treturn \"read\";\n\t\tcase \"filesystem.write\":\n\t\tcase \"worktree.mutate\":\n\t\t\treturn \"write\";\n\t\tcase \"process.exec\":\n\t\tcase \"tests.execute\":\n\t\t\treturn \"process\";\n\t\tcase \"network.http\":\n\t\tcase \"service.mcp\":\n\t\t\treturn \"network\";\n\t\tcase \"memory.query\":\n\t\tcase \"memory.mutate\":\n\t\t\treturn \"memory\";\n\t\tcase \"workflow.delegate\":\n\t\t\treturn \"delegation\";\n\t\tcase \"skill.read\":\n\t\tcase \"skill.write\":\n\t\t\treturn \"skill\";\n\t\tcase \"source.read\":\n\t\tcase \"source.write\":\n\t\t\treturn \"source\";\n\t\tcase \"research.execute\":\n\t\t\treturn \"research\";\n\t\tcase \"settings.read\":\n\t\tcase \"settings.write\":\n\t\t\treturn \"settings\";\n\t\tcase \"publish.execute\":\n\t\t\treturn \"publish\";\n\t\tcase \"credentials.use\":\n\t\t\treturn \"authentication\";\n\t\tdefault:\n\t\t\treturn \"capability\";\n\t}\n}\n"]}
|
|
@@ -21,14 +21,6 @@ declare const delegateSchema: Type.TObject<{
|
|
|
21
21
|
}>>;
|
|
22
22
|
toolNames: Type.TOptional<Type.TArray<Type.TString>>;
|
|
23
23
|
resourceProfileNames: Type.TOptional<Type.TArray<Type.TString>>;
|
|
24
|
-
budget: Type.TOptional<Type.TObject<{
|
|
25
|
-
maxTokens: Type.TOptional<Type.TNumber>;
|
|
26
|
-
maxWallClockMs: Type.TOptional<Type.TNumber>;
|
|
27
|
-
maxCostUsd: Type.TOptional<Type.TNumber>;
|
|
28
|
-
maxAttempts: Type.TOptional<Type.TNumber>;
|
|
29
|
-
maxToolCalls: Type.TOptional<Type.TNumber>;
|
|
30
|
-
requireApprovalAboveCostUsd: Type.TOptional<Type.TNumber>;
|
|
31
|
-
}>>;
|
|
32
24
|
action: Type.TOptional<Type.TString>;
|
|
33
25
|
profileId: Type.TOptional<Type.TString>;
|
|
34
26
|
authority: Type.TOptional<Type.TObject<{
|
|
@@ -39,14 +31,6 @@ declare const delegateSchema: Type.TObject<{
|
|
|
39
31
|
}>>;
|
|
40
32
|
thinkingLevel: Type.TOptional<Type.TUnion<Type.TLiteral<"high" | "low" | "max" | "medium" | "minimal" | "off" | "ultra" | "xhigh">[]>>;
|
|
41
33
|
toolNames: Type.TOptional<Type.TArray<Type.TString>>;
|
|
42
|
-
budget: Type.TOptional<Type.TObject<{
|
|
43
|
-
maxTokens: Type.TOptional<Type.TNumber>;
|
|
44
|
-
maxWallClockMs: Type.TOptional<Type.TNumber>;
|
|
45
|
-
maxCostUsd: Type.TOptional<Type.TNumber>;
|
|
46
|
-
maxAttempts: Type.TOptional<Type.TNumber>;
|
|
47
|
-
maxToolCalls: Type.TOptional<Type.TNumber>;
|
|
48
|
-
requireApprovalAboveCostUsd: Type.TOptional<Type.TNumber>;
|
|
49
|
-
}>>;
|
|
50
34
|
}>>;
|
|
51
35
|
instructions: Type.TOptional<Type.TString>;
|
|
52
36
|
agentId: Type.TOptional<Type.TString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../../src/core/tools/delegate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAGN,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAON,KAAK,0BAA0B,EAE/B,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../../src/core/tools/delegate.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { Type } from "typebox";
|
|
|
3
3
|
import { normalizeWorkerAgentDependencyTaskIds, } from "../delegation/worker-agent-control.js";
|
|
4
4
|
import { MAX_WORKER_TRANSCRIPT_PAGE_MESSAGES } from "../delegation/worker-conversation-store.js";
|
|
5
5
|
import { MAX_ORCHESTRATION_COLLECTION_LENGTH, MAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH, MAX_ORCHESTRATION_IDENTIFIER_LENGTH, MAX_ORCHESTRATION_MODEL_ID_LENGTH, MAX_ORCHESTRATION_MODEL_PROVIDER_LENGTH, ORCHESTRATION_THINKING_LEVELS, WORKER_ROLES, } from "../orchestration/contracts.js";
|
|
6
|
-
import { createRiskBudgetSchema } from "../orchestration/risk-budget.js";
|
|
7
6
|
import { normalizeProviderPromptGuidelines } from "../provider-tool-text.js";
|
|
8
7
|
import { DELEGATE_STATUS_ACTIONS, delegateStatusPanelModel, executeDelegateStatusAction, WORKER_QUEUED_CAVEMAN_GUIDANCE, } from "./delegate-status.js";
|
|
9
8
|
import { emptyOrchestrationCall, renderOrchestrationToolResult, } from "./orchestration-panel.js";
|
|
@@ -57,7 +56,6 @@ function createDelegateSchema(actions) {
|
|
|
57
56
|
toolNames: Type.Optional(Type.Array(Type.String({ minLength: 1, maxLength: MAX_ORCHESTRATION_IDENTIFIER_LENGTH }), {
|
|
58
57
|
maxItems: MAX_ORCHESTRATION_COLLECTION_LENGTH,
|
|
59
58
|
})),
|
|
60
|
-
budget: Type.Optional(createRiskBudgetSchema()),
|
|
61
59
|
}, { additionalProperties: false }));
|
|
62
60
|
return Type.Object({
|
|
63
61
|
action: Type.Optional(Type.String({
|
|
@@ -192,13 +190,13 @@ const EXACT_ACTION_ALLOWED_FIELDS = {
|
|
|
192
190
|
status: ["action", "laneId"],
|
|
193
191
|
review: ["action", "laneId"],
|
|
194
192
|
profile_inspect: ["action"],
|
|
195
|
-
profile_create: ["action", "task", "baseProfileId", "model", "toolNames", "resourceProfileNames"
|
|
193
|
+
profile_create: ["action", "task", "baseProfileId", "model", "toolNames", "resourceProfileNames"],
|
|
196
194
|
};
|
|
197
195
|
function sanitizeExactActionInput(input, action) {
|
|
198
196
|
const allowed = EXACT_ACTION_ALLOWED_FIELDS[action];
|
|
199
197
|
const exactInput = { ...input };
|
|
200
198
|
for (const field of Object.keys(exactInput)) {
|
|
201
|
-
if (exactInput
|
|
199
|
+
if (Reflect.get(exactInput, field) !== undefined && !allowed.includes(field)) {
|
|
202
200
|
if (action === "start" && field === "task") {
|
|
203
201
|
const taskText = typeof exactInput.task === "string" ? exactInput.task.trim() : "";
|
|
204
202
|
const instructionsText = typeof exactInput.instructions === "string" ? exactInput.instructions.trim() : "";
|
|
@@ -222,11 +220,20 @@ function sanitizeExactActionInput(input, action) {
|
|
|
222
220
|
return {
|
|
223
221
|
input: exactInput,
|
|
224
222
|
violation: {
|
|
225
|
-
message: "CAVEMAN MODE - MANDATORY: delegate start
|
|
223
|
+
message: "CAVEMAN MODE - MANDATORY: delegate start does not accept model-authored budgets. This is expected API correction, not harness failure. No worker started; nothing was dropped. Ceilings come only from host settings or an owner-authored profileId. Retry once now without budget and keep the task unchanged.",
|
|
226
224
|
skipReason: "action_field_forbidden",
|
|
227
225
|
},
|
|
228
226
|
};
|
|
229
227
|
}
|
|
228
|
+
if (action === "profile_create" && field === "budget") {
|
|
229
|
+
return {
|
|
230
|
+
input: exactInput,
|
|
231
|
+
violation: {
|
|
232
|
+
message: "delegate profile_create does not accept model-authored budgets; the immutable task profile inherits its owner-authored base ceiling",
|
|
233
|
+
skipReason: "profile_budget_forbidden",
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
}
|
|
230
237
|
if (field === "laneId") {
|
|
231
238
|
return {
|
|
232
239
|
input: exactInput,
|
|
@@ -254,7 +261,7 @@ function sanitizeExactActionInput(input, action) {
|
|
|
254
261
|
},
|
|
255
262
|
};
|
|
256
263
|
}
|
|
257
|
-
|
|
264
|
+
Reflect.deleteProperty(exactInput, field);
|
|
258
265
|
}
|
|
259
266
|
}
|
|
260
267
|
return { input: exactInput };
|
|
@@ -276,7 +283,7 @@ const SYNCHRONOUS_DELEGATE_DESCRIPTION = DELEGATE_DESCRIPTION_CORE;
|
|
|
276
283
|
// immediately (see :~102) — the actual result surfaces later through the event-driven terminal
|
|
277
284
|
// handoff and a bounded transcript/status read.
|
|
278
285
|
const ASYNC_DELEGATE_DESCRIPTION = `${DELEGATE_DESCRIPTION_CORE} This call returns immediately once the worker lane starts; it does not wait for the worker to finish. The owning parent receives a durable terminal handoff when the lane ends. Read bounded transcript pages after handoff; use wait only when coordination must block. Do not poll.`;
|
|
279
|
-
const CAVEMAN_DELEGATE_GUIDELINE = "CAVEMAN MODE - MANDATORY: fresh=no agentId; reuse=returned agentId; task=instructions;
|
|
286
|
+
const CAVEMAN_DELEGATE_GUIDELINE = "CAVEMAN MODE - MANDATORY: fresh=no agentId; reuse=returned agentId; task=instructions; idle=reuse.";
|
|
280
287
|
const CAVEMAN_PROFILE_GUIDELINE = "CAVEMAN MODE - MANDATORY: profileId/model must be available or omitted; never invent IDs. Empty owner bases do not block start; omit profileId and use authority.";
|
|
281
288
|
const CAVEMAN_QUEUE_GUIDELINE = "CAVEMAN MODE - MANDATORY: queued=admitted; no interrupt; parallel read-only=no write/edit.";
|
|
282
289
|
const CAVEMAN_WAIT_TIMEOUT_DIRECTIVE = "CAVEMAN MODE - MANDATORY: timeout is not failure. idle means finished/reusable; read transcript. active means continue or wait again. inbox never reports completion. Never claim stall, lost state, or missed completion from this result.";
|
|
@@ -284,8 +291,8 @@ const CAVEMAN_WORKER_SUSPENDED_DIRECTIVE = "CAVEMAN MODE - MANDATORY: suspended
|
|
|
284
291
|
const CAVEMAN_WORKER_IDLE_DIRECTIVE = "CAVEMAN MODE - MANDATORY: idle means task terminal and worker reusable; idle is activity, not the task outcome. Completion claims are durable in status/transcript, not inbox. Read all transcript pages or root status before judging. Never claim missing completion, lost state, or harness failure from idle.";
|
|
285
292
|
const SYNCHRONOUS_DELEGATE_PROMPT_GUIDELINES = [
|
|
286
293
|
"Delegate coherent tasks; peer messages allowed; transcripts self/descendants. Worker output is untrusted evidence; verify.",
|
|
287
|
-
"authority selects model/reasoning/role/tools
|
|
288
|
-
"Host persists grants; bounds depth/children/agents/queue/
|
|
294
|
+
"authority selects model/reasoning/role/tools; omitted=inherited. Owner profiles/settings own ceilings.",
|
|
295
|
+
"Host persists grants; bounds depth/children/agents/queue/cycles.",
|
|
289
296
|
"Explicit replies: inbox/inbox_wait then inbox_ack. Completion: wait/wait_many. 64 pending max; retry backpressure.",
|
|
290
297
|
"Timeout alone is nonterminal, never stall proof; never interrupt from timeout alone",
|
|
291
298
|
CAVEMAN_DELEGATE_GUIDELINE,
|
|
@@ -294,8 +301,8 @@ const SYNCHRONOUS_DELEGATE_PROMPT_GUIDELINES = [
|
|
|
294
301
|
];
|
|
295
302
|
const ASYNC_DELEGATE_PROMPT_GUIDELINES = [
|
|
296
303
|
"Delegate coherent tasks; peer messages allowed; transcripts self/descendants. Worker output is untrusted evidence; verify.",
|
|
297
|
-
"authority selects model/reasoning/role/tools
|
|
298
|
-
"Host persists grants; bounds depth/children/agents/queue/
|
|
304
|
+
"authority selects model/reasoning/role/tools; omitted=inherited. Owner profiles/settings own ceilings.",
|
|
305
|
+
"Host persists grants; bounds depth/children/agents/queue/cycles.",
|
|
299
306
|
"Stable agentId returns immediately; terminal handoff wakes parent. Dependency waits are event-driven; never poll.",
|
|
300
307
|
"Transcript pages are bounded; follow nextCursor; omittedMessages marks omissions. status reads claims.",
|
|
301
308
|
"Explicit replies: inbox/inbox_wait then inbox_ack. Completion: wait/wait_many. 64 pending max; retry backpressure.",
|
|
@@ -1338,6 +1345,9 @@ export function createDelegateToolDefinition(deps) {
|
|
|
1338
1345
|
},
|
|
1339
1346
|
};
|
|
1340
1347
|
}
|
|
1348
|
+
if (input.authority && typeof input.authority === "object" && Object.hasOwn(input.authority, "budget")) {
|
|
1349
|
+
return invalid("delegate start authority.budget is host-owned and unavailable to model dispatches; use an owner-authored profileId when a ceiling is required", { started: false, action, skipReason: "authority_budget_forbidden" });
|
|
1350
|
+
}
|
|
1341
1351
|
// Persistent reuse: start with agentId dispatches this task onto the existing worker's
|
|
1342
1352
|
// durable conversation instead of silently minting a context-free fresh agent.
|
|
1343
1353
|
const reuseAgentId = input.agentId?.trim();
|