@robota-sdk/agent-transport 3.0.0-beta.78 → 3.0.0-beta.81
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 +84 -26
- package/dist/browser/client.d.ts +2 -0
- package/dist/browser/client.js +1 -0
- package/dist/browser/index.d.ts +520 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +2 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/message-decoders-BB8n-H2X.d.ts +252 -0
- package/dist/browser/message-decoders-BB8n-H2X.d.ts.map +1 -0
- package/dist/browser/message-decoders-CDmDoZPR.js +2 -0
- package/dist/browser/message-decoders-CDmDoZPR.js.map +1 -0
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.cts +766 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.d.ts +765 -27
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/node.cjs +1 -0
- package/dist/node/node.d.cts +109 -0
- package/dist/node/node.d.cts.map +1 -0
- package/dist/node/node.d.ts +109 -0
- package/dist/node/node.d.ts.map +1 -0
- package/dist/node/node.js +2 -0
- package/dist/node/node.js.map +1 -0
- package/package.json +68 -47
- package/src/__tests__/access-token-verifier.test.ts +672 -0
- package/src/__tests__/admission.test.ts +130 -0
- package/src/__tests__/channel-frames.test.ts +214 -0
- package/src/__tests__/driver-attribution-capability.test.ts +83 -0
- package/src/__tests__/handoff-chunking.test.ts +215 -0
- package/src/__tests__/handoff-manifest.test.ts +52 -0
- package/src/__tests__/message-decoders.test.ts +249 -0
- package/src/__tests__/outbound-delivery.test.ts +558 -0
- package/src/__tests__/peer-message-ledger.test.ts +200 -0
- package/src/__tests__/personal-usage-report.test.ts +193 -0
- package/src/__tests__/resume-buffer.test.ts +93 -0
- package/src/__tests__/session-event-delivery.test.ts +101 -0
- package/src/__tests__/session-message-handler-e5.test.ts +99 -0
- package/src/__tests__/session-message-handler.test.ts +590 -0
- package/src/__tests__/session-resume-bridge.test.ts +406 -0
- package/src/__tests__/submit-prompt-shape.test.ts +78 -0
- package/src/__tests__/usage-report-carrier.test.ts +98 -0
- package/src/__tests__/ws-broadcast-events.test.ts +84 -0
- package/src/background-messages.ts +169 -0
- package/src/channel-frames.ts +182 -0
- package/src/client.ts +9 -0
- package/src/handoff-chunking.ts +235 -0
- package/src/index.ts +112 -3
- package/src/message-decoders.ts +229 -0
- package/src/message-parser.ts +33 -0
- package/src/node/access-token-verifier.ts +363 -0
- package/src/node/admission.ts +153 -0
- package/src/node/handoff-manifest.ts +77 -0
- package/src/node/index.ts +10 -0
- package/src/outbound-delivery.ts +231 -0
- package/src/peer-message-ledger.ts +193 -0
- package/src/protocol-session.ts +28 -0
- package/src/resume-buffer.ts +123 -0
- package/src/session-events.ts +198 -0
- package/src/session-message-handler.ts +282 -0
- package/src/session-query-messages.ts +42 -0
- package/src/session-resume-bridge.ts +252 -0
- package/src/usage-messages.ts +195 -0
- package/src/wire-messages.ts +165 -0
- package/dist/node/headless/index.cjs +0 -1
- package/dist/node/headless/index.d.ts +0 -2
- package/dist/node/headless/index.js +0 -1
- package/dist/node/headless-DG_MEbf0.js +0 -19
- package/dist/node/headless-DG_MEbf0.js.map +0 -1
- package/dist/node/headless-xq77JBq0.cjs +0 -18
- package/dist/node/index-CrJ2Lhn3.d.ts +0 -96
- package/dist/node/index-CrJ2Lhn3.d.ts.map +0 -1
- package/dist/node/index-JIvzrtaA.d.ts +0 -52
- package/dist/node/index-JIvzrtaA.d.ts.map +0 -1
- package/dist/node/index-JTD_xtEQ.d.ts +0 -96
- package/dist/node/index-JTD_xtEQ.d.ts.map +0 -1
- package/dist/node/index-y_HBOfzO.d.ts +0 -52
- package/dist/node/index-y_HBOfzO.d.ts.map +0 -1
- package/dist/node/programmatic/index.cjs +0 -1
- package/dist/node/programmatic/index.d.ts +0 -2
- package/dist/node/programmatic/index.js +0 -1
- package/dist/node/programmatic-6wLf68qJ.cjs +0 -1
- package/dist/node/programmatic-70dxIXtS.js +0 -2
- package/dist/node/programmatic-70dxIXtS.js.map +0 -1
- package/dist/node/testing/index.cjs +0 -1
- package/dist/node/testing/index.d.ts +0 -2
- package/dist/node/testing/index.js +0 -1
- package/src/__tests__/programmatic/programmatic-ask-user.test.ts +0 -32
- package/src/__tests__/programmatic/programmatic-driver.test.ts +0 -107
- package/src/__tests__/programmatic/programmatic-flows.test.ts +0 -140
- package/src/__tests__/transport-registry.stop-all.test.ts +0 -53
- package/src/headless/HeadlessInteractionChannel.ts +0 -129
- package/src/headless/__tests__/headless-channel-options.test.ts +0 -106
- package/src/headless/__tests__/headless-goal-runner.test.ts +0 -108
- package/src/headless/__tests__/headless-provider-failure.integration.test.ts +0 -143
- package/src/headless/__tests__/headless-runner-initialization.test.ts +0 -45
- package/src/headless/__tests__/headless-runner.test.ts +0 -508
- package/src/headless/__tests__/headless-skill-activation.integration.test.ts +0 -430
- package/src/headless/__tests__/headless-transport.test.ts +0 -267
- package/src/headless/cli-input.ts +0 -50
- package/src/headless/headless-runner.ts +0 -230
- package/src/headless/headless-stream-json.ts +0 -148
- package/src/headless/headless-transport.ts +0 -43
- package/src/headless/index.ts +0 -8
- package/src/headless/print-terminal.ts +0 -57
- package/src/programmatic/ProgrammaticInteractionChannel.ts +0 -82
- package/src/programmatic/createProgrammaticAgent.ts +0 -71
- package/src/programmatic/index.ts +0 -5
- package/src/testing/index.ts +0 -10
- 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).
|
package/src/testing/index.ts
DELETED
|
@@ -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
|
-
}
|