@roll-agent/relay-protocol 0.1.1 → 0.3.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.
Files changed (51) hide show
  1. package/README.md +134 -39
  2. package/dist/conformance.d.ts +571 -4
  3. package/dist/conformance.js +677 -8
  4. package/dist/control.d.ts +188 -0
  5. package/dist/control.js +180 -0
  6. package/dist/index.d.ts +3991 -287
  7. package/dist/index.js +676 -77
  8. package/dist/reference-adapter.d.ts +56 -0
  9. package/dist/reference-adapter.js +122 -0
  10. package/dist/schema/roll-relay-browser-session-v1.schema.json +23 -0
  11. package/dist/schema/roll-relay-control-v1.schema.json +127 -0
  12. package/dist/schema/roll-relay-protocol-v1.1.schema.json +3791 -0
  13. package/dist/schema/roll-relay-protocol-v1.schema.json +1 -1
  14. package/fixtures/control/v1.0/invalid-browser-session-trailing-whitespace.json +4 -0
  15. package/fixtures/control/v1.0/invalid-browser-session-uppercase-scheme.json +4 -0
  16. package/fixtures/control/v1.0/invalid-browser-session-url.json +4 -0
  17. package/fixtures/control/v1.0/invalid-browser-session-ws.json +4 -0
  18. package/fixtures/control/v1.0/invalid-control-extra-field.json +6 -0
  19. package/fixtures/control/v1.0/invalid-session-ready-wire-version.json +8 -0
  20. package/fixtures/control/v1.0/manifest.json +52 -0
  21. package/fixtures/control/v1.0/valid-browser-session.json +4 -0
  22. package/fixtures/control/v1.0/valid-session-error.json +5 -0
  23. package/fixtures/control/v1.0/valid-session-ready.json +8 -0
  24. package/fixtures/control/v1.0/valid-workspace-status.json +5 -0
  25. package/fixtures/v1.1/invalid-approval-projection-raw-input-leak.json +19 -0
  26. package/fixtures/v1.1/invalid-authentication-local-only.json +12 -0
  27. package/fixtures/v1.1/invalid-file-picker-local-only.json +12 -0
  28. package/fixtures/v1.1/invalid-interaction-cancelled-reason-leak.json +10 -0
  29. package/fixtures/v1.1/invalid-interaction-resolved-result-leak.json +18 -0
  30. package/fixtures/v1.1/invalid-legacy-approval-candidate.json +7 -0
  31. package/fixtures/v1.1/invalid-legacy-approval-respond.json +7 -0
  32. package/fixtures/v1.1/invalid-n-minus-one-device-connect.json +6 -0
  33. package/fixtures/v1.1/invalid-non-normal-sensitivity.json +21 -0
  34. package/fixtures/v1.1/invalid-runtime-event-tool-input-leak.json +22 -0
  35. package/fixtures/v1.1/invalid-runtime-event-tool-output-leak.json +21 -0
  36. package/fixtures/v1.1/invalid-user-input-projection-secret-leak.json +22 -0
  37. package/fixtures/v1.1/manifest.json +673 -0
  38. package/fixtures/v1.1/valid-device-connect.json +6 -0
  39. package/fixtures/v1.1/valid-interaction-cancelled.json +9 -0
  40. package/fixtures/v1.1/valid-interaction-candidate-user-input.json +25 -0
  41. package/fixtures/v1.1/valid-interaction-request-approval.json +17 -0
  42. package/fixtures/v1.1/valid-interaction-request-user-input.json +40 -0
  43. package/fixtures/v1.1/valid-interaction-resolved.json +9 -0
  44. package/fixtures/v1.1/valid-runtime-ack.json +5 -0
  45. package/fixtures/v1.1/valid-runtime-encrypted-interaction.json +10 -0
  46. package/fixtures/v1.1/valid-runtime-event-runtime-n-minus-one.json +16 -0
  47. package/fixtures/v1.1/valid-runtime-event.json +16 -0
  48. package/fixtures/v1.1/valid-runtime-gap.json +7 -0
  49. package/fixtures/v1.1/valid-runtime-request.json +10 -0
  50. package/fixtures/v1.1/valid-runtime-response.json +8 -0
  51. package/package.json +16 -3
@@ -0,0 +1,25 @@
1
+ {
2
+ "type": "runtime.request",
3
+ "requestId": "00000000-0000-4000-8000-000000000509",
4
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
5
+ "method": "interaction.candidate",
6
+ "params": {
7
+ "interactionId": "00000000-0000-4000-8000-000000000511",
8
+ "threadId": "00000000-0000-4000-8000-000000000502",
9
+ "turnId": "00000000-0000-4000-8000-000000000503",
10
+ "method": "userInput.request",
11
+ "candidate": {
12
+ "status": "submitted",
13
+ "values": [
14
+ {
15
+ "id": "region",
16
+ "value": "north"
17
+ },
18
+ {
19
+ "id": "workspace",
20
+ "value": "target-workspace"
21
+ }
22
+ ]
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "type": "interaction.request",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 3,
5
+ "interactionId": "00000000-0000-4000-8000-000000000511",
6
+ "threadId": "00000000-0000-4000-8000-000000000502",
7
+ "turnId": "00000000-0000-4000-8000-000000000503",
8
+ "expiresAt": "2026-08-04T00:05:00.000Z",
9
+ "sensitivity": "normal",
10
+ "method": "approval.request",
11
+ "projection": {
12
+ "approvalId": "00000000-0000-4000-8000-000000000504",
13
+ "agentName": "workspace-agent",
14
+ "toolName": "deploy",
15
+ "explanation": "部署前需要确认。"
16
+ }
17
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "type": "interaction.request",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 4,
5
+ "interactionId": "00000000-0000-4000-8000-000000000511",
6
+ "threadId": "00000000-0000-4000-8000-000000000502",
7
+ "turnId": "00000000-0000-4000-8000-000000000503",
8
+ "expiresAt": "2026-08-04T00:05:00.000Z",
9
+ "sensitivity": "normal",
10
+ "method": "userInput.request",
11
+ "projection": {
12
+ "title": "部署配置",
13
+ "controls": [
14
+ {
15
+ "id": "region",
16
+ "type": "choice",
17
+ "label": "部署区域",
18
+ "required": true,
19
+ "multiple": false,
20
+ "options": [
21
+ {
22
+ "id": "north",
23
+ "label": "北区"
24
+ },
25
+ {
26
+ "id": "south",
27
+ "label": "南区"
28
+ }
29
+ ]
30
+ },
31
+ {
32
+ "id": "workspace",
33
+ "type": "text",
34
+ "label": "目标 Workspace",
35
+ "required": true,
36
+ "maxLength": 100
37
+ }
38
+ ]
39
+ }
40
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "type": "interaction.resolved",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 5,
5
+ "interactionId": "00000000-0000-4000-8000-000000000511",
6
+ "threadId": "00000000-0000-4000-8000-000000000502",
7
+ "turnId": "00000000-0000-4000-8000-000000000503",
8
+ "method": "userInput.request"
9
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "type": "runtime.ack",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "throughRelaySequence": 1
5
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "type": "runtime.encrypted",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "envelopeId": "00000000-0000-4000-8000-000000000508",
5
+ "payloadKind": "interaction",
6
+ "relaySequence": 2,
7
+ "algorithm": "example-aead",
8
+ "nonce": "opaque-nonce",
9
+ "ciphertext": "opaque-ciphertext"
10
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "type": "runtime.event",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 1,
5
+ "event": {
6
+ "protocolVersion": "1.0",
7
+ "runtimeInstanceId": "00000000-0000-4000-8000-000000000501",
8
+ "sequence": 1,
9
+ "timestamp": "2026-08-04T00:00:01.000Z",
10
+ "threadId": "00000000-0000-4000-8000-000000000502",
11
+ "turnId": "00000000-0000-4000-8000-000000000503",
12
+ "event": {
13
+ "type": "turn.completed"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "type": "runtime.event",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "relaySequence": 0,
5
+ "event": {
6
+ "protocolVersion": "1.1",
7
+ "runtimeInstanceId": "00000000-0000-4000-8000-000000000501",
8
+ "sequence": 0,
9
+ "timestamp": "2026-08-04T00:00:00.000Z",
10
+ "threadId": "00000000-0000-4000-8000-000000000502",
11
+ "turnId": "00000000-0000-4000-8000-000000000503",
12
+ "event": {
13
+ "type": "turn.completed"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "runtime.gap",
3
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
4
+ "fromRelaySequence": 0,
5
+ "throughRelaySequence": 2,
6
+ "recovery": "thread.snapshot"
7
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "type": "runtime.request",
3
+ "requestId": "00000000-0000-4000-8000-000000000505",
4
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
5
+ "method": "thread.snapshot",
6
+ "params": {
7
+ "threadId": "00000000-0000-4000-8000-000000000502",
8
+ "limit": 100
9
+ }
10
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "type": "runtime.response",
3
+ "requestId": "00000000-0000-4000-8000-000000000505",
4
+ "workspaceId": "00000000-0000-4000-8000-000000000507",
5
+ "result": {
6
+ "accepted": true
7
+ }
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roll-agent/relay-protocol",
3
- "version": "0.1.1",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,7 +19,20 @@
19
19
  "types": "./dist/conformance.d.ts",
20
20
  "default": "./dist/conformance.js"
21
21
  },
22
+ "./reference-adapter": {
23
+ "types": "./dist/reference-adapter.d.ts",
24
+ "default": "./dist/reference-adapter.js"
25
+ },
26
+ "./control": {
27
+ "types": "./dist/control.d.ts",
28
+ "default": "./dist/control.js"
29
+ },
30
+ "./control/schema": "./dist/schema/roll-relay-control-v1.schema.json",
31
+ "./control/session-schema": "./dist/schema/roll-relay-browser-session-v1.schema.json",
32
+ "./control/fixtures/*": "./fixtures/control/v1.0/*",
22
33
  "./schema": "./dist/schema/roll-relay-protocol-v1.schema.json",
34
+ "./schema/v1.0": "./dist/schema/roll-relay-protocol-v1.schema.json",
35
+ "./schema/v1.1": "./dist/schema/roll-relay-protocol-v1.1.schema.json",
23
36
  "./fixtures/*": "./fixtures/*"
24
37
  },
25
38
  "publishConfig": {
@@ -34,7 +47,7 @@
34
47
  },
35
48
  "dependencies": {
36
49
  "zod": "3.25.76",
37
- "@roll-agent/protocol": "0.3.0"
50
+ "@roll-agent/protocol": "0.4.1"
38
51
  },
39
52
  "devDependencies": {
40
53
  "@types/node": "^22.0.0",
@@ -43,7 +56,7 @@
43
56
  "prettier": "3.8.1"
44
57
  },
45
58
  "scripts": {
46
- "build": "rm -rf dist && tsc -p tsconfig.build.json && node --experimental-strip-types scripts/generate-schema.mjs",
59
+ "build": "rm -rf dist && tsc -p tsconfig.build.json && node --experimental-strip-types scripts/generate-schema.mjs && node --experimental-strip-types scripts/generate-control-schema.mjs",
47
60
  "typecheck": "tsc --noEmit",
48
61
  "test": "node --experimental-strip-types --test \"src/**/*.test.ts\"",
49
62
  "clean": "rm -rf dist"