@intentic/sandbox-contract 1.331.0 → 1.333.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 +23 -1
- package/dist/chores/probes.d.ts.map +1 -1
- package/dist/chores/probes.js.map +1 -1
- package/dist/contracts/accounts.contract.d.ts +11 -0
- package/dist/contracts/accounts.contract.d.ts.map +1 -1
- package/dist/contracts/agent.contract.d.ts +38 -0
- package/dist/contracts/agent.contract.d.ts.map +1 -1
- package/dist/contracts/agent.contract.js +14 -3
- package/dist/contracts/agent.contract.js.map +1 -1
- package/dist/contracts/agents.contract.d.ts +29 -0
- package/dist/contracts/agents.contract.d.ts.map +1 -1
- package/dist/contracts/automations.contract.d.ts +3 -0
- package/dist/contracts/automations.contract.d.ts.map +1 -1
- package/dist/contracts/device.contract.d.ts +7 -0
- package/dist/contracts/device.contract.d.ts.map +1 -1
- package/dist/contracts/git.contract.d.ts +2 -0
- package/dist/contracts/git.contract.d.ts.map +1 -1
- package/dist/contracts/logs.contract.d.ts +10 -0
- package/dist/contracts/logs.contract.d.ts.map +1 -1
- package/dist/contracts/needs.contract.d.ts +36 -1
- package/dist/contracts/needs.contract.d.ts.map +1 -1
- package/dist/contracts/needs.contract.js +2 -2
- package/dist/contracts/needs.contract.js.map +1 -1
- package/dist/contracts/offload.contract.d.ts +70 -0
- package/dist/contracts/offload.contract.d.ts.map +1 -1
- package/dist/contracts/offload.contract.js +10 -1
- package/dist/contracts/offload.contract.js.map +1 -1
- package/dist/contracts/privacy.contract.d.ts +14 -0
- package/dist/contracts/privacy.contract.d.ts.map +1 -1
- package/dist/contracts/privacy.contract.js +11 -1
- package/dist/contracts/privacy.contract.js.map +1 -1
- package/dist/contracts/providers.contract.d.ts +3 -0
- package/dist/contracts/providers.contract.d.ts.map +1 -1
- package/dist/contracts/runner.contract.d.ts +103 -2
- package/dist/contracts/runner.contract.d.ts.map +1 -1
- package/dist/contracts/runner.contract.js +2 -2
- package/dist/contracts/runner.contract.js.map +1 -1
- package/dist/contracts/sessions.contract.d.ts +1 -0
- package/dist/contracts/sessions.contract.d.ts.map +1 -1
- package/dist/contracts/settings.contract.d.ts +106 -94
- package/dist/contracts/settings.contract.d.ts.map +1 -1
- package/dist/contracts/settings.contract.js +19 -1
- package/dist/contracts/settings.contract.js.map +1 -1
- package/dist/contracts/system.contract.d.ts +17 -0
- package/dist/contracts/system.contract.d.ts.map +1 -1
- package/dist/contracts/translator.contract.d.ts +4 -0
- package/dist/contracts/translator.contract.d.ts.map +1 -1
- package/dist/events/agent-events.d.ts +46 -0
- package/dist/events/agent-events.d.ts.map +1 -1
- package/dist/events/agent-events.js +6 -0
- package/dist/events/agent-events.js.map +1 -1
- package/dist/events/agent-words.d.ts.map +1 -1
- package/dist/events/agent-words.js +1 -1
- package/dist/events/agent-words.js.map +1 -1
- package/dist/events/resume.d.ts +3 -0
- package/dist/events/resume.d.ts.map +1 -1
- package/dist/events/resume.js +17 -2
- package/dist/events/resume.js.map +1 -1
- package/dist/events/sandbox-notice.d.ts +18 -0
- package/dist/events/sandbox-notice.d.ts.map +1 -1
- package/dist/events/sandbox-notice.js +27 -1
- package/dist/events/sandbox-notice.js.map +1 -1
- package/dist/events/system-events.d.ts +2 -0
- package/dist/events/system-events.d.ts.map +1 -1
- package/dist/events/transcript.d.ts +64 -0
- package/dist/events/transcript.d.ts.map +1 -1
- package/dist/events/transcript.js +17 -1
- package/dist/events/transcript.js.map +1 -1
- package/dist/index.d.ts +427 -167
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/models/agent-catalog.d.ts.map +1 -1
- package/dist/models/agent-catalog.js +8 -7
- package/dist/models/agent-catalog.js.map +1 -1
- package/dist/models/agent-runtimes.d.ts +3 -1
- package/dist/models/agent-runtimes.d.ts.map +1 -1
- package/dist/models/agent-runtimes.js +10 -0
- package/dist/models/agent-runtimes.js.map +1 -1
- package/dist/models/model-order.d.ts +1 -0
- package/dist/models/model-order.d.ts.map +1 -1
- package/dist/models/model-order.js +9 -0
- package/dist/models/model-order.js.map +1 -1
- package/dist/models/model-pins.d.ts.map +1 -1
- package/dist/models/model-pins.js.map +1 -1
- package/dist/models/model-roles.d.ts +33 -18
- package/dist/models/model-roles.d.ts.map +1 -1
- package/dist/models/model-roles.js +31 -27
- package/dist/models/model-roles.js.map +1 -1
- package/dist/models/model-setups.d.ts +46 -0
- package/dist/models/model-setups.d.ts.map +1 -0
- package/dist/models/model-setups.js +86 -0
- package/dist/models/model-setups.js.map +1 -0
- package/dist/models/plan-pools.d.ts +3 -1
- package/dist/models/plan-pools.d.ts.map +1 -1
- package/dist/models/plan-pools.js +18 -6
- package/dist/models/plan-pools.js.map +1 -1
- package/dist/models/provider-specs.d.ts +20 -0
- package/dist/models/provider-specs.d.ts.map +1 -1
- package/dist/models/provider-specs.js +13 -1
- package/dist/models/provider-specs.js.map +1 -1
- package/dist/policy/command-classes.d.ts.map +1 -1
- package/dist/policy/command-classes.js +26 -3
- package/dist/policy/command-classes.js.map +1 -1
- package/dist/policy/control-scopes.d.ts +47 -0
- package/dist/policy/control-scopes.d.ts.map +1 -1
- package/dist/policy/control-scopes.js +16 -0
- package/dist/policy/control-scopes.js.map +1 -1
- package/dist/policy/credential-material.d.ts +6 -0
- package/dist/policy/credential-material.d.ts.map +1 -1
- package/dist/policy/credential-material.js +37 -15
- package/dist/policy/credential-material.js.map +1 -1
- package/dist/policy/device-programs.d.ts +28 -0
- package/dist/policy/device-programs.d.ts.map +1 -0
- package/dist/policy/device-programs.js +79 -0
- package/dist/policy/device-programs.js.map +1 -0
- package/dist/policy/identity-assertion.d.ts +27 -0
- package/dist/policy/identity-assertion.d.ts.map +1 -0
- package/dist/policy/identity-assertion.js +77 -0
- package/dist/policy/identity-assertion.js.map +1 -0
- package/dist/policy/sandbox-power.d.ts +34 -0
- package/dist/policy/sandbox-power.d.ts.map +1 -0
- package/dist/policy/sandbox-power.js +146 -0
- package/dist/policy/sandbox-power.js.map +1 -0
- package/dist/policy/search-globs.d.ts +3 -0
- package/dist/policy/search-globs.d.ts.map +1 -1
- package/dist/policy/search-globs.js +118 -0
- package/dist/policy/search-globs.js.map +1 -1
- package/dist/policy/secret-hosts.d.ts +1 -0
- package/dist/policy/secret-hosts.d.ts.map +1 -1
- package/dist/policy/secret-hosts.js +1 -0
- package/dist/policy/secret-hosts.js.map +1 -1
- package/dist/policy/turned-away.d.ts.map +1 -1
- package/dist/policy/turned-away.js +1 -0
- package/dist/policy/turned-away.js.map +1 -1
- package/dist/protocol/doors/runner-protocol.d.ts +45 -0
- package/dist/protocol/doors/runner-protocol.d.ts.map +1 -1
- package/dist/protocol/doors/runner-protocol.js +7 -0
- package/dist/protocol/doors/runner-protocol.js.map +1 -1
- package/dist/protocol/pairing-redeem.d.ts +23 -0
- package/dist/protocol/pairing-redeem.d.ts.map +1 -0
- package/dist/protocol/pairing-redeem.js +44 -0
- package/dist/protocol/pairing-redeem.js.map +1 -0
- package/dist/protocol/peer-mcp-server.d.ts.map +1 -1
- package/dist/protocol/peer-mcp-server.js +1 -1
- package/dist/protocol/peer-mcp-server.js.map +1 -1
- package/dist/protocol/raw/raw-json-routes.d.ts +855 -1
- package/dist/protocol/raw/raw-json-routes.d.ts.map +1 -1
- package/dist/protocol/raw/raw-json-routes.js +61 -1
- package/dist/protocol/raw/raw-json-routes.js.map +1 -1
- package/dist/protocol/raw/raw-routes.d.ts +17 -0
- package/dist/protocol/raw/raw-routes.d.ts.map +1 -1
- package/dist/protocol/raw/raw-routes.js +5 -0
- package/dist/protocol/raw/raw-routes.js.map +1 -1
- package/dist/protocol/sse.d.ts +20 -1
- package/dist/protocol/sse.d.ts.map +1 -1
- package/dist/protocol/sse.js +112 -17
- package/dist/protocol/sse.js.map +1 -1
- package/dist/schemas/agent.d.ts +35 -0
- package/dist/schemas/agent.d.ts.map +1 -1
- package/dist/schemas/agent.js +12 -1
- package/dist/schemas/agent.js.map +1 -1
- package/dist/schemas/automations.d.ts +7 -0
- package/dist/schemas/automations.d.ts.map +1 -1
- package/dist/schemas/automations.js +11 -3
- package/dist/schemas/automations.js.map +1 -1
- package/dist/schemas/device-swaps.d.ts +19 -0
- package/dist/schemas/device-swaps.d.ts.map +1 -0
- package/dist/schemas/device-swaps.js +11 -0
- package/dist/schemas/device-swaps.js.map +1 -0
- package/dist/schemas/devices.d.ts +17 -0
- package/dist/schemas/devices.d.ts.map +1 -1
- package/dist/schemas/devices.js +2 -1
- package/dist/schemas/devices.js.map +1 -1
- package/dist/schemas/engines.d.ts +8 -1
- package/dist/schemas/engines.d.ts.map +1 -1
- package/dist/schemas/engines.js +1 -1
- package/dist/schemas/engines.js.map +1 -1
- package/dist/schemas/environment.d.ts +7 -0
- package/dist/schemas/environment.d.ts.map +1 -1
- package/dist/schemas/environment.js +2 -0
- package/dist/schemas/environment.js.map +1 -1
- package/dist/schemas/git/git-scope.d.ts +20 -0
- package/dist/schemas/git/git-scope.d.ts.map +1 -0
- package/dist/schemas/git/git-scope.js +37 -0
- package/dist/schemas/git/git-scope.js.map +1 -0
- package/dist/schemas/git/git.d.ts +1 -0
- package/dist/schemas/git/git.d.ts.map +1 -1
- package/dist/schemas/git/git.js +9 -1
- package/dist/schemas/git/git.js.map +1 -1
- package/dist/schemas/hosts.d.ts +42 -0
- package/dist/schemas/hosts.d.ts.map +1 -1
- package/dist/schemas/hosts.js +3 -0
- package/dist/schemas/hosts.js.map +1 -1
- package/dist/schemas/keep-warm.d.ts +1 -0
- package/dist/schemas/keep-warm.d.ts.map +1 -1
- package/dist/schemas/keep-warm.js +1 -1
- package/dist/schemas/keep-warm.js.map +1 -1
- package/dist/schemas/logs.d.ts +21 -0
- package/dist/schemas/logs.d.ts.map +1 -1
- package/dist/schemas/logs.js +19 -0
- package/dist/schemas/logs.js.map +1 -1
- package/dist/schemas/members.d.ts +4 -0
- package/dist/schemas/members.d.ts.map +1 -1
- package/dist/schemas/members.js +5 -0
- package/dist/schemas/members.js.map +1 -1
- package/dist/schemas/metrics.d.ts +12 -0
- package/dist/schemas/metrics.d.ts.map +1 -1
- package/dist/schemas/metrics.js +26 -8
- package/dist/schemas/metrics.js.map +1 -1
- package/dist/schemas/needs.d.ts +97 -1
- package/dist/schemas/needs.d.ts.map +1 -1
- package/dist/schemas/needs.js +53 -4
- package/dist/schemas/needs.js.map +1 -1
- package/dist/schemas/offload.d.ts +154 -0
- package/dist/schemas/offload.d.ts.map +1 -1
- package/dist/schemas/offload.js +34 -0
- package/dist/schemas/offload.js.map +1 -1
- package/dist/schemas/privacy.d.ts +19 -0
- package/dist/schemas/privacy.d.ts.map +1 -1
- package/dist/schemas/privacy.js +17 -2
- package/dist/schemas/privacy.js.map +1 -1
- package/dist/schemas/project-bring-back.d.ts +172 -0
- package/dist/schemas/project-bring-back.d.ts.map +1 -0
- package/dist/schemas/project-bring-back.js +39 -0
- package/dist/schemas/project-bring-back.js.map +1 -0
- package/dist/schemas/providers/handoff.d.ts +77 -0
- package/dist/schemas/providers/handoff.d.ts.map +1 -0
- package/dist/schemas/providers/handoff.js +85 -0
- package/dist/schemas/providers/handoff.js.map +1 -0
- package/dist/schemas/providers/plan-limits.d.ts +27 -0
- package/dist/schemas/providers/plan-limits.d.ts.map +1 -1
- package/dist/schemas/providers/plan-limits.js +8 -1
- package/dist/schemas/providers/plan-limits.js.map +1 -1
- package/dist/schemas/providers/provider-oauth.d.ts +4 -0
- package/dist/schemas/providers/provider-oauth.d.ts.map +1 -1
- package/dist/schemas/providers/usage.d.ts +3 -1
- package/dist/schemas/providers/usage.d.ts.map +1 -1
- package/dist/schemas/providers/usage.js +7 -2
- package/dist/schemas/providers/usage.js.map +1 -1
- package/dist/schemas/restart-intent.d.ts +47 -0
- package/dist/schemas/restart-intent.d.ts.map +1 -0
- package/dist/schemas/restart-intent.js +19 -0
- package/dist/schemas/restart-intent.js.map +1 -0
- package/dist/schemas/run-targets.d.ts.map +1 -1
- package/dist/schemas/run-targets.js +5 -2
- package/dist/schemas/run-targets.js.map +1 -1
- package/dist/schemas/settings-history.d.ts +1 -1
- package/dist/schemas/settings-history.d.ts.map +1 -1
- package/dist/schemas/settings-history.js +21 -0
- package/dist/schemas/settings-history.js.map +1 -1
- package/dist/schemas/settings.d.ts +101 -100
- package/dist/schemas/settings.d.ts.map +1 -1
- package/dist/schemas/settings.js +43 -24
- package/dist/schemas/settings.js.map +1 -1
- package/dist/schemas/short-codes.d.ts +47 -0
- package/dist/schemas/short-codes.d.ts.map +1 -0
- package/dist/schemas/short-codes.js +30 -0
- package/dist/schemas/short-codes.js.map +1 -0
- package/dist/schemas/speech.d.ts +4 -0
- package/dist/schemas/speech.d.ts.map +1 -1
- package/dist/schemas/speech.js +1 -0
- package/dist/schemas/speech.js.map +1 -1
- package/dist/schemas/system.d.ts +176 -0
- package/dist/schemas/system.d.ts.map +1 -1
- package/dist/schemas/system.js +55 -2
- package/dist/schemas/system.js.map +1 -1
- package/dist/schemas/voice.d.ts +171 -0
- package/dist/schemas/voice.d.ts.map +1 -0
- package/dist/schemas/voice.js +99 -0
- package/dist/schemas/voice.js.map +1 -0
- package/dist/schemas/workspace/workspace-upload.d.ts +14 -0
- package/dist/schemas/workspace/workspace-upload.d.ts.map +1 -0
- package/dist/schemas/workspace/workspace-upload.js +6 -0
- package/dist/schemas/workspace/workspace-upload.js.map +1 -0
- package/dist/state/arrival.d.ts +3 -0
- package/dist/state/arrival.d.ts.map +1 -1
- package/dist/state/arrival.js +1 -0
- package/dist/state/arrival.js.map +1 -1
- package/dist/state/definition.d.ts +112 -40
- package/dist/state/definition.d.ts.map +1 -1
- package/dist/state/history-state.d.ts.map +1 -1
- package/dist/state/history-state.js +3 -0
- package/dist/state/history-state.js.map +1 -1
- package/dist/state/runtime-state.d.ts +5 -2
- package/dist/state/runtime-state.d.ts.map +1 -1
- package/dist/state/runtime-state.js +3 -2
- package/dist/state/runtime-state.js.map +1 -1
- package/dist/state/update-probation.d.ts +50 -0
- package/dist/state/update-probation.d.ts.map +1 -0
- package/dist/state/update-probation.js +81 -0
- package/dist/state/update-probation.js.map +1 -0
- package/dist/state/versions.d.ts +6 -0
- package/dist/state/versions.d.ts.map +1 -1
- package/dist/state/versions.js +47 -0
- package/dist/state/versions.js.map +1 -1
- package/dist/state/workspace-state.d.ts +1 -1
- package/dist/state/workspace-state.d.ts.map +1 -1
- package/dist/state/workspace-state.js +1 -1
- package/dist/state/workspace-state.js.map +1 -1
- package/dist/text/embed.d.ts +2 -1
- package/dist/text/embed.d.ts.map +1 -1
- package/dist/text/embed.js +10 -5
- package/dist/text/embed.js.map +1 -1
- package/dist/text/title.d.ts.map +1 -1
- package/dist/text/title.js +4 -7
- package/dist/text/title.js.map +1 -1
- package/dist/text/transcript-fold.d.ts +2 -1
- package/dist/text/transcript-fold.d.ts.map +1 -1
- package/dist/text/transcript-fold.js +21 -6
- package/dist/text/transcript-fold.js.map +1 -1
- package/package.json +39 -6
- package/src/chores/probes.ts +3 -1
- package/src/contracts/agent.contract.ts +24 -3
- package/src/contracts/needs.contract.ts +2 -2
- package/src/contracts/offload.contract.ts +21 -1
- package/src/contracts/privacy.contract.ts +13 -0
- package/src/contracts/runner.contract.ts +10 -2
- package/src/contracts/settings.contract.ts +23 -0
- package/src/events/agent-events.ts +13 -0
- package/src/events/agent-words.ts +2 -3
- package/src/events/resume.test.ts +14 -2
- package/src/events/resume.ts +32 -3
- package/src/events/sandbox-notice.ts +31 -1
- package/src/events/transcript.ts +27 -2
- package/src/ids/tunnel-ids.test.ts +30 -0
- package/src/index.ts +12 -0
- package/src/models/agent-catalog.test.ts +4 -3
- package/src/models/agent-catalog.ts +10 -7
- package/src/models/agent-runtimes.ts +30 -1
- package/src/models/capability-ledger.test.ts +4 -0
- package/src/models/model-order.ts +13 -0
- package/src/models/model-pins.ts +5 -4
- package/src/models/model-roles.test.ts +9 -31
- package/src/models/model-roles.ts +45 -50
- package/src/models/model-setups.test.ts +100 -0
- package/src/models/model-setups.ts +151 -0
- package/src/models/plan-pools.test.ts +58 -0
- package/src/models/plan-pools.ts +38 -7
- package/src/models/provider-specs.ts +20 -2
- package/src/policy/command-classes.ts +34 -3
- package/src/policy/control-scopes.ts +27 -0
- package/src/policy/credential-material.ts +58 -16
- package/src/policy/device-programs.ts +137 -0
- package/src/policy/identity-assertion.ts +130 -0
- package/src/policy/sandbox-power.ts +247 -0
- package/src/policy/search-globs.ts +135 -0
- package/src/policy/secret-hosts.ts +7 -0
- package/src/policy/tests/command-classes.test.ts +35 -0
- package/src/policy/tests/credential-material.test.ts +20 -0
- package/src/policy/tests/device-programs.test.ts +107 -0
- package/src/policy/tests/identity-assertion.test.ts +79 -0
- package/src/policy/tests/sandbox-power.test.ts +181 -0
- package/src/policy/tests/search-globs.test.ts +46 -1
- package/src/policy/tests/secret-hosts.test.ts +17 -1
- package/src/policy/turned-away.ts +2 -0
- package/src/protocol/doors/runner-protocol.ts +21 -1
- package/src/protocol/pairing-redeem.test.ts +86 -0
- package/src/protocol/pairing-redeem.ts +79 -0
- package/src/protocol/peer-mcp-server.ts +1 -2
- package/src/protocol/raw/raw-json-routes.test.ts +87 -0
- package/src/protocol/raw/raw-json-routes.ts +127 -5
- package/src/protocol/raw/raw-routes.ts +11 -0
- package/src/protocol/sse.test.ts +50 -1
- package/src/protocol/sse.ts +172 -26
- package/src/schemas/agent.ts +23 -2
- package/src/schemas/automations.ts +16 -5
- package/src/schemas/daemon-health.test.ts +28 -0
- package/src/schemas/device-swaps.test.ts +39 -0
- package/src/schemas/device-swaps.ts +26 -0
- package/src/schemas/devices.ts +11 -2
- package/src/schemas/engines.ts +1 -1
- package/src/schemas/environment.ts +4 -0
- package/src/schemas/git/git-scope.test.ts +91 -0
- package/src/schemas/git/git-scope.ts +71 -0
- package/src/schemas/git/git.ts +15 -1
- package/src/schemas/hosts.ts +7 -0
- package/src/schemas/keep-warm.ts +2 -1
- package/src/schemas/logs.ts +25 -0
- package/src/schemas/members.ts +8 -0
- package/src/schemas/metrics.test.ts +80 -0
- package/src/schemas/metrics.ts +31 -9
- package/src/schemas/needs.ts +80 -4
- package/src/schemas/offload.ts +76 -0
- package/src/schemas/privacy.ts +27 -3
- package/src/schemas/project-bring-back.test.ts +15 -0
- package/src/schemas/project-bring-back.ts +78 -0
- package/src/schemas/providers/handoff.test.ts +42 -0
- package/src/schemas/providers/handoff.ts +128 -0
- package/src/schemas/providers/plan-limits.ts +14 -1
- package/src/schemas/providers/usage.ts +13 -7
- package/src/schemas/restart-intent.test.ts +45 -0
- package/src/schemas/restart-intent.ts +47 -0
- package/src/schemas/run-targets.ts +5 -2
- package/src/schemas/settings-history.ts +28 -0
- package/src/schemas/settings.test.ts +74 -21
- package/src/schemas/settings.ts +80 -44
- package/src/schemas/short-codes.ts +59 -0
- package/src/schemas/speech.ts +4 -0
- package/src/schemas/system.ts +106 -5
- package/src/schemas/voice.ts +161 -0
- package/src/schemas/workspace/workspace-upload.ts +11 -0
- package/src/state/arrival.ts +3 -0
- package/src/state/history-state.ts +9 -0
- package/src/state/runtime-state.test.ts +13 -0
- package/src/state/runtime-state.ts +11 -5
- package/src/state/update-probation.test.ts +45 -0
- package/src/state/update-probation.ts +169 -0
- package/src/state/versions.test.ts +30 -1
- package/src/state/versions.ts +68 -0
- package/src/state/workspace-state.ts +4 -1
- package/src/text/embed.test.ts +14 -0
- package/src/text/embed.ts +19 -10
- package/src/text/title.ts +5 -9
- package/src/text/transcript-fold.test.ts +61 -0
- package/src/text/transcript-fold.ts +31 -6
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const ProgramArgumentsSchema = z.looseObject({
|
|
3
|
+
command: z.string().optional().catch(undefined),
|
|
4
|
+
serial: z.string().optional().catch(undefined),
|
|
5
|
+
program: z.string().optional().catch(undefined),
|
|
6
|
+
args: z.array(z.string()).optional().catch(undefined),
|
|
7
|
+
target: z.string().optional().catch(undefined),
|
|
8
|
+
action: z.string().optional().catch(undefined),
|
|
9
|
+
text: z.string().optional().catch(undefined),
|
|
10
|
+
value: z.string().optional().catch(undefined),
|
|
11
|
+
});
|
|
12
|
+
const present = (value) => (value === undefined || value.trim() === "" ? undefined : value);
|
|
13
|
+
const programName = (program) => (program.split(/[/\\]/).at(-1) ?? program).replace(/\.exe$/i, "");
|
|
14
|
+
export const commandLineOf = (program, args) => [
|
|
15
|
+
programName(program),
|
|
16
|
+
...args.map((arg) => (arg === "" || /[\s'"|;&<>()$`\\]/.test(arg) ? (arg.includes("'") ? `"${arg}"` : `'${arg}'`) : arg)),
|
|
17
|
+
].join(" ");
|
|
18
|
+
const ADB_SERIAL = /^[\w.:-]+$/;
|
|
19
|
+
const URL_TARGET = /^(?:[a-z][a-z0-9+.-]*:\/\/|www\.|mailto:)/i;
|
|
20
|
+
const typedBy = (tool, action, field) => ({
|
|
21
|
+
tool,
|
|
22
|
+
carries: `${field}, when action is ${action}`,
|
|
23
|
+
read: (args) => {
|
|
24
|
+
const typed = args.action === action ? present(args[field]) : undefined;
|
|
25
|
+
return typed === undefined ? undefined : { kind: "typed", commandLine: typed };
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
export const DEVICE_PROGRAM_TOOLS = [
|
|
29
|
+
{
|
|
30
|
+
tool: "run_command",
|
|
31
|
+
carries: "command",
|
|
32
|
+
read: ({ command }) => {
|
|
33
|
+
const line = present(command);
|
|
34
|
+
return line === undefined ? undefined : { kind: "command", commandLine: line };
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
tool: "android_shell",
|
|
39
|
+
carries: "command, run as `adb [-s serial] shell <command>`",
|
|
40
|
+
read: ({ command, serial }) => {
|
|
41
|
+
const line = present(command);
|
|
42
|
+
if (line === undefined) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
return { kind: "phone-command", commandLine: `adb ${serial !== undefined && ADB_SERIAL.test(serial) ? `-s ${serial} ` : ""}shell ${line}` };
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
tool: "app_start",
|
|
50
|
+
carries: "program and args",
|
|
51
|
+
read: ({ program, args }) => {
|
|
52
|
+
const started = present(program);
|
|
53
|
+
if (started === undefined) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
return { kind: args === undefined || args.length === 0 ? "app-launch" : "command", commandLine: commandLineOf(started, args ?? []) };
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
tool: "open",
|
|
61
|
+
carries: "target",
|
|
62
|
+
read: ({ target }) => {
|
|
63
|
+
const opened = present(target);
|
|
64
|
+
if (opened === undefined) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
return { kind: URL_TARGET.test(opened) || !/\s/.test(opened.trim()) ? "app-launch" : "command", commandLine: opened };
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
typedBy("device", "type", "text"),
|
|
71
|
+
typedBy("android_act", "type", "text"),
|
|
72
|
+
typedBy("clipboard", "write", "text"),
|
|
73
|
+
typedBy("ui_act", "set_value", "value"),
|
|
74
|
+
];
|
|
75
|
+
export const programInCall = (tool, args) => {
|
|
76
|
+
const read = DEVICE_PROGRAM_TOOLS.find((carrier) => carrier.tool === tool)?.read(args);
|
|
77
|
+
return read === undefined ? undefined : { tool, ...read };
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=device-programs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-programs.js","sourceRoot":"","sources":["../../src/policy/device-programs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const IDENTITY_ASSERTION_TTL_MS: number;
|
|
3
|
+
export declare const IDENTITY_ASSERTION_MAX_TTL_MS: number;
|
|
4
|
+
export declare const ENV_PLATFORM_IDENTITY_KEY = "PLATFORM_IDENTITY_KEY";
|
|
5
|
+
export declare const IdentityAssertionMethodSchema: z.ZodEnum<{
|
|
6
|
+
email: "email";
|
|
7
|
+
google: "google";
|
|
8
|
+
}>;
|
|
9
|
+
export type IdentityAssertionMethod = z.infer<typeof IdentityAssertionMethodSchema>;
|
|
10
|
+
export interface IdentityAssertion {
|
|
11
|
+
readonly sandboxId: string;
|
|
12
|
+
readonly email: string;
|
|
13
|
+
readonly method: IdentityAssertionMethod;
|
|
14
|
+
readonly issuedAt: number;
|
|
15
|
+
readonly expiresAt: number;
|
|
16
|
+
readonly nonce: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const isIdentityAssertion: (bearer: string) => boolean;
|
|
19
|
+
export declare const mintIdentityAssertion: (privateKeyPem: string, claim: {
|
|
20
|
+
readonly sandboxId: string;
|
|
21
|
+
readonly email: string;
|
|
22
|
+
readonly method: IdentityAssertionMethod;
|
|
23
|
+
readonly issuedAtMs: number;
|
|
24
|
+
readonly ttlMs?: number;
|
|
25
|
+
}) => string;
|
|
26
|
+
export declare const verifyIdentityAssertion: (publicKeyPem: string, token: string, nowMs: number) => IdentityAssertion | undefined;
|
|
27
|
+
//# sourceMappingURL=identity-assertion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-assertion.d.ts","sourceRoot":"","sources":["../../src/policy/identity-assertion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,yBAAyB,QAAa,CAAC;AAGpD,eAAO,MAAM,6BAA6B,QAAa,CAAC;AAIxD,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AAGjE,eAAO,MAAM,6BAA6B;;;EAA8B,CAAC;AACzE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAGpF,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B;AAQD,eAAO,MAAM,mBAAmB,WAAY,MAAM,KAAG,OAAoD,CAAC;AAE1G,eAAO,MAAM,qBAAqB,kBACf,MAAM,SACd;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B,KACF,MA2BF,CAAC;AAyBF,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,SAAS,MAAM,SAAS,MAAM,KAAG,iBAAiB,GAAG,SAuBhH,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { createPrivateKey, createPublicKey, randomBytes, sign as edSign, verify as edVerify } from "node:crypto";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { SANDBOX_ID } from "../ids/tunnel-ids.js";
|
|
4
|
+
const ASSERTION_PREFIX = "pa1";
|
|
5
|
+
export const IDENTITY_ASSERTION_TTL_MS = 2 * 60_000;
|
|
6
|
+
export const IDENTITY_ASSERTION_MAX_TTL_MS = 5 * 60_000;
|
|
7
|
+
export const ENV_PLATFORM_IDENTITY_KEY = "PLATFORM_IDENTITY_KEY";
|
|
8
|
+
export const IdentityAssertionMethodSchema = z.enum(["email", "google"]);
|
|
9
|
+
const base64url = (bytes) => bytes.toString("base64url");
|
|
10
|
+
const signedBytes = (payload) => Buffer.concat([Buffer.from(`${ASSERTION_PREFIX}.`, "utf8"), payload]);
|
|
11
|
+
export const isIdentityAssertion = (bearer) => bearer.startsWith(`${ASSERTION_PREFIX}.`);
|
|
12
|
+
export const mintIdentityAssertion = (privateKeyPem, claim) => {
|
|
13
|
+
if (!SANDBOX_ID.test(claim.sandboxId)) {
|
|
14
|
+
throw new Error(`an identity assertion names a 12-hex sandbox id, got "${claim.sandboxId}"`);
|
|
15
|
+
}
|
|
16
|
+
if (claim.email.trim() === "") {
|
|
17
|
+
throw new Error("an identity assertion names an address");
|
|
18
|
+
}
|
|
19
|
+
const ttlMs = claim.ttlMs ?? IDENTITY_ASSERTION_TTL_MS;
|
|
20
|
+
if (ttlMs <= 0 || ttlMs > IDENTITY_ASSERTION_MAX_TTL_MS) {
|
|
21
|
+
throw new Error(`an identity assertion lives at most ${IDENTITY_ASSERTION_MAX_TTL_MS} ms`);
|
|
22
|
+
}
|
|
23
|
+
const iat = Math.floor(claim.issuedAtMs / 1000);
|
|
24
|
+
const exp = Math.floor((claim.issuedAtMs + ttlMs) / 1000);
|
|
25
|
+
const payload = Buffer.from(JSON.stringify({
|
|
26
|
+
v: 1,
|
|
27
|
+
sub: claim.sandboxId,
|
|
28
|
+
email: claim.email.trim().toLowerCase(),
|
|
29
|
+
amr: claim.method,
|
|
30
|
+
iat,
|
|
31
|
+
exp,
|
|
32
|
+
jti: base64url(randomBytes(16)),
|
|
33
|
+
}), "utf8");
|
|
34
|
+
const signature = edSign(null, signedBytes(payload), createPrivateKey(privateKeyPem));
|
|
35
|
+
return `${ASSERTION_PREFIX}.${base64url(payload)}.${base64url(signature)}`;
|
|
36
|
+
};
|
|
37
|
+
const AssertionPayloadSchema = z.object({
|
|
38
|
+
v: z.literal(1),
|
|
39
|
+
sub: z.string().regex(SANDBOX_ID),
|
|
40
|
+
email: z.string().min(1),
|
|
41
|
+
amr: IdentityAssertionMethodSchema,
|
|
42
|
+
iat: z.number(),
|
|
43
|
+
exp: z.number(),
|
|
44
|
+
jti: z.string().min(16),
|
|
45
|
+
});
|
|
46
|
+
const parsePayload = (payload) => {
|
|
47
|
+
try {
|
|
48
|
+
return AssertionPayloadSchema.safeParse(JSON.parse(payload.toString("utf8"))).data;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
export const verifyIdentityAssertion = (publicKeyPem, token, nowMs) => {
|
|
55
|
+
const [prefix, encodedPayload, encodedSignature, ...rest] = token.split(".");
|
|
56
|
+
if (prefix !== ASSERTION_PREFIX || encodedPayload === undefined || encodedSignature === undefined || rest.length > 0) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
const payload = Buffer.from(encodedPayload, "base64url");
|
|
60
|
+
try {
|
|
61
|
+
if (!edVerify(null, signedBytes(payload), createPublicKey(publicKeyPem), Buffer.from(encodedSignature, "base64url"))) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
const claim = parsePayload(payload);
|
|
69
|
+
if (claim === undefined) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
if (claim.exp * 1000 <= nowMs || claim.iat * 1000 > nowMs + 60_000 || (claim.exp - claim.iat) * 1000 > IDENTITY_ASSERTION_MAX_TTL_MS) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
return { sandboxId: claim.sub, email: claim.email, method: claim.amr, issuedAt: claim.iat, expiresAt: claim.exp, nonce: claim.jti };
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=identity-assertion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-assertion.js","sourceRoot":"","sources":["../../src/policy/identity-assertion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AASlD,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAG/B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,MAAM,CAAC;AAGpD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,GAAG,MAAM,CAAC;AAIxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAGjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAazE,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAIzE,MAAM,WAAW,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,gBAAgB,GAAG,CAAC,CAAC;AAE1G,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,aAAqB,EACrB,KAMC,EACK,EAAE;IACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,yDAAyD,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,yBAAyB,CAAC;IACvD,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,6BAA6B,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,uCAAuC,6BAA6B,KAAK,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACvB,IAAI,CAAC,SAAS,CAAC;QACX,CAAC,EAAE,CAAC;QACJ,GAAG,EAAE,KAAK,CAAC,SAAS;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QACvC,GAAG,EAAE,KAAK,CAAC,MAAM;QACjB,GAAG;QACH,GAAG;QACH,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAClC,CAAC,EACF,MAAM,CACT,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;IACtF,OAAO,GAAG,gBAAgB,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;AAC/E,CAAC,CAAC;AAGF,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,OAAe,EAAsD,EAAE;IACzF,IAAI,CAAC;QACD,OAAO,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QAEL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAoB,EAAE,KAAa,EAAE,KAAa,EAAiC,EAAE;IACzH,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,MAAM,KAAK,gBAAgB,IAAI,cAAc,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnH,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACnH,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QAEL,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,6BAA6B,EAAE,CAAC;QACnI,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AACxI,CAAC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CommandSpan } from "./command-classes.js";
|
|
2
|
+
export type SandboxPowerOp = "start" | "stop" | "restart" | "sleep" | "remove" | "update" | "prepare" | "rebuild" | "rollback" | "dev" | "resize" | "restore" | "connect";
|
|
3
|
+
export declare const SANDBOX_POWER_DOING: {
|
|
4
|
+
readonly start: "Start";
|
|
5
|
+
readonly stop: "Stop";
|
|
6
|
+
readonly restart: "Restart";
|
|
7
|
+
readonly sleep: "Stop";
|
|
8
|
+
readonly remove: "Remove";
|
|
9
|
+
readonly update: "Update";
|
|
10
|
+
readonly prepare: "Prepare an update for";
|
|
11
|
+
readonly rebuild: "Rebuild";
|
|
12
|
+
readonly rollback: "Roll back";
|
|
13
|
+
readonly dev: "Update";
|
|
14
|
+
readonly resize: "Restart with new resources";
|
|
15
|
+
readonly restore: "Restore a backup over";
|
|
16
|
+
readonly connect: "Reinstall";
|
|
17
|
+
};
|
|
18
|
+
export interface SandboxPowerCommand {
|
|
19
|
+
readonly via: "ic" | "docker";
|
|
20
|
+
readonly op: SandboxPowerOp;
|
|
21
|
+
readonly stops: boolean;
|
|
22
|
+
readonly targets: readonly string[];
|
|
23
|
+
readonly unnamed: boolean;
|
|
24
|
+
readonly span: CommandSpan;
|
|
25
|
+
readonly live: boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare const sandboxPowerCommands: (command: string) => SandboxPowerCommand[];
|
|
28
|
+
export interface OwnSandbox {
|
|
29
|
+
readonly slug: string;
|
|
30
|
+
readonly container: string;
|
|
31
|
+
}
|
|
32
|
+
export declare const mayReachSandbox: (hit: SandboxPowerCommand, own: OwnSandbox) => boolean;
|
|
33
|
+
export declare const managesSandbox: (hit: SandboxPowerCommand, containerPrefix: string) => boolean;
|
|
34
|
+
//# sourceMappingURL=sandbox-power.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-power.d.ts","sourceRoot":"","sources":["../../src/policy/sandbox-power.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWxD,MAAM,MAAM,cAAc,GACpB,OAAO,GACP,MAAM,GACN,SAAS,GACT,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,UAAU,GACV,KAAK,GACL,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAGhB,eAAO,MAAM,mBAAmB;oBACrB,OAAO;mBACR,MAAM;sBACH,SAAS;oBACX,MAAM;qBACL,QAAQ;qBACR,QAAQ;sBACP,uBAAuB;sBACvB,SAAS;uBACR,WAAW;kBAChB,QAAQ;qBACL,4BAA4B;sBAC3B,uBAAuB;sBACvB,WAAW;CAC2B,CAAC;AAGpD,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG,QAAQ,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAE5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAEpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CAC1B;AA+ID,eAAO,MAAM,oBAAoB,YAAa,MAAM,KAAG,mBAAmB,EAoBzE,CAAC;AAMF,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B;AAOD,eAAO,MAAM,eAAe,QAAS,mBAAmB,OAAO,UAAU,KAAG,OAC2C,CAAC;AAOxH,eAAO,MAAM,cAAc,QAAS,mBAAmB,mBAAmB,MAAM,KAAG,OACK,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { inertRegions, isLive } from "../text/shell-regions.js";
|
|
2
|
+
export const SANDBOX_POWER_DOING = {
|
|
3
|
+
start: "Start",
|
|
4
|
+
stop: "Stop",
|
|
5
|
+
restart: "Restart",
|
|
6
|
+
sleep: "Stop",
|
|
7
|
+
remove: "Remove",
|
|
8
|
+
update: "Update",
|
|
9
|
+
prepare: "Prepare an update for",
|
|
10
|
+
rebuild: "Rebuild",
|
|
11
|
+
rollback: "Roll back",
|
|
12
|
+
dev: "Update",
|
|
13
|
+
resize: "Restart with new resources",
|
|
14
|
+
restore: "Restore a backup over",
|
|
15
|
+
connect: "Reinstall",
|
|
16
|
+
};
|
|
17
|
+
const IC_INVOCATION = /(?<![\w.$-])ic(?:\.exe)?["']?\s+sandbox\s+([a-z][a-z-]*)(?![\w-])/gi;
|
|
18
|
+
const DOCKER_INVOCATION = /(?<![\w.$-])(?:docker|podman)(?:\.exe)?["']?\s+(?:container\s+)?(stop|restart|rm|remove|kill)(?![\w-])/gi;
|
|
19
|
+
const IC_VERBS = new Map([
|
|
20
|
+
["start", "start"],
|
|
21
|
+
["stop", "stop"],
|
|
22
|
+
["restart", "restart"],
|
|
23
|
+
["sleep", "sleep"],
|
|
24
|
+
["remove", "remove"],
|
|
25
|
+
["rm", "remove"],
|
|
26
|
+
["update", "update"],
|
|
27
|
+
["prepare", "prepare"],
|
|
28
|
+
["rebuild", "rebuild"],
|
|
29
|
+
["rollback", "rollback"],
|
|
30
|
+
["dev", "dev"],
|
|
31
|
+
["reshape", "resize"],
|
|
32
|
+
["shape", "resize"],
|
|
33
|
+
["backup-restore", "restore"],
|
|
34
|
+
["connect", "connect"],
|
|
35
|
+
]);
|
|
36
|
+
const DOCKER_VERBS = new Map([
|
|
37
|
+
["stop", "stop"],
|
|
38
|
+
["kill", "stop"],
|
|
39
|
+
["restart", "restart"],
|
|
40
|
+
["rm", "remove"],
|
|
41
|
+
["remove", "remove"],
|
|
42
|
+
]);
|
|
43
|
+
const IC_VALUE_FLAGS = new Set([
|
|
44
|
+
"--channel",
|
|
45
|
+
"--to",
|
|
46
|
+
"--set",
|
|
47
|
+
"--when",
|
|
48
|
+
"--memory",
|
|
49
|
+
"--cpus",
|
|
50
|
+
"--privileged",
|
|
51
|
+
"--gpus",
|
|
52
|
+
"--idle",
|
|
53
|
+
"--source",
|
|
54
|
+
"--code",
|
|
55
|
+
"--snapshot",
|
|
56
|
+
"--into",
|
|
57
|
+
"--confirm",
|
|
58
|
+
"--accept",
|
|
59
|
+
"--tail",
|
|
60
|
+
]);
|
|
61
|
+
const DOCKER_VALUE_FLAGS = new Set(["-t", "--time", "-s", "--signal"]);
|
|
62
|
+
const SIMPLE_COMMAND = /^(?:[^|;&\n\r"']|(?<=[<>])&|"[^"]*"?|'[^']*'?)*/;
|
|
63
|
+
const WORD = /(?:[^\s"']|"[^"]*"?|'[^']*'?)+/g;
|
|
64
|
+
const REDIRECTION = /^\d*(?:>>?|<)/;
|
|
65
|
+
const BARE_REDIRECTION = /^\d*(?:>>?|<)$/;
|
|
66
|
+
const wordsOf = (text) => [...(SIMPLE_COMMAND.exec(text)?.[0] ?? "").matchAll(WORD)].map((word) => word[0].replace(/["']/g, ""));
|
|
67
|
+
const withoutRedirections = (words) => {
|
|
68
|
+
const kept = [];
|
|
69
|
+
let skipNext = false;
|
|
70
|
+
for (const word of words) {
|
|
71
|
+
if (skipNext) {
|
|
72
|
+
skipNext = false;
|
|
73
|
+
}
|
|
74
|
+
else if (BARE_REDIRECTION.test(word)) {
|
|
75
|
+
skipNext = true;
|
|
76
|
+
}
|
|
77
|
+
else if (!REDIRECTION.test(word)) {
|
|
78
|
+
kept.push(word);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return kept;
|
|
82
|
+
};
|
|
83
|
+
const operandsOf = (words, valueFlags) => {
|
|
84
|
+
const positionals = [];
|
|
85
|
+
const flags = new Map();
|
|
86
|
+
const list = withoutRedirections(words);
|
|
87
|
+
for (const [index, word] of list.entries()) {
|
|
88
|
+
const equals = word.indexOf("=");
|
|
89
|
+
if (!word.startsWith("-") || word === "-") {
|
|
90
|
+
if (!valueFlags.has(list[index - 1] ?? "")) {
|
|
91
|
+
positionals.push(word);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else if (word.startsWith("--") && equals !== -1) {
|
|
95
|
+
flags.set(word.slice(0, equals), word.slice(equals + 1));
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
flags.set(word, valueFlags.has(word) ? list[index + 1] : undefined);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return { positionals, flags };
|
|
102
|
+
};
|
|
103
|
+
const icAim = (op, { positionals, flags }) => {
|
|
104
|
+
const all = flags.has("--all") || flags.has("-a");
|
|
105
|
+
if (op === "start" || op === "prepare") {
|
|
106
|
+
return { stops: false, targets: positionals, all };
|
|
107
|
+
}
|
|
108
|
+
if (op === "resize") {
|
|
109
|
+
const when = flags.get("--when");
|
|
110
|
+
const saves = flags.has("--later") || flags.has("--forget") || (when !== undefined && when !== "now");
|
|
111
|
+
return { stops: !saves, targets: positionals, all };
|
|
112
|
+
}
|
|
113
|
+
if (op === "restore") {
|
|
114
|
+
const into = flags.get("--into");
|
|
115
|
+
return into === undefined ? { stops: false, targets: [], all: false } : { stops: true, targets: [into], all: false };
|
|
116
|
+
}
|
|
117
|
+
if (op === "connect") {
|
|
118
|
+
return { stops: flags.has("--replace"), targets: [], all: false };
|
|
119
|
+
}
|
|
120
|
+
return { stops: true, targets: positionals, all };
|
|
121
|
+
};
|
|
122
|
+
export const sandboxPowerCommands = (command) => {
|
|
123
|
+
const regions = inertRegions(command);
|
|
124
|
+
const found = [];
|
|
125
|
+
for (const invocation of command.matchAll(IC_INVOCATION)) {
|
|
126
|
+
const op = IC_VERBS.get((invocation[1] ?? "").toLowerCase());
|
|
127
|
+
if (op !== undefined) {
|
|
128
|
+
const span = { start: invocation.index, end: invocation.index + invocation[0].length };
|
|
129
|
+
const aim = icAim(op, operandsOf(wordsOf(command.slice(span.end)), IC_VALUE_FLAGS));
|
|
130
|
+
found.push({ via: "ic", op, stops: aim.stops, targets: aim.targets, unnamed: aim.targets.length === 0 || aim.all, span, live: isLive(span, regions) });
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
for (const invocation of command.matchAll(DOCKER_INVOCATION)) {
|
|
134
|
+
const op = DOCKER_VERBS.get((invocation[1] ?? "").toLowerCase());
|
|
135
|
+
if (op !== undefined) {
|
|
136
|
+
const span = { start: invocation.index, end: invocation.index + invocation[0].length };
|
|
137
|
+
const { positionals } = operandsOf(wordsOf(command.slice(span.end)), DOCKER_VALUE_FLAGS);
|
|
138
|
+
found.push({ via: "docker", op, stops: true, targets: positionals, unnamed: positionals.length === 0, span, live: isLive(span, regions) });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return found.toSorted((left, right) => left.span.start - right.span.start);
|
|
142
|
+
};
|
|
143
|
+
const isExpansion = (word) => /[$`*?%]|^\(/.test(word);
|
|
144
|
+
export const mayReachSandbox = (hit, own) => hit.unnamed || hit.targets.some((target) => target === own.slug || target === own.container || isExpansion(target));
|
|
145
|
+
export const managesSandbox = (hit, containerPrefix) => hit.via === "ic" || hit.targets.some((target) => target.startsWith(containerPrefix));
|
|
146
|
+
//# sourceMappingURL=sandbox-power.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-power.js","sourceRoot":"","sources":["../../src/policy/sandbox-power.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,7 @@ export interface IncludeGlobs {
|
|
|
3
3
|
readonly notGlobs: readonly string[];
|
|
4
4
|
}
|
|
5
5
|
export declare const includeGlobs: (include: string | undefined) => IncludeGlobs;
|
|
6
|
+
export declare const globRegExp: (glob: string) => RegExp;
|
|
7
|
+
export declare const globMatcher: (glob: string) => ((path: string) => boolean);
|
|
8
|
+
export declare const includeMatcher: (include: string | undefined) => ((path: string) => boolean);
|
|
6
9
|
//# sourceMappingURL=search-globs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-globs.d.ts","sourceRoot":"","sources":["../../src/policy/search-globs.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,YAAY;IAEzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAElC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,eAAO,MAAM,YAAY,YAAa,MAAM,GAAG,SAAS,KAAG,YAO1D,CAAC"}
|
|
1
|
+
{"version":3,"file":"search-globs.d.ts","sourceRoot":"","sources":["../../src/policy/search-globs.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,YAAY;IAEzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAElC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,eAAO,MAAM,YAAY,YAAa,MAAM,GAAG,SAAS,KAAG,YAO1D,CAAC;AAuHF,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAAoD,CAAC;AAG/F,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAGpE,CAAC;AAIF,eAAO,MAAM,cAAc,YAAa,MAAM,GAAG,SAAS,KAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAMtF,CAAC"}
|
|
@@ -36,4 +36,122 @@ export const includeGlobs = (include) => {
|
|
|
36
36
|
notGlobs: segments.filter((segment) => segment.startsWith(`!`)).flatMap((segment) => expand(segment.slice(1))),
|
|
37
37
|
};
|
|
38
38
|
};
|
|
39
|
+
const REGEXP_SPECIAL = /[.*+?^${}()|[\]\\/]/;
|
|
40
|
+
const literal = (char) => (REGEXP_SPECIAL.test(char) ? `\\${char}` : char);
|
|
41
|
+
const setEnd = (glob, open) => {
|
|
42
|
+
let index = open + 1;
|
|
43
|
+
if (glob[index] === `!` || glob[index] === `^`) {
|
|
44
|
+
index += 1;
|
|
45
|
+
}
|
|
46
|
+
if (glob[index] === `]`) {
|
|
47
|
+
index += 1;
|
|
48
|
+
}
|
|
49
|
+
for (; index < glob.length; index += 1) {
|
|
50
|
+
if (glob[index] === `\\`) {
|
|
51
|
+
index += 1;
|
|
52
|
+
}
|
|
53
|
+
else if (glob[index] === `]`) {
|
|
54
|
+
return index;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return -1;
|
|
58
|
+
};
|
|
59
|
+
const setSource = (body) => {
|
|
60
|
+
const negated = body.startsWith(`!`) || body.startsWith(`^`);
|
|
61
|
+
const members = (negated ? body.slice(1) : body).replaceAll(/\\(.)/g, `$1`).replaceAll(/[\\\]^[]/g, (char) => `\\${char}`);
|
|
62
|
+
return `[${negated ? `^` : ``}${members}]`;
|
|
63
|
+
};
|
|
64
|
+
const groupOf = (glob, open) => {
|
|
65
|
+
const commas = [];
|
|
66
|
+
let depth = 0;
|
|
67
|
+
for (let index = open; index < glob.length; index += 1) {
|
|
68
|
+
const char = glob[index];
|
|
69
|
+
if (char === `\\`) {
|
|
70
|
+
index += 1;
|
|
71
|
+
}
|
|
72
|
+
else if (char === `[`) {
|
|
73
|
+
const end = setEnd(glob, index);
|
|
74
|
+
index = end === -1 ? index : end;
|
|
75
|
+
}
|
|
76
|
+
else if (char === `{`) {
|
|
77
|
+
depth += 1;
|
|
78
|
+
}
|
|
79
|
+
else if (char === `}`) {
|
|
80
|
+
depth -= 1;
|
|
81
|
+
if (depth === 0) {
|
|
82
|
+
return { end: index, commas };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else if (char === `,` && depth === 1) {
|
|
86
|
+
commas.push(index);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return undefined;
|
|
90
|
+
};
|
|
91
|
+
const globstar = (glob, index, segmentStart) => {
|
|
92
|
+
if (!segmentStart || glob[index + 1] !== `*`) {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
const after = glob[index + 2];
|
|
96
|
+
if (after === `/`) {
|
|
97
|
+
return { source: `(?:[^/]*/)*`, length: 3 };
|
|
98
|
+
}
|
|
99
|
+
return after === undefined ? { source: `.*`, length: 2 } : undefined;
|
|
100
|
+
};
|
|
101
|
+
const compileGlob = (glob, segmentStart) => {
|
|
102
|
+
let source = ``;
|
|
103
|
+
let atStart = segmentStart;
|
|
104
|
+
for (let index = 0; index < glob.length; index += 1) {
|
|
105
|
+
const char = glob[index];
|
|
106
|
+
const star = char === `*` ? globstar(glob, index, atStart) : undefined;
|
|
107
|
+
if (star !== undefined) {
|
|
108
|
+
source += star.source;
|
|
109
|
+
index += star.length - 1;
|
|
110
|
+
atStart = true;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (char === `*`) {
|
|
114
|
+
while (glob[index + 1] === `*`) {
|
|
115
|
+
index += 1;
|
|
116
|
+
}
|
|
117
|
+
source += `[^/]*`;
|
|
118
|
+
}
|
|
119
|
+
else if (char === `?`) {
|
|
120
|
+
source += `[^/]`;
|
|
121
|
+
}
|
|
122
|
+
else if (char === `\\` && index + 1 < glob.length) {
|
|
123
|
+
index += 1;
|
|
124
|
+
source += literal(glob[index]);
|
|
125
|
+
}
|
|
126
|
+
else if (char === `[` && setEnd(glob, index) !== -1) {
|
|
127
|
+
const end = setEnd(glob, index);
|
|
128
|
+
source += setSource(glob.slice(index + 1, end));
|
|
129
|
+
index = end;
|
|
130
|
+
}
|
|
131
|
+
else if (char === `{` && groupOf(glob, index) !== undefined) {
|
|
132
|
+
const group = groupOf(glob, index);
|
|
133
|
+
const bounds = [index, ...group.commas, group.end];
|
|
134
|
+
const alternatives = bounds.slice(1).map((end, at) => compileGlob(glob.slice(bounds[at] + 1, end), atStart));
|
|
135
|
+
source += `(?:${alternatives.join(`|`)})`;
|
|
136
|
+
index = group.end;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
source += literal(char);
|
|
140
|
+
}
|
|
141
|
+
atStart = char === `/`;
|
|
142
|
+
}
|
|
143
|
+
return source;
|
|
144
|
+
};
|
|
145
|
+
export const globRegExp = (glob) => new RegExp(`^${compileGlob(glob, true)}$`);
|
|
146
|
+
export const globMatcher = (glob) => {
|
|
147
|
+
const pattern = globRegExp(glob);
|
|
148
|
+
return (path) => pattern.test(path);
|
|
149
|
+
};
|
|
150
|
+
export const includeMatcher = (include) => {
|
|
151
|
+
const { globs, notGlobs } = includeGlobs(include);
|
|
152
|
+
const rooted = (glob) => glob.replace(/^\.\//, ``);
|
|
153
|
+
const admits = globs.map((glob) => globMatcher(rooted(glob)));
|
|
154
|
+
const refuses = notGlobs.map((glob) => globMatcher(rooted(glob)));
|
|
155
|
+
return (path) => (admits.length === 0 || admits.some((test) => test(path))) && !refuses.some((test) => test(path));
|
|
156
|
+
};
|
|
39
157
|
//# sourceMappingURL=search-globs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-globs.js","sourceRoot":"","sources":["../../src/policy/search-globs.ts"],"names":[],"mappings":"AASA,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,SAAiB,EAAY,EAAE;IACnE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACb,CAAC;QACD,QAAQ,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjE,UAAU,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;QACrE,OAAO,IAAI,IAAI,CAAC;IACpB,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;AACzF,CAAC,CAAC;AAIF,MAAM,MAAM,GAAG,CAAC,OAAe,EAAY,EAAE;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,OAAO,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,OAAO,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAA2B,EAAgB,EAAE;IACtE,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO;QACH,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAE7E,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACjH,CAAC;AACN,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"search-globs.js","sourceRoot":"","sources":["../../src/policy/search-globs.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ export declare const SECRET_HOSTS_MAX = 64;
|
|
|
4
4
|
export declare const normalizeHostPattern: (raw: string) => string | undefined;
|
|
5
5
|
export declare const normalizeHost: (raw: string) => string | undefined;
|
|
6
6
|
export declare const hostMatches: (pattern: string, host: string) => boolean;
|
|
7
|
+
export declare const hostCovers: (entry: string, host: string) => boolean;
|
|
7
8
|
export declare const hostAllowed: (patterns: readonly string[], host: string) => boolean;
|
|
8
9
|
export interface HostGuardSetting {
|
|
9
10
|
readonly guard: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-hosts.d.ts","sourceRoot":"","sources":["../../src/policy/secret-hosts.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,sBAAsB,QAAoF,CAAC;AACxH,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAMnC,eAAO,MAAM,oBAAoB,QAAS,MAAM,KAAG,MAAM,GAAG,SAY3D,CAAC;AAIF,eAAO,MAAM,aAAa,QAAS,MAAM,KAAG,MAAM,GAAG,SAGpD,CAAC;AAIF,eAAO,MAAM,WAAW,YAAa,MAAM,QAAQ,MAAM,KAAG,OACyB,CAAC;
|
|
1
|
+
{"version":3,"file":"secret-hosts.d.ts","sourceRoot":"","sources":["../../src/policy/secret-hosts.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,sBAAsB,QAAoF,CAAC;AACxH,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAMnC,eAAO,MAAM,oBAAoB,QAAS,MAAM,KAAG,MAAM,GAAG,SAY3D,CAAC;AAIF,eAAO,MAAM,aAAa,QAAS,MAAM,KAAG,MAAM,GAAG,SAGpD,CAAC;AAIF,eAAO,MAAM,WAAW,YAAa,MAAM,QAAQ,MAAM,KAAG,OACyB,CAAC;AAMtF,eAAO,MAAM,UAAU,UAAW,MAAM,QAAQ,MAAM,KAAG,OAC+C,CAAC;AAEzG,eAAO,MAAM,WAAW,aAAc,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAiE,CAAC;AAa1I,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAKD,eAAO,MAAM,iBAAiB,YAAa,gBAAgB,GAAG,SAAS,QAAQ,gBAAgB,KAAG,OAQjG,CAAC"}
|
|
@@ -21,6 +21,7 @@ export const normalizeHost = (raw) => {
|
|
|
21
21
|
return host.length <= SECRET_HOST_MAX && !host.startsWith(WILDCARD) && SECRET_HOST_PATTERN_RE.test(host) ? host : undefined;
|
|
22
22
|
};
|
|
23
23
|
export const hostMatches = (pattern, host) => pattern.startsWith(WILDCARD) ? host.endsWith(pattern.slice(1)) : host === pattern;
|
|
24
|
+
export const hostCovers = (entry, host) => entry.startsWith(WILDCARD) ? hostMatches(entry, host) : host === entry || host.endsWith(`.${entry}`);
|
|
24
25
|
export const hostAllowed = (patterns, host) => patterns.some((pattern) => hostMatches(pattern, host));
|
|
25
26
|
const covered = (patterns, pattern) => {
|
|
26
27
|
if (!pattern.startsWith(WILDCARD)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-hosts.js","sourceRoot":"","sources":["../../src/policy/secret-hosts.ts"],"names":[],"mappings":"AAKA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA,sCAAsC,CAAC;AAI/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,WAAW,KAAK,QAAQ,KAAK,MAAM,KAAK,QAAQ,KAAK,MAAM,CAAC,CAAC;AACxH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAItB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAsB,EAAE;IACpE,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC;YACD,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QAElC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,MAAM,IAAI,eAAe,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAClG,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAsB,EAAE;IAC7D,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,MAAM,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChI,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,IAAY,EAAW,EAAE,CAClE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"secret-hosts.js","sourceRoot":"","sources":["../../src/policy/secret-hosts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turned-away.d.ts","sourceRoot":"","sources":["../../src/policy/turned-away.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"turned-away.d.ts","sourceRoot":"","sources":["../../src/policy/turned-away.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,cAAc,SAAU,MAAM,GAAG,SAAS,KAAG,OAAsD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turned-away.js","sourceRoot":"","sources":["../../src/policy/turned-away.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IAC7C,eAAe;IAGf,qBAAqB;IACrB,iBAAiB;IACjB,0BAA0B;IAC1B,mBAAmB;IAEnB,oBAAoB;IAEpB,sBAAsB;IAEtB,sBAAsB;IACtB,oBAAoB;IACpB,mBAAmB;IACnB,yBAAyB;IACzB,iBAAiB;IACjB,mBAAmB;IACnB,sBAAsB;CACzB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAwB,EAAW,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"turned-away.js","sourceRoot":"","sources":["../../src/policy/turned-away.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IAC7C,eAAe;IAGf,qBAAqB;IACrB,iBAAiB;IACjB,0BAA0B;IAC1B,mBAAmB;IAEnB,oBAAoB;IAEpB,kBAAkB;IAElB,sBAAsB;IAEtB,sBAAsB;IACtB,oBAAoB;IACpB,mBAAmB;IACnB,yBAAyB;IACzB,iBAAiB;IACjB,mBAAmB;IACnB,sBAAsB;CACzB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAwB,EAAW,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC"}
|