@provos/ironcurtain 0.10.0 → 0.12.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 +68 -14
- package/dist/auth/oauth-provider.js +1 -4
- package/dist/auth/oauth-provider.js.map +1 -1
- package/dist/cli-help.d.ts +12 -0
- package/dist/cli-help.js +21 -0
- package/dist/cli-help.js.map +1 -1
- package/dist/cli.js +46 -6
- package/dist/cli.js.map +1 -1
- package/dist/config/agent-model-guard.d.ts +14 -0
- package/dist/config/agent-model-guard.js +24 -0
- package/dist/config/agent-model-guard.js.map +1 -0
- package/dist/config/config-command.js +277 -7
- package/dist/config/config-command.js.map +1 -1
- package/dist/config/first-start.js +62 -7
- package/dist/config/first-start.js.map +1 -1
- package/dist/config/generated/compiled-policy.json +528 -161
- package/dist/config/generated/test-scenarios.json +4810 -170
- package/dist/config/generated/tool-annotations.json +34 -47
- package/dist/config/index.d.ts +58 -0
- package/dist/config/index.js +97 -15
- package/dist/config/index.js.map +1 -1
- package/dist/config/mcp-servers.json +2 -2
- package/dist/config/model-provider.d.ts +9 -0
- package/dist/config/model-provider.js +13 -0
- package/dist/config/model-provider.js.map +1 -1
- package/dist/config/paths.d.ts +217 -0
- package/dist/config/paths.js +363 -14
- package/dist/config/paths.js.map +1 -1
- package/dist/config/types.d.ts +7 -1
- package/dist/config/user-config.d.ts +101 -6
- package/dist/config/user-config.js +145 -31
- package/dist/config/user-config.js.map +1 -1
- package/dist/config/validate-policy-dir.d.ts +10 -0
- package/dist/config/validate-policy-dir.js +59 -0
- package/dist/config/validate-policy-dir.js.map +1 -0
- package/dist/cron/job-commands.js +22 -2
- package/dist/cron/job-commands.js.map +1 -1
- package/dist/cron/types.d.ts +16 -2
- package/dist/cron/types.js +1 -3
- package/dist/cron/types.js.map +1 -1
- package/dist/daemon/daemon-command.js +30 -7
- package/dist/daemon/daemon-command.js.map +1 -1
- package/dist/daemon/ironcurtain-daemon.d.ts +62 -1
- package/dist/daemon/ironcurtain-daemon.js +231 -8
- package/dist/daemon/ironcurtain-daemon.js.map +1 -1
- package/dist/daemon-client/daemon-client.d.ts +123 -0
- package/dist/daemon-client/daemon-client.js +324 -0
- package/dist/daemon-client/daemon-client.js.map +1 -0
- package/dist/docker/adapters/claude-code.js +194 -20
- package/dist/docker/adapters/claude-code.js.map +1 -1
- package/dist/docker/adapters/codex.d.ts +9 -0
- package/dist/docker/adapters/codex.js +297 -0
- package/dist/docker/adapters/codex.js.map +1 -0
- package/dist/docker/adapters/goose.d.ts +12 -11
- package/dist/docker/adapters/goose.js +80 -27
- package/dist/docker/adapters/goose.js.map +1 -1
- package/dist/docker/agent-adapter.d.ts +183 -5
- package/dist/docker/agent-adapter.js +16 -0
- package/dist/docker/agent-adapter.js.map +1 -1
- package/dist/docker/agent-registry.js +5 -0
- package/dist/docker/agent-registry.js.map +1 -1
- package/dist/docker/apple-container-manager.d.ts +49 -0
- package/dist/docker/apple-container-manager.js +464 -0
- package/dist/docker/apple-container-manager.js.map +1 -0
- package/dist/docker/code-mode-proxy.d.ts +38 -0
- package/dist/docker/code-mode-proxy.js +6 -1
- package/dist/docker/code-mode-proxy.js.map +1 -1
- package/dist/docker/container-lifecycle.d.ts +2 -2
- package/dist/docker/container-lifecycle.js.map +1 -1
- package/dist/docker/container-runtime.d.ts +29 -0
- package/dist/docker/container-runtime.js +76 -0
- package/dist/docker/container-runtime.js.map +1 -0
- package/dist/docker/docker-agent-session.d.ts +113 -62
- package/dist/docker/docker-agent-session.js +271 -294
- package/dist/docker/docker-agent-session.js.map +1 -1
- package/dist/docker/docker-infrastructure.d.ts +428 -26
- package/dist/docker/docker-infrastructure.js +1005 -70
- package/dist/docker/docker-infrastructure.js.map +1 -1
- package/dist/docker/docker-manager.d.ts +58 -3
- package/dist/docker/docker-manager.js +378 -33
- package/dist/docker/docker-manager.js.map +1 -1
- package/dist/docker/docker-probe.d.ts +45 -0
- package/dist/docker/docker-probe.js +86 -0
- package/dist/docker/docker-probe.js.map +1 -0
- package/dist/docker/docker-progress-sink.d.ts +43 -0
- package/dist/docker/docker-progress-sink.js +299 -0
- package/dist/docker/docker-progress-sink.js.map +1 -0
- package/dist/docker/mitm-proxy.d.ts +135 -1
- package/dist/docker/mitm-proxy.js +611 -25
- package/dist/docker/mitm-proxy.js.map +1 -1
- package/dist/docker/network-topology.d.ts +81 -0
- package/dist/docker/network-topology.js +160 -0
- package/dist/docker/network-topology.js.map +1 -0
- package/dist/docker/oauth-credentials.d.ts +59 -3
- package/dist/docker/oauth-credentials.js +181 -14
- package/dist/docker/oauth-credentials.js.map +1 -1
- package/dist/docker/oauth-token-manager.js +2 -2
- package/dist/docker/oauth-token-manager.js.map +1 -1
- package/dist/docker/orientation.d.ts +1 -1
- package/dist/docker/package-types.d.ts +1 -1
- package/dist/docker/provider-config.d.ts +78 -3
- package/dist/docker/provider-config.js +295 -31
- package/dist/docker/provider-config.js.map +1 -1
- package/dist/docker/provision-lock.d.ts +46 -0
- package/dist/docker/provision-lock.js +152 -0
- package/dist/docker/provision-lock.js.map +1 -0
- package/dist/docker/proxy-tools.d.ts +0 -2
- package/dist/docker/proxy-tools.js +2 -7
- package/dist/docker/proxy-tools.js.map +1 -1
- package/dist/docker/pty-session.d.ts +64 -1
- package/dist/docker/pty-session.js +306 -104
- package/dist/docker/pty-session.js.map +1 -1
- package/dist/docker/pty-types.d.ts +0 -2
- package/dist/docker/pty-types.js +0 -2
- package/dist/docker/pty-types.js.map +1 -1
- package/dist/docker/registry-proxy.d.ts +46 -0
- package/dist/docker/registry-proxy.js +255 -1
- package/dist/docker/registry-proxy.js.map +1 -1
- package/dist/docker/resource-limits.d.ts +134 -0
- package/dist/docker/resource-limits.js +203 -0
- package/dist/docker/resource-limits.js.map +1 -0
- package/dist/docker/spawn-with-idle-timeout.d.ts +39 -0
- package/dist/docker/spawn-with-idle-timeout.js +152 -0
- package/dist/docker/spawn-with-idle-timeout.js.map +1 -0
- package/dist/docker/sse-extractor.d.ts +51 -0
- package/dist/docker/sse-extractor.js +303 -0
- package/dist/docker/sse-extractor.js.map +1 -0
- package/dist/docker/token-stream-bus.d.ts +83 -0
- package/dist/docker/token-stream-bus.js +98 -0
- package/dist/docker/token-stream-bus.js.map +1 -0
- package/dist/docker/token-stream-types.d.ts +71 -0
- package/dist/docker/token-stream-types.js +8 -0
- package/dist/docker/token-stream-types.js.map +1 -0
- package/dist/docker/trajectory-capture.d.ts +79 -0
- package/dist/docker/trajectory-capture.js +521 -0
- package/dist/docker/trajectory-capture.js.map +1 -0
- package/dist/docker/trajectory-reassembler.d.ts +286 -0
- package/dist/docker/trajectory-reassembler.js +990 -0
- package/dist/docker/trajectory-reassembler.js.map +1 -0
- package/dist/docker/trajectory-tap.d.ts +100 -0
- package/dist/docker/trajectory-tap.js +410 -0
- package/dist/docker/trajectory-tap.js.map +1 -0
- package/dist/docker/trajectory-types.d.ts +187 -0
- package/dist/docker/trajectory-types.js +43 -0
- package/dist/docker/trajectory-types.js.map +1 -0
- package/dist/docker/types.d.ts +105 -12
- package/dist/doctor/checks.d.ts +171 -0
- package/dist/doctor/checks.js +598 -0
- package/dist/doctor/checks.js.map +1 -0
- package/dist/doctor/doctor-command.d.ts +29 -0
- package/dist/doctor/doctor-command.js +190 -0
- package/dist/doctor/doctor-command.js.map +1 -0
- package/dist/doctor/mcp-liveness.d.ts +28 -0
- package/dist/doctor/mcp-liveness.js +92 -0
- package/dist/doctor/mcp-liveness.js.map +1 -0
- package/dist/doctor/oauth-checks.d.ts +23 -0
- package/dist/doctor/oauth-checks.js +157 -0
- package/dist/doctor/oauth-checks.js.map +1 -0
- package/dist/doctor/output.d.ts +26 -0
- package/dist/doctor/output.js +82 -0
- package/dist/doctor/output.js.map +1 -0
- package/dist/escalation/listener-command.js +0 -3
- package/dist/escalation/listener-command.js.map +1 -1
- package/dist/event-bus/typed-event-bus.d.ts +26 -0
- package/dist/event-bus/typed-event-bus.js +35 -0
- package/dist/event-bus/typed-event-bus.js.map +1 -0
- package/dist/index.js +54 -21
- package/dist/index.js.map +1 -1
- package/dist/logger.js +31 -2
- package/dist/logger.js.map +1 -1
- package/dist/memory/auto-save.d.ts +18 -4
- package/dist/memory/auto-save.js +46 -6
- package/dist/memory/auto-save.js.map +1 -1
- package/dist/memory/memory-policy.d.ts +41 -0
- package/dist/memory/memory-policy.js +36 -0
- package/dist/memory/memory-policy.js.map +1 -0
- package/dist/mux/mux-app.d.ts +2 -0
- package/dist/mux/mux-app.js +1 -0
- package/dist/mux/mux-app.js.map +1 -1
- package/dist/mux/mux-command.d.ts +10 -1
- package/dist/mux/mux-command.js +74 -40
- package/dist/mux/mux-command.js.map +1 -1
- package/dist/mux/mux-renderer.js +2 -12
- package/dist/mux/mux-renderer.js.map +1 -1
- package/dist/mux/pty-bridge.d.ts +2 -0
- package/dist/mux/pty-bridge.js +3 -0
- package/dist/mux/pty-bridge.js.map +1 -1
- package/dist/mux/session-scanner.js +1 -2
- package/dist/mux/session-scanner.js.map +1 -1
- package/dist/{pipeline → observability}/llm-logger.d.ts +8 -3
- package/dist/{pipeline → observability}/llm-logger.js +8 -3
- package/dist/observability/llm-logger.js.map +1 -0
- package/dist/observe/observe-command.d.ts +12 -0
- package/dist/observe/observe-command.js +285 -0
- package/dist/observe/observe-command.js.map +1 -0
- package/dist/observe/observe-renderer.d.ts +24 -0
- package/dist/observe/observe-renderer.js +87 -0
- package/dist/observe/observe-renderer.js.map +1 -0
- package/dist/observe/observe-tui-rain.d.ts +42 -0
- package/dist/observe/observe-tui-rain.js +531 -0
- package/dist/observe/observe-tui-rain.js.map +1 -0
- package/dist/observe/observe-tui-text-panel.d.ts +46 -0
- package/dist/observe/observe-tui-text-panel.js +525 -0
- package/dist/observe/observe-tui-text-panel.js.map +1 -0
- package/dist/observe/observe-tui-types.d.ts +270 -0
- package/dist/observe/observe-tui-types.js +200 -0
- package/dist/observe/observe-tui-types.js.map +1 -0
- package/dist/observe/observe-tui-word-scorer.d.ts +143 -0
- package/dist/observe/observe-tui-word-scorer.js +572 -0
- package/dist/observe/observe-tui-word-scorer.js.map +1 -0
- package/dist/observe/observe-tui.d.ts +59 -0
- package/dist/observe/observe-tui.js +592 -0
- package/dist/observe/observe-tui.js.map +1 -0
- package/dist/persona/broad-policy-validator.d.ts +95 -0
- package/dist/persona/broad-policy-validator.js +171 -0
- package/dist/persona/broad-policy-validator.js.map +1 -0
- package/dist/persona/compile-persona-policy.d.ts +54 -2
- package/dist/persona/compile-persona-policy.js +29 -4
- package/dist/persona/compile-persona-policy.js.map +1 -1
- package/dist/persona/event-bus-progress-reporter.d.ts +57 -0
- package/dist/persona/event-bus-progress-reporter.js +66 -0
- package/dist/persona/event-bus-progress-reporter.js.map +1 -0
- package/dist/persona/memory-gate.d.ts +19 -0
- package/dist/persona/memory-gate.js +33 -0
- package/dist/persona/memory-gate.js.map +1 -0
- package/dist/persona/persona-command.js +77 -72
- package/dist/persona/persona-command.js.map +1 -1
- package/dist/persona/persona-compile-orchestrator.d.ts +101 -0
- package/dist/persona/persona-compile-orchestrator.js +504 -0
- package/dist/persona/persona-compile-orchestrator.js.map +1 -0
- package/dist/persona/persona-service.d.ts +137 -0
- package/dist/persona/persona-service.js +263 -0
- package/dist/persona/persona-service.js.map +1 -0
- package/dist/persona/policy-mutation-audit.d.ts +109 -0
- package/dist/persona/policy-mutation-audit.js +179 -0
- package/dist/persona/policy-mutation-audit.js.map +1 -0
- package/dist/persona/resolve.d.ts +22 -0
- package/dist/persona/resolve.js +45 -2
- package/dist/persona/resolve.js.map +1 -1
- package/dist/persona/rule-delta.d.ts +30 -0
- package/dist/persona/rule-delta.js +82 -0
- package/dist/persona/rule-delta.js.map +1 -0
- package/dist/persona/types.d.ts +28 -0
- package/dist/pipeline/annotate.js +10 -2
- package/dist/pipeline/annotate.js.map +1 -1
- package/dist/pipeline/compile.js +14 -2
- package/dist/pipeline/compile.js.map +1 -1
- package/dist/pipeline/constitution-compiler.d.ts +25 -14
- package/dist/pipeline/constitution-compiler.js +107 -38
- package/dist/pipeline/constitution-compiler.js.map +1 -1
- package/dist/pipeline/dynamic-list-types.d.ts +3 -6
- package/dist/pipeline/dynamic-list-types.js +3 -16
- package/dist/pipeline/dynamic-list-types.js.map +1 -1
- package/dist/pipeline/pipeline-runner.d.ts +63 -4
- package/dist/pipeline/pipeline-runner.js +242 -94
- package/dist/pipeline/pipeline-runner.js.map +1 -1
- package/dist/pipeline/pipeline-shared.d.ts +33 -4
- package/dist/pipeline/pipeline-shared.js +79 -19
- package/dist/pipeline/pipeline-shared.js.map +1 -1
- package/dist/pipeline/policy-verifier.js +16 -3
- package/dist/pipeline/policy-verifier.js.map +1 -1
- package/dist/pipeline/proxy-mcp-connections.js +17 -2
- package/dist/pipeline/proxy-mcp-connections.js.map +1 -1
- package/dist/pipeline/refresh-lists.js +3 -5
- package/dist/pipeline/refresh-lists.js.map +1 -1
- package/dist/pipeline/scenario-generator.d.ts +4 -8
- package/dist/pipeline/scenario-generator.js +13 -46
- package/dist/pipeline/scenario-generator.js.map +1 -1
- package/dist/sandbox/index.d.ts +29 -0
- package/dist/sandbox/index.js +351 -119
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/ironcurtain-protocol.d.ts +52 -0
- package/dist/sandbox/ironcurtain-protocol.js +185 -0
- package/dist/sandbox/ironcurtain-protocol.js.map +1 -0
- package/dist/session/agent-session.d.ts +6 -0
- package/dist/session/agent-session.js +16 -5
- package/dist/session/agent-session.js.map +1 -1
- package/dist/session/cli-transport.js +0 -6
- package/dist/session/cli-transport.js.map +1 -1
- package/dist/session/index.d.ts +35 -14
- package/dist/session/index.js +333 -130
- package/dist/session/index.js.map +1 -1
- package/dist/session/preflight.d.ts +21 -13
- package/dist/session/preflight.js +227 -88
- package/dist/session/preflight.js.map +1 -1
- package/dist/session/prompts.d.ts +2 -5
- package/dist/session/prompts.js.map +1 -1
- package/dist/session/session-manager.d.ts +61 -6
- package/dist/session/session-manager.js +72 -10
- package/dist/session/session-manager.js.map +1 -1
- package/dist/session/session-metadata.d.ts +21 -5
- package/dist/session/session-metadata.js +34 -12
- package/dist/session/session-metadata.js.map +1 -1
- package/dist/session/types.d.ts +320 -5
- package/dist/session/types.js +57 -1
- package/dist/session/types.js.map +1 -1
- package/dist/signal/bot-command.js +6 -1
- package/dist/signal/bot-command.js.map +1 -1
- package/dist/signal/setup-signal.js +13 -21
- package/dist/signal/setup-signal.js.map +1 -1
- package/dist/signal/signal-bot-daemon.d.ts +16 -1
- package/dist/signal/signal-bot-daemon.js +39 -27
- package/dist/signal/signal-bot-daemon.js.map +1 -1
- package/dist/signal/signal-container.d.ts +3 -3
- package/dist/signal/signal-container.js +9 -3
- package/dist/signal/signal-container.js.map +1 -1
- package/dist/skills/discovery.d.ts +77 -0
- package/dist/skills/discovery.js +206 -0
- package/dist/skills/discovery.js.map +1 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.js +3 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/staging.d.ts +28 -0
- package/dist/skills/staging.js +68 -0
- package/dist/skills/staging.js.map +1 -0
- package/dist/skills/types.d.ts +46 -0
- package/dist/skills/types.js +2 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/trusted-process/approval-whitelist.d.ts +0 -2
- package/dist/trusted-process/approval-whitelist.js +17 -17
- package/dist/trusted-process/approval-whitelist.js.map +1 -1
- package/dist/trusted-process/async-mutex.d.ts +32 -0
- package/dist/trusted-process/async-mutex.js +50 -0
- package/dist/trusted-process/async-mutex.js.map +1 -0
- package/dist/trusted-process/audit-log.d.ts +38 -1
- package/dist/trusted-process/audit-log.js +82 -13
- package/dist/trusted-process/audit-log.js.map +1 -1
- package/dist/trusted-process/call-circuit-breaker.d.ts +6 -0
- package/dist/trusted-process/call-circuit-breaker.js +23 -3
- package/dist/trusted-process/call-circuit-breaker.js.map +1 -1
- package/dist/trusted-process/container-command.d.ts +35 -0
- package/dist/trusted-process/container-command.js +49 -0
- package/dist/trusted-process/container-command.js.map +1 -0
- package/dist/trusted-process/control-server.d.ts +101 -0
- package/dist/trusted-process/control-server.js +282 -0
- package/dist/trusted-process/control-server.js.map +1 -0
- package/dist/trusted-process/domain-utils.d.ts +6 -6
- package/dist/trusted-process/domain-utils.js +7 -23
- package/dist/trusted-process/domain-utils.js.map +1 -1
- package/dist/trusted-process/error-prefixes.d.ts +16 -0
- package/dist/trusted-process/error-prefixes.js +17 -0
- package/dist/trusted-process/error-prefixes.js.map +1 -0
- package/dist/trusted-process/index.d.ts +40 -23
- package/dist/trusted-process/index.js +131 -225
- package/dist/trusted-process/index.js.map +1 -1
- package/dist/trusted-process/list-matcher.d.ts +17 -0
- package/dist/trusted-process/list-matcher.js +31 -0
- package/dist/trusted-process/list-matcher.js.map +1 -0
- package/dist/trusted-process/mcp-client-manager.d.ts +35 -6
- package/dist/trusted-process/mcp-client-manager.js +40 -45
- package/dist/trusted-process/mcp-client-manager.js.map +1 -1
- package/dist/trusted-process/mcp-proxy-server.d.ts +31 -120
- package/dist/trusted-process/mcp-proxy-server.js +201 -660
- package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
- package/dist/trusted-process/policy-engine.d.ts +16 -4
- package/dist/trusted-process/policy-engine.js +103 -47
- package/dist/trusted-process/policy-engine.js.map +1 -1
- package/dist/trusted-process/policy-roots.d.ts +6 -0
- package/dist/trusted-process/policy-roots.js +20 -0
- package/dist/trusted-process/policy-roots.js.map +1 -1
- package/dist/trusted-process/sandbox-integration.d.ts +12 -0
- package/dist/trusted-process/sandbox-integration.js +18 -0
- package/dist/trusted-process/sandbox-integration.js.map +1 -1
- package/dist/trusted-process/tcp-server-transport.d.ts +12 -1
- package/dist/trusted-process/tcp-server-transport.js +9 -1
- package/dist/trusted-process/tcp-server-transport.js.map +1 -1
- package/dist/trusted-process/tool-call-coordinator.d.ts +283 -0
- package/dist/trusted-process/tool-call-coordinator.js +592 -0
- package/dist/trusted-process/tool-call-coordinator.js.map +1 -0
- package/dist/trusted-process/tool-call-pipeline.d.ts +213 -0
- package/dist/trusted-process/tool-call-pipeline.js +832 -0
- package/dist/trusted-process/tool-call-pipeline.js.map +1 -0
- package/dist/trusted-process/tool-description-hints.d.ts +1 -1
- package/dist/types/argument-roles.d.ts +1 -1
- package/dist/types/argument-roles.js +14 -1
- package/dist/types/argument-roles.js.map +1 -1
- package/dist/types/audit.d.ts +9 -0
- package/dist/{session → types}/errors.d.ts +8 -2
- package/dist/{session → types}/errors.js +8 -2
- package/dist/types/errors.js.map +1 -0
- package/dist/types/reserved-servers.d.ts +11 -0
- package/dist/types/reserved-servers.js +12 -0
- package/dist/types/reserved-servers.js.map +1 -0
- package/dist/types/server-listing.d.ts +14 -0
- package/dist/types/server-listing.js +2 -0
- package/dist/types/server-listing.js.map +1 -0
- package/dist/types/slug.d.ts +2 -0
- package/dist/types/slug.js +2 -0
- package/dist/types/slug.js.map +1 -1
- package/dist/types/url-normalize.d.ts +16 -0
- package/dist/types/url-normalize.js +33 -0
- package/dist/types/url-normalize.js.map +1 -0
- package/dist/util/atomic-write.d.ts +31 -0
- package/dist/util/atomic-write.js +43 -0
- package/dist/util/atomic-write.js.map +1 -0
- package/dist/utils/error-message.d.ts +8 -0
- package/dist/utils/error-message.js +11 -0
- package/dist/utils/error-message.js.map +1 -0
- package/dist/utils/exec-error.d.ts +19 -0
- package/dist/utils/exec-error.js +16 -0
- package/dist/utils/exec-error.js.map +1 -0
- package/dist/utils/is-plain-object.d.ts +7 -0
- package/dist/utils/is-plain-object.js +12 -0
- package/dist/utils/is-plain-object.js.map +1 -0
- package/dist/utils/preflight-checks.d.ts +16 -0
- package/dist/utils/preflight-checks.js +178 -0
- package/dist/utils/preflight-checks.js.map +1 -0
- package/dist/web-ui/__tests__/json-rpc-dispatch.test.d.ts +7 -0
- package/dist/web-ui/__tests__/json-rpc-dispatch.test.js +725 -0
- package/dist/web-ui/__tests__/json-rpc-dispatch.test.js.map +1 -0
- package/dist/web-ui/conn-registry.d.ts +14 -0
- package/dist/web-ui/conn-registry.js +25 -0
- package/dist/web-ui/conn-registry.js.map +1 -0
- package/dist/web-ui/dispatch/escalation-dispatch.d.ts +7 -0
- package/dist/web-ui/dispatch/escalation-dispatch.js +52 -0
- package/dist/web-ui/dispatch/escalation-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/job-dispatch.d.ts +8 -0
- package/dist/web-ui/dispatch/job-dispatch.js +83 -0
- package/dist/web-ui/dispatch/job-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/persona-dispatch.d.ts +50 -0
- package/dist/web-ui/dispatch/persona-dispatch.js +269 -0
- package/dist/web-ui/dispatch/persona-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/session-dispatch.d.ts +9 -0
- package/dist/web-ui/dispatch/session-dispatch.js +219 -0
- package/dist/web-ui/dispatch/session-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/token-stream-dispatch.d.ts +15 -0
- package/dist/web-ui/dispatch/token-stream-dispatch.js +55 -0
- package/dist/web-ui/dispatch/token-stream-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/types.d.ts +54 -0
- package/dist/web-ui/dispatch/types.js +72 -0
- package/dist/web-ui/dispatch/types.js.map +1 -0
- package/dist/web-ui/dispatch/workflow-dispatch.d.ts +103 -0
- package/dist/web-ui/dispatch/workflow-dispatch.js +1036 -0
- package/dist/web-ui/dispatch/workflow-dispatch.js.map +1 -0
- package/dist/web-ui/json-rpc-dispatch.d.ts +12 -0
- package/dist/web-ui/json-rpc-dispatch.js +34 -0
- package/dist/web-ui/json-rpc-dispatch.js.map +1 -0
- package/dist/web-ui/state-graph.d.ts +13 -0
- package/dist/web-ui/state-graph.js +82 -0
- package/dist/web-ui/state-graph.js.map +1 -0
- package/dist/web-ui/token-stream-bridge.d.ts +76 -0
- package/dist/web-ui/token-stream-bridge.js +265 -0
- package/dist/web-ui/token-stream-bridge.js.map +1 -0
- package/dist/web-ui/web-event-bus.d.ts +176 -0
- package/dist/web-ui/web-event-bus.js +19 -0
- package/dist/web-ui/web-event-bus.js.map +1 -0
- package/dist/web-ui/web-session-transport.d.ts +31 -0
- package/dist/web-ui/web-session-transport.js +109 -0
- package/dist/web-ui/web-session-transport.js.map +1 -0
- package/dist/web-ui/web-ui-server.d.ts +90 -0
- package/dist/web-ui/web-ui-server.js +477 -0
- package/dist/web-ui/web-ui-server.js.map +1 -0
- package/dist/web-ui/web-ui-types.d.ts +418 -0
- package/dist/web-ui/web-ui-types.js +32 -0
- package/dist/web-ui/web-ui-types.js.map +1 -0
- package/dist/web-ui/ws-utils.d.ts +5 -0
- package/dist/web-ui/ws-utils.js +12 -0
- package/dist/web-ui/ws-utils.js.map +1 -0
- package/dist/web-ui-static/assets/index-BD5U6ILh.css +1 -0
- package/dist/web-ui-static/assets/index-FMsHWEfK.js +79 -0
- package/dist/web-ui-static/assets/orbitron-latin-700-normal-4jsRXGGJ.woff2 +0 -0
- package/dist/web-ui-static/assets/orbitron-latin-700-normal-DmYOh-W9.woff +0 -0
- package/dist/web-ui-static/index.html +14 -0
- package/dist/workflow/artifacts.d.ts +59 -0
- package/dist/workflow/artifacts.js +188 -0
- package/dist/workflow/artifacts.js.map +1 -0
- package/dist/workflow/checkpoint-selection.d.ts +34 -0
- package/dist/workflow/checkpoint-selection.js +48 -0
- package/dist/workflow/checkpoint-selection.js.map +1 -0
- package/dist/workflow/checkpoint.d.ts +35 -0
- package/dist/workflow/checkpoint.js +84 -0
- package/dist/workflow/checkpoint.js.map +1 -0
- package/dist/workflow/cli-shared.d.ts +62 -0
- package/dist/workflow/cli-shared.js +117 -0
- package/dist/workflow/cli-shared.js.map +1 -0
- package/dist/workflow/cli-support.d.ts +92 -0
- package/dist/workflow/cli-support.js +421 -0
- package/dist/workflow/cli-support.js.map +1 -0
- package/dist/workflow/container-snapshots.d.ts +29 -0
- package/dist/workflow/container-snapshots.js +137 -0
- package/dist/workflow/container-snapshots.js.map +1 -0
- package/dist/workflow/daemon-gate-commands.d.ts +21 -0
- package/dist/workflow/daemon-gate-commands.js +599 -0
- package/dist/workflow/daemon-gate-commands.js.map +1 -0
- package/dist/workflow/definition-loader.d.ts +32 -0
- package/dist/workflow/definition-loader.js +56 -0
- package/dist/workflow/definition-loader.js.map +1 -0
- package/dist/workflow/discovery.d.ts +107 -0
- package/dist/workflow/discovery.js +263 -0
- package/dist/workflow/discovery.js.map +1 -0
- package/dist/workflow/errors.d.ts +66 -0
- package/dist/workflow/errors.js +49 -0
- package/dist/workflow/errors.js.map +1 -0
- package/dist/workflow/guards.d.ts +8 -0
- package/dist/workflow/guards.js +38 -0
- package/dist/workflow/guards.js.map +1 -0
- package/dist/workflow/lane-template.d.ts +89 -0
- package/dist/workflow/lane-template.js +141 -0
- package/dist/workflow/lane-template.js.map +1 -0
- package/dist/workflow/lint-integration.d.ts +64 -0
- package/dist/workflow/lint-integration.js +56 -0
- package/dist/workflow/lint-integration.js.map +1 -0
- package/dist/workflow/lint.d.ts +72 -0
- package/dist/workflow/lint.js +593 -0
- package/dist/workflow/lint.js.map +1 -0
- package/dist/workflow/machine-builder.d.ts +178 -0
- package/dist/workflow/machine-builder.js +678 -0
- package/dist/workflow/machine-builder.js.map +1 -0
- package/dist/workflow/message-log.d.ts +99 -0
- package/dist/workflow/message-log.js +40 -0
- package/dist/workflow/message-log.js.map +1 -0
- package/dist/workflow/orchestrator.d.ts +954 -0
- package/dist/workflow/orchestrator.js +3594 -0
- package/dist/workflow/orchestrator.js.map +1 -0
- package/dist/workflow/prompt-builder.d.ts +39 -0
- package/dist/workflow/prompt-builder.js +243 -0
- package/dist/workflow/prompt-builder.js.map +1 -0
- package/dist/workflow/run-state-command.d.ts +9 -0
- package/dist/workflow/run-state-command.js +414 -0
- package/dist/workflow/run-state-command.js.map +1 -0
- package/dist/workflow/run-state-debug-capture.d.ts +40 -0
- package/dist/workflow/run-state-debug-capture.js +101 -0
- package/dist/workflow/run-state-debug-capture.js.map +1 -0
- package/dist/workflow/status-parser.d.ts +68 -0
- package/dist/workflow/status-parser.js +274 -0
- package/dist/workflow/status-parser.js.map +1 -0
- package/dist/workflow/types.d.ts +598 -0
- package/dist/workflow/types.js +85 -0
- package/dist/workflow/types.js.map +1 -0
- package/dist/workflow/validate.d.ts +80 -0
- package/dist/workflow/validate.js +788 -0
- package/dist/workflow/validate.js.map +1 -0
- package/dist/workflow/workflow-command.d.ts +9 -0
- package/dist/workflow/workflow-command.js +670 -0
- package/dist/workflow/workflow-command.js.map +1 -0
- package/dist/workflow/workflow-discovery.d.ts +27 -0
- package/dist/workflow/workflow-discovery.js +121 -0
- package/dist/workflow/workflow-discovery.js.map +1 -0
- package/dist/workflow/workflow-manager.d.ts +156 -0
- package/dist/workflow/workflow-manager.js +359 -0
- package/dist/workflow/workflow-manager.js.map +1 -0
- package/dist/workflow/workflows/design-and-code/README.md +50 -0
- package/dist/workflow/workflows/design-and-code/workflow.yaml +169 -0
- package/dist/workflow/workflows/deterministic-eval-smoke/scripts/format_report.js +29 -0
- package/dist/workflow/workflows/deterministic-eval-smoke/scripts/package.json +5 -0
- package/dist/workflow/workflows/deterministic-eval-smoke/scripts/requirements.txt +1 -0
- package/dist/workflow/workflows/deterministic-eval-smoke/scripts/run_eval.py +41 -0
- package/dist/workflow/workflows/deterministic-eval-smoke/workflow.yaml +57 -0
- package/dist/workflow/workflows/deterministic-verdict-smoke/scripts/classify.py +18 -0
- package/dist/workflow/workflows/deterministic-verdict-smoke/workflow.yaml +51 -0
- package/dist/workflow/workflows/evolve/scripts/LICENSE +201 -0
- package/dist/workflow/workflows/evolve/scripts/README.md +314 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-brief +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-cognition +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-db +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-eval +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-files +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-summary +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/__init__.py +14 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/__init__.py +17 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/base.py +21 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/factory.py +90 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/greedy.py +17 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/island.py +316 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/random.py +18 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/ucb1.py +55 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/best_snapshot.py +62 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/cli.py +752 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/cognition.py +127 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/database.py +218 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/diff.py +57 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/embedding.py +84 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/file_lock.py +45 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/run_state.py +343 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/sampling_config.py +173 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/structures.py +93 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/vector_index.py +191 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_result.py +1503 -0
- package/dist/workflow/workflows/evolve/scripts/requirements.txt +2 -0
- package/dist/workflow/workflows/evolve/workflow.yaml +646 -0
- package/dist/workflow/workflows/test-email-summary/skills/email-formatting/SKILL.md +55 -0
- package/dist/workflow/workflows/test-email-summary/skills/gmail-query-syntax/SKILL.md +63 -0
- package/dist/workflow/workflows/test-email-summary/skills/json-schema-emails/SKILL.md +41 -0
- package/dist/workflow/workflows/test-email-summary/skills/json-schema-emails/schema.json +34 -0
- package/dist/workflow/workflows/test-email-summary/skills/summary-style-guide/SKILL.md +51 -0
- package/dist/workflow/workflows/test-email-summary/workflow.yaml +90 -0
- package/dist/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +206 -0
- package/dist/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +167 -0
- package/dist/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +189 -0
- package/dist/workflow/workflows/vuln-discovery/workflow.yaml +925 -0
- package/dist/workflow/worktree.d.ts +43 -0
- package/dist/workflow/worktree.js +106 -0
- package/dist/workflow/worktree.js.map +1 -0
- package/docker/Dockerfile.base +31 -0
- package/docker/Dockerfile.base.arm64 +27 -0
- package/docker/Dockerfile.claude-code +3 -1
- package/docker/Dockerfile.codex +17 -0
- package/docker/Dockerfile.goose +3 -1
- package/docker/entrypoint-claude-code.sh +7 -0
- package/docker/entrypoint-codex.sh +42 -0
- package/docker/entrypoint-goose.sh +6 -0
- package/docker/entrypoint-uid-remap.sh +93 -0
- package/package.json +27 -11
- package/packages/web-ui/README.md +113 -0
- package/packages/web-ui/docs/workflow-state-machine.png +0 -0
- package/src/config/generated/compiled-policy.json +528 -161
- package/src/config/generated/test-scenarios.json +4810 -170
- package/src/config/generated/tool-annotations.json +34 -47
- package/src/config/mcp-servers.json +2 -2
- package/src/workflow/workflows/design-and-code/README.md +50 -0
- package/src/workflow/workflows/design-and-code/workflow.yaml +169 -0
- package/src/workflow/workflows/deterministic-eval-smoke/scripts/format_report.js +29 -0
- package/src/workflow/workflows/deterministic-eval-smoke/scripts/package.json +5 -0
- package/src/workflow/workflows/deterministic-eval-smoke/scripts/requirements.txt +1 -0
- package/src/workflow/workflows/deterministic-eval-smoke/scripts/run_eval.py +41 -0
- package/src/workflow/workflows/deterministic-eval-smoke/workflow.yaml +57 -0
- package/src/workflow/workflows/deterministic-verdict-smoke/scripts/classify.py +18 -0
- package/src/workflow/workflows/deterministic-verdict-smoke/workflow.yaml +51 -0
- package/src/workflow/workflows/evolve/scripts/LICENSE +201 -0
- package/src/workflow/workflows/evolve/scripts/README.md +314 -0
- package/src/workflow/workflows/evolve/scripts/evolve-brief +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve-cognition +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve-db +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve-eval +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve-files +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve-summary +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/__init__.py +14 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/__init__.py +17 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/base.py +21 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/factory.py +90 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/greedy.py +17 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/island.py +316 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/random.py +18 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/ucb1.py +55 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/best_snapshot.py +62 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/cli.py +752 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/cognition.py +127 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/database.py +218 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/diff.py +57 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/embedding.py +84 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/file_lock.py +45 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/run_state.py +343 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/sampling_config.py +173 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/structures.py +93 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/vector_index.py +191 -0
- package/src/workflow/workflows/evolve/scripts/evolve_result.py +1503 -0
- package/src/workflow/workflows/evolve/scripts/requirements.txt +2 -0
- package/src/workflow/workflows/evolve/workflow.yaml +646 -0
- package/src/workflow/workflows/test-email-summary/skills/email-formatting/SKILL.md +55 -0
- package/src/workflow/workflows/test-email-summary/skills/gmail-query-syntax/SKILL.md +63 -0
- package/src/workflow/workflows/test-email-summary/skills/json-schema-emails/SKILL.md +41 -0
- package/src/workflow/workflows/test-email-summary/skills/json-schema-emails/schema.json +34 -0
- package/src/workflow/workflows/test-email-summary/skills/summary-style-guide/SKILL.md +51 -0
- package/src/workflow/workflows/test-email-summary/workflow.yaml +90 -0
- package/src/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +206 -0
- package/src/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +167 -0
- package/src/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +189 -0
- package/src/workflow/workflows/vuln-discovery/workflow.yaml +925 -0
- package/dist/pipeline/llm-logger.js.map +0 -1
- package/dist/session/errors.js.map +0 -1
|
@@ -1,322 +1,686 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-
|
|
3
|
-
"constitutionHash": "
|
|
4
|
-
"inputHash": "
|
|
2
|
+
"generatedAt": "2026-04-26T21:38:47.257Z",
|
|
3
|
+
"constitutionHash": "bbf15ed2068f7fba533653b20c0a3d81dd11c9d292fdcbea4780506c29397d26",
|
|
4
|
+
"inputHash": "109fe1f6b130d1e85d7669fd4ea6733cd99ac0ca0f2547d53e808a51555b5705",
|
|
5
5
|
"rules": [
|
|
6
6
|
{
|
|
7
|
-
"name": "allow-
|
|
8
|
-
"description": "Allow
|
|
7
|
+
"name": "allow-web-search",
|
|
8
|
+
"description": "Allow web searches via the web_search tool.",
|
|
9
|
+
"principle": "The agent may perform web searches to find information.",
|
|
10
|
+
"if": {
|
|
11
|
+
"server": [
|
|
12
|
+
"fetch"
|
|
13
|
+
],
|
|
14
|
+
"tool": [
|
|
15
|
+
"web_search"
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"then": "allow",
|
|
19
|
+
"reason": "Constitution explicitly permits the agent to perform web searches."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "allow-fetch-news-sites",
|
|
23
|
+
"description": "Allow fetching web content from popular news sites.",
|
|
24
|
+
"principle": "The agent may fetch web content from popular news sites.",
|
|
25
|
+
"if": {
|
|
26
|
+
"server": [
|
|
27
|
+
"fetch"
|
|
28
|
+
],
|
|
29
|
+
"tool": [
|
|
30
|
+
"http_fetch"
|
|
31
|
+
],
|
|
32
|
+
"domains": {
|
|
33
|
+
"roles": [
|
|
34
|
+
"fetch-url"
|
|
35
|
+
],
|
|
36
|
+
"allowed": [
|
|
37
|
+
"@popular-news-sites"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"then": "allow",
|
|
42
|
+
"reason": "Constitution explicitly permits fetching content from popular news sites."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "allow-fetch-development-sites",
|
|
46
|
+
"description": "Allow fetching web content from popular development sites.",
|
|
47
|
+
"principle": "The agent may fetch web content from popular development sites.",
|
|
48
|
+
"if": {
|
|
49
|
+
"server": [
|
|
50
|
+
"fetch"
|
|
51
|
+
],
|
|
52
|
+
"tool": [
|
|
53
|
+
"http_fetch"
|
|
54
|
+
],
|
|
55
|
+
"domains": {
|
|
56
|
+
"roles": [
|
|
57
|
+
"fetch-url"
|
|
58
|
+
],
|
|
59
|
+
"allowed": [
|
|
60
|
+
"@popular-development-sites"
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"then": "allow",
|
|
65
|
+
"reason": "Constitution explicitly permits fetching content from popular development sites."
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "escalate-fetch-other-urls",
|
|
69
|
+
"description": "Escalate HTTP fetch requests to URLs not explicitly permitted.",
|
|
70
|
+
"principle": "Human oversight: Operations outside explicitly permitted domains require human approval.",
|
|
71
|
+
"if": {
|
|
72
|
+
"server": [
|
|
73
|
+
"fetch"
|
|
74
|
+
],
|
|
75
|
+
"tool": [
|
|
76
|
+
"http_fetch"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"then": "escalate",
|
|
80
|
+
"reason": "Fetching from domains not explicitly permitted requires human approval per least-privilege principle."
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "allow-read-downloads",
|
|
84
|
+
"description": "Allow reading files in the Downloads folder.",
|
|
9
85
|
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
10
86
|
"if": {
|
|
87
|
+
"roles": [
|
|
88
|
+
"read-path"
|
|
89
|
+
],
|
|
90
|
+
"server": [
|
|
91
|
+
"filesystem"
|
|
92
|
+
],
|
|
11
93
|
"paths": {
|
|
12
94
|
"roles": [
|
|
13
95
|
"read-path"
|
|
14
96
|
],
|
|
15
|
-
"within": "
|
|
97
|
+
"within": "~/Downloads"
|
|
16
98
|
}
|
|
17
99
|
},
|
|
18
100
|
"then": "allow",
|
|
19
101
|
"reason": "Policy explicitly permits reading in the Downloads folder."
|
|
20
102
|
},
|
|
21
103
|
{
|
|
22
|
-
"name": "allow-downloads
|
|
23
|
-
"description": "Allow writing files
|
|
104
|
+
"name": "allow-write-downloads",
|
|
105
|
+
"description": "Allow writing files in the Downloads folder.",
|
|
24
106
|
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
25
107
|
"if": {
|
|
108
|
+
"roles": [
|
|
109
|
+
"write-path"
|
|
110
|
+
],
|
|
111
|
+
"server": [
|
|
112
|
+
"filesystem"
|
|
113
|
+
],
|
|
26
114
|
"paths": {
|
|
27
115
|
"roles": [
|
|
28
116
|
"write-path"
|
|
29
117
|
],
|
|
30
|
-
"within": "
|
|
118
|
+
"within": "~/Downloads"
|
|
31
119
|
}
|
|
32
120
|
},
|
|
33
121
|
"then": "allow",
|
|
34
122
|
"reason": "Policy explicitly permits writing in the Downloads folder."
|
|
35
123
|
},
|
|
36
124
|
{
|
|
37
|
-
"name": "allow-downloads
|
|
38
|
-
"description": "Allow
|
|
125
|
+
"name": "allow-delete-downloads",
|
|
126
|
+
"description": "Allow delete operations (including move source) within the Downloads folder.",
|
|
39
127
|
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
40
128
|
"if": {
|
|
129
|
+
"roles": [
|
|
130
|
+
"delete-path"
|
|
131
|
+
],
|
|
132
|
+
"server": [
|
|
133
|
+
"filesystem"
|
|
134
|
+
],
|
|
41
135
|
"paths": {
|
|
42
136
|
"roles": [
|
|
43
137
|
"delete-path"
|
|
44
138
|
],
|
|
45
|
-
"within": "
|
|
139
|
+
"within": "~/Downloads"
|
|
46
140
|
}
|
|
47
141
|
},
|
|
48
142
|
"then": "allow",
|
|
49
|
-
"reason": "Policy explicitly permits
|
|
143
|
+
"reason": "Policy explicitly permits deleting in the Downloads folder."
|
|
50
144
|
},
|
|
51
145
|
{
|
|
52
|
-
"name": "allow-documents
|
|
53
|
-
"description": "Allow reading
|
|
146
|
+
"name": "allow-read-documents",
|
|
147
|
+
"description": "Allow reading files in the user's Documents folder.",
|
|
54
148
|
"principle": "The agent is allowed to read documents in the Users document folder.",
|
|
55
149
|
"if": {
|
|
150
|
+
"roles": [
|
|
151
|
+
"read-path"
|
|
152
|
+
],
|
|
153
|
+
"server": [
|
|
154
|
+
"filesystem"
|
|
155
|
+
],
|
|
56
156
|
"paths": {
|
|
57
157
|
"roles": [
|
|
58
158
|
"read-path"
|
|
59
159
|
],
|
|
60
|
-
"within": "
|
|
160
|
+
"within": "~/Documents"
|
|
61
161
|
}
|
|
62
162
|
},
|
|
63
163
|
"then": "allow",
|
|
64
|
-
"reason": "Policy explicitly permits reading
|
|
164
|
+
"reason": "Policy explicitly permits reading the user's Documents folder."
|
|
65
165
|
},
|
|
66
166
|
{
|
|
67
|
-
"name": "
|
|
68
|
-
"description": "
|
|
69
|
-
"principle": "Least privilege:
|
|
167
|
+
"name": "allow-list-allowed-directories",
|
|
168
|
+
"description": "Allow listing the permitted directories (no path argument, always safe).",
|
|
169
|
+
"principle": "Least privilege: agent may access resources explicitly permitted.",
|
|
70
170
|
"if": {
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
"
|
|
76
|
-
|
|
171
|
+
"server": [
|
|
172
|
+
"filesystem"
|
|
173
|
+
],
|
|
174
|
+
"tool": [
|
|
175
|
+
"list_allowed_directories"
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
"then": "allow",
|
|
179
|
+
"reason": "Listing allowed directories is a safe metadata-only operation."
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"name": "escalate-move-with-delete-outside-permitted",
|
|
183
|
+
"description": "Escalate move operations whose source (delete-path) is outside permitted areas.",
|
|
184
|
+
"principle": "No destruction: delete operations outside the sandbox are never permitted unless explicitly approved.",
|
|
185
|
+
"if": {
|
|
186
|
+
"server": [
|
|
187
|
+
"filesystem"
|
|
188
|
+
],
|
|
189
|
+
"tool": [
|
|
190
|
+
"move_file"
|
|
191
|
+
]
|
|
77
192
|
},
|
|
78
193
|
"then": "escalate",
|
|
79
|
-
"reason": "
|
|
194
|
+
"reason": "Move carries a delete-path role; any move not fully covered by sandbox/Downloads structural rules requires human approval."
|
|
80
195
|
},
|
|
81
196
|
{
|
|
82
|
-
"name": "escalate-
|
|
83
|
-
"description": "Escalate
|
|
84
|
-
"principle": "
|
|
197
|
+
"name": "escalate-write-outside-permitted",
|
|
198
|
+
"description": "Escalate writes to paths outside the sandbox and Downloads folder.",
|
|
199
|
+
"principle": "Human oversight: operations outside the sandbox require explicit human approval.",
|
|
85
200
|
"if": {
|
|
86
201
|
"roles": [
|
|
87
|
-
"
|
|
202
|
+
"write-path"
|
|
88
203
|
],
|
|
89
204
|
"server": [
|
|
90
205
|
"filesystem"
|
|
91
206
|
]
|
|
92
207
|
},
|
|
93
208
|
"then": "escalate",
|
|
94
|
-
"reason": "
|
|
209
|
+
"reason": "Writes outside structurally-allowed areas (sandbox, Downloads) require human approval."
|
|
95
210
|
},
|
|
96
211
|
{
|
|
97
|
-
"name": "escalate-
|
|
98
|
-
"description": "Escalate
|
|
99
|
-
"principle": "Least privilege:
|
|
212
|
+
"name": "escalate-read-outside-permitted",
|
|
213
|
+
"description": "Escalate read operations targeting paths outside the sandbox, Downloads, and Documents folders.",
|
|
214
|
+
"principle": "Least privilege: agent may only access resources explicitly permitted.",
|
|
100
215
|
"if": {
|
|
101
216
|
"roles": [
|
|
102
|
-
"
|
|
217
|
+
"read-path"
|
|
103
218
|
],
|
|
104
219
|
"server": [
|
|
105
220
|
"filesystem"
|
|
106
221
|
]
|
|
107
222
|
},
|
|
108
223
|
"then": "escalate",
|
|
109
|
-
"reason": "
|
|
224
|
+
"reason": "Reads outside explicitly permitted folders require human judgment rather than outright denial."
|
|
110
225
|
},
|
|
111
226
|
{
|
|
112
|
-
"name": "allow-git-
|
|
113
|
-
"description": "Allow
|
|
114
|
-
"principle": "
|
|
227
|
+
"name": "allow-git-wrapup-instructions",
|
|
228
|
+
"description": "Allow fetching git wrap-up instructions as they have no path or remote roles.",
|
|
229
|
+
"principle": "Least privilege: returning workflow instructions is a safe read-only operation with no resource access.",
|
|
115
230
|
"if": {
|
|
231
|
+
"server": [
|
|
232
|
+
"git"
|
|
233
|
+
],
|
|
234
|
+
"tool": [
|
|
235
|
+
"git_wrapup_instructions"
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
"then": "allow",
|
|
239
|
+
"reason": "git_wrapup_instructions has no path or network roles and is always safe to execute."
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"name": "allow-git-clear-working-dir",
|
|
243
|
+
"description": "Allow clearing the session working directory setting as it has no path or remote roles.",
|
|
244
|
+
"principle": "Least privilege: clearing a session setting is a safe local administrative operation.",
|
|
245
|
+
"if": {
|
|
246
|
+
"server": [
|
|
247
|
+
"git"
|
|
248
|
+
],
|
|
116
249
|
"tool": [
|
|
117
|
-
"git_status",
|
|
118
|
-
"git_log",
|
|
119
|
-
"git_diff",
|
|
120
|
-
"git_show",
|
|
121
|
-
"git_blame",
|
|
122
|
-
"git_reflog",
|
|
123
|
-
"git_changelog_analyze",
|
|
124
|
-
"git_wrapup_instructions",
|
|
125
250
|
"git_clear_working_dir"
|
|
126
251
|
]
|
|
127
252
|
},
|
|
128
253
|
"then": "allow",
|
|
129
|
-
"reason": "
|
|
254
|
+
"reason": "Clearing the working directory session setting carries no path or remote access and is always safe."
|
|
130
255
|
},
|
|
131
256
|
{
|
|
132
|
-
"name": "allow-git-set-working-dir",
|
|
133
|
-
"description": "Allow setting the git working directory.",
|
|
134
|
-
"principle": "The agent is allowed to
|
|
257
|
+
"name": "allow-git-set-working-dir-downloads",
|
|
258
|
+
"description": "Allow setting the git working directory to a path within the Downloads folder.",
|
|
259
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
135
260
|
"if": {
|
|
261
|
+
"server": [
|
|
262
|
+
"git"
|
|
263
|
+
],
|
|
136
264
|
"tool": [
|
|
137
265
|
"git_set_working_dir"
|
|
138
|
-
]
|
|
266
|
+
],
|
|
267
|
+
"paths": {
|
|
268
|
+
"roles": [
|
|
269
|
+
"read-path",
|
|
270
|
+
"write-path"
|
|
271
|
+
],
|
|
272
|
+
"within": "~/Downloads"
|
|
273
|
+
}
|
|
139
274
|
},
|
|
140
275
|
"then": "allow",
|
|
141
|
-
"reason": "Setting the working directory
|
|
276
|
+
"reason": "Setting the working directory to Downloads is permitted since the agent has full read/write access there."
|
|
142
277
|
},
|
|
143
278
|
{
|
|
144
|
-
"name": "allow-git-
|
|
145
|
-
"description": "Allow
|
|
146
|
-
"principle": "The agent is allowed to
|
|
279
|
+
"name": "allow-git-init-in-downloads",
|
|
280
|
+
"description": "Allow initializing a new git repository within the Downloads folder.",
|
|
281
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
147
282
|
"if": {
|
|
283
|
+
"server": [
|
|
284
|
+
"git"
|
|
285
|
+
],
|
|
148
286
|
"tool": [
|
|
149
|
-
"
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
"
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
"
|
|
156
|
-
|
|
157
|
-
"git_tag",
|
|
158
|
-
"git_branch",
|
|
159
|
-
"git_init",
|
|
160
|
-
"git_worktree",
|
|
161
|
-
"git_remote"
|
|
162
|
-
]
|
|
287
|
+
"git_init"
|
|
288
|
+
],
|
|
289
|
+
"paths": {
|
|
290
|
+
"roles": [
|
|
291
|
+
"write-path"
|
|
292
|
+
],
|
|
293
|
+
"within": "~/Downloads"
|
|
294
|
+
}
|
|
163
295
|
},
|
|
164
296
|
"then": "allow",
|
|
165
|
-
"reason": "
|
|
297
|
+
"reason": "Creating a new git repo within Downloads is permitted since the agent has full write access there."
|
|
166
298
|
},
|
|
167
299
|
{
|
|
168
|
-
"name": "allow-git-
|
|
169
|
-
"description": "Allow git
|
|
170
|
-
"principle": "The agent is allowed to
|
|
300
|
+
"name": "allow-git-read-ops-in-downloads",
|
|
301
|
+
"description": "Allow read-only git operations on repositories within the Downloads folder.",
|
|
302
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
171
303
|
"if": {
|
|
304
|
+
"server": [
|
|
305
|
+
"git"
|
|
306
|
+
],
|
|
172
307
|
"tool": [
|
|
173
|
-
"
|
|
174
|
-
|
|
308
|
+
"git_blame",
|
|
309
|
+
"git_diff",
|
|
310
|
+
"git_log",
|
|
311
|
+
"git_reflog",
|
|
312
|
+
"git_show",
|
|
313
|
+
"git_status",
|
|
314
|
+
"git_changelog_analyze"
|
|
315
|
+
],
|
|
316
|
+
"paths": {
|
|
317
|
+
"roles": [
|
|
318
|
+
"read-path"
|
|
319
|
+
],
|
|
320
|
+
"within": "~/Downloads"
|
|
321
|
+
}
|
|
175
322
|
},
|
|
176
323
|
"then": "allow",
|
|
177
|
-
"reason": "
|
|
324
|
+
"reason": "Read-only git tools on paths within Downloads are explicitly permitted."
|
|
178
325
|
},
|
|
179
326
|
{
|
|
180
|
-
"name": "
|
|
181
|
-
"description": "
|
|
182
|
-
"principle": "
|
|
327
|
+
"name": "allow-git-add-in-downloads",
|
|
328
|
+
"description": "Allow git add within the Downloads folder.",
|
|
329
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
183
330
|
"if": {
|
|
184
|
-
"
|
|
185
|
-
"
|
|
186
|
-
]
|
|
331
|
+
"server": [
|
|
332
|
+
"git"
|
|
333
|
+
],
|
|
334
|
+
"tool": [
|
|
335
|
+
"git_add"
|
|
336
|
+
],
|
|
337
|
+
"paths": {
|
|
338
|
+
"roles": [
|
|
339
|
+
"read-path",
|
|
340
|
+
"write-history"
|
|
341
|
+
],
|
|
342
|
+
"within": "~/Downloads"
|
|
343
|
+
}
|
|
187
344
|
},
|
|
188
|
-
"then": "
|
|
189
|
-
"reason": "
|
|
345
|
+
"then": "allow",
|
|
346
|
+
"reason": "Staging files within Downloads is permitted since the agent has full write access there."
|
|
190
347
|
},
|
|
191
348
|
{
|
|
192
|
-
"name": "
|
|
193
|
-
"description": "
|
|
194
|
-
"principle": "
|
|
349
|
+
"name": "allow-git-commit-in-downloads",
|
|
350
|
+
"description": "Allow git commit within the Downloads folder.",
|
|
351
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
195
352
|
"if": {
|
|
196
|
-
"
|
|
197
|
-
"
|
|
198
|
-
]
|
|
353
|
+
"server": [
|
|
354
|
+
"git"
|
|
355
|
+
],
|
|
356
|
+
"tool": [
|
|
357
|
+
"git_commit"
|
|
358
|
+
],
|
|
359
|
+
"paths": {
|
|
360
|
+
"roles": [
|
|
361
|
+
"read-path",
|
|
362
|
+
"write-history"
|
|
363
|
+
],
|
|
364
|
+
"within": "~/Downloads"
|
|
365
|
+
}
|
|
199
366
|
},
|
|
200
|
-
"then": "
|
|
201
|
-
"reason": "
|
|
367
|
+
"then": "allow",
|
|
368
|
+
"reason": "Committing within Downloads is permitted since the agent has full write access there."
|
|
202
369
|
},
|
|
203
370
|
{
|
|
204
|
-
"name": "
|
|
205
|
-
"description": "
|
|
206
|
-
"principle": "The agent
|
|
371
|
+
"name": "allow-git-branch-in-downloads",
|
|
372
|
+
"description": "Allow git branch operations within the Downloads folder.",
|
|
373
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
207
374
|
"if": {
|
|
375
|
+
"server": [
|
|
376
|
+
"git"
|
|
377
|
+
],
|
|
208
378
|
"tool": [
|
|
209
|
-
"
|
|
210
|
-
]
|
|
379
|
+
"git_branch"
|
|
380
|
+
],
|
|
381
|
+
"paths": {
|
|
382
|
+
"roles": [
|
|
383
|
+
"read-path",
|
|
384
|
+
"write-history",
|
|
385
|
+
"delete-history"
|
|
386
|
+
],
|
|
387
|
+
"within": "~/Downloads"
|
|
388
|
+
}
|
|
211
389
|
},
|
|
212
|
-
"then": "
|
|
213
|
-
"reason": "
|
|
390
|
+
"then": "allow",
|
|
391
|
+
"reason": "All branch operations (list, create, rename, delete) within Downloads are permitted."
|
|
214
392
|
},
|
|
215
393
|
{
|
|
216
|
-
"name": "
|
|
217
|
-
"description": "
|
|
218
|
-
"principle": "The agent
|
|
394
|
+
"name": "allow-git-checkout-in-downloads",
|
|
395
|
+
"description": "Allow git checkout within the Downloads folder.",
|
|
396
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
219
397
|
"if": {
|
|
398
|
+
"server": [
|
|
399
|
+
"git"
|
|
400
|
+
],
|
|
220
401
|
"tool": [
|
|
221
|
-
"
|
|
222
|
-
]
|
|
402
|
+
"git_checkout"
|
|
403
|
+
],
|
|
404
|
+
"paths": {
|
|
405
|
+
"roles": [
|
|
406
|
+
"read-path",
|
|
407
|
+
"write-history",
|
|
408
|
+
"write-path"
|
|
409
|
+
],
|
|
410
|
+
"within": "~/Downloads"
|
|
411
|
+
}
|
|
223
412
|
},
|
|
224
|
-
"then": "
|
|
225
|
-
"reason": "
|
|
413
|
+
"then": "allow",
|
|
414
|
+
"reason": "Checkout operations within Downloads are permitted since the agent has full access there."
|
|
226
415
|
},
|
|
227
416
|
{
|
|
228
|
-
"name": "
|
|
229
|
-
"description": "
|
|
230
|
-
"principle": "The agent
|
|
417
|
+
"name": "allow-git-cherry-pick-in-downloads",
|
|
418
|
+
"description": "Allow git cherry-pick within the Downloads folder.",
|
|
419
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
231
420
|
"if": {
|
|
421
|
+
"server": [
|
|
422
|
+
"git"
|
|
423
|
+
],
|
|
232
424
|
"tool": [
|
|
233
|
-
"
|
|
234
|
-
]
|
|
425
|
+
"git_cherry_pick"
|
|
426
|
+
],
|
|
427
|
+
"paths": {
|
|
428
|
+
"roles": [
|
|
429
|
+
"read-path",
|
|
430
|
+
"write-history"
|
|
431
|
+
],
|
|
432
|
+
"within": "~/Downloads"
|
|
433
|
+
}
|
|
235
434
|
},
|
|
236
|
-
"then": "
|
|
237
|
-
"reason": "
|
|
435
|
+
"then": "allow",
|
|
436
|
+
"reason": "Cherry-pick within Downloads is permitted since the agent has full write access there."
|
|
238
437
|
},
|
|
239
438
|
{
|
|
240
|
-
"name": "
|
|
241
|
-
"description": "
|
|
242
|
-
"principle": "The agent
|
|
439
|
+
"name": "allow-git-merge-in-downloads",
|
|
440
|
+
"description": "Allow git merge within the Downloads folder.",
|
|
441
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
243
442
|
"if": {
|
|
443
|
+
"server": [
|
|
444
|
+
"git"
|
|
445
|
+
],
|
|
244
446
|
"tool": [
|
|
245
|
-
"
|
|
246
|
-
]
|
|
447
|
+
"git_merge"
|
|
448
|
+
],
|
|
449
|
+
"paths": {
|
|
450
|
+
"roles": [
|
|
451
|
+
"read-path",
|
|
452
|
+
"write-history"
|
|
453
|
+
],
|
|
454
|
+
"within": "~/Downloads"
|
|
455
|
+
}
|
|
247
456
|
},
|
|
248
|
-
"then": "
|
|
249
|
-
"reason": "
|
|
457
|
+
"then": "allow",
|
|
458
|
+
"reason": "Merge within Downloads is permitted since the agent has full write access there."
|
|
250
459
|
},
|
|
251
460
|
{
|
|
252
|
-
"name": "allow-
|
|
253
|
-
"description": "Allow
|
|
254
|
-
"principle": "The agent
|
|
461
|
+
"name": "allow-git-rebase-in-downloads",
|
|
462
|
+
"description": "Allow git rebase within the Downloads folder.",
|
|
463
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
255
464
|
"if": {
|
|
465
|
+
"server": [
|
|
466
|
+
"git"
|
|
467
|
+
],
|
|
256
468
|
"tool": [
|
|
257
|
-
"
|
|
258
|
-
]
|
|
469
|
+
"git_rebase"
|
|
470
|
+
],
|
|
471
|
+
"paths": {
|
|
472
|
+
"roles": [
|
|
473
|
+
"read-path",
|
|
474
|
+
"write-history"
|
|
475
|
+
],
|
|
476
|
+
"within": "~/Downloads"
|
|
477
|
+
}
|
|
259
478
|
},
|
|
260
479
|
"then": "allow",
|
|
261
|
-
"reason": "
|
|
480
|
+
"reason": "Rebase within Downloads is permitted since the agent has full write access there."
|
|
262
481
|
},
|
|
263
482
|
{
|
|
264
|
-
"name": "allow-
|
|
265
|
-
"description": "Allow
|
|
266
|
-
"principle": "The agent
|
|
483
|
+
"name": "allow-git-reset-in-downloads",
|
|
484
|
+
"description": "Allow git reset within the Downloads folder.",
|
|
485
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
267
486
|
"if": {
|
|
487
|
+
"server": [
|
|
488
|
+
"git"
|
|
489
|
+
],
|
|
268
490
|
"tool": [
|
|
269
|
-
"
|
|
491
|
+
"git_reset"
|
|
270
492
|
],
|
|
271
|
-
"
|
|
493
|
+
"paths": {
|
|
272
494
|
"roles": [
|
|
273
|
-
"
|
|
495
|
+
"read-path",
|
|
496
|
+
"write-history"
|
|
274
497
|
],
|
|
275
|
-
"
|
|
276
|
-
"@popular-news-sites"
|
|
277
|
-
]
|
|
498
|
+
"within": "~/Downloads"
|
|
278
499
|
}
|
|
279
500
|
},
|
|
280
501
|
"then": "allow",
|
|
281
|
-
"reason": "
|
|
502
|
+
"reason": "Reset within Downloads is permitted since the agent has full write access there."
|
|
282
503
|
},
|
|
283
504
|
{
|
|
284
|
-
"name": "allow-
|
|
285
|
-
"description": "Allow
|
|
286
|
-
"principle": "The agent
|
|
505
|
+
"name": "allow-git-stash-in-downloads",
|
|
506
|
+
"description": "Allow all git stash operations within the Downloads folder.",
|
|
507
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
287
508
|
"if": {
|
|
509
|
+
"server": [
|
|
510
|
+
"git"
|
|
511
|
+
],
|
|
288
512
|
"tool": [
|
|
289
|
-
"
|
|
513
|
+
"git_stash"
|
|
290
514
|
],
|
|
291
|
-
"
|
|
515
|
+
"paths": {
|
|
292
516
|
"roles": [
|
|
293
|
-
"
|
|
517
|
+
"read-path",
|
|
518
|
+
"write-history",
|
|
519
|
+
"delete-history"
|
|
294
520
|
],
|
|
295
|
-
"
|
|
296
|
-
"@popular-development-sites"
|
|
297
|
-
]
|
|
521
|
+
"within": "~/Downloads"
|
|
298
522
|
}
|
|
299
523
|
},
|
|
300
524
|
"then": "allow",
|
|
301
|
-
"reason": "
|
|
525
|
+
"reason": "All stash modes including drop/clear are permitted within Downloads since the agent has full read/write/delete access."
|
|
302
526
|
},
|
|
303
527
|
{
|
|
304
|
-
"name": "
|
|
305
|
-
"description": "
|
|
306
|
-
"principle": "
|
|
528
|
+
"name": "allow-git-tag-in-downloads",
|
|
529
|
+
"description": "Allow all git tag operations within the Downloads folder.",
|
|
530
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
307
531
|
"if": {
|
|
532
|
+
"server": [
|
|
533
|
+
"git"
|
|
534
|
+
],
|
|
308
535
|
"tool": [
|
|
309
|
-
"
|
|
536
|
+
"git_tag"
|
|
537
|
+
],
|
|
538
|
+
"paths": {
|
|
539
|
+
"roles": [
|
|
540
|
+
"read-path",
|
|
541
|
+
"write-history",
|
|
542
|
+
"delete-history"
|
|
543
|
+
],
|
|
544
|
+
"within": "~/Downloads"
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
"then": "allow",
|
|
548
|
+
"reason": "All tag operations including deletion are permitted within Downloads since the agent has full access there."
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"name": "allow-git-remote-in-downloads",
|
|
552
|
+
"description": "Allow all git remote management operations within the Downloads folder.",
|
|
553
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
554
|
+
"if": {
|
|
555
|
+
"server": [
|
|
556
|
+
"git"
|
|
557
|
+
],
|
|
558
|
+
"tool": [
|
|
559
|
+
"git_remote"
|
|
560
|
+
],
|
|
561
|
+
"paths": {
|
|
562
|
+
"roles": [
|
|
563
|
+
"read-path",
|
|
564
|
+
"write-history",
|
|
565
|
+
"delete-history"
|
|
566
|
+
],
|
|
567
|
+
"within": "~/Downloads"
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"then": "allow",
|
|
571
|
+
"reason": "Local remote config operations (list, add, remove, rename, set-url) within Downloads are permitted."
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"name": "allow-git-clean-in-downloads",
|
|
575
|
+
"description": "Allow git clean operations within the Downloads folder.",
|
|
576
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
577
|
+
"if": {
|
|
578
|
+
"server": [
|
|
579
|
+
"git"
|
|
580
|
+
],
|
|
581
|
+
"tool": [
|
|
582
|
+
"git_clean"
|
|
583
|
+
],
|
|
584
|
+
"paths": {
|
|
585
|
+
"roles": [
|
|
586
|
+
"read-path",
|
|
587
|
+
"delete-path"
|
|
588
|
+
],
|
|
589
|
+
"within": "~/Downloads"
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
"then": "allow",
|
|
593
|
+
"reason": "Clean operations including file deletion are permitted within Downloads since the agent has full access there."
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"name": "allow-git-worktree-list-in-downloads",
|
|
597
|
+
"description": "Allow listing git worktrees for a repository within the Downloads folder.",
|
|
598
|
+
"principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
|
|
599
|
+
"if": {
|
|
600
|
+
"server": [
|
|
601
|
+
"git"
|
|
602
|
+
],
|
|
603
|
+
"tool": [
|
|
604
|
+
"git_worktree"
|
|
605
|
+
],
|
|
606
|
+
"paths": {
|
|
607
|
+
"roles": [
|
|
608
|
+
"read-path"
|
|
609
|
+
],
|
|
610
|
+
"within": "~/Downloads"
|
|
611
|
+
}
|
|
612
|
+
},
|
|
613
|
+
"then": "allow",
|
|
614
|
+
"reason": "Listing worktrees (read-only, mode=list) within Downloads is permitted; other worktree modes with write/delete roles fall through to deny."
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"name": "escalate-git-push",
|
|
618
|
+
"description": "Require human approval for all git push operations.",
|
|
619
|
+
"principle": "The agent must ask for human approval for all other git operations.",
|
|
620
|
+
"if": {
|
|
621
|
+
"server": [
|
|
622
|
+
"git"
|
|
623
|
+
],
|
|
624
|
+
"tool": [
|
|
625
|
+
"git_push"
|
|
626
|
+
]
|
|
627
|
+
},
|
|
628
|
+
"then": "escalate",
|
|
629
|
+
"reason": "Push is a remote network operation and always requires human approval per policy."
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"name": "escalate-git-pull",
|
|
633
|
+
"description": "Require human approval for all git pull operations.",
|
|
634
|
+
"principle": "The agent must ask for human approval for all other git operations.",
|
|
635
|
+
"if": {
|
|
636
|
+
"server": [
|
|
637
|
+
"git"
|
|
638
|
+
],
|
|
639
|
+
"tool": [
|
|
640
|
+
"git_pull"
|
|
641
|
+
]
|
|
642
|
+
},
|
|
643
|
+
"then": "escalate",
|
|
644
|
+
"reason": "Pull is a remote network operation and always requires human approval per policy."
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
"name": "escalate-git-fetch",
|
|
648
|
+
"description": "Require human approval for all git fetch operations.",
|
|
649
|
+
"principle": "The agent must ask for human approval for all other git operations.",
|
|
650
|
+
"if": {
|
|
651
|
+
"server": [
|
|
652
|
+
"git"
|
|
653
|
+
],
|
|
654
|
+
"tool": [
|
|
655
|
+
"git_fetch"
|
|
656
|
+
]
|
|
657
|
+
},
|
|
658
|
+
"then": "escalate",
|
|
659
|
+
"reason": "Fetch is a remote network operation and always requires human approval per policy."
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
"name": "escalate-git-clone",
|
|
663
|
+
"description": "Require human approval for all git clone operations.",
|
|
664
|
+
"principle": "The agent must ask for human approval for all other git operations.",
|
|
665
|
+
"if": {
|
|
666
|
+
"server": [
|
|
667
|
+
"git"
|
|
668
|
+
],
|
|
669
|
+
"tool": [
|
|
670
|
+
"git_clone"
|
|
310
671
|
]
|
|
311
672
|
},
|
|
312
673
|
"then": "escalate",
|
|
313
|
-
"reason": "
|
|
674
|
+
"reason": "Clone is a remote network operation and always requires human approval per policy."
|
|
314
675
|
},
|
|
315
676
|
{
|
|
316
|
-
"name": "
|
|
317
|
-
"description": "Allow read-only GitHub operations
|
|
677
|
+
"name": "github-read-operations-allow",
|
|
678
|
+
"description": "Allow all read-only GitHub operations (listing, searching, reading issues, PRs, repositories, code, comments, reviews).",
|
|
318
679
|
"principle": "The agent may freely list, search, and read GitHub resources without human approval.",
|
|
319
680
|
"if": {
|
|
681
|
+
"server": [
|
|
682
|
+
"github"
|
|
683
|
+
],
|
|
320
684
|
"tool": [
|
|
321
685
|
"get_commit",
|
|
322
686
|
"get_file_contents",
|
|
@@ -344,13 +708,16 @@
|
|
|
344
708
|
]
|
|
345
709
|
},
|
|
346
710
|
"then": "allow",
|
|
347
|
-
"reason": "
|
|
711
|
+
"reason": "These are purely read-only GitHub operations explicitly permitted without approval by the user policy."
|
|
348
712
|
},
|
|
349
713
|
{
|
|
350
|
-
"name": "
|
|
351
|
-
"description": "
|
|
714
|
+
"name": "github-write-operations-escalate",
|
|
715
|
+
"description": "Require human approval for all GitHub write, update, create, close, or delete operations.",
|
|
352
716
|
"principle": "Creating, updating, closing, or deleting GitHub resources requires human approval.",
|
|
353
717
|
"if": {
|
|
718
|
+
"server": [
|
|
719
|
+
"github"
|
|
720
|
+
],
|
|
354
721
|
"tool": [
|
|
355
722
|
"add_comment_to_pending_review",
|
|
356
723
|
"add_issue_comment",
|
|
@@ -373,7 +740,7 @@
|
|
|
373
740
|
]
|
|
374
741
|
},
|
|
375
742
|
"then": "escalate",
|
|
376
|
-
"reason": "GitHub
|
|
743
|
+
"reason": "These operations create, modify, or delete GitHub resources and require explicit human approval per user policy."
|
|
377
744
|
}
|
|
378
745
|
],
|
|
379
746
|
"listDefinitions": [
|
|
@@ -381,14 +748,14 @@
|
|
|
381
748
|
"name": "popular-news-sites",
|
|
382
749
|
"type": "domains",
|
|
383
750
|
"principle": "The agent may fetch web content from popular news sites.",
|
|
384
|
-
"generationPrompt": "List the domains of approximately
|
|
751
|
+
"generationPrompt": "List the domains of approximately 30 popular and well-known news websites (e.g., major national newspapers, international news agencies, and widely-read online news outlets).",
|
|
385
752
|
"requiresMcp": false
|
|
386
753
|
},
|
|
387
754
|
{
|
|
388
755
|
"name": "popular-development-sites",
|
|
389
756
|
"type": "domains",
|
|
390
757
|
"principle": "The agent may fetch web content from popular development sites.",
|
|
391
|
-
"generationPrompt": "List the domains of approximately
|
|
758
|
+
"generationPrompt": "List the domains of approximately 30 popular software development and programming reference websites (e.g., documentation hosts, package registries, developer forums, code hosting platforms, and technical reference sites).",
|
|
392
759
|
"requiresMcp": false
|
|
393
760
|
}
|
|
394
761
|
]
|