@intentic/sandbox-contract 1.312.0 → 1.313.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -3
- package/dist/chores/index.d.ts +0 -1
- package/dist/chores/index.d.ts.map +1 -1
- package/dist/chores/index.js +0 -1
- package/dist/chores/index.js.map +1 -1
- package/dist/contracts/accounts.contract.d.ts +57 -0
- package/dist/contracts/accounts.contract.d.ts.map +1 -1
- package/dist/contracts/agent.contract.d.ts +436 -0
- package/dist/contracts/agent.contract.d.ts.map +1 -1
- package/dist/contracts/agent.contract.js +11 -1
- package/dist/contracts/agent.contract.js.map +1 -1
- package/dist/contracts/agents.contract.d.ts +123 -96
- package/dist/contracts/agents.contract.d.ts.map +1 -1
- package/dist/contracts/capabilities.contract.js +1 -1
- package/dist/contracts/capabilities.contract.js.map +1 -1
- package/dist/contracts/device.contract.d.ts +19 -4
- package/dist/contracts/device.contract.d.ts.map +1 -1
- package/dist/contracts/device.contract.js +1 -1
- package/dist/contracts/device.contract.js.map +1 -1
- package/dist/contracts/extensions.contract.d.ts +11 -0
- package/dist/contracts/extensions.contract.d.ts.map +1 -1
- package/dist/contracts/git.contract.d.ts +2 -0
- package/dist/contracts/git.contract.d.ts.map +1 -1
- package/dist/contracts/personas.contract.d.ts +2 -0
- package/dist/contracts/personas.contract.d.ts.map +1 -1
- package/dist/contracts/runner.contract.d.ts +138 -0
- package/dist/contracts/runner.contract.d.ts.map +1 -1
- package/dist/contracts/secrets.contract.d.ts.map +1 -1
- package/dist/contracts/secrets.contract.js +1 -0
- package/dist/contracts/secrets.contract.js.map +1 -1
- package/dist/contracts/sessions.contract.d.ts +59 -0
- package/dist/contracts/sessions.contract.d.ts.map +1 -1
- package/dist/contracts/settings.contract.d.ts +12 -8
- package/dist/contracts/settings.contract.d.ts.map +1 -1
- package/dist/contracts/settings.contract.js +2 -2
- package/dist/contracts/settings.contract.js.map +1 -1
- package/dist/contracts/system.contract.d.ts +139 -19
- package/dist/contracts/system.contract.d.ts.map +1 -1
- package/dist/contracts/translator.contract.d.ts +72 -0
- package/dist/contracts/translator.contract.d.ts.map +1 -1
- package/dist/contracts/workspace.contract.d.ts +85 -14
- package/dist/contracts/workspace.contract.d.ts.map +1 -1
- package/dist/documents/index.d.ts +1 -0
- package/dist/documents/index.d.ts.map +1 -1
- package/dist/documents/index.js +1 -0
- package/dist/documents/index.js.map +1 -1
- package/dist/documents/read.d.ts +24 -0
- package/dist/documents/read.d.ts.map +1 -0
- package/dist/documents/read.js +81 -0
- package/dist/documents/read.js.map +1 -0
- package/dist/events/agent-events.d.ts +235 -0
- package/dist/events/agent-events.d.ts.map +1 -1
- package/dist/events/agent-events.js +3 -0
- package/dist/events/agent-events.js.map +1 -1
- package/dist/events/child-run.d.ts +9 -0
- package/dist/events/child-run.d.ts.map +1 -0
- package/dist/events/child-run.js +41 -0
- package/dist/events/child-run.js.map +1 -0
- package/dist/events/errands.d.ts +5 -0
- package/dist/events/errands.d.ts.map +1 -0
- package/dist/events/errands.js +19 -0
- package/dist/events/errands.js.map +1 -0
- package/dist/events/requests.d.ts +152 -0
- package/dist/events/requests.d.ts.map +1 -1
- package/dist/events/requests.js +26 -1
- package/dist/events/requests.js.map +1 -1
- package/dist/events/system-events.d.ts +8 -12
- package/dist/events/system-events.d.ts.map +1 -1
- package/dist/events/transcript.d.ts +387 -0
- package/dist/events/transcript.d.ts.map +1 -1
- package/dist/events/transcript.js +3 -0
- package/dist/events/transcript.js.map +1 -1
- package/dist/front/browser-wire.d.ts +6 -0
- package/dist/front/browser-wire.d.ts.map +1 -0
- package/dist/front/browser-wire.js +4 -0
- package/dist/front/browser-wire.js.map +1 -0
- package/dist/front/front-wire.d.ts +6 -0
- package/dist/front/front-wire.d.ts.map +1 -0
- package/dist/front/front-wire.js +5 -0
- package/dist/front/front-wire.js.map +1 -0
- package/dist/front/generated/browser-wire.d.ts +19 -0
- package/dist/front/generated/browser-wire.d.ts.map +1 -0
- package/dist/front/generated/browser-wire.js +2 -0
- package/dist/front/generated/browser-wire.js.map +1 -0
- package/dist/front/generated/wire.d.ts +36 -30
- package/dist/front/generated/wire.d.ts.map +1 -1
- package/dist/ids/conversation-ids.d.ts +1 -0
- package/dist/ids/conversation-ids.d.ts.map +1 -1
- package/dist/ids/conversation-ids.js +2 -2
- package/dist/ids/conversation-ids.js.map +1 -1
- package/dist/ids/session-names.d.ts +3 -0
- package/dist/ids/session-names.d.ts.map +1 -1
- package/dist/ids/session-names.js +3 -0
- package/dist/ids/session-names.js.map +1 -1
- package/dist/index.d.ts +1036 -168
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/models/agent-catalog.d.ts.map +1 -1
- package/dist/models/agent-catalog.js +4 -6
- package/dist/models/agent-catalog.js.map +1 -1
- package/dist/models/agent-runtimes.d.ts +2 -1
- package/dist/models/agent-runtimes.d.ts.map +1 -1
- package/dist/models/agent-runtimes.js +7 -1
- package/dist/models/agent-runtimes.js.map +1 -1
- package/dist/models/plan-pools.d.ts +22 -1
- package/dist/models/plan-pools.d.ts.map +1 -1
- package/dist/models/plan-pools.js +86 -0
- package/dist/models/plan-pools.js.map +1 -1
- package/dist/policy/request-status.d.ts +1 -1
- package/dist/policy/request-status.d.ts.map +1 -1
- package/dist/policy/request-status.js +4 -11
- package/dist/policy/request-status.js.map +1 -1
- package/dist/policy/reserved-servers.d.ts.map +1 -1
- package/dist/policy/reserved-servers.js +2 -1
- package/dist/policy/reserved-servers.js.map +1 -1
- package/dist/policy/turned-away.d.ts.map +1 -1
- package/dist/policy/turned-away.js +1 -0
- package/dist/policy/turned-away.js.map +1 -1
- package/dist/protocol/edge-verdict.d.ts +2 -1
- package/dist/protocol/edge-verdict.d.ts.map +1 -1
- package/dist/protocol/edge-verdict.js +1 -1
- package/dist/protocol/edge-verdict.js.map +1 -1
- package/dist/protocol/ingress-contract.d.ts +1 -1
- package/dist/protocol/ingress-contract.d.ts.map +1 -1
- package/dist/protocol/ingress-contract.js +1 -1
- package/dist/protocol/ingress-contract.js.map +1 -1
- package/dist/protocol/raw-routes.d.ts +18 -40
- package/dist/protocol/raw-routes.d.ts.map +1 -1
- package/dist/protocol/raw-routes.js +5 -16
- package/dist/protocol/raw-routes.js.map +1 -1
- package/dist/protocol/route-meta.d.ts +20 -0
- package/dist/protocol/route-meta.d.ts.map +1 -1
- package/dist/protocol/route-meta.js +16 -0
- package/dist/protocol/route-meta.js.map +1 -1
- package/dist/protocol/tunnel-bulk.d.ts +2 -0
- package/dist/protocol/tunnel-bulk.d.ts.map +1 -0
- package/dist/protocol/tunnel-bulk.js +3 -0
- package/dist/protocol/tunnel-bulk.js.map +1 -0
- package/dist/protocol/x402.d.ts +17 -0
- package/dist/protocol/x402.d.ts.map +1 -0
- package/dist/protocol/x402.js +37 -0
- package/dist/protocol/x402.js.map +1 -0
- package/dist/schemas/agent.d.ts +25 -0
- package/dist/schemas/agent.d.ts.map +1 -1
- package/dist/schemas/agent.js +14 -2
- package/dist/schemas/agent.js.map +1 -1
- package/dist/schemas/agents.d.ts +17 -18
- package/dist/schemas/agents.d.ts.map +1 -1
- package/dist/schemas/agents.js +16 -3
- package/dist/schemas/agents.js.map +1 -1
- package/dist/schemas/automations.d.ts +4 -6
- package/dist/schemas/automations.d.ts.map +1 -1
- package/dist/schemas/automations.js.map +1 -1
- package/dist/schemas/devices.d.ts +132 -7
- package/dist/schemas/devices.d.ts.map +1 -1
- package/dist/schemas/devices.js +43 -18
- package/dist/schemas/devices.js.map +1 -1
- package/dist/schemas/extension-updates.d.ts +22 -0
- package/dist/schemas/extension-updates.d.ts.map +1 -1
- package/dist/schemas/extension-updates.js +4 -0
- package/dist/schemas/extension-updates.js.map +1 -1
- package/dist/schemas/git/git.d.ts +3 -0
- package/dist/schemas/git/git.d.ts.map +1 -1
- package/dist/schemas/hosts.d.ts +29 -5
- package/dist/schemas/hosts.d.ts.map +1 -1
- package/dist/schemas/hosts.js +20 -7
- package/dist/schemas/hosts.js.map +1 -1
- package/dist/schemas/keep-warm.d.ts +2 -12
- package/dist/schemas/keep-warm.d.ts.map +1 -1
- package/dist/schemas/keep-warm.js +8 -10
- package/dist/schemas/keep-warm.js.map +1 -1
- package/dist/schemas/metrics.d.ts +22 -0
- package/dist/schemas/metrics.d.ts.map +1 -1
- package/dist/schemas/metrics.js +18 -3
- package/dist/schemas/metrics.js.map +1 -1
- package/dist/schemas/personas.d.ts +3 -0
- package/dist/schemas/personas.d.ts.map +1 -1
- package/dist/schemas/personas.js +9 -0
- package/dist/schemas/personas.js.map +1 -1
- package/dist/schemas/providers/plan-limits.d.ts +140 -0
- package/dist/schemas/providers/plan-limits.d.ts.map +1 -1
- package/dist/schemas/providers/plan-limits.js +47 -1
- package/dist/schemas/providers/plan-limits.js.map +1 -1
- package/dist/schemas/providers/provider-oauth.d.ts +57 -0
- package/dist/schemas/providers/provider-oauth.d.ts.map +1 -1
- package/dist/schemas/providers/provider-oauth.js +6 -1
- package/dist/schemas/providers/provider-oauth.js.map +1 -1
- package/dist/schemas/settings-history.d.ts +28 -1
- package/dist/schemas/settings-history.d.ts.map +1 -1
- package/dist/schemas/settings-history.js +35 -1
- package/dist/schemas/settings-history.js.map +1 -1
- package/dist/schemas/settings.d.ts +184 -4
- package/dist/schemas/settings.d.ts.map +1 -1
- package/dist/schemas/settings.js +31 -23
- package/dist/schemas/settings.js.map +1 -1
- package/dist/schemas/speaker.d.ts +36 -0
- package/dist/schemas/speaker.d.ts.map +1 -0
- package/dist/schemas/speaker.js +62 -0
- package/dist/schemas/speaker.js.map +1 -0
- package/dist/schemas/state-plan.d.ts +46 -0
- package/dist/schemas/state-plan.d.ts.map +1 -0
- package/dist/schemas/state-plan.js +31 -0
- package/dist/schemas/state-plan.js.map +1 -0
- package/dist/schemas/system.d.ts +48 -8
- package/dist/schemas/system.d.ts.map +1 -1
- package/dist/schemas/system.js +10 -14
- package/dist/schemas/system.js.map +1 -1
- package/dist/schemas/workspace/mainline.d.ts +206 -64
- package/dist/schemas/workspace/mainline.d.ts.map +1 -1
- package/dist/schemas/workspace/mainline.js +73 -25
- package/dist/schemas/workspace/mainline.js.map +1 -1
- package/dist/state/contract-lock.d.ts +1 -0
- package/dist/state/contract-lock.d.ts.map +1 -1
- package/dist/state/contract-lock.js +47 -1
- package/dist/state/contract-lock.js.map +1 -1
- package/dist/state/definition.d.ts +24 -16
- package/dist/state/definition.d.ts.map +1 -1
- package/dist/state/fix-stance.d.ts +1 -1
- package/dist/state/fix-stance.d.ts.map +1 -1
- package/dist/state/fix-stance.js +2 -1
- package/dist/state/fix-stance.js.map +1 -1
- package/dist/state/history-state.d.ts.map +1 -1
- package/dist/state/history-state.js +2 -0
- package/dist/state/history-state.js.map +1 -1
- package/dist/state/landed-commit.d.ts +1 -0
- package/dist/state/landed-commit.d.ts.map +1 -1
- package/dist/state/landed-commit.js +2 -0
- package/dist/state/landed-commit.js.map +1 -1
- package/dist/state/red-streak.d.ts +7 -0
- package/dist/state/red-streak.d.ts.map +1 -0
- package/dist/state/red-streak.js +11 -0
- package/dist/state/red-streak.js.map +1 -0
- package/dist/state/workspace-state.d.ts +1 -0
- package/dist/state/workspace-state.d.ts.map +1 -1
- package/dist/state/workspace-state.js +6 -2
- package/dist/state/workspace-state.js.map +1 -1
- package/dist/text/shell-regions.d.ts +1 -0
- package/dist/text/shell-regions.d.ts.map +1 -1
- package/dist/text/shell-regions.js +1 -1
- package/dist/text/shell-regions.js.map +1 -1
- package/dist/text/transcript-fold.d.ts.map +1 -1
- package/dist/text/transcript-fold.js +14 -7
- package/dist/text/transcript-fold.js.map +1 -1
- package/package.json +28 -29
- package/src/chores/index.ts +0 -1
- package/src/contracts/agent.contract.ts +14 -0
- package/src/contracts/capabilities.contract.ts +2 -2
- package/src/contracts/device.contract.ts +5 -3
- package/src/contracts/secrets.contract.ts +2 -0
- package/src/contracts/settings.contract.ts +2 -1
- package/src/documents/conversions.ts +3 -3
- package/src/documents/index.ts +3 -1
- package/src/documents/read.ts +114 -0
- package/src/events/agent-events.ts +5 -0
- package/src/events/child-run.test.ts +81 -0
- package/src/events/child-run.ts +73 -0
- package/src/events/errands.test.ts +22 -0
- package/src/events/errands.ts +27 -0
- package/src/events/requests.ts +40 -1
- package/src/events/transcript.ts +8 -0
- package/src/front/browser-wire.ts +20 -0
- package/src/front/front-wire.ts +15 -0
- package/src/front/generated/browser-wire.json +138 -0
- package/src/front/generated/browser-wire.ts +16 -0
- package/src/front/generated/front-wire.json +793 -0
- package/src/front/generated/tunnel.json +38 -0
- package/src/front/generated/wire.ts +21 -24
- package/src/front/wire-manifests.test.ts +61 -0
- package/src/ids/conversation-ids.ts +6 -5
- package/src/ids/session-names.ts +7 -0
- package/src/index.ts +8 -1
- package/src/models/agent-catalog.test.ts +6 -4
- package/src/models/agent-catalog.ts +4 -6
- package/src/models/agent-runtimes.ts +22 -7
- package/src/models/capability-ledger.test.ts +2 -0
- package/src/models/plan-pools.test.ts +121 -2
- package/src/models/plan-pools.ts +152 -2
- package/src/policy/request-status.ts +4 -12
- package/src/policy/reserved-servers.test.ts +6 -0
- package/src/policy/reserved-servers.ts +13 -10
- package/src/policy/turned-away.ts +3 -0
- package/src/protocol/edge-verdict.ts +13 -11
- package/src/protocol/ingress-contract.fixture.json +13 -0
- package/src/protocol/ingress-contract.ts +9 -5
- package/src/protocol/raw-routes.ts +10 -21
- package/src/protocol/route-meta.ts +36 -1
- package/src/protocol/tunnel-bulk.test.ts +37 -0
- package/src/protocol/tunnel-bulk.ts +7 -0
- package/src/protocol/x402.test.ts +29 -0
- package/src/protocol/x402.ts +61 -0
- package/src/schemas/agent.ts +28 -3
- package/src/schemas/agents.ts +32 -6
- package/src/schemas/automations.ts +4 -2
- package/src/schemas/devices.ts +106 -39
- package/src/schemas/extension-updates.ts +6 -0
- package/src/schemas/hosts.ts +62 -19
- package/src/schemas/ic-shape-args.test.ts +64 -0
- package/src/schemas/keep-warm.test.ts +6 -13
- package/src/schemas/keep-warm.ts +15 -20
- package/src/schemas/metrics.ts +26 -3
- package/src/schemas/personas.ts +15 -0
- package/src/schemas/providers/plan-limits.ts +71 -1
- package/src/schemas/providers/provider-oauth.ts +10 -1
- package/src/schemas/settings-history.ts +50 -3
- package/src/schemas/settings.test.ts +54 -1
- package/src/schemas/settings.ts +49 -31
- package/src/schemas/speaker.ts +89 -0
- package/src/schemas/state-plan.test.ts +69 -0
- package/src/schemas/state-plan.ts +47 -0
- package/src/schemas/system.ts +20 -16
- package/src/schemas/workspace/mainline.test.ts +28 -0
- package/src/schemas/workspace/mainline.ts +111 -44
- package/src/state/contract-lock.test.ts +65 -4
- package/src/state/contract-lock.ts +70 -2
- package/src/state/fix-stance.test.ts +8 -0
- package/src/state/fix-stance.ts +3 -3
- package/src/state/history-state.ts +5 -1
- package/src/state/landed-commit.test.ts +12 -1
- package/src/state/landed-commit.ts +5 -0
- package/src/state/red-streak.test.ts +28 -0
- package/src/state/red-streak.ts +28 -0
- package/src/state/workspace-state.test.ts +7 -1
- package/src/state/workspace-state.ts +10 -2
- package/src/text/shell-regions.test.ts +38 -0
- package/src/text/shell-regions.ts +3 -3
- package/src/text/transcript-fold.test.ts +13 -0
- package/src/text/transcript-fold.ts +17 -8
- package/dist/chores/fix-deps.d.ts +0 -10
- package/dist/chores/fix-deps.d.ts.map +0 -1
- package/dist/chores/fix-deps.js +0 -19
- package/dist/chores/fix-deps.js.map +0 -1
- package/dist/front/terminal-frames.d.ts +0 -17
- package/dist/front/terminal-frames.d.ts.map +0 -1
- package/dist/front/terminal-frames.js +0 -79
- package/dist/front/terminal-frames.js.map +0 -1
- package/dist/protocol/tunnel-lanes.d.ts +0 -10
- package/dist/protocol/tunnel-lanes.d.ts.map +0 -1
- package/dist/protocol/tunnel-lanes.js +0 -16
- package/dist/protocol/tunnel-lanes.js.map +0 -1
- package/dist/protocol/upgrade-relay.d.ts +0 -4
- package/dist/protocol/upgrade-relay.d.ts.map +0 -1
- package/dist/protocol/upgrade-relay.js +0 -25
- package/dist/protocol/upgrade-relay.js.map +0 -1
- package/src/chores/fix-deps.ts +0 -23
- package/src/front/terminal-frames.fixture.json +0 -55
- package/src/front/terminal-frames.test.ts +0 -63
- package/src/front/terminal-frames.ts +0 -102
- package/src/protocol/tunnel-lanes.json +0 -136
- package/src/protocol/tunnel-lanes.test.ts +0 -30
- package/src/protocol/tunnel-lanes.ts +0 -32
- package/src/protocol/upgrade-relay.ts +0 -28
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{"method":"GET","path":"/health","lane":"interactive"},
|
|
3
|
-
{"method":"GET","path":"/diff/raw","lane":"bulk"},
|
|
4
|
-
{"method":"GET","path":"/speech/status","lane":"interactive"},
|
|
5
|
-
{"method":"POST","path":"/speech/transcribe","lane":"interactive"},
|
|
6
|
-
{"method":"GET","path":"/workspace/raw","lane":"bulk"},
|
|
7
|
-
{"method":"GET","path":"/workspace/thumb","lane":"interactive"},
|
|
8
|
-
{"method":"GET","path":"/workspace/media","lane":"bulk"},
|
|
9
|
-
{"method":"POST","path":"/workspace/upload","lane":"bulk"},
|
|
10
|
-
{"method":"POST","path":"/workspace/upload-diff","lane":"interactive"},
|
|
11
|
-
{"method":"POST","path":"/workspace/upload-archive","lane":"bulk"},
|
|
12
|
-
{"method":"POST","path":"/system/ws-ticket","lane":"interactive"},
|
|
13
|
-
{"method":"GET","path":"/system/terminal","lane":"interactive"},
|
|
14
|
-
{"method":"GET","path":"/system/sync/ssh","lane":"bulk"},
|
|
15
|
-
{"method":"GET","path":"/system/browser-profile","lane":"interactive"},
|
|
16
|
-
{"method":"GET","path":"/system/browser-view","lane":"interactive"},
|
|
17
|
-
{"method":"POST","path":"/enroll","lane":"interactive"},
|
|
18
|
-
{"method":"POST","path":"/automations/{id}/fire","lane":"interactive"},
|
|
19
|
-
{"method":"POST","path":"/workflows/{id}/gate","lane":"interactive"},
|
|
20
|
-
{"method":"GET","path":"/webchat/widget.js","lane":"interactive"},
|
|
21
|
-
{"method":"GET","path":"/webchat/{id}/config","lane":"interactive"},
|
|
22
|
-
{"method":"GET","path":"/webchat/{id}/challenge","lane":"interactive"},
|
|
23
|
-
{"method":"POST","path":"/webchat/{id}/message","lane":"interactive"},
|
|
24
|
-
{"method":"GET","path":"/webchat/{id}/messages","lane":"interactive"},
|
|
25
|
-
{"method":"GET","path":"/webchat/{id}/installs","lane":"interactive"},
|
|
26
|
-
{"method":"GET","path":"/intake/sdk.js","lane":"interactive"},
|
|
27
|
-
{"method":"GET","path":"/intake/{id}/config","lane":"interactive"},
|
|
28
|
-
{"method":"GET","path":"/intake/{id}/challenge","lane":"interactive"},
|
|
29
|
-
{"method":"POST","path":"/intake/{id}/report","lane":"interactive"},
|
|
30
|
-
{"method":"GET","path":"/members","lane":"interactive"},
|
|
31
|
-
{"method":"POST","path":"/members","lane":"interactive"},
|
|
32
|
-
{"method":"DELETE","path":"/members","lane":"interactive"},
|
|
33
|
-
{"method":"DELETE","path":"/members/self","lane":"interactive"},
|
|
34
|
-
{"method":"GET","path":"/environment","lane":"interactive"},
|
|
35
|
-
{"method":"GET","path":"/environment/contents","lane":"interactive"},
|
|
36
|
-
{"method":"POST","path":"/environment/approve","lane":"interactive"},
|
|
37
|
-
{"method":"POST","path":"/environment/reject","lane":"interactive"},
|
|
38
|
-
{"method":"POST","path":"/environment/runtime-install","lane":"interactive"},
|
|
39
|
-
{"method":"GET","path":"/engines","lane":"interactive"},
|
|
40
|
-
{"method":"POST","path":"/engines/channel","lane":"interactive"},
|
|
41
|
-
{"method":"POST","path":"/engines/update","lane":"interactive"},
|
|
42
|
-
{"method":"POST","path":"/engines/revert","lane":"interactive"},
|
|
43
|
-
{"method":"GET","path":"/bundles","lane":"interactive"},
|
|
44
|
-
{"method":"POST","path":"/bundles","lane":"interactive"},
|
|
45
|
-
{"method":"DELETE","path":"/bundles","lane":"interactive"},
|
|
46
|
-
{"method":"POST","path":"/bundles/ticket","lane":"interactive"},
|
|
47
|
-
{"method":"GET","path":"/bundles/download","lane":"bulk"},
|
|
48
|
-
{"method":"GET","path":"/definition","lane":"interactive"},
|
|
49
|
-
{"method":"POST","path":"/definition/diff","lane":"interactive"},
|
|
50
|
-
{"method":"GET","path":"/definition/workspace","lane":"interactive"},
|
|
51
|
-
{"method":"POST","path":"/definition/workspace/publish","lane":"interactive"},
|
|
52
|
-
{"method":"POST","path":"/arrivals/plan","lane":"interactive"},
|
|
53
|
-
{"method":"GET","path":"/arrivals/hosts","lane":"interactive"},
|
|
54
|
-
{"method":"POST","path":"/arrivals/scan","lane":"interactive"},
|
|
55
|
-
{"method":"POST","path":"/arrivals/apply","lane":"interactive"},
|
|
56
|
-
{"method":"DELETE","path":"/arrivals","lane":"interactive"},
|
|
57
|
-
{"method":"GET","path":"/extensions/{id}/bundle","lane":"bulk"},
|
|
58
|
-
{"method":"ALL","path":"/x/*","lane":"interactive"},
|
|
59
|
-
{"method":"POST","path":"/mcp/extensions/{id}","lane":"interactive"},
|
|
60
|
-
{"method":"GET","path":"/mcp/extensions/{id}","lane":"interactive"},
|
|
61
|
-
{"method":"DELETE","path":"/mcp/extensions/{id}","lane":"interactive"},
|
|
62
|
-
{"method":"GET","path":"/capabilities/connectable","lane":"interactive"},
|
|
63
|
-
{"method":"POST","path":"/capabilities/ask","lane":"interactive"},
|
|
64
|
-
{"method":"GET","path":"/sandboxes","lane":"interactive"},
|
|
65
|
-
{"method":"POST","path":"/sandboxes","lane":"interactive"},
|
|
66
|
-
{"method":"GET","path":"/wallet/status","lane":"interactive"},
|
|
67
|
-
{"method":"POST","path":"/wallet/fetch","lane":"interactive"},
|
|
68
|
-
{"method":"GET","path":"/wallet/history","lane":"interactive"},
|
|
69
|
-
{"method":"POST","path":"/children/spawn","lane":"interactive"},
|
|
70
|
-
{"method":"GET","path":"/children/providers","lane":"interactive"},
|
|
71
|
-
{"method":"POST","path":"/children/wait","lane":"interactive"},
|
|
72
|
-
{"method":"POST","path":"/children/send","lane":"interactive"},
|
|
73
|
-
{"method":"POST","path":"/children/answer","lane":"interactive"},
|
|
74
|
-
{"method":"GET","path":"/children","lane":"interactive"},
|
|
75
|
-
{"method":"GET","path":"/fleet","lane":"interactive"},
|
|
76
|
-
{"method":"POST","path":"/fleet/message","lane":"interactive"},
|
|
77
|
-
{"method":"GET","path":"/fleet/{handle}","lane":"interactive"},
|
|
78
|
-
{"method":"GET","path":"/listeners/{provider}/state","lane":"interactive"},
|
|
79
|
-
{"method":"POST","path":"/listeners/{provider}/dispatch","lane":"interactive"},
|
|
80
|
-
{"method":"POST","path":"/listeners/{provider}/failure","lane":"interactive"},
|
|
81
|
-
{"method":"POST","path":"/listeners/{provider}/status","lane":"interactive"},
|
|
82
|
-
{"method":"POST","path":"/ci/webhook/{host}","lane":"interactive"},
|
|
83
|
-
{"method":"POST","path":"/system/sync/pair","lane":"interactive"},
|
|
84
|
-
{"method":"POST","path":"/system/hosts/pair","lane":"interactive"},
|
|
85
|
-
{"method":"POST","path":"/system/hosts/enroll","lane":"interactive"},
|
|
86
|
-
{"method":"GET","path":"/system/hosts","lane":"interactive"},
|
|
87
|
-
{"method":"DELETE","path":"/system/hosts/{id}","lane":"interactive"},
|
|
88
|
-
{"method":"GET","path":"/system/hosts/connect","lane":"interactive"},
|
|
89
|
-
{"method":"POST","path":"/mcp/hosts/{id}","lane":"interactive"},
|
|
90
|
-
{"method":"GET","path":"/mcp/hosts/{id}","lane":"interactive"},
|
|
91
|
-
{"method":"DELETE","path":"/mcp/hosts/{id}","lane":"interactive"},
|
|
92
|
-
{"method":"POST","path":"/system/webext/pair","lane":"interactive"},
|
|
93
|
-
{"method":"POST","path":"/system/webext/enroll","lane":"interactive"},
|
|
94
|
-
{"method":"GET","path":"/system/webext","lane":"interactive"},
|
|
95
|
-
{"method":"DELETE","path":"/system/webext/{id}","lane":"interactive"},
|
|
96
|
-
{"method":"GET","path":"/system/webext/connect","lane":"interactive"},
|
|
97
|
-
{"method":"POST","path":"/mcp/webext/{id}","lane":"interactive"},
|
|
98
|
-
{"method":"GET","path":"/mcp/webext/{id}","lane":"interactive"},
|
|
99
|
-
{"method":"DELETE","path":"/mcp/webext/{id}","lane":"interactive"},
|
|
100
|
-
{"method":"POST","path":"/system/runners/pair","lane":"interactive"},
|
|
101
|
-
{"method":"POST","path":"/system/runners/enroll","lane":"interactive"},
|
|
102
|
-
{"method":"GET","path":"/system/runners","lane":"interactive"},
|
|
103
|
-
{"method":"DELETE","path":"/system/runners/{id}","lane":"interactive"},
|
|
104
|
-
{"method":"GET","path":"/system/runners/connect","lane":"interactive"},
|
|
105
|
-
{"method":"POST","path":"/mcp/browser/{id}","lane":"interactive"},
|
|
106
|
-
{"method":"GET","path":"/mcp/browser/{id}","lane":"interactive"},
|
|
107
|
-
{"method":"DELETE","path":"/mcp/browser/{id}","lane":"interactive"},
|
|
108
|
-
{"method":"POST","path":"/system/webext/session","lane":"interactive"},
|
|
109
|
-
{"method":"POST","path":"/system/webext/lend","lane":"interactive"},
|
|
110
|
-
{"method":"POST","path":"/system/runners/{id}/definition/sync","lane":"interactive"},
|
|
111
|
-
{"method":"GET","path":"/system/runners/git/{repo}/info/refs","lane":"bulk"},
|
|
112
|
-
{"method":"POST","path":"/system/runners/git/{repo}/git-upload-pack","lane":"bulk"},
|
|
113
|
-
{"method":"POST","path":"/system/runners/git/{repo}/git-receive-pack","lane":"bulk"},
|
|
114
|
-
{"method":"POST","path":"/system/runners/credentials","lane":"interactive"},
|
|
115
|
-
{"method":"POST","path":"/system/runners/credentials/refresh","lane":"interactive"},
|
|
116
|
-
{"method":"ALL","path":"/system/runners/translator/*","lane":"interactive"},
|
|
117
|
-
{"method":"POST","path":"/system/control/tokens","lane":"interactive"},
|
|
118
|
-
{"method":"GET","path":"/system/control/tokens","lane":"interactive"},
|
|
119
|
-
{"method":"DELETE","path":"/system/control/tokens/{id}","lane":"interactive"},
|
|
120
|
-
{"method":"GET","path":"/system/passkeys","lane":"interactive"},
|
|
121
|
-
{"method":"POST","path":"/system/passkeys/register/options","lane":"interactive"},
|
|
122
|
-
{"method":"POST","path":"/system/passkeys/register","lane":"interactive"},
|
|
123
|
-
{"method":"POST","path":"/system/passkeys/assert/options","lane":"interactive"},
|
|
124
|
-
{"method":"POST","path":"/system/passkeys/assert","lane":"interactive"},
|
|
125
|
-
{"method":"POST","path":"/system/passkeys/policy","lane":"interactive"},
|
|
126
|
-
{"method":"POST","path":"/system/passkeys/recovery","lane":"interactive"},
|
|
127
|
-
{"method":"DELETE","path":"/system/passkeys/{id}","lane":"interactive"},
|
|
128
|
-
{"method":"POST","path":"/system/session/recover","lane":"interactive"},
|
|
129
|
-
{"method":"POST","path":"/system/sessions/revoke","lane":"interactive"},
|
|
130
|
-
{"method":"POST","path":"/system/access/disable","lane":"interactive"},
|
|
131
|
-
{"method":"POST","path":"/system/authorized-key","lane":"interactive"},
|
|
132
|
-
{"method":"GET","path":"/system/sync","lane":"interactive"},
|
|
133
|
-
{"method":"POST","path":"/system/sync/report","lane":"interactive"},
|
|
134
|
-
{"method":"DELETE","path":"/system/authorized-key","lane":"interactive"},
|
|
135
|
-
{"method":"DELETE","path":"/system/authorized-key/{machine}","lane":"interactive"}
|
|
136
|
-
]
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
2
|
-
import { type TunnelLane, tunnelLaneNamed, tunnelLaneOf, tunnelLaneTable } from "./tunnel-lanes.js";
|
|
3
|
-
|
|
4
|
-
interface LaneCase {
|
|
5
|
-
readonly host: string;
|
|
6
|
-
readonly method: string;
|
|
7
|
-
readonly path: string;
|
|
8
|
-
readonly lane: TunnelLane;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const read = (name: string): unknown => JSON.parse(readFileSync(new URL(name, import.meta.url), "utf8"));
|
|
12
|
-
const CASES = (read("./ingress-contract.fixture.json") as { lanes: LaneCase[] }).lanes;
|
|
13
|
-
|
|
14
|
-
test("the table the Rust edge embeds is the raw routes' lanes as they stand (pnpm --filter @intentic/sandbox-contract lanes)", () => {
|
|
15
|
-
expect(read("./tunnel-lanes.json")).toEqual(tunnelLaneTable());
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
test("every request the shared fixture names rides the lane it states", () => {
|
|
19
|
-
expect(CASES.length).toBeGreaterThan(20);
|
|
20
|
-
for (const { host, method, path, lane } of CASES) {
|
|
21
|
-
expect({ host, method, path, lane: tunnelLaneOf(host, method, path) }).toEqual({ host, method, path, lane });
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
test("a tunnel is interactive unless its upgrade names the bulk lane", () => {
|
|
26
|
-
expect(tunnelLaneNamed("bulk")).toBe("bulk");
|
|
27
|
-
expect(tunnelLaneNamed(undefined)).toBe("interactive");
|
|
28
|
-
expect(tunnelLaneNamed("interactive")).toBe("interactive");
|
|
29
|
-
expect(tunnelLaneNamed(["bulk", "bulk"])).toBe("interactive");
|
|
30
|
-
});
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { sandboxSubdomain } from "../ids/hostnames.js";
|
|
2
|
-
import { hostOwnerId } from "./ingress-contract.js";
|
|
3
|
-
import { RAW_ROUTE_LIST } from "./raw-routes.js";
|
|
4
|
-
import { servedRoute } from "./routes.js";
|
|
5
|
-
|
|
6
|
-
// Each sandbox dials two tunnels, and each browser request rides one, so a transfer never queues a keystroke, a call or
|
|
7
|
-
// an event frame behind it on one TCP connection. The front dials both (_sandbox/front tunnel.rs); the edge
|
|
8
|
-
// (_platform/ingress lanes.rs) picks by the table this file emits, and falls back to the other lane while the one picked
|
|
9
|
-
// is not held.
|
|
10
|
-
|
|
11
|
-
export type TunnelLane = "interactive" | "bulk";
|
|
12
|
-
|
|
13
|
-
// Names a tunnel's lane on its upgrade; a tunnel that names none is the interactive one.
|
|
14
|
-
export const INGRESS_LANE_HEADER = "x-intentic-lane";
|
|
15
|
-
|
|
16
|
-
export const tunnelLaneNamed = (header: string | string[] | undefined): TunnelLane => (header === "bulk" ? "bulk" : "interactive");
|
|
17
|
-
|
|
18
|
-
// A preview's dev server (every label but the daemon's own) is bulk: a page load is hundreds of requests and its assets
|
|
19
|
-
// can be large. The daemon's routes are interactive unless their policy says otherwise (RouteMeta `lane`).
|
|
20
|
-
export const tunnelLaneOf = (host: string, method: string, path: string): TunnelLane => {
|
|
21
|
-
const id = hostOwnerId(host);
|
|
22
|
-
const label = host.split(":")[0]?.split(".")[0] ?? "";
|
|
23
|
-
if (id === undefined || label !== sandboxSubdomain(id)) {
|
|
24
|
-
return "bulk";
|
|
25
|
-
}
|
|
26
|
-
return servedRoute(RAW_ROUTE_LIST, [], method, path)?.meta.lane ?? "interactive";
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
// The raw routes in registration order with the lane each rides: what the Rust edge matches a daemon request against,
|
|
30
|
-
// written to tunnel-lanes.json by scripts/write-lanes.mjs since the edge cannot run this file.
|
|
31
|
-
export const tunnelLaneTable = (): { readonly method: string; readonly path: string; readonly lane: TunnelLane }[] =>
|
|
32
|
-
RAW_ROUTE_LIST.map(({ method, path, meta }) => ({ method, path, lane: meta.lane ?? "interactive" }));
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { ClientRequest } from "node:http";
|
|
2
|
-
import type { Duplex } from "node:stream";
|
|
3
|
-
|
|
4
|
-
// `upstream` is the client's handshake replayed; a 101 is echoed and bytes flow raw, any other answer ends the socket.
|
|
5
|
-
export const relayUpgrade = (upstream: ClientRequest, socket: Duplex, head: Buffer): void => {
|
|
6
|
-
upstream.on("error", () => socket.destroy());
|
|
7
|
-
upstream.on("response", (answer) => {
|
|
8
|
-
socket.end(`HTTP/1.1 ${answer.statusCode ?? 502} ${answer.statusMessage ?? ""}\r\n\r\n`);
|
|
9
|
-
});
|
|
10
|
-
upstream.on("upgrade", (answer, upstreamSocket, upstreamHead) => {
|
|
11
|
-
const lines: string[] = [];
|
|
12
|
-
for (let index = 0; index < answer.rawHeaders.length; index += 2) {
|
|
13
|
-
lines.push(`${answer.rawHeaders[index]}: ${answer.rawHeaders[index + 1]}`);
|
|
14
|
-
}
|
|
15
|
-
socket.write(`HTTP/1.1 101 Switching Protocols\r\n${lines.join("\r\n")}\r\n\r\n`);
|
|
16
|
-
if (upstreamHead.length > 0) {
|
|
17
|
-
socket.write(upstreamHead);
|
|
18
|
-
}
|
|
19
|
-
if (head.length > 0) {
|
|
20
|
-
upstreamSocket.write(head);
|
|
21
|
-
}
|
|
22
|
-
upstreamSocket.on("error", () => socket.destroy());
|
|
23
|
-
socket.on("error", () => upstreamSocket.destroy());
|
|
24
|
-
upstreamSocket.pipe(socket);
|
|
25
|
-
socket.pipe(upstreamSocket);
|
|
26
|
-
});
|
|
27
|
-
upstream.end();
|
|
28
|
-
};
|