@aria-cli/tools 1.0.8 → 1.0.10
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/package.json +9 -6
- package/dist-cjs/.tsbuildinfo +0 -1
- package/dist-cjs/ask-user-interaction.d.ts +0 -10
- package/dist-cjs/ask-user-interaction.js +0 -28
- package/dist-cjs/ask-user-interaction.js.map +0 -1
- package/dist-cjs/cache/web-cache.d.ts +0 -52
- package/dist-cjs/cache/web-cache.js +0 -71
- package/dist-cjs/cache/web-cache.js.map +0 -1
- package/dist-cjs/definitions/arion.d.ts +0 -8
- package/dist-cjs/definitions/arion.js +0 -108
- package/dist-cjs/definitions/arion.js.map +0 -1
- package/dist-cjs/definitions/browser/browser.d.ts +0 -2
- package/dist-cjs/definitions/browser/browser.js +0 -422
- package/dist-cjs/definitions/browser/browser.js.map +0 -1
- package/dist-cjs/definitions/browser/index.d.ts +0 -1
- package/dist-cjs/definitions/browser/index.js +0 -9
- package/dist-cjs/definitions/browser/index.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-downloads.d.ts +0 -13
- package/dist-cjs/definitions/browser/pw-downloads.js +0 -118
- package/dist-cjs/definitions/browser/pw-downloads.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-interactions.d.ts +0 -78
- package/dist-cjs/definitions/browser/pw-interactions.js +0 -214
- package/dist-cjs/definitions/browser/pw-interactions.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-responses.d.ts +0 -28
- package/dist-cjs/definitions/browser/pw-responses.js +0 -85
- package/dist-cjs/definitions/browser/pw-responses.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-session.d.ts +0 -65
- package/dist-cjs/definitions/browser/pw-session.js +0 -327
- package/dist-cjs/definitions/browser/pw-session.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-shared.d.ts +0 -22
- package/dist-cjs/definitions/browser/pw-shared.js +0 -73
- package/dist-cjs/definitions/browser/pw-shared.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-snapshot.d.ts +0 -34
- package/dist-cjs/definitions/browser/pw-snapshot.js +0 -308
- package/dist-cjs/definitions/browser/pw-snapshot.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-state.d.ts +0 -22
- package/dist-cjs/definitions/browser/pw-state.js +0 -71
- package/dist-cjs/definitions/browser/pw-state.js.map +0 -1
- package/dist-cjs/definitions/browser/types.d.ts +0 -277
- package/dist-cjs/definitions/browser/types.js +0 -6
- package/dist-cjs/definitions/browser/types.js.map +0 -1
- package/dist-cjs/definitions/code-intelligence.d.ts +0 -8
- package/dist-cjs/definitions/code-intelligence.js +0 -474
- package/dist-cjs/definitions/code-intelligence.js.map +0 -1
- package/dist-cjs/definitions/core.d.ts +0 -47
- package/dist-cjs/definitions/core.js +0 -134
- package/dist-cjs/definitions/core.js.map +0 -1
- package/dist-cjs/definitions/delegation.d.ts +0 -11
- package/dist-cjs/definitions/delegation.js +0 -516
- package/dist-cjs/definitions/delegation.js.map +0 -1
- package/dist-cjs/definitions/deploy.d.ts +0 -15
- package/dist-cjs/definitions/deploy.js +0 -69
- package/dist-cjs/definitions/deploy.js.map +0 -1
- package/dist-cjs/definitions/filesystem.d.ts +0 -9
- package/dist-cjs/definitions/filesystem.js +0 -200
- package/dist-cjs/definitions/filesystem.js.map +0 -1
- package/dist-cjs/definitions/frg.d.ts +0 -3
- package/dist-cjs/definitions/frg.js +0 -67
- package/dist-cjs/definitions/frg.js.map +0 -1
- package/dist-cjs/definitions/index.d.ts +0 -19
- package/dist-cjs/definitions/index.js +0 -44
- package/dist-cjs/definitions/index.js.map +0 -1
- package/dist-cjs/definitions/memory.d.ts +0 -8
- package/dist-cjs/definitions/memory.js +0 -127
- package/dist-cjs/definitions/memory.js.map +0 -1
- package/dist-cjs/definitions/messaging.d.ts +0 -11
- package/dist-cjs/definitions/messaging.js +0 -632
- package/dist-cjs/definitions/messaging.js.map +0 -1
- package/dist-cjs/definitions/meta.d.ts +0 -11
- package/dist-cjs/definitions/meta.js +0 -353
- package/dist-cjs/definitions/meta.js.map +0 -1
- package/dist-cjs/definitions/network.d.ts +0 -11
- package/dist-cjs/definitions/network.js +0 -163
- package/dist-cjs/definitions/network.js.map +0 -1
- package/dist-cjs/definitions/outlook.d.ts +0 -2
- package/dist-cjs/definitions/outlook.js +0 -281
- package/dist-cjs/definitions/outlook.js.map +0 -1
- package/dist-cjs/definitions/patch/apply-patch.d.ts +0 -11
- package/dist-cjs/definitions/patch/apply-patch.js +0 -192
- package/dist-cjs/definitions/patch/apply-patch.js.map +0 -1
- package/dist-cjs/definitions/patch/fuzzy-match.d.ts +0 -10
- package/dist-cjs/definitions/patch/fuzzy-match.js +0 -173
- package/dist-cjs/definitions/patch/fuzzy-match.js.map +0 -1
- package/dist-cjs/definitions/patch/index.d.ts +0 -1
- package/dist-cjs/definitions/patch/index.js +0 -6
- package/dist-cjs/definitions/patch/index.js.map +0 -1
- package/dist-cjs/definitions/patch/patch-parser.d.ts +0 -50
- package/dist-cjs/definitions/patch/patch-parser.js +0 -216
- package/dist-cjs/definitions/patch/patch-parser.js.map +0 -1
- package/dist-cjs/definitions/patch/sandbox-paths.d.ts +0 -18
- package/dist-cjs/definitions/patch/sandbox-paths.js +0 -114
- package/dist-cjs/definitions/patch/sandbox-paths.js.map +0 -1
- package/dist-cjs/definitions/process/index.d.ts +0 -1
- package/dist-cjs/definitions/process/index.js +0 -9
- package/dist-cjs/definitions/process/index.js.map +0 -1
- package/dist-cjs/definitions/process/process-registry.d.ts +0 -67
- package/dist-cjs/definitions/process/process-registry.js +0 -232
- package/dist-cjs/definitions/process/process-registry.js.map +0 -1
- package/dist-cjs/definitions/process/process.d.ts +0 -9
- package/dist-cjs/definitions/process/process.js +0 -390
- package/dist-cjs/definitions/process/process.js.map +0 -1
- package/dist-cjs/definitions/process/pty-keys.d.ts +0 -13
- package/dist-cjs/definitions/process/pty-keys.js +0 -260
- package/dist-cjs/definitions/process/pty-keys.js.map +0 -1
- package/dist-cjs/definitions/process/session-slug.d.ts +0 -1
- package/dist-cjs/definitions/process/session-slug.js +0 -146
- package/dist-cjs/definitions/process/session-slug.js.map +0 -1
- package/dist-cjs/definitions/quip.d.ts +0 -2
- package/dist-cjs/definitions/quip.js +0 -199
- package/dist-cjs/definitions/quip.js.map +0 -1
- package/dist-cjs/definitions/search.d.ts +0 -9
- package/dist-cjs/definitions/search.js +0 -64
- package/dist-cjs/definitions/search.js.map +0 -1
- package/dist-cjs/definitions/session-history.d.ts +0 -11
- package/dist-cjs/definitions/session-history.js +0 -73
- package/dist-cjs/definitions/session-history.js.map +0 -1
- package/dist-cjs/definitions/shell.d.ts +0 -8
- package/dist-cjs/definitions/shell.js +0 -185
- package/dist-cjs/definitions/shell.js.map +0 -1
- package/dist-cjs/definitions/slack.d.ts +0 -2
- package/dist-cjs/definitions/slack.js +0 -184
- package/dist-cjs/definitions/slack.js.map +0 -1
- package/dist-cjs/definitions/web.d.ts +0 -8
- package/dist-cjs/definitions/web.js +0 -113
- package/dist-cjs/definitions/web.js.map +0 -1
- package/dist-cjs/executors/apply-patch.d.ts +0 -51
- package/dist-cjs/executors/apply-patch.js +0 -939
- package/dist-cjs/executors/apply-patch.js.map +0 -1
- package/dist-cjs/executors/arion.d.ts +0 -50
- package/dist-cjs/executors/arion.js +0 -126
- package/dist-cjs/executors/arion.js.map +0 -1
- package/dist-cjs/executors/code-intelligence.d.ts +0 -138
- package/dist-cjs/executors/code-intelligence.js +0 -926
- package/dist-cjs/executors/code-intelligence.js.map +0 -1
- package/dist-cjs/executors/deploy.d.ts +0 -169
- package/dist-cjs/executors/deploy.js +0 -870
- package/dist-cjs/executors/deploy.js.map +0 -1
- package/dist-cjs/executors/filesystem.d.ts +0 -150
- package/dist-cjs/executors/filesystem.js +0 -1168
- package/dist-cjs/executors/filesystem.js.map +0 -1
- package/dist-cjs/executors/frg-freshness.d.ts +0 -93
- package/dist-cjs/executors/frg-freshness.js +0 -628
- package/dist-cjs/executors/frg-freshness.js.map +0 -1
- package/dist-cjs/executors/frg.d.ts +0 -27
- package/dist-cjs/executors/frg.js +0 -335
- package/dist-cjs/executors/frg.js.map +0 -1
- package/dist-cjs/executors/index.d.ts +0 -44
- package/dist-cjs/executors/index.js +0 -144
- package/dist-cjs/executors/index.js.map +0 -1
- package/dist-cjs/executors/learning-meta.d.ts +0 -87
- package/dist-cjs/executors/learning-meta.js +0 -1166
- package/dist-cjs/executors/learning-meta.js.map +0 -1
- package/dist-cjs/executors/lsp-client.d.ts +0 -38
- package/dist-cjs/executors/lsp-client.js +0 -311
- package/dist-cjs/executors/lsp-client.js.map +0 -1
- package/dist-cjs/executors/memory.d.ts +0 -203
- package/dist-cjs/executors/memory.js +0 -797
- package/dist-cjs/executors/memory.js.map +0 -1
- package/dist-cjs/executors/meta.d.ts +0 -73
- package/dist-cjs/executors/meta.js +0 -227
- package/dist-cjs/executors/meta.js.map +0 -1
- package/dist-cjs/executors/process-registry.d.ts +0 -98
- package/dist-cjs/executors/process-registry.js +0 -470
- package/dist-cjs/executors/process-registry.js.map +0 -1
- package/dist-cjs/executors/pty-session-store.d.ts +0 -14
- package/dist-cjs/executors/pty-session-store.js +0 -35
- package/dist-cjs/executors/pty-session-store.js.map +0 -1
- package/dist-cjs/executors/pty.d.ts +0 -133
- package/dist-cjs/executors/pty.js +0 -313
- package/dist-cjs/executors/pty.js.map +0 -1
- package/dist-cjs/executors/restart.d.ts +0 -13
- package/dist-cjs/executors/restart.js +0 -156
- package/dist-cjs/executors/restart.js.map +0 -1
- package/dist-cjs/executors/search-freshness.d.ts +0 -50
- package/dist-cjs/executors/search-freshness.js +0 -235
- package/dist-cjs/executors/search-freshness.js.map +0 -1
- package/dist-cjs/executors/search-types.d.ts +0 -52
- package/dist-cjs/executors/search-types.js +0 -57
- package/dist-cjs/executors/search-types.js.map +0 -1
- package/dist-cjs/executors/search.d.ts +0 -11
- package/dist-cjs/executors/search.js +0 -103
- package/dist-cjs/executors/search.js.map +0 -1
- package/dist-cjs/executors/self-diagnose.d.ts +0 -89
- package/dist-cjs/executors/self-diagnose.js +0 -435
- package/dist-cjs/executors/self-diagnose.js.map +0 -1
- package/dist-cjs/executors/session-history.d.ts +0 -75
- package/dist-cjs/executors/session-history.js +0 -321
- package/dist-cjs/executors/session-history.js.map +0 -1
- package/dist-cjs/executors/shell-safety.d.ts +0 -27
- package/dist-cjs/executors/shell-safety.js +0 -479
- package/dist-cjs/executors/shell-safety.js.map +0 -1
- package/dist-cjs/executors/shell.d.ts +0 -168
- package/dist-cjs/executors/shell.js +0 -1002
- package/dist-cjs/executors/shell.js.map +0 -1
- package/dist-cjs/executors/utils.d.ts +0 -20
- package/dist-cjs/executors/utils.js +0 -74
- package/dist-cjs/executors/utils.js.map +0 -1
- package/dist-cjs/executors/web.d.ts +0 -89
- package/dist-cjs/executors/web.js +0 -548
- package/dist-cjs/executors/web.js.map +0 -1
- package/dist-cjs/extraction/content-extraction.d.ts +0 -48
- package/dist-cjs/extraction/content-extraction.js +0 -244
- package/dist-cjs/extraction/content-extraction.js.map +0 -1
- package/dist-cjs/extraction/index.d.ts +0 -4
- package/dist-cjs/extraction/index.js +0 -9
- package/dist-cjs/extraction/index.js.map +0 -1
- package/dist-cjs/headless-control-contract.d.ts +0 -3182
- package/dist-cjs/headless-control-contract.js +0 -973
- package/dist-cjs/headless-control-contract.js.map +0 -1
- package/dist-cjs/index.d.ts +0 -62
- package/dist-cjs/index.js +0 -438
- package/dist-cjs/index.js.map +0 -1
- package/dist-cjs/local-control-http-auth.d.ts +0 -2
- package/dist-cjs/local-control-http-auth.js +0 -6
- package/dist-cjs/local-control-http-auth.js.map +0 -1
- package/dist-cjs/mcp/client.d.ts +0 -68
- package/dist-cjs/mcp/client.js +0 -186
- package/dist-cjs/mcp/client.js.map +0 -1
- package/dist-cjs/mcp/connection.d.ts +0 -54
- package/dist-cjs/mcp/connection.js +0 -485
- package/dist-cjs/mcp/connection.js.map +0 -1
- package/dist-cjs/mcp/index.d.ts +0 -10
- package/dist-cjs/mcp/index.js +0 -31
- package/dist-cjs/mcp/index.js.map +0 -1
- package/dist-cjs/mcp/jsonrpc.d.ts +0 -36
- package/dist-cjs/mcp/jsonrpc.js +0 -149
- package/dist-cjs/mcp/jsonrpc.js.map +0 -1
- package/dist-cjs/mcp/types.d.ts +0 -178
- package/dist-cjs/mcp/types.js +0 -9
- package/dist-cjs/mcp/types.js.map +0 -1
- package/dist-cjs/network-control-adapter.d.ts +0 -4
- package/dist-cjs/network-control-adapter.js +0 -78
- package/dist-cjs/network-control-adapter.js.map +0 -1
- package/dist-cjs/network-runtime/address-types.d.ts +0 -201
- package/dist-cjs/network-runtime/address-types.js +0 -169
- package/dist-cjs/network-runtime/address-types.js.map +0 -1
- package/dist-cjs/network-runtime/db-owner-fencing.d.ts +0 -43
- package/dist-cjs/network-runtime/db-owner-fencing.js +0 -77
- package/dist-cjs/network-runtime/db-owner-fencing.js.map +0 -1
- package/dist-cjs/network-runtime/delivery-receipts.d.ts +0 -117
- package/dist-cjs/network-runtime/delivery-receipts.js +0 -277
- package/dist-cjs/network-runtime/delivery-receipts.js.map +0 -1
- package/dist-cjs/network-runtime/direct-endpoint-authority.d.ts +0 -8
- package/dist-cjs/network-runtime/direct-endpoint-authority.js +0 -30
- package/dist-cjs/network-runtime/direct-endpoint-authority.js.map +0 -1
- package/dist-cjs/network-runtime/index.d.ts +0 -24
- package/dist-cjs/network-runtime/index.js +0 -173
- package/dist-cjs/network-runtime/index.js.map +0 -1
- package/dist-cjs/network-runtime/local-control-contract.d.ts +0 -758
- package/dist-cjs/network-runtime/local-control-contract.js +0 -634
- package/dist-cjs/network-runtime/local-control-contract.js.map +0 -1
- package/dist-cjs/network-runtime/node-store-contract.d.ts +0 -49
- package/dist-cjs/network-runtime/node-store-contract.js +0 -39
- package/dist-cjs/network-runtime/node-store-contract.js.map +0 -1
- package/dist-cjs/network-runtime/pair-route-contract.d.ts +0 -100
- package/dist-cjs/network-runtime/pair-route-contract.js +0 -81
- package/dist-cjs/network-runtime/pair-route-contract.js.map +0 -1
- package/dist-cjs/network-runtime/peer-capabilities.d.ts +0 -10
- package/dist-cjs/network-runtime/peer-capabilities.js +0 -38
- package/dist-cjs/network-runtime/peer-capabilities.js.map +0 -1
- package/dist-cjs/network-runtime/peer-principal-ref.d.ts +0 -9
- package/dist-cjs/network-runtime/peer-principal-ref.js +0 -16
- package/dist-cjs/network-runtime/peer-principal-ref.js.map +0 -1
- package/dist-cjs/network-runtime/peer-state-machine.d.ts +0 -70
- package/dist-cjs/network-runtime/peer-state-machine.js +0 -130
- package/dist-cjs/network-runtime/peer-state-machine.js.map +0 -1
- package/dist-cjs/network-runtime/protocol-schemas.d.ts +0 -328
- package/dist-cjs/network-runtime/protocol-schemas.js +0 -213
- package/dist-cjs/network-runtime/protocol-schemas.js.map +0 -1
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.d.ts +0 -81
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.js +0 -64
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.js.map +0 -1
- package/dist-cjs/outlook/desktop-session.d.ts +0 -68
- package/dist-cjs/outlook/desktop-session.js +0 -319
- package/dist-cjs/outlook/desktop-session.js.map +0 -1
- package/dist-cjs/package.json +0 -3
- package/dist-cjs/policy.d.ts +0 -43
- package/dist-cjs/policy.js +0 -156
- package/dist-cjs/policy.js.map +0 -1
- package/dist-cjs/providers/brave.d.ts +0 -10
- package/dist-cjs/providers/brave.js +0 -67
- package/dist-cjs/providers/brave.js.map +0 -1
- package/dist-cjs/providers/duckduckgo.d.ts +0 -18
- package/dist-cjs/providers/duckduckgo.js +0 -181
- package/dist-cjs/providers/duckduckgo.js.map +0 -1
- package/dist-cjs/providers/exa.d.ts +0 -10
- package/dist-cjs/providers/exa.js +0 -68
- package/dist-cjs/providers/exa.js.map +0 -1
- package/dist-cjs/providers/firecrawl.d.ts +0 -10
- package/dist-cjs/providers/firecrawl.js +0 -60
- package/dist-cjs/providers/firecrawl.js.map +0 -1
- package/dist-cjs/providers/index.d.ts +0 -8
- package/dist-cjs/providers/index.js +0 -18
- package/dist-cjs/providers/index.js.map +0 -1
- package/dist-cjs/providers/jina.d.ts +0 -10
- package/dist-cjs/providers/jina.js +0 -54
- package/dist-cjs/providers/jina.js.map +0 -1
- package/dist-cjs/providers/router.d.ts +0 -21
- package/dist-cjs/providers/router.js +0 -101
- package/dist-cjs/providers/router.js.map +0 -1
- package/dist-cjs/providers/search-provider.d.ts +0 -35
- package/dist-cjs/providers/search-provider.js +0 -37
- package/dist-cjs/providers/search-provider.js.map +0 -1
- package/dist-cjs/providers/tavily.d.ts +0 -10
- package/dist-cjs/providers/tavily.js +0 -59
- package/dist-cjs/providers/tavily.js.map +0 -1
- package/dist-cjs/quip/desktop-session.d.ts +0 -69
- package/dist-cjs/quip/desktop-session.js +0 -354
- package/dist-cjs/quip/desktop-session.js.map +0 -1
- package/dist-cjs/registry/index.d.ts +0 -1
- package/dist-cjs/registry/index.js +0 -7
- package/dist-cjs/registry/index.js.map +0 -1
- package/dist-cjs/registry/registry.d.ts +0 -156
- package/dist-cjs/registry/registry.js +0 -762
- package/dist-cjs/registry/registry.js.map +0 -1
- package/dist-cjs/runtime-socket-local-control-client.d.ts +0 -10
- package/dist-cjs/runtime-socket-local-control-client.js +0 -368
- package/dist-cjs/runtime-socket-local-control-client.js.map +0 -1
- package/dist-cjs/security/dns-normalization.d.ts +0 -6
- package/dist-cjs/security/dns-normalization.js +0 -23
- package/dist-cjs/security/dns-normalization.js.map +0 -1
- package/dist-cjs/security/dns-pinning.d.ts +0 -27
- package/dist-cjs/security/dns-pinning.js +0 -161
- package/dist-cjs/security/dns-pinning.js.map +0 -1
- package/dist-cjs/security/external-content.d.ts +0 -40
- package/dist-cjs/security/external-content.js +0 -96
- package/dist-cjs/security/external-content.js.map +0 -1
- package/dist-cjs/security/ssrf.d.ts +0 -40
- package/dist-cjs/security/ssrf.js +0 -222
- package/dist-cjs/security/ssrf.js.map +0 -1
- package/dist-cjs/slack/desktop-session.d.ts +0 -69
- package/dist-cjs/slack/desktop-session.js +0 -367
- package/dist-cjs/slack/desktop-session.js.map +0 -1
- package/dist-cjs/tool-factory.d.ts +0 -46
- package/dist-cjs/tool-factory.js +0 -51
- package/dist-cjs/tool-factory.js.map +0 -1
- package/dist-cjs/types.d.ts +0 -1192
- package/dist-cjs/types.js +0 -9
- package/dist-cjs/types.js.map +0 -1
- package/dist-cjs/utils/retry.d.ts +0 -11
- package/dist-cjs/utils/retry.js +0 -170
- package/dist-cjs/utils/retry.js.map +0 -1
- package/dist-cjs/utils/safe-parse-json.d.ts +0 -26
- package/dist-cjs/utils/safe-parse-json.js +0 -165
- package/dist-cjs/utils/safe-parse-json.js.map +0 -1
- package/dist-cjs/utils/url.d.ts +0 -10
- package/dist-cjs/utils/url.js +0 -24
- package/dist-cjs/utils/url.js.map +0 -1
- package/src/__tests__/web-fetch-download.test.ts +0 -433
- package/src/__tests__/web-tools.test.ts +0 -619
- package/src/ask-user-interaction.ts +0 -33
- package/src/cache/web-cache.ts +0 -110
- package/src/definitions/arion.ts +0 -118
- package/src/definitions/browser/browser.ts +0 -502
- package/src/definitions/browser/index.ts +0 -5
- package/src/definitions/browser/pw-downloads.ts +0 -142
- package/src/definitions/browser/pw-interactions.ts +0 -282
- package/src/definitions/browser/pw-responses.ts +0 -98
- package/src/definitions/browser/pw-session.ts +0 -405
- package/src/definitions/browser/pw-shared.ts +0 -85
- package/src/definitions/browser/pw-snapshot.ts +0 -383
- package/src/definitions/browser/pw-state.ts +0 -101
- package/src/definitions/browser/types.ts +0 -203
- package/src/definitions/code-intelligence.ts +0 -526
- package/src/definitions/core.ts +0 -118
- package/src/definitions/delegation.ts +0 -567
- package/src/definitions/deploy.ts +0 -73
- package/src/definitions/filesystem.ts +0 -217
- package/src/definitions/frg.ts +0 -67
- package/src/definitions/index.ts +0 -28
- package/src/definitions/memory.ts +0 -150
- package/src/definitions/messaging.ts +0 -734
- package/src/definitions/meta.ts +0 -392
- package/src/definitions/network.ts +0 -179
- package/src/definitions/outlook.ts +0 -318
- package/src/definitions/patch/apply-patch.ts +0 -235
- package/src/definitions/patch/fuzzy-match.ts +0 -217
- package/src/definitions/patch/index.ts +0 -1
- package/src/definitions/patch/patch-parser.ts +0 -297
- package/src/definitions/patch/sandbox-paths.ts +0 -129
- package/src/definitions/process/index.ts +0 -5
- package/src/definitions/process/process-registry.ts +0 -303
- package/src/definitions/process/process.ts +0 -456
- package/src/definitions/process/pty-keys.ts +0 -298
- package/src/definitions/process/session-slug.ts +0 -147
- package/src/definitions/quip.ts +0 -225
- package/src/definitions/search.ts +0 -67
- package/src/definitions/session-history.ts +0 -79
- package/src/definitions/shell.ts +0 -202
- package/src/definitions/slack.ts +0 -211
- package/src/definitions/web.ts +0 -119
- package/src/executors/apply-patch.ts +0 -1035
- package/src/executors/arion.ts +0 -199
- package/src/executors/code-intelligence.ts +0 -1179
- package/src/executors/deploy.ts +0 -1066
- package/src/executors/filesystem.ts +0 -1428
- package/src/executors/frg-freshness.ts +0 -743
- package/src/executors/frg.ts +0 -394
- package/src/executors/index.ts +0 -280
- package/src/executors/learning-meta.ts +0 -1367
- package/src/executors/lsp-client.ts +0 -355
- package/src/executors/memory.ts +0 -978
- package/src/executors/meta.ts +0 -293
- package/src/executors/process-registry.ts +0 -570
- package/src/executors/pty-session-store.ts +0 -43
- package/src/executors/pty.ts +0 -342
- package/src/executors/restart.ts +0 -133
- package/src/executors/search-freshness.ts +0 -249
- package/src/executors/search-types.ts +0 -98
- package/src/executors/search.ts +0 -89
- package/src/executors/self-diagnose.ts +0 -552
- package/src/executors/session-history.ts +0 -435
- package/src/executors/shell-safety.ts +0 -519
- package/src/executors/shell.ts +0 -1243
- package/src/executors/utils.ts +0 -40
- package/src/executors/web.ts +0 -786
- package/src/extraction/content-extraction.ts +0 -281
- package/src/extraction/index.ts +0 -5
- package/src/headless-control-contract.ts +0 -1149
- package/src/index.ts +0 -788
- package/src/local-control-http-auth.ts +0 -2
- package/src/mcp/client.ts +0 -218
- package/src/mcp/connection.ts +0 -568
- package/src/mcp/index.ts +0 -11
- package/src/mcp/jsonrpc.ts +0 -195
- package/src/mcp/types.ts +0 -199
- package/src/network-control-adapter.ts +0 -88
- package/src/network-runtime/address-types.ts +0 -218
- package/src/network-runtime/db-owner-fencing.ts +0 -91
- package/src/network-runtime/delivery-receipts.ts +0 -372
- package/src/network-runtime/direct-endpoint-authority.ts +0 -35
- package/src/network-runtime/index.ts +0 -316
- package/src/network-runtime/local-control-contract.ts +0 -784
- package/src/network-runtime/node-store-contract.ts +0 -46
- package/src/network-runtime/pair-route-contract.ts +0 -97
- package/src/network-runtime/peer-capabilities.ts +0 -48
- package/src/network-runtime/peer-principal-ref.ts +0 -20
- package/src/network-runtime/peer-state-machine.ts +0 -160
- package/src/network-runtime/protocol-schemas.ts +0 -265
- package/src/network-runtime/runtime-bootstrap-contract.ts +0 -83
- package/src/outlook/desktop-session.ts +0 -409
- package/src/policy.ts +0 -171
- package/src/providers/brave.ts +0 -80
- package/src/providers/duckduckgo.ts +0 -199
- package/src/providers/exa.ts +0 -85
- package/src/providers/firecrawl.ts +0 -77
- package/src/providers/index.ts +0 -8
- package/src/providers/jina.ts +0 -70
- package/src/providers/router.ts +0 -121
- package/src/providers/search-provider.ts +0 -74
- package/src/providers/tavily.ts +0 -74
- package/src/quip/desktop-session.ts +0 -435
- package/src/registry/index.ts +0 -1
- package/src/registry/registry.ts +0 -905
- package/src/runtime-socket-local-control-client.ts +0 -632
- package/src/security/dns-normalization.ts +0 -34
- package/src/security/dns-pinning.ts +0 -138
- package/src/security/external-content.ts +0 -129
- package/src/security/ssrf.ts +0 -207
- package/src/slack/desktop-session.ts +0 -493
- package/src/tool-factory.ts +0 -91
- package/src/types.ts +0 -1341
- package/src/utils/retry.ts +0 -163
- package/src/utils/safe-parse-json.ts +0 -176
- package/src/utils/url.ts +0 -20
- package/tests/benchmarks/registry.bench.ts +0 -57
- package/tests/cache/web-cache.test.ts +0 -147
- package/tests/critical-integration.test.ts +0 -1465
- package/tests/definitions/apply-patch.test.ts +0 -586
- package/tests/definitions/browser.test.ts +0 -495
- package/tests/definitions/delegation-pause-resume.test.ts +0 -758
- package/tests/definitions/execution.test.ts +0 -671
- package/tests/definitions/messaging-inbox-scope.test.ts +0 -229
- package/tests/definitions/messaging.test.ts +0 -1468
- package/tests/definitions/outlook.test.ts +0 -30
- package/tests/definitions/process.test.ts +0 -469
- package/tests/definitions/slack.test.ts +0 -28
- package/tests/definitions/tool-inventory.test.ts +0 -218
- package/tests/e2e/delegation-quest-orchestration.e2e.test.ts +0 -433
- package/tests/e2e/memory-tool-discovery-contract.e2e.test.ts +0 -81
- package/tests/executors/apply-patch.test.ts +0 -538
- package/tests/executors/arion.test.ts +0 -309
- package/tests/executors/conversation-primitives.test.ts +0 -250
- package/tests/executors/deploy.test.ts +0 -746
- package/tests/executors/filesystem-tools.test.ts +0 -357
- package/tests/executors/filesystem.test.ts +0 -959
- package/tests/executors/frg-freshness.test.ts +0 -136
- package/tests/executors/frg-merge.test.ts +0 -70
- package/tests/executors/frg-session-content.test.ts +0 -40
- package/tests/executors/frg.test.ts +0 -56
- package/tests/executors/memory-bugfixes.test.ts +0 -257
- package/tests/executors/memory-real-memoria.integration.test.ts +0 -316
- package/tests/executors/memory.test.ts +0 -853
- package/tests/executors/meta-tools.test.ts +0 -411
- package/tests/executors/meta.test.ts +0 -683
- package/tests/executors/path-containment.test.ts +0 -51
- package/tests/executors/process-registry.test.ts +0 -505
- package/tests/executors/pty.test.ts +0 -664
- package/tests/executors/quest-security.test.ts +0 -249
- package/tests/executors/read-file-media.test.ts +0 -230
- package/tests/executors/recall-knowledge-schema.test.ts +0 -209
- package/tests/executors/recall-tags.test.ts +0 -278
- package/tests/executors/remember-null-safety.contract.test.ts +0 -41
- package/tests/executors/restart.test.ts +0 -67
- package/tests/executors/search-unified.test.ts +0 -381
- package/tests/executors/session-history.test.ts +0 -340
- package/tests/executors/session-transcript.test.ts +0 -561
- package/tests/executors/shell-abort.test.ts +0 -416
- package/tests/executors/shell-env-blocklist.test.ts +0 -648
- package/tests/executors/shell-env-process.test.ts +0 -245
- package/tests/executors/shell-process-registry.test.ts +0 -334
- package/tests/executors/shell-tools.test.ts +0 -393
- package/tests/executors/shell.test.ts +0 -690
- package/tests/executors/web-abort-vs-timeout.test.ts +0 -213
- package/tests/executors/web-integration.test.ts +0 -633
- package/tests/executors/web-symlink.test.ts +0 -18
- package/tests/executors/web.test.ts +0 -1400
- package/tests/executors/write-stdin.test.ts +0 -145
- package/tests/extraction/content-extraction.test.ts +0 -153
- package/tests/guards/tools-default-test-lane.integration.test.ts +0 -21
- package/tests/guards/tools-package-test-commands.e2e.test.ts +0 -43
- package/tests/guards/tools-test-lane-manifest.contract.test.ts +0 -76
- package/tests/guards/tools-vitest-workspace-alias.contract.test.ts +0 -63
- package/tests/helpers/async-waits.ts +0 -53
- package/tests/integration/headless-control-contract.integration.test.ts +0 -153
- package/tests/integration/memory-tool-schema-parity.integration.test.ts +0 -67
- package/tests/integration/meta-tools-round-trip.integration.test.ts +0 -506
- package/tests/integration/quest-round-trip.test.ts +0 -303
- package/tests/integration/registry-executor-flow.test.ts +0 -85
- package/tests/integration.test.ts +0 -177
- package/tests/loading-tier.test.ts +0 -126
- package/tests/mcp/client-reconnect.test.ts +0 -267
- package/tests/mcp/connection.test.ts +0 -846
- package/tests/mcp/injectable-logger.test.ts +0 -83
- package/tests/mcp/jsonrpc.test.ts +0 -109
- package/tests/mcp/lifecycle.test.ts +0 -879
- package/tests/network-runtime/address-types.contract.test.ts +0 -143
- package/tests/network-runtime/continuity-bind-schema.contract.test.ts +0 -203
- package/tests/network-runtime/local-control-contract.test.ts +0 -869
- package/tests/network-runtime/local-control-invite-token.contract.test.ts +0 -146
- package/tests/network-runtime/node-store-contract.test.ts +0 -11
- package/tests/network-runtime/pair-protocol-nodeid.contract.test.ts +0 -15
- package/tests/network-runtime/peer-state-machine.contract.test.ts +0 -148
- package/tests/network-runtime/protocol-schemas.contract.test.ts +0 -512
- package/tests/network-runtime/relay-pending-nodeid.contract.test.ts +0 -62
- package/tests/network-runtime/runtime-bootstrap-contract.test.ts +0 -227
- package/tests/network-runtime/runtime-socket-local-control-client.test.ts +0 -621
- package/tests/network-runtime/wait-for-message-script.test.ts +0 -288
- package/tests/parallel.test.ts +0 -71
- package/tests/policy.test.ts +0 -184
- package/tests/print-default-test-lane.ts +0 -14
- package/tests/print-test-lane-manifest.ts +0 -22
- package/tests/providers/brave.test.ts +0 -159
- package/tests/providers/duckduckgo.test.ts +0 -207
- package/tests/providers/exa.test.ts +0 -175
- package/tests/providers/firecrawl.test.ts +0 -168
- package/tests/providers/jina.test.ts +0 -144
- package/tests/providers/router.test.ts +0 -328
- package/tests/providers/tavily.test.ts +0 -165
- package/tests/registry/discovery.test.ts +0 -154
- package/tests/registry/injectable-logger.test.ts +0 -230
- package/tests/registry/input-validation.test.ts +0 -361
- package/tests/registry/interface-completeness.test.ts +0 -85
- package/tests/registry/mcp-integration.test.ts +0 -103
- package/tests/registry/mcp-read-only-hint.test.ts +0 -60
- package/tests/registry/memoria-discovery.test.ts +0 -390
- package/tests/registry/nested-validation.test.ts +0 -283
- package/tests/registry/pseudo-tool-filtering.test.ts +0 -258
- package/tests/registry/registration-lifecycle.test.ts +0 -133
- package/tests/registry-validation.test.ts +0 -424
- package/tests/registry.test.ts +0 -460
- package/tests/security/dns-pinning.test.ts +0 -162
- package/tests/security/external-content.test.ts +0 -144
- package/tests/security/ssrf.test.ts +0 -118
- package/tests/shell-safety-integration.test.ts +0 -32
- package/tests/shell-safety.test.ts +0 -365
- package/tests/slack/desktop-session.test.ts +0 -50
- package/tests/test-lane-manifest.ts +0 -440
- package/tests/test-utils.ts +0 -27
- package/tests/tool-factory.test.ts +0 -188
- package/tests/utils/retry.test.ts +0 -231
- package/tests/utils/url.test.ts +0 -63
- package/tsconfig.cjs.json +0 -24
- package/tsconfig.json +0 -12
- package/vitest.config.ts +0 -55
- package/vitest.e2e.config.ts +0 -24
- package/vitest.integration.config.ts +0 -24
- package/vitest.native.config.ts +0 -24
|
@@ -1,479 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @aria/tools - Shell command risk classifier
|
|
4
|
-
*
|
|
5
|
-
* Statically classifies shell commands into risk tiers to gate execution:
|
|
6
|
-
* - "safe" : read-only, execute immediately without approval
|
|
7
|
-
* - "moderate" : requires runtime policy handling (approval, allowlist, or autorun)
|
|
8
|
-
* - "blocked" : catastrophic, hard-denied — never execute
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.BLOCKED_PATTERNS = void 0;
|
|
12
|
-
exports.classifyCommand = classifyCommand;
|
|
13
|
-
exports.classifyExecInvocation = classifyExecInvocation;
|
|
14
|
-
/** Read-only single-word commands that never modify state. */
|
|
15
|
-
const SAFE_SINGLE = new Set([
|
|
16
|
-
"ls",
|
|
17
|
-
"cat",
|
|
18
|
-
"head",
|
|
19
|
-
"tail",
|
|
20
|
-
"wc",
|
|
21
|
-
"file",
|
|
22
|
-
"stat",
|
|
23
|
-
"grep",
|
|
24
|
-
"rg",
|
|
25
|
-
"find",
|
|
26
|
-
"which",
|
|
27
|
-
"whereis",
|
|
28
|
-
"echo",
|
|
29
|
-
"date",
|
|
30
|
-
"whoami",
|
|
31
|
-
"pwd",
|
|
32
|
-
"printenv",
|
|
33
|
-
"uname",
|
|
34
|
-
"hostname",
|
|
35
|
-
]);
|
|
36
|
-
/** Read-only multi-word command prefixes (order: longest match first). */
|
|
37
|
-
const SAFE_MULTI = [
|
|
38
|
-
"git stash list",
|
|
39
|
-
"git status",
|
|
40
|
-
"git log",
|
|
41
|
-
"git diff",
|
|
42
|
-
"git show",
|
|
43
|
-
"git blame",
|
|
44
|
-
"git branch",
|
|
45
|
-
"git remote",
|
|
46
|
-
"git tag",
|
|
47
|
-
"node --version",
|
|
48
|
-
"npm --version",
|
|
49
|
-
"pnpm --version",
|
|
50
|
-
"python --version",
|
|
51
|
-
"pnpm list",
|
|
52
|
-
"npm list",
|
|
53
|
-
];
|
|
54
|
-
/** Patterns that are unconditionally blocked — catastrophic risk. */
|
|
55
|
-
exports.BLOCKED_PATTERNS = [
|
|
56
|
-
/rm\s+(?:--?[A-Za-z0-9-]+\s+)*\/(?:\s|$)/, // rm targeting filesystem root (/)
|
|
57
|
-
/rm\s+(?:--?[A-Za-z0-9-]+\s+)*\/\*(?:\s|$)/, // rm targeting root wildcard (/*)
|
|
58
|
-
/rm\s+(?:--?[A-Za-z0-9-]+\s+)*\.(?:\s|$)/, // rm . (current dir wipe, not ./subdir)
|
|
59
|
-
/rm\s+(?:--?[A-Za-z0-9-]+\s+)*~(?:[a-zA-Z]\w*)?(?:\/\*)?(?:\s|$)/, // rm ~ (bare home), ~/* (home wildcard), ~user (other user home)
|
|
60
|
-
/rm\s+(?:--?[A-Za-z0-9-]+\s+)*\$HOME\b/, // rm with $HOME variable
|
|
61
|
-
/rm\s+(?:--?[A-Za-z0-9-]+\s+)*\*(?:\s|$)/, // rm with bare wildcard (rm -rf *)
|
|
62
|
-
/>\s*\/dev\/(?:sd[a-z]|nvme\d+|vd[a-z])\b/, // write to block devices
|
|
63
|
-
/mkfs/, // format filesystems
|
|
64
|
-
/dd\s+.*(?:if=|of=)/, // raw disk reads/writes
|
|
65
|
-
/chmod\s+(?:-R\s+)?777\b/, // world-writable permissions
|
|
66
|
-
/curl[\s\S]*\|\s*(ba)?sh/, // pipe-to-shell (including newline-obfuscated variants)
|
|
67
|
-
/wget[\s\S]*\|\s*(ba)?sh/, // pipe-to-shell (including newline-obfuscated variants)
|
|
68
|
-
/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*eval\b/, // shell eval injection
|
|
69
|
-
// Inline execution (sh -c, python -c, node -e, etc.) downgraded to moderate.
|
|
70
|
-
// These are legitimate developer operations — dangerous payloads are still
|
|
71
|
-
// caught by other blocked patterns (rm /, curl|sh, fork bombs, etc.).
|
|
72
|
-
/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*shutdown\b/, // system shutdown
|
|
73
|
-
/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*reboot\b/, // system reboot
|
|
74
|
-
/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*halt\b/, // system halt
|
|
75
|
-
/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*init\s+0\b/, // init runlevel poweroff
|
|
76
|
-
/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*systemctl\s+(?:poweroff|halt|reboot)\b/, // systemctl power controls
|
|
77
|
-
// kill downgraded to moderate — legitimate process management (kill PID, kill -0)
|
|
78
|
-
// is a normal developer operation. Catastrophic kill (kill -9 1) is still caught
|
|
79
|
-
// by the PID-1 pattern below. See shell-safety.test.ts for coverage.
|
|
80
|
-
/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*kill\s+(?:-\d+\s+|-[A-Z]+\s+)*\b1\b/, // kill PID 1 (init) — catastrophic
|
|
81
|
-
// ${...} parameter expansion downgraded to moderate — standard bash operations
|
|
82
|
-
// like ${VAR}, ${#VAR} (length), ${VAR:-default} are common developer patterns.
|
|
83
|
-
// Truly dangerous expansions (${VAR:=$(cmd)}) are caught by other patterns
|
|
84
|
-
// (eval, curl|sh, etc.) or by the subshell/backtick check in classifyCommand.
|
|
85
|
-
/:\(\)\{\s*:\|:&\s*\};:/, // fork bomb
|
|
86
|
-
/\bsudo\b/, // privilege escalation
|
|
87
|
-
/git\s+push\s+.*--force(?!-with-lease)\b/, // force push (allow --force-with-lease)
|
|
88
|
-
/git\s+push(?:\s+-[A-Za-z]*f[A-Za-z]*\b|\s+.*\s-[A-Za-z]*f[A-Za-z]*\b)/, // short force flags (-f, -uf, etc.)
|
|
89
|
-
/git\s+reset\s+--hard/, // hard reset
|
|
90
|
-
];
|
|
91
|
-
/**
|
|
92
|
-
* Returns true if the raw command text matches any blocked pattern.
|
|
93
|
-
*/
|
|
94
|
-
function isBlocked(raw) {
|
|
95
|
-
const withoutHeredocs = stripHeredocBodies(raw);
|
|
96
|
-
const withoutQuotedLiterals = stripSingleAndDoubleQuotedLiterals(withoutHeredocs);
|
|
97
|
-
return exports.BLOCKED_PATTERNS.some((re) => re.test(withoutQuotedLiterals));
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Strip heredoc bodies so that blocked-pattern checks don't fire on
|
|
101
|
-
* data content inside heredocs. Supports both quoted and unquoted
|
|
102
|
-
* delimiters: `<< 'EOF'`, `<< "EOF"`, `<< EOF`, `<<-EOF`.
|
|
103
|
-
*
|
|
104
|
-
* Only the body between the delimiter lines is replaced with spaces;
|
|
105
|
-
* the shell command on the `<<` line and the closing delimiter are
|
|
106
|
-
* preserved so other pattern checks still apply to the command itself.
|
|
107
|
-
*/
|
|
108
|
-
function stripHeredocBodies(raw) {
|
|
109
|
-
// Match << (optional dash) then optional quotes around the delimiter word
|
|
110
|
-
const heredocRe = /<<-?\s*(?:'([^']+)'|"([^"]+)"|(\w+))/g;
|
|
111
|
-
let result = raw;
|
|
112
|
-
let match;
|
|
113
|
-
// Collect all heredoc markers first, then strip from the end backwards
|
|
114
|
-
// so index positions remain valid.
|
|
115
|
-
const markers = [];
|
|
116
|
-
while ((match = heredocRe.exec(raw)) !== null) {
|
|
117
|
-
const delimiter = match[1] ?? match[2] ?? match[3] ?? "";
|
|
118
|
-
if (!delimiter)
|
|
119
|
-
continue;
|
|
120
|
-
// Body starts after the next newline following the << marker
|
|
121
|
-
const afterMarker = raw.indexOf("\n", match.index);
|
|
122
|
-
if (afterMarker === -1)
|
|
123
|
-
continue;
|
|
124
|
-
const bodyStart = afterMarker + 1;
|
|
125
|
-
// Find the closing delimiter: must be on its own line (with optional
|
|
126
|
-
// leading whitespace for <<- heredocs).
|
|
127
|
-
const closingRe = new RegExp(`^\\s*${delimiter.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\s*$`, "m");
|
|
128
|
-
const bodySlice = raw.slice(bodyStart);
|
|
129
|
-
const closingMatch = closingRe.exec(bodySlice);
|
|
130
|
-
if (!closingMatch)
|
|
131
|
-
continue;
|
|
132
|
-
const bodyEnd = bodyStart + closingMatch.index;
|
|
133
|
-
markers.push({ delimiter, bodyStart, bodyEnd });
|
|
134
|
-
}
|
|
135
|
-
// Strip bodies from last to first to preserve indices
|
|
136
|
-
for (let i = markers.length - 1; i >= 0; i--) {
|
|
137
|
-
const { bodyStart, bodyEnd } = markers[i];
|
|
138
|
-
const body = result.slice(bodyStart, bodyEnd);
|
|
139
|
-
result = result.slice(0, bodyStart) + body.replace(/[^\n]/g, " ") + result.slice(bodyEnd);
|
|
140
|
-
}
|
|
141
|
-
return result;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Remove single-quoted and double-quoted literal text from a command so
|
|
145
|
-
* blocked-pattern checks don't fire on plain quoted prose like:
|
|
146
|
-
* echo "please do not run rm -rf /"
|
|
147
|
-
*/
|
|
148
|
-
function stripSingleAndDoubleQuotedLiterals(raw) {
|
|
149
|
-
let result = "";
|
|
150
|
-
let inSingle = false;
|
|
151
|
-
let inDouble = false;
|
|
152
|
-
let escaped = false;
|
|
153
|
-
for (let i = 0; i < raw.length; i++) {
|
|
154
|
-
const ch = raw[i];
|
|
155
|
-
if (inSingle) {
|
|
156
|
-
if (ch === "'") {
|
|
157
|
-
inSingle = false;
|
|
158
|
-
result += " ";
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
result += " ";
|
|
162
|
-
}
|
|
163
|
-
continue;
|
|
164
|
-
}
|
|
165
|
-
if (inDouble) {
|
|
166
|
-
if (escaped) {
|
|
167
|
-
escaped = false;
|
|
168
|
-
result += " ";
|
|
169
|
-
continue;
|
|
170
|
-
}
|
|
171
|
-
if (ch === "\\") {
|
|
172
|
-
escaped = true;
|
|
173
|
-
result += " ";
|
|
174
|
-
continue;
|
|
175
|
-
}
|
|
176
|
-
if (ch === '"') {
|
|
177
|
-
inDouble = false;
|
|
178
|
-
result += " ";
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
result += " ";
|
|
182
|
-
}
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
if (ch === "'") {
|
|
186
|
-
inSingle = true;
|
|
187
|
-
result += " ";
|
|
188
|
-
continue;
|
|
189
|
-
}
|
|
190
|
-
if (ch === '"') {
|
|
191
|
-
inDouble = true;
|
|
192
|
-
result += " ";
|
|
193
|
-
continue;
|
|
194
|
-
}
|
|
195
|
-
result += ch;
|
|
196
|
-
}
|
|
197
|
-
return result;
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Strip an optional absolute-path prefix from a token
|
|
201
|
-
* so `/usr/bin/rm` is treated the same as `rm`.
|
|
202
|
-
*/
|
|
203
|
-
function stripPathPrefix(token) {
|
|
204
|
-
const i = token.lastIndexOf("/");
|
|
205
|
-
return i === -1 ? token : token.slice(i + 1);
|
|
206
|
-
}
|
|
207
|
-
function hasUnquotedSubshellOrBacktick(command) {
|
|
208
|
-
let inSingle = false;
|
|
209
|
-
let inDouble = false;
|
|
210
|
-
let escaped = false;
|
|
211
|
-
for (let i = 0; i < command.length; i++) {
|
|
212
|
-
const ch = command[i];
|
|
213
|
-
const next = command[i + 1];
|
|
214
|
-
if (inSingle) {
|
|
215
|
-
if (ch === "'")
|
|
216
|
-
inSingle = false;
|
|
217
|
-
continue;
|
|
218
|
-
}
|
|
219
|
-
if (inDouble) {
|
|
220
|
-
if (escaped) {
|
|
221
|
-
escaped = false;
|
|
222
|
-
continue;
|
|
223
|
-
}
|
|
224
|
-
if (ch === "\\") {
|
|
225
|
-
escaped = true;
|
|
226
|
-
continue;
|
|
227
|
-
}
|
|
228
|
-
if (ch === '"') {
|
|
229
|
-
inDouble = false;
|
|
230
|
-
continue;
|
|
231
|
-
}
|
|
232
|
-
if (ch === "`" || (ch === "$" && next === "(")) {
|
|
233
|
-
return true;
|
|
234
|
-
}
|
|
235
|
-
continue;
|
|
236
|
-
}
|
|
237
|
-
if (escaped) {
|
|
238
|
-
escaped = false;
|
|
239
|
-
continue;
|
|
240
|
-
}
|
|
241
|
-
if (ch === "\\") {
|
|
242
|
-
escaped = true;
|
|
243
|
-
continue;
|
|
244
|
-
}
|
|
245
|
-
if (ch === "'") {
|
|
246
|
-
inSingle = true;
|
|
247
|
-
continue;
|
|
248
|
-
}
|
|
249
|
-
if (ch === '"') {
|
|
250
|
-
inDouble = true;
|
|
251
|
-
continue;
|
|
252
|
-
}
|
|
253
|
-
if (ch === "`" || (ch === "$" && next === "(")) {
|
|
254
|
-
return true;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
return false;
|
|
258
|
-
}
|
|
259
|
-
function splitTopLevelChain(command) {
|
|
260
|
-
const parts = [];
|
|
261
|
-
let current = "";
|
|
262
|
-
let inSingle = false;
|
|
263
|
-
let inDouble = false;
|
|
264
|
-
let escaped = false;
|
|
265
|
-
for (let i = 0; i < command.length; i++) {
|
|
266
|
-
const ch = command[i];
|
|
267
|
-
const next = command[i + 1];
|
|
268
|
-
if (inSingle) {
|
|
269
|
-
current += ch;
|
|
270
|
-
if (ch === "'")
|
|
271
|
-
inSingle = false;
|
|
272
|
-
continue;
|
|
273
|
-
}
|
|
274
|
-
if (inDouble) {
|
|
275
|
-
current += ch;
|
|
276
|
-
if (escaped) {
|
|
277
|
-
escaped = false;
|
|
278
|
-
continue;
|
|
279
|
-
}
|
|
280
|
-
if (ch === "\\") {
|
|
281
|
-
escaped = true;
|
|
282
|
-
continue;
|
|
283
|
-
}
|
|
284
|
-
if (ch === '"')
|
|
285
|
-
inDouble = false;
|
|
286
|
-
continue;
|
|
287
|
-
}
|
|
288
|
-
if (escaped) {
|
|
289
|
-
current += ch;
|
|
290
|
-
escaped = false;
|
|
291
|
-
continue;
|
|
292
|
-
}
|
|
293
|
-
if (ch === "\\") {
|
|
294
|
-
current += ch;
|
|
295
|
-
escaped = true;
|
|
296
|
-
continue;
|
|
297
|
-
}
|
|
298
|
-
if (ch === "'") {
|
|
299
|
-
current += ch;
|
|
300
|
-
inSingle = true;
|
|
301
|
-
continue;
|
|
302
|
-
}
|
|
303
|
-
if (ch === '"') {
|
|
304
|
-
current += ch;
|
|
305
|
-
inDouble = true;
|
|
306
|
-
continue;
|
|
307
|
-
}
|
|
308
|
-
const isSeparator = ch === ";" ||
|
|
309
|
-
ch === "\n" ||
|
|
310
|
-
ch === "\r" ||
|
|
311
|
-
(ch === "&" && next === "&") ||
|
|
312
|
-
(ch === "|" && next === "|");
|
|
313
|
-
if (isSeparator) {
|
|
314
|
-
parts.push(current.trim());
|
|
315
|
-
current = "";
|
|
316
|
-
if ((ch === "&" || ch === "|") && next === ch) {
|
|
317
|
-
i += 1;
|
|
318
|
-
}
|
|
319
|
-
continue;
|
|
320
|
-
}
|
|
321
|
-
current += ch;
|
|
322
|
-
}
|
|
323
|
-
parts.push(current.trim());
|
|
324
|
-
return parts;
|
|
325
|
-
}
|
|
326
|
-
function splitTopLevelPipes(command) {
|
|
327
|
-
const parts = [];
|
|
328
|
-
let current = "";
|
|
329
|
-
let inSingle = false;
|
|
330
|
-
let inDouble = false;
|
|
331
|
-
let escaped = false;
|
|
332
|
-
for (let i = 0; i < command.length; i++) {
|
|
333
|
-
const ch = command[i];
|
|
334
|
-
const next = command[i + 1];
|
|
335
|
-
const prev = i > 0 ? command[i - 1] : "";
|
|
336
|
-
if (inSingle) {
|
|
337
|
-
current += ch;
|
|
338
|
-
if (ch === "'")
|
|
339
|
-
inSingle = false;
|
|
340
|
-
continue;
|
|
341
|
-
}
|
|
342
|
-
if (inDouble) {
|
|
343
|
-
current += ch;
|
|
344
|
-
if (escaped) {
|
|
345
|
-
escaped = false;
|
|
346
|
-
continue;
|
|
347
|
-
}
|
|
348
|
-
if (ch === "\\") {
|
|
349
|
-
escaped = true;
|
|
350
|
-
continue;
|
|
351
|
-
}
|
|
352
|
-
if (ch === '"')
|
|
353
|
-
inDouble = false;
|
|
354
|
-
continue;
|
|
355
|
-
}
|
|
356
|
-
if (escaped) {
|
|
357
|
-
current += ch;
|
|
358
|
-
escaped = false;
|
|
359
|
-
continue;
|
|
360
|
-
}
|
|
361
|
-
if (ch === "\\") {
|
|
362
|
-
current += ch;
|
|
363
|
-
escaped = true;
|
|
364
|
-
continue;
|
|
365
|
-
}
|
|
366
|
-
if (ch === "'") {
|
|
367
|
-
current += ch;
|
|
368
|
-
inSingle = true;
|
|
369
|
-
continue;
|
|
370
|
-
}
|
|
371
|
-
if (ch === '"') {
|
|
372
|
-
current += ch;
|
|
373
|
-
inDouble = true;
|
|
374
|
-
continue;
|
|
375
|
-
}
|
|
376
|
-
if (ch === "|" && next !== "|" && prev !== "|") {
|
|
377
|
-
parts.push(current.trim());
|
|
378
|
-
current = "";
|
|
379
|
-
continue;
|
|
380
|
-
}
|
|
381
|
-
current += ch;
|
|
382
|
-
}
|
|
383
|
-
parts.push(current.trim());
|
|
384
|
-
return parts;
|
|
385
|
-
}
|
|
386
|
-
/**
|
|
387
|
-
* Matches shell output redirection operators that WRITE to the filesystem.
|
|
388
|
-
* Excludes 2>&1 (stderr-to-stdout merge) which is read-only.
|
|
389
|
-
*
|
|
390
|
-
* Matches: >, >>, 2> (not followed by &), &>
|
|
391
|
-
* Does NOT match: 2>&1, <, <<
|
|
392
|
-
*/
|
|
393
|
-
const REDIRECTION_RE = /(?:>>|(?:^|[^2])>(?!&)|2>(?!&)|&>)/;
|
|
394
|
-
/**
|
|
395
|
-
* Determine whether a single simple command (no pipes/chains) is safe.
|
|
396
|
-
* Returns true only when the command prefix is in the safe lists
|
|
397
|
-
* AND the segment contains no output redirection.
|
|
398
|
-
*/
|
|
399
|
-
function isSegmentSafe(segment) {
|
|
400
|
-
const trimmed = segment.trim();
|
|
401
|
-
if (trimmed === "")
|
|
402
|
-
return false;
|
|
403
|
-
// Output redirection makes any command non-safe
|
|
404
|
-
if (REDIRECTION_RE.test(trimmed))
|
|
405
|
-
return false;
|
|
406
|
-
// Multi-word safe match first (e.g. "git status")
|
|
407
|
-
for (const prefix of SAFE_MULTI) {
|
|
408
|
-
if (trimmed === prefix || trimmed.startsWith(prefix + " "))
|
|
409
|
-
return true;
|
|
410
|
-
}
|
|
411
|
-
// Single-word: first token, path-stripped
|
|
412
|
-
const firstToken = trimmed.split(/\s+/)[0] ?? "";
|
|
413
|
-
return SAFE_SINGLE.has(stripPathPrefix(firstToken));
|
|
414
|
-
}
|
|
415
|
-
/**
|
|
416
|
-
* Classify a shell command's risk level.
|
|
417
|
-
*
|
|
418
|
-
* - "safe" — skip approval, execute immediately
|
|
419
|
-
* - "moderate" — handle via runtime policy (approval, allowlist, or autorun)
|
|
420
|
-
* - "blocked" — never execute, return error immediately
|
|
421
|
-
*/
|
|
422
|
-
function classifyCommand(command) {
|
|
423
|
-
const trimmed = command.trim();
|
|
424
|
-
// Empty / whitespace-only — can't determine intent
|
|
425
|
-
if (trimmed === "")
|
|
426
|
-
return "moderate";
|
|
427
|
-
// 0. Strip heredoc bodies once, upfront, so every downstream check
|
|
428
|
-
// (whole-command, per-segment, per-pipe) operates on the sanitised text.
|
|
429
|
-
// This prevents heredoc *data* from triggering blocked patterns.
|
|
430
|
-
const stripped = stripHeredocBodies(trimmed);
|
|
431
|
-
// 1. Check blocked patterns on the entire raw command
|
|
432
|
-
if (isBlocked(stripped))
|
|
433
|
-
return "blocked";
|
|
434
|
-
// 2. Subshells / backticks — can't statically analyze safely.
|
|
435
|
-
// Check before splitting to avoid quote-unaware false positives.
|
|
436
|
-
if (hasUnquotedSubshellOrBacktick(stripped))
|
|
437
|
-
return "moderate";
|
|
438
|
-
// 3. Split on chain operators (&&, ||, ;, newline) outside quoted strings.
|
|
439
|
-
const chainSegments = splitTopLevelChain(stripped);
|
|
440
|
-
for (const seg of chainSegments) {
|
|
441
|
-
if (isBlocked(seg))
|
|
442
|
-
return "blocked";
|
|
443
|
-
}
|
|
444
|
-
// 4. Split each chain segment on top-level pipes and check.
|
|
445
|
-
const allSegments = [];
|
|
446
|
-
for (const seg of chainSegments) {
|
|
447
|
-
const piped = splitTopLevelPipes(seg);
|
|
448
|
-
for (const p of piped) {
|
|
449
|
-
if (isBlocked(p))
|
|
450
|
-
return "blocked";
|
|
451
|
-
allSegments.push(p);
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
// 5. Env-var assignment prefix (VAR=val command)
|
|
455
|
-
if (/^[A-Za-z_]\w*=/.test(trimmed))
|
|
456
|
-
return "moderate";
|
|
457
|
-
// 6. Check if ALL segments are safe (filter empty segments from chain splitting)
|
|
458
|
-
const nonEmpty = allSegments.filter((s) => s.trim() !== "");
|
|
459
|
-
if (nonEmpty.length > 0 && nonEmpty.every(isSegmentSafe))
|
|
460
|
-
return "safe";
|
|
461
|
-
// 7. Default — needs approval
|
|
462
|
-
return "moderate";
|
|
463
|
-
}
|
|
464
|
-
const EXPLICIT_SHELLS = new Set(["sh", "bash", "zsh", "ksh", "dash", "ash", "fish"]);
|
|
465
|
-
/**
|
|
466
|
-
* Classify argv-based process execution (spawn/exec) with shell-aware behavior.
|
|
467
|
-
*
|
|
468
|
-
* When callers explicitly invoke a shell interpreter with `-c`, classify the
|
|
469
|
-
* payload command text itself. This preserves catastrophic-command blocking
|
|
470
|
-
* while avoiding false positives that would block every `bash -c ...` call.
|
|
471
|
-
*/
|
|
472
|
-
function classifyExecInvocation(program, args = []) {
|
|
473
|
-
const shellName = stripPathPrefix(program).toLowerCase();
|
|
474
|
-
if (EXPLICIT_SHELLS.has(shellName) && args[0] === "-c" && typeof args[1] === "string") {
|
|
475
|
-
return classifyCommand(args[1]);
|
|
476
|
-
}
|
|
477
|
-
return classifyCommand([program, ...args].join(" "));
|
|
478
|
-
}
|
|
479
|
-
//# sourceMappingURL=shell-safety.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shell-safety.js","sourceRoot":"","sources":["../../src/executors/shell-safety.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @aria/tools - Shell tool executors
|
|
3
|
-
*
|
|
4
|
-
* Implementation of shell operations for ARIA tool system.
|
|
5
|
-
*/
|
|
6
|
-
import type { ProcessInfoRef, ToolContext, ToolResult } from "../types.js";
|
|
7
|
-
/**
|
|
8
|
-
* Environment variables that are dangerous in ALL contexts — including
|
|
9
|
-
* the host's own process.env. These enable code injection or library
|
|
10
|
-
* hijacking and should never reach child processes.
|
|
11
|
-
*/
|
|
12
|
-
export declare const BLOCKED_ENV_VARS: Set<string>;
|
|
13
|
-
export declare function isBlockedGitEnvVar(key: string): boolean;
|
|
14
|
-
/**
|
|
15
|
-
* Strip git-context env keys from a source env object.
|
|
16
|
-
*/
|
|
17
|
-
export declare function sanitizeGitEnv(env?: NodeJS.ProcessEnv | Record<string, string | undefined>): Record<string, string>;
|
|
18
|
-
/**
|
|
19
|
-
* Additional variables blocked from tool-injected input (inputEnv, ctx.env)
|
|
20
|
-
* but NOT from process.env. The host's PATH/HOME/SHELL are legitimate —
|
|
21
|
-
* only tool-provided overrides are dangerous (hijacking resolution paths).
|
|
22
|
-
*/
|
|
23
|
-
export declare const BLOCKED_INPUT_ENV_VARS: Set<string>;
|
|
24
|
-
/**
|
|
25
|
-
* Merges environment variables from context and input.
|
|
26
|
-
*
|
|
27
|
-
* Three-tier filtering:
|
|
28
|
-
* - process.env: filtered through BLOCKED_ENV_VARS (injection-only vars like LD_PRELOAD)
|
|
29
|
-
* - ctx.env / inputEnv: filtered through BLOCKED_INPUT_ENV_VARS (also blocks PATH/HOME/SHELL hijacking)
|
|
30
|
-
*/
|
|
31
|
-
export declare function mergeEnv(ctx: ToolContext, inputEnv?: Record<string, string>): Record<string, string>;
|
|
32
|
-
/**
|
|
33
|
-
* Sanitize environment for child processes without requiring a ToolContext.
|
|
34
|
-
*
|
|
35
|
-
* Applies the same two-tier filtering as mergeEnv:
|
|
36
|
-
* - process.env is filtered through BLOCKED_ENV_VARS
|
|
37
|
-
* - inputEnv (caller-supplied overrides) is filtered through BLOCKED_INPUT_ENV_VARS
|
|
38
|
-
*
|
|
39
|
-
* Intended for executors (e.g. PTY) that do not have a ToolContext.
|
|
40
|
-
*/
|
|
41
|
-
export declare function sanitizeEnv(inputEnv?: Record<string, string>): Record<string, string>;
|
|
42
|
-
export interface BashInput {
|
|
43
|
-
/** Shell command to execute */
|
|
44
|
-
command: string;
|
|
45
|
-
/** Working directory override */
|
|
46
|
-
cwd?: string;
|
|
47
|
-
/** Additional environment variables */
|
|
48
|
-
env?: Record<string, string>;
|
|
49
|
-
/** Timeout in milliseconds */
|
|
50
|
-
timeout?: number;
|
|
51
|
-
}
|
|
52
|
-
export interface BashOutput {
|
|
53
|
-
stdout: string;
|
|
54
|
-
stderr: string;
|
|
55
|
-
exitCode: number;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Executes a command through bash shell.
|
|
59
|
-
* Supports shell features like pipes, redirection, and variable expansion.
|
|
60
|
-
*/
|
|
61
|
-
export declare function executeBash(input: BashInput, ctx: ToolContext): Promise<ToolResult>;
|
|
62
|
-
export interface ExecInput {
|
|
63
|
-
/** Program to execute */
|
|
64
|
-
program: string;
|
|
65
|
-
/** Arguments to pass to the program */
|
|
66
|
-
args?: string[];
|
|
67
|
-
/** Working directory override */
|
|
68
|
-
cwd?: string;
|
|
69
|
-
/** Additional environment variables */
|
|
70
|
-
env?: Record<string, string>;
|
|
71
|
-
/** Timeout in milliseconds */
|
|
72
|
-
timeout?: number;
|
|
73
|
-
}
|
|
74
|
-
export interface ExecOutput {
|
|
75
|
-
stdout: string;
|
|
76
|
-
stderr: string;
|
|
77
|
-
exitCode: number;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Executes a program directly without shell interpretation.
|
|
81
|
-
* Safer than bash as it doesn't expand shell metacharacters.
|
|
82
|
-
*/
|
|
83
|
-
export declare function executeExec(input: ExecInput, ctx: ToolContext): Promise<ToolResult>;
|
|
84
|
-
export interface SpawnInput {
|
|
85
|
-
/** Program to execute */
|
|
86
|
-
program: string;
|
|
87
|
-
/** Arguments to pass to the program */
|
|
88
|
-
args?: string[];
|
|
89
|
-
/** Working directory override */
|
|
90
|
-
cwd?: string;
|
|
91
|
-
/** Additional environment variables */
|
|
92
|
-
env?: Record<string, string>;
|
|
93
|
-
/** Start as interactive PTY session (enables write_stdin). Default: false */
|
|
94
|
-
interactive?: boolean;
|
|
95
|
-
}
|
|
96
|
-
export interface SpawnOutput {
|
|
97
|
-
pid: number;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Spawns a background process and returns immediately with its PID.
|
|
101
|
-
* The process is detached and will continue running after the parent exits.
|
|
102
|
-
*/
|
|
103
|
-
export declare function executeSpawn(input: SpawnInput, ctx: ToolContext): Promise<ToolResult>;
|
|
104
|
-
export interface KillInput {
|
|
105
|
-
/** Process ID to kill */
|
|
106
|
-
pid: number;
|
|
107
|
-
/** Signal to send (default: SIGTERM) */
|
|
108
|
-
signal?: string;
|
|
109
|
-
}
|
|
110
|
-
export interface KillOutput {
|
|
111
|
-
pid: number;
|
|
112
|
-
signal: string;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Sends a signal to terminate a process by PID.
|
|
116
|
-
*/
|
|
117
|
-
export declare function executeKill(input: KillInput, ctx: ToolContext): Promise<ToolResult>;
|
|
118
|
-
export interface ListProcessesInput {
|
|
119
|
-
/** Include exited process snapshots from recent registry history */
|
|
120
|
-
includeExited?: boolean;
|
|
121
|
-
}
|
|
122
|
-
export interface ListProcessesOutput {
|
|
123
|
-
processes: ProcessInfoRef[];
|
|
124
|
-
count: number;
|
|
125
|
-
}
|
|
126
|
-
export declare function executeListProcesses(rawInput: unknown, ctx: ToolContext): Promise<ToolResult>;
|
|
127
|
-
export interface WaitProcessInput {
|
|
128
|
-
/** PID to wait on */
|
|
129
|
-
pid: number;
|
|
130
|
-
/** Max wait duration in milliseconds (max 300000, default 30000) */
|
|
131
|
-
timeoutMs?: number;
|
|
132
|
-
/** Deprecated alias for timeoutMs */
|
|
133
|
-
timeout?: number;
|
|
134
|
-
}
|
|
135
|
-
export interface WaitProcessOutput {
|
|
136
|
-
pid: number;
|
|
137
|
-
status: "running" | "exited";
|
|
138
|
-
exited: boolean;
|
|
139
|
-
timedOut: boolean;
|
|
140
|
-
waitedMs: number;
|
|
141
|
-
command: string | null;
|
|
142
|
-
args: string[];
|
|
143
|
-
cwd: string | null;
|
|
144
|
-
interactive: boolean;
|
|
145
|
-
startedAt: string;
|
|
146
|
-
endedAt: string | null;
|
|
147
|
-
runtimeMs: number;
|
|
148
|
-
exitCode: number | null;
|
|
149
|
-
signal: string | null;
|
|
150
|
-
}
|
|
151
|
-
export declare function executeWaitProcess(rawInput: unknown, ctx: ToolContext): Promise<ToolResult>;
|
|
152
|
-
export interface WriteStdinInput {
|
|
153
|
-
/** PID of the interactive process to write to */
|
|
154
|
-
pid: number;
|
|
155
|
-
/** Input string to send to the process */
|
|
156
|
-
input: string;
|
|
157
|
-
/** Milliseconds to wait for output after writing (max 30000) */
|
|
158
|
-
timeout?: number;
|
|
159
|
-
}
|
|
160
|
-
export interface WriteStdinOutput {
|
|
161
|
-
/** Recent output from the session after writing */
|
|
162
|
-
output: string;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Sends input to an interactive PTY session by PID.
|
|
166
|
-
* Requires the process to have been spawned with interactive=true.
|
|
167
|
-
*/
|
|
168
|
-
export declare function executeWriteStdin(rawInput: unknown, ctx: ToolContext): Promise<ToolResult>;
|