@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,309 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @aria/tools - Arion executor tests
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { describe, it, expect, vi } from "vitest";
|
|
6
|
-
import type { ToolContext } from "../../src/types.js";
|
|
7
|
-
import {
|
|
8
|
-
executeHatchArion,
|
|
9
|
-
executeRestArion,
|
|
10
|
-
executeWakeArion,
|
|
11
|
-
executeRetireArion,
|
|
12
|
-
} from "../../src/executors/arion.js";
|
|
13
|
-
|
|
14
|
-
// Helper to create a mock context
|
|
15
|
-
const createContext = (overrides: Partial<ToolContext> = {}): ToolContext => ({
|
|
16
|
-
workingDir: "/test/dir",
|
|
17
|
-
env: {},
|
|
18
|
-
confirm: vi.fn().mockResolvedValue(true),
|
|
19
|
-
...overrides,
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
describe("Arion Executors", () => {
|
|
23
|
-
describe("executeHatchArion", () => {
|
|
24
|
-
it("should successfully hatch an arion with valid input", async () => {
|
|
25
|
-
const mockArion = { id: "arion-123", name: "TestArion", emoji: "🦅" };
|
|
26
|
-
const mockManager = {
|
|
27
|
-
hatch: vi.fn().mockResolvedValue(mockArion),
|
|
28
|
-
getMemoria: vi.fn(),
|
|
29
|
-
};
|
|
30
|
-
const ctx = createContext({
|
|
31
|
-
manager: mockManager as any,
|
|
32
|
-
arion: { id: "parent-1", name: "ParentArion", emoji: "🐣" },
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
const result = await executeHatchArion(
|
|
36
|
-
{ name: "TestArion", traits: ["curious", "brave"], style: "casual" },
|
|
37
|
-
ctx,
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
expect(result.success).toBe(true);
|
|
41
|
-
expect(result.data).toEqual({
|
|
42
|
-
arionId: "arion-123",
|
|
43
|
-
name: "TestArion",
|
|
44
|
-
emoji: "🦅",
|
|
45
|
-
});
|
|
46
|
-
expect(mockManager.hatch).toHaveBeenCalled();
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it("should fail when name is missing", async () => {
|
|
50
|
-
const ctx = createContext({
|
|
51
|
-
manager: { hatch: vi.fn(), getMemoria: vi.fn() } as any,
|
|
52
|
-
arion: { id: "parent-1", name: "ParentArion", emoji: "🐣" },
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
const result = await executeHatchArion(
|
|
56
|
-
{ name: "", traits: ["curious"], style: "casual" },
|
|
57
|
-
ctx,
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
expect(result.success).toBe(false);
|
|
61
|
-
expect(result.message).toContain("name is required");
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
it("should fail when manager is not available", async () => {
|
|
65
|
-
const ctx = createContext({
|
|
66
|
-
arion: { id: "parent-1", name: "ParentArion", emoji: "🐣" },
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
const result = await executeHatchArion(
|
|
70
|
-
{ name: "TestArion", traits: ["curious"], style: "casual" },
|
|
71
|
-
ctx,
|
|
72
|
-
);
|
|
73
|
-
|
|
74
|
-
expect(result.success).toBe(false);
|
|
75
|
-
expect(result.message).toContain("ArionManager is not available");
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
// ==========================================================================
|
|
80
|
-
// executeRestArion
|
|
81
|
-
// ==========================================================================
|
|
82
|
-
|
|
83
|
-
describe("executeRestArion", () => {
|
|
84
|
-
it("should successfully rest an arion", async () => {
|
|
85
|
-
const mockManager = {
|
|
86
|
-
rest: vi.fn().mockResolvedValue(undefined),
|
|
87
|
-
};
|
|
88
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
89
|
-
|
|
90
|
-
const result = await executeRestArion({ name: "Sage" }, ctx);
|
|
91
|
-
|
|
92
|
-
expect(result.success).toBe(true);
|
|
93
|
-
expect(result.message).toContain("Sage");
|
|
94
|
-
expect(result.message).toContain("resting");
|
|
95
|
-
expect(mockManager.rest).toHaveBeenCalledWith("Sage");
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
it("should fail when name is empty", async () => {
|
|
99
|
-
const mockManager = { rest: vi.fn() };
|
|
100
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
101
|
-
|
|
102
|
-
const result = await executeRestArion({ name: "" }, ctx);
|
|
103
|
-
|
|
104
|
-
expect(result.success).toBe(false);
|
|
105
|
-
expect(result.message).toContain("name is required");
|
|
106
|
-
expect(mockManager.rest).not.toHaveBeenCalled();
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
it("should fail when manager is not available", async () => {
|
|
110
|
-
const ctx = createContext();
|
|
111
|
-
|
|
112
|
-
const result = await executeRestArion({ name: "Sage" }, ctx);
|
|
113
|
-
|
|
114
|
-
expect(result.success).toBe(false);
|
|
115
|
-
expect(result.message).toContain("ArionManager is not available");
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
it("should propagate manager errors (e.g. already resting)", async () => {
|
|
119
|
-
const mockManager = {
|
|
120
|
-
rest: vi.fn().mockRejectedValue(new Error("Arion is already resting")),
|
|
121
|
-
};
|
|
122
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
123
|
-
|
|
124
|
-
const result = await executeRestArion({ name: "Sage" }, ctx);
|
|
125
|
-
|
|
126
|
-
expect(result.success).toBe(false);
|
|
127
|
-
expect(result.message).toContain("Failed to rest arion");
|
|
128
|
-
expect(result.message).toContain("Arion is already resting");
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
it("should handle non-Error throw from manager", async () => {
|
|
132
|
-
const mockManager = {
|
|
133
|
-
rest: vi.fn().mockRejectedValue("unexpected string error"),
|
|
134
|
-
};
|
|
135
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
136
|
-
|
|
137
|
-
const result = await executeRestArion({ name: "Sage" }, ctx);
|
|
138
|
-
|
|
139
|
-
expect(result.success).toBe(false);
|
|
140
|
-
expect(result.message).toContain("Failed to rest arion");
|
|
141
|
-
expect(result.message).toContain("unexpected string error");
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
// ==========================================================================
|
|
146
|
-
// executeWakeArion
|
|
147
|
-
// ==========================================================================
|
|
148
|
-
|
|
149
|
-
describe("executeWakeArion", () => {
|
|
150
|
-
it("should successfully wake an arion", async () => {
|
|
151
|
-
const mockManager = {
|
|
152
|
-
wake: vi.fn().mockResolvedValue(undefined),
|
|
153
|
-
};
|
|
154
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
155
|
-
|
|
156
|
-
const result = await executeWakeArion({ name: "Sage" }, ctx);
|
|
157
|
-
|
|
158
|
-
expect(result.success).toBe(true);
|
|
159
|
-
expect(result.message).toContain("Sage");
|
|
160
|
-
expect(result.message).toContain("awake");
|
|
161
|
-
expect(mockManager.wake).toHaveBeenCalledWith("Sage");
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
it("should fail when name is empty", async () => {
|
|
165
|
-
const mockManager = { wake: vi.fn() };
|
|
166
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
167
|
-
|
|
168
|
-
const result = await executeWakeArion({ name: "" }, ctx);
|
|
169
|
-
|
|
170
|
-
expect(result.success).toBe(false);
|
|
171
|
-
expect(result.message).toContain("name is required");
|
|
172
|
-
expect(mockManager.wake).not.toHaveBeenCalled();
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
it("should fail when manager is not available", async () => {
|
|
176
|
-
const ctx = createContext();
|
|
177
|
-
|
|
178
|
-
const result = await executeWakeArion({ name: "Sage" }, ctx);
|
|
179
|
-
|
|
180
|
-
expect(result.success).toBe(false);
|
|
181
|
-
expect(result.message).toContain("ArionManager is not available");
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
it("should propagate manager errors (e.g. arion not resting)", async () => {
|
|
185
|
-
const mockManager = {
|
|
186
|
-
wake: vi.fn().mockRejectedValue(new Error("Arion is not resting")),
|
|
187
|
-
};
|
|
188
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
189
|
-
|
|
190
|
-
const result = await executeWakeArion({ name: "Sage" }, ctx);
|
|
191
|
-
|
|
192
|
-
expect(result.success).toBe(false);
|
|
193
|
-
expect(result.message).toContain("Failed to wake arion");
|
|
194
|
-
expect(result.message).toContain("Arion is not resting");
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
it("should handle non-Error throw from manager", async () => {
|
|
198
|
-
const mockManager = {
|
|
199
|
-
wake: vi.fn().mockRejectedValue(42),
|
|
200
|
-
};
|
|
201
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
202
|
-
|
|
203
|
-
const result = await executeWakeArion({ name: "Sage" }, ctx);
|
|
204
|
-
|
|
205
|
-
expect(result.success).toBe(false);
|
|
206
|
-
expect(result.message).toContain("Failed to wake arion");
|
|
207
|
-
expect(result.message).toContain("42");
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
// ==========================================================================
|
|
212
|
-
// executeRetireArion
|
|
213
|
-
// ==========================================================================
|
|
214
|
-
|
|
215
|
-
describe("executeRetireArion", () => {
|
|
216
|
-
it("should successfully retire an arion when confirmed", async () => {
|
|
217
|
-
const mockManager = {
|
|
218
|
-
retire: vi.fn().mockResolvedValue(undefined),
|
|
219
|
-
};
|
|
220
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
221
|
-
|
|
222
|
-
const result = await executeRetireArion({ name: "OldSage" }, ctx);
|
|
223
|
-
|
|
224
|
-
expect(result.success).toBe(true);
|
|
225
|
-
expect(result.message).toContain("OldSage");
|
|
226
|
-
expect(result.message).toContain("retired");
|
|
227
|
-
expect(mockManager.retire).toHaveBeenCalledWith("OldSage", {
|
|
228
|
-
confirm: true,
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
it("should call confirm with a warning about permanence", async () => {
|
|
233
|
-
const confirmFn = vi.fn().mockResolvedValue(true);
|
|
234
|
-
const mockManager = {
|
|
235
|
-
retire: vi.fn().mockResolvedValue(undefined),
|
|
236
|
-
};
|
|
237
|
-
const ctx = createContext({
|
|
238
|
-
manager: mockManager as any,
|
|
239
|
-
confirm: confirmFn,
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
await executeRetireArion({ name: "OldSage" }, ctx);
|
|
243
|
-
|
|
244
|
-
expect(confirmFn).toHaveBeenCalledTimes(1);
|
|
245
|
-
const confirmMsg = confirmFn.mock.calls[0][0];
|
|
246
|
-
expect(confirmMsg).toContain("OldSage");
|
|
247
|
-
expect(confirmMsg).toContain("cannot be undone");
|
|
248
|
-
});
|
|
249
|
-
|
|
250
|
-
it("should fail when user declines confirmation", async () => {
|
|
251
|
-
const mockManager = { retire: vi.fn() };
|
|
252
|
-
const ctx = createContext({
|
|
253
|
-
manager: mockManager as any,
|
|
254
|
-
confirm: vi.fn().mockResolvedValue(false),
|
|
255
|
-
});
|
|
256
|
-
|
|
257
|
-
const result = await executeRetireArion({ name: "OldSage" }, ctx);
|
|
258
|
-
|
|
259
|
-
expect(result.success).toBe(false);
|
|
260
|
-
expect(result.message).toContain("cancelled");
|
|
261
|
-
expect(mockManager.retire).not.toHaveBeenCalled();
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
it("should fail when name is empty", async () => {
|
|
265
|
-
const mockManager = { retire: vi.fn() };
|
|
266
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
267
|
-
|
|
268
|
-
const result = await executeRetireArion({ name: "" }, ctx);
|
|
269
|
-
|
|
270
|
-
expect(result.success).toBe(false);
|
|
271
|
-
expect(result.message).toContain("name is required");
|
|
272
|
-
expect(mockManager.retire).not.toHaveBeenCalled();
|
|
273
|
-
});
|
|
274
|
-
|
|
275
|
-
it("should fail when manager is not available", async () => {
|
|
276
|
-
const ctx = createContext();
|
|
277
|
-
|
|
278
|
-
const result = await executeRetireArion({ name: "OldSage" }, ctx);
|
|
279
|
-
|
|
280
|
-
expect(result.success).toBe(false);
|
|
281
|
-
expect(result.message).toContain("ArionManager is not available");
|
|
282
|
-
});
|
|
283
|
-
|
|
284
|
-
it("should propagate manager errors (e.g. arion not found)", async () => {
|
|
285
|
-
const mockManager = {
|
|
286
|
-
retire: vi.fn().mockRejectedValue(new Error("Arion 'Ghost' does not exist")),
|
|
287
|
-
};
|
|
288
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
289
|
-
|
|
290
|
-
const result = await executeRetireArion({ name: "Ghost" }, ctx);
|
|
291
|
-
|
|
292
|
-
expect(result.success).toBe(false);
|
|
293
|
-
expect(result.message).toContain("Failed to retire arion");
|
|
294
|
-
expect(result.message).toContain("Arion 'Ghost' does not exist");
|
|
295
|
-
});
|
|
296
|
-
|
|
297
|
-
it("should handle non-Error throw from manager", async () => {
|
|
298
|
-
const mockManager = {
|
|
299
|
-
retire: vi.fn().mockRejectedValue({ code: "NOT_FOUND" }),
|
|
300
|
-
};
|
|
301
|
-
const ctx = createContext({ manager: mockManager as any });
|
|
302
|
-
|
|
303
|
-
const result = await executeRetireArion({ name: "Ghost" }, ctx);
|
|
304
|
-
|
|
305
|
-
expect(result.success).toBe(false);
|
|
306
|
-
expect(result.message).toContain("Failed to retire arion");
|
|
307
|
-
});
|
|
308
|
-
});
|
|
309
|
-
});
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @aria/tools - Conversation primitives tests
|
|
3
|
-
*
|
|
4
|
-
* Tests for getConversationContext, getSessionTranscript, getSelfContext,
|
|
5
|
-
* and the RecallToolContext interface.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import fs from "node:fs";
|
|
9
|
-
import os from "node:os";
|
|
10
|
-
import path from "node:path";
|
|
11
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
12
|
-
import {
|
|
13
|
-
getConversationContext,
|
|
14
|
-
getSessionTranscript,
|
|
15
|
-
getSelfContext,
|
|
16
|
-
} from "../../src/executors/memory.js";
|
|
17
|
-
import type { RecallToolContext } from "../../src/executors/memory.js";
|
|
18
|
-
|
|
19
|
-
describe("Conversation Primitives", () => {
|
|
20
|
-
describe("getConversationContext", () => {
|
|
21
|
-
const sampleMessages: Array<{ role: string; content: string }> = [
|
|
22
|
-
{ role: "user", content: "Hello" },
|
|
23
|
-
{ role: "assistant", content: "Hi there!" },
|
|
24
|
-
{ role: "user", content: "What is 2+2?" },
|
|
25
|
-
{ role: "assistant", content: "4" },
|
|
26
|
-
{ role: "user", content: "And 3+3?" },
|
|
27
|
-
{ role: "assistant", content: "6" },
|
|
28
|
-
{ role: "user", content: "Thanks" },
|
|
29
|
-
{ role: "assistant", content: "You're welcome!" },
|
|
30
|
-
{ role: "user", content: "One more thing" },
|
|
31
|
-
{ role: "assistant", content: "Sure, what is it?" },
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
it("returns last N turns (default 5)", () => {
|
|
35
|
-
const result = getConversationContext(sampleMessages, {});
|
|
36
|
-
// Default 5 turns = 10 messages, which is all of our sample
|
|
37
|
-
expect(result).toHaveLength(10);
|
|
38
|
-
expect(result[0]).toEqual({ role: "user", content: "Hello" });
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it("returns last 3 turns (6 messages)", () => {
|
|
42
|
-
const result = getConversationContext(sampleMessages, { turns: 3 });
|
|
43
|
-
expect(result).toHaveLength(6);
|
|
44
|
-
// 10 messages, slice(-6) starts at index 4
|
|
45
|
-
expect(result[0]).toEqual({ role: "user", content: "And 3+3?" });
|
|
46
|
-
expect(result[5]).toEqual({ role: "assistant", content: "Sure, what is it?" });
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it("returns last 1 turn (2 messages)", () => {
|
|
50
|
-
const result = getConversationContext(sampleMessages, { turns: 1 });
|
|
51
|
-
expect(result).toHaveLength(2);
|
|
52
|
-
expect(result[0]).toEqual({ role: "user", content: "One more thing" });
|
|
53
|
-
expect(result[1]).toEqual({ role: "assistant", content: "Sure, what is it?" });
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
it("returns empty array when messages is undefined", () => {
|
|
57
|
-
const result = getConversationContext(undefined, { turns: 3 });
|
|
58
|
-
expect(result).toEqual([]);
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it("returns empty array when messages is empty", () => {
|
|
62
|
-
const result = getConversationContext([], { turns: 3 });
|
|
63
|
-
expect(result).toEqual([]);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
it("returns all messages when turns exceeds available messages", () => {
|
|
67
|
-
const result = getConversationContext(sampleMessages, { turns: 100 });
|
|
68
|
-
expect(result).toHaveLength(10);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
it("handles single message", () => {
|
|
72
|
-
const single = [{ role: "user", content: "Hi" }];
|
|
73
|
-
const result = getConversationContext(single, { turns: 5 });
|
|
74
|
-
expect(result).toHaveLength(1);
|
|
75
|
-
expect(result[0]).toEqual({ role: "user", content: "Hi" });
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
it("handles turns=0 gracefully", () => {
|
|
79
|
-
const result = getConversationContext(sampleMessages, { turns: 0 });
|
|
80
|
-
// 0 turns = 0 messages
|
|
81
|
-
expect(result).toEqual([]);
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
describe("getSessionTranscript", () => {
|
|
86
|
-
let tmpDir: string;
|
|
87
|
-
let projectsDir: string;
|
|
88
|
-
|
|
89
|
-
beforeEach(() => {
|
|
90
|
-
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "aria-conversation-primitives-"));
|
|
91
|
-
projectsDir = path.join(tmpDir, ".claude", "projects");
|
|
92
|
-
fs.mkdirSync(projectsDir, { recursive: true });
|
|
93
|
-
vi.spyOn(os, "homedir").mockReturnValue(tmpDir);
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
afterEach(() => {
|
|
97
|
-
vi.restoreAllMocks();
|
|
98
|
-
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
function writeSession(lines: string[]): void {
|
|
102
|
-
const projectDir = path.join(projectsDir, "test-project");
|
|
103
|
-
fs.mkdirSync(projectDir, { recursive: true });
|
|
104
|
-
fs.writeFileSync(path.join(projectDir, "session.jsonl"), lines.join("\n"), "utf8");
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
function makeEntry(role: "user" | "assistant", content: string): string {
|
|
108
|
-
return JSON.stringify({
|
|
109
|
-
type: role,
|
|
110
|
-
message: { role, content },
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
it("returns empty array when no session files exist at default path", async () => {
|
|
115
|
-
const result = await getSessionTranscript({});
|
|
116
|
-
expect(result).toBeInstanceOf(Array);
|
|
117
|
-
expect(result).toEqual([]);
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
it("returns empty array with non-matching sessionId", async () => {
|
|
121
|
-
writeSession([makeEntry("user", "Hello"), makeEntry("assistant", "Hi")]);
|
|
122
|
-
const result = await getSessionTranscript({ sessionId: "nonexistent-session-123" });
|
|
123
|
-
expect(result).toEqual([]);
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
it("returns an array with turns parameter", async () => {
|
|
127
|
-
writeSession([
|
|
128
|
-
makeEntry("user", "Question 1"),
|
|
129
|
-
makeEntry("assistant", "Answer 1"),
|
|
130
|
-
makeEntry("user", "Question 2"),
|
|
131
|
-
makeEntry("assistant", "Answer 2"),
|
|
132
|
-
]);
|
|
133
|
-
|
|
134
|
-
const result = await getSessionTranscript({ turns: 5 });
|
|
135
|
-
expect(result).toBeInstanceOf(Array);
|
|
136
|
-
expect(result).toEqual([
|
|
137
|
-
{ role: "user", content: "Question 1" },
|
|
138
|
-
{ role: "assistant", content: "Answer 1" },
|
|
139
|
-
{ role: "user", content: "Question 2" },
|
|
140
|
-
{ role: "assistant", content: "Answer 2" },
|
|
141
|
-
]);
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
it("returns empty array when turns is 0", async () => {
|
|
145
|
-
const result = await getSessionTranscript({ turns: 0 });
|
|
146
|
-
expect(result).toEqual([]);
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
describe("getSelfContext", () => {
|
|
151
|
-
const sections: Record<string, string> = {
|
|
152
|
-
memory: "Current task: Fix the bug\nSuggested response: Try running tests",
|
|
153
|
-
strategies: "Always write tests first\nUse TDD approach",
|
|
154
|
-
profile: "User: Tony, prefers TypeScript",
|
|
155
|
-
context: "Background: Working on ARIA project",
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
it("returns memory section", () => {
|
|
159
|
-
const result = getSelfContext(sections, { section: "memory" });
|
|
160
|
-
expect(result).toBe("Current task: Fix the bug\nSuggested response: Try running tests");
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
it("returns strategies section", () => {
|
|
164
|
-
const result = getSelfContext(sections, { section: "strategies" });
|
|
165
|
-
expect(result).toBe("Always write tests first\nUse TDD approach");
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
it("returns profile section", () => {
|
|
169
|
-
const result = getSelfContext(sections, { section: "profile" });
|
|
170
|
-
expect(result).toBe("User: Tony, prefers TypeScript");
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
it("returns context section", () => {
|
|
174
|
-
const result = getSelfContext(sections, { section: "context" });
|
|
175
|
-
expect(result).toBe("Background: Working on ARIA project");
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
it("returns null for unknown section name", () => {
|
|
179
|
-
const result = getSelfContext(sections, { section: "unknown" });
|
|
180
|
-
expect(result).toBeNull();
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
it("returns null when sections is undefined", () => {
|
|
184
|
-
const result = getSelfContext(undefined, { section: "memory" });
|
|
185
|
-
expect(result).toBeNull();
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
it("returns null for valid section name not present in sections", () => {
|
|
189
|
-
const partial: Record<string, string> = { memory: "Some content" };
|
|
190
|
-
const result = getSelfContext(partial, { section: "strategies" });
|
|
191
|
-
expect(result).toBeNull();
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
it("rejects invalid section names (SQL injection attempt)", () => {
|
|
195
|
-
const result = getSelfContext(sections, { section: "'; DROP TABLE --" });
|
|
196
|
-
expect(result).toBeNull();
|
|
197
|
-
});
|
|
198
|
-
|
|
199
|
-
it("rejects empty string section name", () => {
|
|
200
|
-
const result = getSelfContext(sections, { section: "" });
|
|
201
|
-
expect(result).toBeNull();
|
|
202
|
-
});
|
|
203
|
-
});
|
|
204
|
-
|
|
205
|
-
describe("RecallToolContext integration", () => {
|
|
206
|
-
it("can be used to type ctx.context for memory executors", () => {
|
|
207
|
-
const recallCtx: RecallToolContext = {
|
|
208
|
-
conversationContext: [
|
|
209
|
-
{ role: "user", content: "Hello" },
|
|
210
|
-
{ role: "assistant", content: "Hi!" },
|
|
211
|
-
],
|
|
212
|
-
systemPromptSections: {
|
|
213
|
-
memory: "Current task: testing",
|
|
214
|
-
strategies: "Write good tests",
|
|
215
|
-
},
|
|
216
|
-
};
|
|
217
|
-
|
|
218
|
-
// getConversationContext reads from conversationContext
|
|
219
|
-
const turns = getConversationContext(recallCtx.conversationContext, { turns: 1 });
|
|
220
|
-
expect(turns).toHaveLength(2);
|
|
221
|
-
expect(turns[0]!.content).toBe("Hello");
|
|
222
|
-
|
|
223
|
-
// getSelfContext reads from systemPromptSections
|
|
224
|
-
const memory = getSelfContext(recallCtx.systemPromptSections, { section: "memory" });
|
|
225
|
-
expect(memory).toBe("Current task: testing");
|
|
226
|
-
});
|
|
227
|
-
|
|
228
|
-
it("handles RecallToolContext with only conversationContext", () => {
|
|
229
|
-
const recallCtx: RecallToolContext = {
|
|
230
|
-
conversationContext: [{ role: "user", content: "Test" }],
|
|
231
|
-
};
|
|
232
|
-
|
|
233
|
-
const turns = getConversationContext(recallCtx.conversationContext, {});
|
|
234
|
-
expect(turns).toHaveLength(1);
|
|
235
|
-
|
|
236
|
-
const section = getSelfContext(recallCtx.systemPromptSections, { section: "memory" });
|
|
237
|
-
expect(section).toBeNull();
|
|
238
|
-
});
|
|
239
|
-
|
|
240
|
-
it("handles empty RecallToolContext", () => {
|
|
241
|
-
const recallCtx: RecallToolContext = {};
|
|
242
|
-
|
|
243
|
-
const turns = getConversationContext(recallCtx.conversationContext, {});
|
|
244
|
-
expect(turns).toEqual([]);
|
|
245
|
-
|
|
246
|
-
const section = getSelfContext(recallCtx.systemPromptSections, { section: "memory" });
|
|
247
|
-
expect(section).toBeNull();
|
|
248
|
-
});
|
|
249
|
-
});
|
|
250
|
-
});
|