@robota-sdk/agent-transport 3.0.0-beta.79 → 3.0.0-beta.82

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 (113) hide show
  1. package/README.md +84 -26
  2. package/dist/browser/client.d.ts +2 -0
  3. package/dist/browser/client.js +1 -0
  4. package/dist/browser/index.d.ts +520 -0
  5. package/dist/browser/index.d.ts.map +1 -0
  6. package/dist/browser/index.js +2 -0
  7. package/dist/browser/index.js.map +1 -0
  8. package/dist/browser/message-decoders-BB8n-H2X.d.ts +252 -0
  9. package/dist/browser/message-decoders-BB8n-H2X.d.ts.map +1 -0
  10. package/dist/browser/message-decoders-CDmDoZPR.js +2 -0
  11. package/dist/browser/message-decoders-CDmDoZPR.js.map +1 -0
  12. package/dist/node/index.cjs +1 -1
  13. package/dist/node/index.d.cts +766 -0
  14. package/dist/node/index.d.cts.map +1 -0
  15. package/dist/node/index.d.ts +765 -27
  16. package/dist/node/index.d.ts.map +1 -1
  17. package/dist/node/index.js +1 -1
  18. package/dist/node/index.js.map +1 -1
  19. package/dist/node/node.cjs +1 -0
  20. package/dist/node/node.d.cts +216 -0
  21. package/dist/node/node.d.cts.map +1 -0
  22. package/dist/node/node.d.ts +216 -0
  23. package/dist/node/node.d.ts.map +1 -0
  24. package/dist/node/node.js +2 -0
  25. package/dist/node/node.js.map +1 -0
  26. package/package.json +68 -47
  27. package/src/__tests__/access-token-verifier.test.ts +672 -0
  28. package/src/__tests__/admission.test.ts +130 -0
  29. package/src/__tests__/channel-frames.test.ts +214 -0
  30. package/src/__tests__/driver-attribution-capability.test.ts +83 -0
  31. package/src/__tests__/file-transfer.test.ts +281 -0
  32. package/src/__tests__/handoff-chunking.test.ts +215 -0
  33. package/src/__tests__/handoff-manifest.test.ts +52 -0
  34. package/src/__tests__/message-decoders.test.ts +249 -0
  35. package/src/__tests__/outbound-delivery.test.ts +558 -0
  36. package/src/__tests__/peer-message-ledger.test.ts +200 -0
  37. package/src/__tests__/personal-usage-report.test.ts +193 -0
  38. package/src/__tests__/resume-buffer.test.ts +93 -0
  39. package/src/__tests__/session-event-delivery.test.ts +101 -0
  40. package/src/__tests__/session-message-handler-e5.test.ts +99 -0
  41. package/src/__tests__/session-message-handler.test.ts +590 -0
  42. package/src/__tests__/session-resume-bridge.test.ts +406 -0
  43. package/src/__tests__/submit-prompt-shape.test.ts +78 -0
  44. package/src/__tests__/usage-report-carrier.test.ts +98 -0
  45. package/src/__tests__/ws-broadcast-events.test.ts +84 -0
  46. package/src/background-messages.ts +169 -0
  47. package/src/channel-frames.ts +182 -0
  48. package/src/client.ts +9 -0
  49. package/src/handoff-chunking.ts +235 -0
  50. package/src/index.ts +112 -3
  51. package/src/message-decoders.ts +229 -0
  52. package/src/message-parser.ts +33 -0
  53. package/src/node/access-token-verifier.ts +363 -0
  54. package/src/node/admission.ts +153 -0
  55. package/src/node/file-transfer.ts +530 -0
  56. package/src/node/handoff-manifest.ts +77 -0
  57. package/src/node/index.ts +27 -0
  58. package/src/outbound-delivery.ts +231 -0
  59. package/src/peer-message-ledger.ts +193 -0
  60. package/src/protocol-session.ts +28 -0
  61. package/src/resume-buffer.ts +123 -0
  62. package/src/session-events.ts +198 -0
  63. package/src/session-message-handler.ts +282 -0
  64. package/src/session-query-messages.ts +42 -0
  65. package/src/session-resume-bridge.ts +252 -0
  66. package/src/usage-messages.ts +195 -0
  67. package/src/wire-messages.ts +165 -0
  68. package/dist/node/headless/index.cjs +0 -1
  69. package/dist/node/headless/index.d.ts +0 -2
  70. package/dist/node/headless/index.js +0 -1
  71. package/dist/node/headless-DG_MEbf0.js +0 -19
  72. package/dist/node/headless-DG_MEbf0.js.map +0 -1
  73. package/dist/node/headless-xq77JBq0.cjs +0 -18
  74. package/dist/node/index-CrJ2Lhn3.d.ts +0 -96
  75. package/dist/node/index-CrJ2Lhn3.d.ts.map +0 -1
  76. package/dist/node/index-JIvzrtaA.d.ts +0 -52
  77. package/dist/node/index-JIvzrtaA.d.ts.map +0 -1
  78. package/dist/node/index-JTD_xtEQ.d.ts +0 -96
  79. package/dist/node/index-JTD_xtEQ.d.ts.map +0 -1
  80. package/dist/node/index-y_HBOfzO.d.ts +0 -52
  81. package/dist/node/index-y_HBOfzO.d.ts.map +0 -1
  82. package/dist/node/programmatic/index.cjs +0 -1
  83. package/dist/node/programmatic/index.d.ts +0 -2
  84. package/dist/node/programmatic/index.js +0 -1
  85. package/dist/node/programmatic-6wLf68qJ.cjs +0 -1
  86. package/dist/node/programmatic-70dxIXtS.js +0 -2
  87. package/dist/node/programmatic-70dxIXtS.js.map +0 -1
  88. package/dist/node/testing/index.cjs +0 -1
  89. package/dist/node/testing/index.d.ts +0 -2
  90. package/dist/node/testing/index.js +0 -1
  91. package/src/__tests__/programmatic/programmatic-ask-user.test.ts +0 -32
  92. package/src/__tests__/programmatic/programmatic-driver.test.ts +0 -107
  93. package/src/__tests__/programmatic/programmatic-flows.test.ts +0 -140
  94. package/src/__tests__/transport-registry.stop-all.test.ts +0 -53
  95. package/src/headless/HeadlessInteractionChannel.ts +0 -129
  96. package/src/headless/__tests__/headless-channel-options.test.ts +0 -106
  97. package/src/headless/__tests__/headless-goal-runner.test.ts +0 -108
  98. package/src/headless/__tests__/headless-provider-failure.integration.test.ts +0 -143
  99. package/src/headless/__tests__/headless-runner-initialization.test.ts +0 -45
  100. package/src/headless/__tests__/headless-runner.test.ts +0 -508
  101. package/src/headless/__tests__/headless-skill-activation.integration.test.ts +0 -430
  102. package/src/headless/__tests__/headless-transport.test.ts +0 -267
  103. package/src/headless/cli-input.ts +0 -50
  104. package/src/headless/headless-runner.ts +0 -230
  105. package/src/headless/headless-stream-json.ts +0 -148
  106. package/src/headless/headless-transport.ts +0 -43
  107. package/src/headless/index.ts +0 -8
  108. package/src/headless/print-terminal.ts +0 -57
  109. package/src/programmatic/ProgrammaticInteractionChannel.ts +0 -82
  110. package/src/programmatic/createProgrammaticAgent.ts +0 -71
  111. package/src/programmatic/index.ts +0 -5
  112. package/src/testing/index.ts +0 -10
  113. package/src/transport-registry.ts +0 -103
@@ -1,5 +0,0 @@
1
- export { ProgrammaticInteractionChannel } from './ProgrammaticInteractionChannel.js';
2
- export { createProgrammaticAgent } from './createProgrammaticAgent.js';
3
- export type { ICreateProgrammaticAgentOptions } from './createProgrammaticAgent.js';
4
- // The driver's return type is the shared client contract `IAgentDriver`; import it from its SSOT
5
- // `@robota-sdk/agent-interface-transport` (not re-exported here, to avoid a pass-through layer).
@@ -1,10 +0,0 @@
1
- /**
2
- * Test-only fixtures. Exported via the `./testing` subpath; never import from runtime code.
3
- *
4
- * The deterministic scripted provider SSOT now lives in `@robota-sdk/agent-core/testing`
5
- * (TEST-003) so framework-level functional tests can reach it without a reverse dependency on
6
- * `agent-transport`. This subpath re-exports it for existing transport/CLI E2E consumers.
7
- */
8
-
9
- export { createScriptedProvider } from '@robota-sdk/agent-core/testing';
10
- export type { IScriptedProvider, TScriptedTurn } from '@robota-sdk/agent-core/testing';
@@ -1,103 +0,0 @@
1
- /**
2
- * TransportRegistry — manages IConfigurableTransport instances with settings-backed enable/disable.
3
- *
4
- * Settings file shape (under `transports` key in settings.json):
5
- * { "ws": { "enabled": true, "options": { "port": 7070 } } }
6
- */
7
-
8
- import { readSettings, writeSettings, type TSettingsData } from '@robota-sdk/agent-framework';
9
-
10
- import type { IDestroyResult, TUniversalValue } from '@robota-sdk/agent-core';
11
- import type {
12
- IConfigurableTransport,
13
- IInteractiveSession,
14
- ITransportConfig,
15
- ITransportEntry,
16
- } from '@robota-sdk/agent-interface-transport';
17
-
18
- export class TransportRegistry {
19
- private readonly entries = new Map<string, IConfigurableTransport<IInteractiveSession>>();
20
- private readonly settingsPath: string;
21
-
22
- constructor(settingsPath: string) {
23
- this.settingsPath = settingsPath;
24
- }
25
-
26
- register(transport: IConfigurableTransport<IInteractiveSession>): void {
27
- this.entries.set(transport.name, transport);
28
- }
29
-
30
- getAll(): ITransportEntry<IInteractiveSession>[] {
31
- const saved = this.readTransportSettings();
32
- return Array.from(this.entries.values()).map((transport) => ({
33
- transport,
34
- config: this.resolveConfig(transport, saved[transport.name]),
35
- }));
36
- }
37
-
38
- getEnabled(): IConfigurableTransport<IInteractiveSession>[] {
39
- return this.getAll()
40
- .filter((e) => e.config.enabled)
41
- .map((e) => e.transport);
42
- }
43
-
44
- async setEnabled(name: string, enabled: boolean): Promise<void> {
45
- const settings = readSettings(this.settingsPath);
46
- const transports = (settings.transports ?? {}) as TSettingsData;
47
- const entry = (transports[name] ?? {}) as TSettingsData;
48
- transports[name] = { ...entry, enabled } as TSettingsData;
49
- settings.transports = transports;
50
- writeSettings(this.settingsPath, settings);
51
- }
52
-
53
- async setOptions(name: string, options: Record<string, TUniversalValue>): Promise<void> {
54
- const settings = readSettings(this.settingsPath);
55
- const transports = (settings.transports ?? {}) as TSettingsData;
56
- const entry = (transports[name] ?? {}) as TSettingsData;
57
- transports[name] = { ...entry, options: options as TSettingsData } as TSettingsData;
58
- settings.transports = transports;
59
- writeSettings(this.settingsPath, settings);
60
- }
61
-
62
- async startAll(session: IInteractiveSession): Promise<void> {
63
- const enabled = this.getEnabled();
64
- for (const transport of enabled) {
65
- transport.attach(session);
66
- await transport.start();
67
- }
68
- }
69
-
70
- /**
71
- * Stop every registered transport — **best-effort** (CORE-013 disposal convention): one
72
- * transport's stop failure must not skip the others or reject a fire-and-forget caller.
73
- * Failures are collected into the returned result.
74
- */
75
- async stopAll(): Promise<IDestroyResult> {
76
- const errors: Error[] = [];
77
- for (const transport of this.entries.values()) {
78
- try {
79
- await transport.stop();
80
- } catch (error) {
81
- // allow-fallback: best-effort disposal IS the contract — the failure is collected into the returned result and the remaining transports still stop (CORE-013 convention)
82
- errors.push(error instanceof Error ? error : new Error(String(error)));
83
- }
84
- }
85
- return { errors };
86
- }
87
-
88
- private resolveConfig(
89
- transport: IConfigurableTransport<IInteractiveSession>,
90
- saved?: TSettingsData,
91
- ): ITransportConfig {
92
- const enabled = (saved?.enabled as boolean | undefined) ?? transport.defaultEnabled;
93
- const options = (saved?.options as Record<string, TUniversalValue> | undefined) ?? {};
94
- return { enabled, options };
95
- }
96
-
97
- private readTransportSettings(): Record<string, TSettingsData> {
98
- const settings = readSettings(this.settingsPath);
99
- const raw = settings.transports;
100
- if (!raw || typeof raw !== 'object' || Array.isArray(raw)) return {};
101
- return raw as Record<string, TSettingsData>;
102
- }
103
- }