@skillcap/gdh 0.19.6 → 0.20.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/INSTALL-BUNDLE.json +1 -1
- package/RELEASE-SPAN-UPDATE-CONTRACTS.json +73 -0
- package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.js +44 -1
- package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/skill-rendering.js +5 -2
- package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
- package/node_modules/@gdh/adapters/package.json +8 -8
- package/node_modules/@gdh/authoring/package.json +2 -2
- package/node_modules/@gdh/cli/dist/bridge-session.d.ts +21 -0
- package/node_modules/@gdh/cli/dist/bridge-session.d.ts.map +1 -0
- package/node_modules/@gdh/cli/dist/bridge-session.js +442 -0
- package/node_modules/@gdh/cli/dist/bridge-session.js.map +1 -0
- package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/index.js +44 -1
- package/node_modules/@gdh/cli/dist/index.js.map +1 -1
- package/node_modules/@gdh/cli/dist/migrate.d.ts +13 -0
- package/node_modules/@gdh/cli/dist/migrate.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/migrate.js +20 -0
- package/node_modules/@gdh/cli/dist/migrate.js.map +1 -1
- package/node_modules/@gdh/cli/package.json +10 -10
- package/node_modules/@gdh/core/dist/index.d.ts +11 -2
- package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/index.js +2 -2
- package/node_modules/@gdh/core/dist/index.js.map +1 -1
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/dist/guidance.d.ts.map +1 -1
- package/node_modules/@gdh/docs/dist/guidance.js +10 -0
- package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
- package/node_modules/@gdh/docs/package.json +2 -2
- package/node_modules/@gdh/mcp/dist/bridge-tools.d.ts +15 -0
- package/node_modules/@gdh/mcp/dist/bridge-tools.d.ts.map +1 -0
- package/node_modules/@gdh/mcp/dist/bridge-tools.js +111 -0
- package/node_modules/@gdh/mcp/dist/bridge-tools.js.map +1 -0
- package/node_modules/@gdh/mcp/dist/index.d.ts +3 -2
- package/node_modules/@gdh/mcp/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/mcp/dist/index.js +13 -44
- package/node_modules/@gdh/mcp/dist/index.js.map +1 -1
- package/node_modules/@gdh/mcp/package.json +8 -8
- package/node_modules/@gdh/observability/package.json +2 -2
- package/node_modules/@gdh/runtime/dist/bridge-broker-client.d.ts +32 -0
- package/node_modules/@gdh/runtime/dist/bridge-broker-client.d.ts.map +1 -0
- package/node_modules/@gdh/runtime/dist/bridge-broker-client.js +118 -0
- package/node_modules/@gdh/runtime/dist/bridge-broker-client.js.map +1 -0
- package/node_modules/@gdh/runtime/dist/bridge-broker.d.ts +78 -0
- package/node_modules/@gdh/runtime/dist/bridge-broker.d.ts.map +1 -0
- package/node_modules/@gdh/runtime/dist/bridge-broker.js +587 -0
- package/node_modules/@gdh/runtime/dist/bridge-broker.js.map +1 -0
- package/node_modules/@gdh/runtime/dist/index.d.ts +3 -0
- package/node_modules/@gdh/runtime/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/runtime/dist/index.js +3 -0
- package/node_modules/@gdh/runtime/dist/index.js.map +1 -1
- package/node_modules/@gdh/runtime/package.json +2 -2
- package/node_modules/@gdh/scan/package.json +3 -3
- package/node_modules/@gdh/verify/package.json +7 -7
- package/package.json +11 -11
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@gdh/authoring": "0.
|
|
15
|
-
"@gdh/core": "0.
|
|
16
|
-
"@gdh/docs": "0.
|
|
17
|
-
"@gdh/observability": "0.
|
|
18
|
-
"@gdh/runtime": "0.
|
|
19
|
-
"@gdh/scan": "0.
|
|
20
|
-
"@gdh/verify": "0.
|
|
14
|
+
"@gdh/authoring": "0.20.0",
|
|
15
|
+
"@gdh/core": "0.20.0",
|
|
16
|
+
"@gdh/docs": "0.20.0",
|
|
17
|
+
"@gdh/observability": "0.20.0",
|
|
18
|
+
"@gdh/runtime": "0.20.0",
|
|
19
|
+
"@gdh/scan": "0.20.0",
|
|
20
|
+
"@gdh/verify": "0.20.0"
|
|
21
21
|
},
|
|
22
|
-
"version": "0.
|
|
22
|
+
"version": "0.20.0"
|
|
23
23
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { readProjectConfig } from "@gdh/authoring";
|
|
2
|
+
import { ensureRuntimeBridgeBroker, getRuntimeBridgeBrokerSession, inspectRuntimeBridgeBroker, invokeRuntimeBridgeBroker, invokeRuntimeBridgeBrokerEntry, listRuntimeBridgeBrokerEntries, listRuntimeBridgeBrokerSessions, pruneRuntimeBridgeBroker, startRuntimeBridgeBrokerSession, stopAllRuntimeBridgeBrokerSessions, stopRuntimeBridgeBrokerSession } from "@gdh/runtime";
|
|
3
|
+
import type { CliIo } from "./index.js";
|
|
4
|
+
export interface BridgeSessionCommandDependencies {
|
|
5
|
+
readonly resolveEffectiveTargetPath: (targetPath: string) => Promise<string>;
|
|
6
|
+
readonly readProjectConfig: typeof readProjectConfig;
|
|
7
|
+
readonly ensureRuntimeBridgeBroker: typeof ensureRuntimeBridgeBroker;
|
|
8
|
+
readonly inspectRuntimeBridgeBroker: typeof inspectRuntimeBridgeBroker;
|
|
9
|
+
readonly pruneRuntimeBridgeBroker: typeof pruneRuntimeBridgeBroker;
|
|
10
|
+
readonly readBrokerToken: (tokenFilePath: string) => Promise<string>;
|
|
11
|
+
readonly startSession: typeof startRuntimeBridgeBrokerSession;
|
|
12
|
+
readonly listSessions: typeof listRuntimeBridgeBrokerSessions;
|
|
13
|
+
readonly getSession: typeof getRuntimeBridgeBrokerSession;
|
|
14
|
+
readonly listEntries: typeof listRuntimeBridgeBrokerEntries;
|
|
15
|
+
readonly invokeEntry: typeof invokeRuntimeBridgeBrokerEntry;
|
|
16
|
+
readonly invokeBroker: typeof invokeRuntimeBridgeBroker;
|
|
17
|
+
readonly stopSession: typeof stopRuntimeBridgeBrokerSession;
|
|
18
|
+
readonly stopAllSessions: typeof stopAllRuntimeBridgeBrokerSessions;
|
|
19
|
+
}
|
|
20
|
+
export declare function runBridgeSessionCommand(args: readonly string[], io: CliIo, deps?: BridgeSessionCommandDependencies): Promise<number>;
|
|
21
|
+
//# sourceMappingURL=bridge-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-session.d.ts","sourceRoot":"","sources":["../src/bridge-session.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAMvE,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,wBAAwB,EACxB,+BAA+B,EAC/B,kCAAkC,EAClC,8BAA8B,EAI/B,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,0BAA0B,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7E,QAAQ,CAAC,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IACrD,QAAQ,CAAC,yBAAyB,EAAE,OAAO,yBAAyB,CAAC;IACrE,QAAQ,CAAC,0BAA0B,EAAE,OAAO,0BAA0B,CAAC;IACvE,QAAQ,CAAC,wBAAwB,EAAE,OAAO,wBAAwB,CAAC;IACnE,QAAQ,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,QAAQ,CAAC,YAAY,EAAE,OAAO,+BAA+B,CAAC;IAC9D,QAAQ,CAAC,YAAY,EAAE,OAAO,+BAA+B,CAAC;IAC9D,QAAQ,CAAC,UAAU,EAAE,OAAO,6BAA6B,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,OAAO,8BAA8B,CAAC;IAC5D,QAAQ,CAAC,WAAW,EAAE,OAAO,8BAA8B,CAAC;IAC5D,QAAQ,CAAC,YAAY,EAAE,OAAO,yBAAyB,CAAC;IACxD,QAAQ,CAAC,WAAW,EAAE,OAAO,8BAA8B,CAAC;IAC5D,QAAQ,CAAC,eAAe,EAAE,OAAO,kCAAkC,CAAC;CACrE;AAuBD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,EAAE,KAAK,EACT,IAAI,GAAE,gCAA+C,GACpD,OAAO,CAAC,MAAM,CAAC,CAqDjB"}
|
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { readProjectConfig, resolveProjectRoot } from "@gdh/authoring";
|
|
4
|
+
import {} from "@gdh/core";
|
|
5
|
+
import { ensureRuntimeBridgeBroker, getRuntimeBridgeBrokerSession, inspectRuntimeBridgeBroker, invokeRuntimeBridgeBroker, invokeRuntimeBridgeBrokerEntry, listRuntimeBridgeBrokerEntries, listRuntimeBridgeBrokerSessions, pruneRuntimeBridgeBroker, startRuntimeBridgeBrokerSession, stopAllRuntimeBridgeBrokerSessions, stopRuntimeBridgeBrokerSession, } from "@gdh/runtime";
|
|
6
|
+
const DEFAULT_DEPS = {
|
|
7
|
+
async resolveEffectiveTargetPath(targetPath) {
|
|
8
|
+
return (await resolveProjectRoot(targetPath)) ?? targetPath;
|
|
9
|
+
},
|
|
10
|
+
readProjectConfig,
|
|
11
|
+
ensureRuntimeBridgeBroker,
|
|
12
|
+
inspectRuntimeBridgeBroker,
|
|
13
|
+
pruneRuntimeBridgeBroker,
|
|
14
|
+
async readBrokerToken(tokenFilePath) {
|
|
15
|
+
return (await fs.readFile(tokenFilePath, "utf8")).trim();
|
|
16
|
+
},
|
|
17
|
+
startSession: startRuntimeBridgeBrokerSession,
|
|
18
|
+
listSessions: listRuntimeBridgeBrokerSessions,
|
|
19
|
+
getSession: getRuntimeBridgeBrokerSession,
|
|
20
|
+
listEntries: listRuntimeBridgeBrokerEntries,
|
|
21
|
+
invokeEntry: invokeRuntimeBridgeBrokerEntry,
|
|
22
|
+
invokeBroker: invokeRuntimeBridgeBroker,
|
|
23
|
+
stopSession: stopRuntimeBridgeBrokerSession,
|
|
24
|
+
stopAllSessions: stopAllRuntimeBridgeBrokerSessions,
|
|
25
|
+
};
|
|
26
|
+
export async function runBridgeSessionCommand(args, io, deps = DEFAULT_DEPS) {
|
|
27
|
+
const [action, ...rest] = args;
|
|
28
|
+
if (!action || action === "--help" || action === "help") {
|
|
29
|
+
io.stdout.write(renderBridgeSessionHelp());
|
|
30
|
+
return 0;
|
|
31
|
+
}
|
|
32
|
+
if (action === "doctor") {
|
|
33
|
+
return runDoctor(rest, io, deps);
|
|
34
|
+
}
|
|
35
|
+
if (action === "prune") {
|
|
36
|
+
return runPrune(rest, io, deps);
|
|
37
|
+
}
|
|
38
|
+
const usage = bridgeSessionUsage(action);
|
|
39
|
+
const parsed = parseBridgeSessionArgs(rest, usage, action);
|
|
40
|
+
if (parsed.error !== null) {
|
|
41
|
+
io.stderr.write(parsed.error);
|
|
42
|
+
return 1;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
const targetPath = await deps.resolveEffectiveTargetPath(parsed.targetPath);
|
|
46
|
+
const broker = await deps.ensureRuntimeBridgeBroker({ targetPath });
|
|
47
|
+
if (broker.state !== "ready") {
|
|
48
|
+
writeJsonResult(io, {
|
|
49
|
+
targetPath,
|
|
50
|
+
command: `gdh bridge session ${action}`,
|
|
51
|
+
broker: broker.broker,
|
|
52
|
+
bridgeSessionState: broker.broker.bridgeSessionState,
|
|
53
|
+
runtimeProcessState: broker.broker.runtimeProcessState,
|
|
54
|
+
invocationOutcome: broker.broker.invocationOutcome,
|
|
55
|
+
state: broker.state,
|
|
56
|
+
summary: broker.summary,
|
|
57
|
+
});
|
|
58
|
+
return broker.state === "incompatible" ? 2 : 1;
|
|
59
|
+
}
|
|
60
|
+
const client = await buildBrokerClientInput(broker, deps);
|
|
61
|
+
const result = await runBrokerBackedAction({
|
|
62
|
+
action,
|
|
63
|
+
parsed,
|
|
64
|
+
targetPath,
|
|
65
|
+
client,
|
|
66
|
+
broker: broker.broker,
|
|
67
|
+
deps,
|
|
68
|
+
});
|
|
69
|
+
writeJsonResult(io, result.output);
|
|
70
|
+
return result.exitCode;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
io.stderr.write(`Failed to run bridge session command: ${formatCliError(error)}\n`);
|
|
74
|
+
return 1;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function runDoctor(args, io, deps) {
|
|
78
|
+
const parsed = parseBridgeSessionArgs(args, bridgeSessionUsage("doctor"), "doctor");
|
|
79
|
+
if (parsed.error !== null) {
|
|
80
|
+
io.stderr.write(parsed.error);
|
|
81
|
+
return 1;
|
|
82
|
+
}
|
|
83
|
+
const targetPath = await deps.resolveEffectiveTargetPath(parsed.targetPath);
|
|
84
|
+
const inspected = await deps.inspectRuntimeBridgeBroker({ targetPath });
|
|
85
|
+
writeJsonResult(io, {
|
|
86
|
+
targetPath,
|
|
87
|
+
command: "gdh bridge session doctor",
|
|
88
|
+
broker: inspected.broker,
|
|
89
|
+
bridgeSessionState: inspected.broker.bridgeSessionState,
|
|
90
|
+
runtimeProcessState: inspected.broker.runtimeProcessState,
|
|
91
|
+
invocationOutcome: inspected.broker.invocationOutcome,
|
|
92
|
+
state: inspected.broker.lifecycle,
|
|
93
|
+
summary: summarizeBrokerLifecycle(inspected.broker),
|
|
94
|
+
guidance: buildBrokerOperatorGuidance(),
|
|
95
|
+
});
|
|
96
|
+
return inspected.broker.lifecycle === "ready" ? 0 : 1;
|
|
97
|
+
}
|
|
98
|
+
async function runPrune(args, io, deps) {
|
|
99
|
+
const parsed = parseBridgeSessionArgs(args, bridgeSessionUsage("prune"), "prune");
|
|
100
|
+
if (parsed.error !== null) {
|
|
101
|
+
io.stderr.write(parsed.error);
|
|
102
|
+
return 1;
|
|
103
|
+
}
|
|
104
|
+
const targetPath = await deps.resolveEffectiveTargetPath(parsed.targetPath);
|
|
105
|
+
const pruned = await deps.pruneRuntimeBridgeBroker({ targetPath });
|
|
106
|
+
writeJsonResult(io, {
|
|
107
|
+
targetPath,
|
|
108
|
+
command: "gdh bridge session prune",
|
|
109
|
+
broker: pruned.broker,
|
|
110
|
+
bridgeSessionState: pruned.broker.bridgeSessionState,
|
|
111
|
+
runtimeProcessState: pruned.broker.runtimeProcessState,
|
|
112
|
+
invocationOutcome: pruned.broker.invocationOutcome,
|
|
113
|
+
state: pruned.state,
|
|
114
|
+
summary: pruned.summary,
|
|
115
|
+
removedPaths: pruned.removedPaths,
|
|
116
|
+
sessionsStopped: pruned.sessionsStopped,
|
|
117
|
+
guidance: buildBrokerOperatorGuidance(),
|
|
118
|
+
});
|
|
119
|
+
return pruned.state === "blocked" ? 1 : 0;
|
|
120
|
+
}
|
|
121
|
+
function buildBrokerOperatorGuidance() {
|
|
122
|
+
return {
|
|
123
|
+
recoveryCommand: ["gdh", "bridge", "session", "doctor"],
|
|
124
|
+
cleanupCommand: ["gdh", "bridge", "session", "prune"],
|
|
125
|
+
safeCleanupBoundary: "Broker prune only removes GDH-owned stale broker metadata or asks a compatible live broker to stop its own sessions; it must not kill unrelated editor or user processes.",
|
|
126
|
+
bridgeRepairBoundary: "`gdh bridge repair` is only for project-side runtime bridge surface drift, not for host-side broker metadata or MCP transport recovery.",
|
|
127
|
+
preBrokerSessionRecovery: "unrecoverable",
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
async function runBrokerBackedAction(input) {
|
|
131
|
+
const base = {
|
|
132
|
+
targetPath: input.targetPath,
|
|
133
|
+
command: `gdh bridge session ${input.action}`,
|
|
134
|
+
broker: input.broker,
|
|
135
|
+
bridgeSessionState: input.broker.bridgeSessionState,
|
|
136
|
+
runtimeProcessState: input.broker.runtimeProcessState,
|
|
137
|
+
invocationOutcome: input.broker.invocationOutcome,
|
|
138
|
+
};
|
|
139
|
+
if (input.action === "start") {
|
|
140
|
+
const recipeId = input.parsed.recipeId;
|
|
141
|
+
if (recipeId === null)
|
|
142
|
+
throw new Error("bridge session start requires a run configuration id.");
|
|
143
|
+
const projectConfig = await input.deps.readProjectConfig(input.targetPath);
|
|
144
|
+
const body = {
|
|
145
|
+
targetPath: input.targetPath,
|
|
146
|
+
projectConfig,
|
|
147
|
+
recipeId,
|
|
148
|
+
provider: input.parsed.options.provider ?? null,
|
|
149
|
+
parameters: input.parsed.options.parameters,
|
|
150
|
+
enabledFeatures: input.parsed.options.enabledFeatures,
|
|
151
|
+
disabledFeatures: input.parsed.options.disabledFeatures,
|
|
152
|
+
environment: input.parsed.options.environment,
|
|
153
|
+
workspaceMode: input.parsed.options.liveWorkspace ? "live_workspace" : "isolated_copy",
|
|
154
|
+
screenshotCapture: input.parsed.options.renderedScreenshot ? "rendered" : "never",
|
|
155
|
+
};
|
|
156
|
+
const session = await input.deps.startSession({ ...input.client, body });
|
|
157
|
+
return {
|
|
158
|
+
exitCode: session.state === "ready" ? 0 : 1,
|
|
159
|
+
output: { ...base, state: session.state, summary: session.summary, session },
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
if (input.action === "list") {
|
|
163
|
+
const sessions = await input.deps.listSessions(input.client);
|
|
164
|
+
return {
|
|
165
|
+
exitCode: 0,
|
|
166
|
+
output: {
|
|
167
|
+
...base,
|
|
168
|
+
state: "ready",
|
|
169
|
+
summary: `Loaded ${sessions.length} broker-owned bridge session(s).`,
|
|
170
|
+
sessions,
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
if (input.action === "get") {
|
|
175
|
+
const sessionId = requireSessionId(input.parsed);
|
|
176
|
+
const session = await input.deps.getSession({ ...input.client, sessionId });
|
|
177
|
+
return {
|
|
178
|
+
exitCode: session === null ? 1 : 0,
|
|
179
|
+
output: {
|
|
180
|
+
...base,
|
|
181
|
+
state: session === null ? "missing" : "ready",
|
|
182
|
+
summary: session === null
|
|
183
|
+
? `Broker-owned bridge session "${sessionId}" was not found.`
|
|
184
|
+
: `Loaded broker-owned bridge session "${sessionId}".`,
|
|
185
|
+
session,
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
if (input.action === "entries") {
|
|
190
|
+
const sessionId = requireSessionId(input.parsed);
|
|
191
|
+
const entries = await input.deps.listEntries({ ...input.client, sessionId });
|
|
192
|
+
return {
|
|
193
|
+
exitCode: entries.state === "ready" ? 0 : 1,
|
|
194
|
+
output: { ...base, state: entries.state, summary: entries.summary, entries },
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
if (input.action === "invoke") {
|
|
198
|
+
const sessionId = requireSessionId(input.parsed);
|
|
199
|
+
const entryId = input.parsed.entryId;
|
|
200
|
+
if (entryId === null)
|
|
201
|
+
throw new Error("bridge session invoke requires an entry id.");
|
|
202
|
+
const invocation = await input.deps.invokeEntry({
|
|
203
|
+
...input.client,
|
|
204
|
+
sessionId,
|
|
205
|
+
entryId,
|
|
206
|
+
body: input.parsed.inputJson,
|
|
207
|
+
});
|
|
208
|
+
return {
|
|
209
|
+
exitCode: invocation.state === "ok" ? 0 : 1,
|
|
210
|
+
output: {
|
|
211
|
+
...base,
|
|
212
|
+
state: invocation.state,
|
|
213
|
+
summary: invocation.summary,
|
|
214
|
+
invocation,
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
if (input.action === "screenshot") {
|
|
219
|
+
const sessionId = requireSessionId(input.parsed);
|
|
220
|
+
const response = await input.deps.invokeBroker({
|
|
221
|
+
...input.client,
|
|
222
|
+
id: `screenshot-${Date.now()}`,
|
|
223
|
+
kind: "broker.screenshot.capture",
|
|
224
|
+
body: { sessionId, input: input.parsed.inputJson },
|
|
225
|
+
});
|
|
226
|
+
return {
|
|
227
|
+
exitCode: response.ok ? 0 : 1,
|
|
228
|
+
output: {
|
|
229
|
+
...base,
|
|
230
|
+
state: response.ok ? "ok" : "failed",
|
|
231
|
+
summary: response.ok ? "Screenshot capture request completed." : "Screenshot capture failed.",
|
|
232
|
+
response,
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
if (input.action === "stop") {
|
|
237
|
+
const sessionId = requireSessionId(input.parsed);
|
|
238
|
+
const stopped = await input.deps.stopSession({ ...input.client, sessionId });
|
|
239
|
+
return {
|
|
240
|
+
exitCode: stopped.state === "stopped" ? 0 : 1,
|
|
241
|
+
output: { ...base, state: stopped.state, summary: stopped.summary, stop: stopped },
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
if (input.action === "stop-all") {
|
|
245
|
+
await input.deps.stopAllSessions(input.client);
|
|
246
|
+
return {
|
|
247
|
+
exitCode: 0,
|
|
248
|
+
output: {
|
|
249
|
+
...base,
|
|
250
|
+
state: "stopped",
|
|
251
|
+
summary: "Requested stop for all broker-owned bridge sessions.",
|
|
252
|
+
},
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
throw new Error(`Unknown bridge session command: ${input.action}`);
|
|
256
|
+
}
|
|
257
|
+
async function buildBrokerClientInput(result, deps) {
|
|
258
|
+
const metadata = result.broker.metadata;
|
|
259
|
+
if (metadata === null) {
|
|
260
|
+
throw new Error("Broker is ready but metadata is missing.");
|
|
261
|
+
}
|
|
262
|
+
return {
|
|
263
|
+
host: metadata.host,
|
|
264
|
+
port: metadata.port,
|
|
265
|
+
token: await deps.readBrokerToken(result.paths.tokenFilePath),
|
|
266
|
+
targetIdentity: result.paths.identity,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
function parseBridgeSessionArgs(args, usage, action) {
|
|
270
|
+
const optionsWithValues = new Set([
|
|
271
|
+
"--target",
|
|
272
|
+
"--session",
|
|
273
|
+
"--session-id",
|
|
274
|
+
"--recipe",
|
|
275
|
+
"--run-config",
|
|
276
|
+
"--entry",
|
|
277
|
+
"--entry-id",
|
|
278
|
+
"--input-json",
|
|
279
|
+
"--provider",
|
|
280
|
+
"--param",
|
|
281
|
+
"--feature",
|
|
282
|
+
"--no-feature",
|
|
283
|
+
"--env",
|
|
284
|
+
]);
|
|
285
|
+
const allowedBooleans = new Set(["--live-workspace", "--rendered-screenshot"]);
|
|
286
|
+
const unsupported = args.find((arg) => arg.startsWith("--") && !optionsWithValues.has(arg) && !allowedBooleans.has(arg));
|
|
287
|
+
if (unsupported)
|
|
288
|
+
return parsedError(`Usage error: unsupported option: ${unsupported}.\n${usage}`);
|
|
289
|
+
for (const option of optionsWithValues) {
|
|
290
|
+
if (args.includes(option) && readOptionValue(args, option) === null) {
|
|
291
|
+
return parsedError(`Usage error: ${option} requires a value.\n${usage}`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
let inputJson = {};
|
|
295
|
+
const inputRaw = readOptionValue(args, "--input-json");
|
|
296
|
+
if (inputRaw !== null) {
|
|
297
|
+
try {
|
|
298
|
+
inputJson = JSON.parse(inputRaw);
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
return parsedError(`Usage error: --input-json must parse as JSON.\n${usage}`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
const positional = collectPositionals(args, optionsWithValues);
|
|
305
|
+
const targetPath = path.resolve(readOptionValue(args, "--target") ?? positional[0] ?? ".");
|
|
306
|
+
const positionalAfterTarget = readOptionValue(args, "--target") === null ? positional.slice(1) : positional;
|
|
307
|
+
return {
|
|
308
|
+
targetPath,
|
|
309
|
+
sessionId: readOptionValue(args, "--session") ??
|
|
310
|
+
readOptionValue(args, "--session-id") ??
|
|
311
|
+
(["get", "entries", "invoke", "screenshot", "stop"].includes(action)
|
|
312
|
+
? positionalAfterTarget[0] ?? null
|
|
313
|
+
: null),
|
|
314
|
+
recipeId: readOptionValue(args, "--recipe") ??
|
|
315
|
+
readOptionValue(args, "--run-config") ??
|
|
316
|
+
(action === "start" ? positionalAfterTarget[0] ?? null : null),
|
|
317
|
+
entryId: readOptionValue(args, "--entry") ??
|
|
318
|
+
readOptionValue(args, "--entry-id") ??
|
|
319
|
+
(action === "invoke" ? positionalAfterTarget[1] ?? null : null),
|
|
320
|
+
inputJson,
|
|
321
|
+
options: {
|
|
322
|
+
provider: readOptionValue(args, "--provider"),
|
|
323
|
+
parameters: Object.fromEntries(collectOptionValues(args, "--param").map(splitAssignment)),
|
|
324
|
+
enabledFeatures: collectOptionValues(args, "--feature"),
|
|
325
|
+
disabledFeatures: collectOptionValues(args, "--no-feature"),
|
|
326
|
+
environment: Object.fromEntries(collectOptionValues(args, "--env").map(splitAssignment)),
|
|
327
|
+
liveWorkspace: args.includes("--live-workspace"),
|
|
328
|
+
renderedScreenshot: args.includes("--rendered-screenshot"),
|
|
329
|
+
},
|
|
330
|
+
error: null,
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
function parsedError(error) {
|
|
334
|
+
return {
|
|
335
|
+
targetPath: path.resolve("."),
|
|
336
|
+
sessionId: null,
|
|
337
|
+
recipeId: null,
|
|
338
|
+
entryId: null,
|
|
339
|
+
inputJson: {},
|
|
340
|
+
options: {
|
|
341
|
+
provider: null,
|
|
342
|
+
parameters: {},
|
|
343
|
+
enabledFeatures: [],
|
|
344
|
+
disabledFeatures: [],
|
|
345
|
+
environment: {},
|
|
346
|
+
liveWorkspace: false,
|
|
347
|
+
renderedScreenshot: false,
|
|
348
|
+
},
|
|
349
|
+
error,
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
function readOptionValue(args, optionName) {
|
|
353
|
+
const index = args.indexOf(optionName);
|
|
354
|
+
const value = index === -1 ? null : args[index + 1];
|
|
355
|
+
return value && !value.startsWith("--") ? value : null;
|
|
356
|
+
}
|
|
357
|
+
function collectOptionValues(args, optionName) {
|
|
358
|
+
const values = [];
|
|
359
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
360
|
+
if (args[index] === optionName) {
|
|
361
|
+
const value = args[index + 1];
|
|
362
|
+
if (value && !value.startsWith("--"))
|
|
363
|
+
values.push(value);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
return values;
|
|
367
|
+
}
|
|
368
|
+
function collectPositionals(args, optionsWithValues) {
|
|
369
|
+
const result = [];
|
|
370
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
371
|
+
const arg = args[index];
|
|
372
|
+
if (optionsWithValues.has(arg)) {
|
|
373
|
+
index += 1;
|
|
374
|
+
continue;
|
|
375
|
+
}
|
|
376
|
+
if (arg.startsWith("--"))
|
|
377
|
+
continue;
|
|
378
|
+
result.push(arg);
|
|
379
|
+
}
|
|
380
|
+
return result;
|
|
381
|
+
}
|
|
382
|
+
function splitAssignment(value) {
|
|
383
|
+
const index = value.indexOf("=");
|
|
384
|
+
return index === -1 ? [value, ""] : [value.slice(0, index), value.slice(index + 1)];
|
|
385
|
+
}
|
|
386
|
+
function requireSessionId(parsed) {
|
|
387
|
+
if (parsed.sessionId === null)
|
|
388
|
+
throw new Error("bridge session command requires a session id.");
|
|
389
|
+
return parsed.sessionId;
|
|
390
|
+
}
|
|
391
|
+
function summarizeBrokerLifecycle(broker) {
|
|
392
|
+
return `Runtime bridge broker is ${broker.lifecycle}.`;
|
|
393
|
+
}
|
|
394
|
+
function bridgeSessionUsage(action) {
|
|
395
|
+
if (action === "start")
|
|
396
|
+
return "Usage: gdh bridge session start [target] <run-config-id>\n";
|
|
397
|
+
if (action === "list")
|
|
398
|
+
return "Usage: gdh bridge session list [target]\n";
|
|
399
|
+
if (action === "get")
|
|
400
|
+
return "Usage: gdh bridge session get [target] <session-id>\n";
|
|
401
|
+
if (action === "entries")
|
|
402
|
+
return "Usage: gdh bridge session entries [target] <session-id>\n";
|
|
403
|
+
if (action === "invoke") {
|
|
404
|
+
return "Usage: gdh bridge session invoke [target] <session-id> <entry-id> [--input-json <json>]\n";
|
|
405
|
+
}
|
|
406
|
+
if (action === "screenshot") {
|
|
407
|
+
return "Usage: gdh bridge session screenshot [target] <session-id> [--input-json <json>]\n";
|
|
408
|
+
}
|
|
409
|
+
if (action === "stop")
|
|
410
|
+
return "Usage: gdh bridge session stop [target] <session-id>\n";
|
|
411
|
+
if (action === "stop-all")
|
|
412
|
+
return "Usage: gdh bridge session stop-all [target]\n";
|
|
413
|
+
if (action === "doctor")
|
|
414
|
+
return "Usage: gdh bridge session doctor [target]\n";
|
|
415
|
+
if (action === "prune")
|
|
416
|
+
return "Usage: gdh bridge session prune [target]\n";
|
|
417
|
+
return renderBridgeSessionHelp();
|
|
418
|
+
}
|
|
419
|
+
function renderBridgeSessionHelp() {
|
|
420
|
+
return [
|
|
421
|
+
"Usage: gdh bridge session <command> [target]",
|
|
422
|
+
"",
|
|
423
|
+
"Commands:",
|
|
424
|
+
" start [target] <run-config-id> Start a broker-owned runtime bridge session.",
|
|
425
|
+
" list [target] List broker-owned bridge sessions.",
|
|
426
|
+
" get [target] <session-id> Inspect one broker-owned bridge session.",
|
|
427
|
+
" entries [target] <session-id> List bridge entries for one session.",
|
|
428
|
+
" invoke [target] <session-id> <entry-id> Invoke one bridge entry.",
|
|
429
|
+
" screenshot [target] <session-id> Capture screenshot through broker session.",
|
|
430
|
+
" stop [target] <session-id> Stop one broker-owned bridge session.",
|
|
431
|
+
" stop-all [target] Stop all broker-owned bridge sessions.",
|
|
432
|
+
" doctor [target] Inspect broker lifecycle state.",
|
|
433
|
+
" prune [target] Clean stale broker state conservatively.",
|
|
434
|
+
].join("\n") + "\n";
|
|
435
|
+
}
|
|
436
|
+
function writeJsonResult(io, value) {
|
|
437
|
+
io.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
|
|
438
|
+
}
|
|
439
|
+
function formatCliError(error) {
|
|
440
|
+
return error instanceof Error ? error.message : String(error);
|
|
441
|
+
}
|
|
442
|
+
//# sourceMappingURL=bridge-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-session.js","sourceRoot":"","sources":["../src/bridge-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAIN,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,wBAAwB,EACxB,+BAA+B,EAC/B,kCAAkC,EAClC,8BAA8B,GAI/B,MAAM,cAAc,CAAC;AAqBtB,MAAM,YAAY,GAAqC;IACrD,KAAK,CAAC,0BAA0B,CAAC,UAAU;QACzC,OAAO,CAAC,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC;IAC9D,CAAC;IACD,iBAAiB;IACjB,yBAAyB;IACzB,0BAA0B;IAC1B,wBAAwB;IACxB,KAAK,CAAC,eAAe,CAAC,aAAa;QACjC,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,YAAY,EAAE,+BAA+B;IAC7C,YAAY,EAAE,+BAA+B;IAC7C,UAAU,EAAE,6BAA6B;IACzC,WAAW,EAAE,8BAA8B;IAC3C,WAAW,EAAE,8BAA8B;IAC3C,YAAY,EAAE,yBAAyB;IACvC,WAAW,EAAE,8BAA8B;IAC3C,eAAe,EAAE,kCAAkC;CACpD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAuB,EACvB,EAAS,EACT,OAAyC,YAAY;IAErD,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACxD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC7B,eAAe,CAAC,EAAE,EAAE;gBAClB,UAAU;gBACV,OAAO,EAAE,sBAAsB,MAAM,EAAE;gBACvC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB;gBACpD,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB;gBACtD,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB;gBAClD,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;YACzC,MAAM;YACN,MAAM;YACN,UAAU;YACV,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI;SACL,CAAC,CAAC;QACH,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,IAAuB,EACvB,EAAS,EACT,IAAsC;IAEtC,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IACpF,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IACxE,eAAe,CAAC,EAAE,EAAE;QAClB,UAAU;QACV,OAAO,EAAE,2BAA2B;QACpC,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAAC,kBAAkB;QACvD,mBAAmB,EAAE,SAAS,CAAC,MAAM,CAAC,mBAAmB;QACzD,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,iBAAiB;QACrD,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS;QACjC,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,MAAM,CAAC;QACnD,QAAQ,EAAE,2BAA2B,EAAE;KACxC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,IAAuB,EACvB,EAAS,EACT,IAAsC;IAEtC,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAClF,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,eAAe,CAAC,EAAE,EAAE;QAClB,UAAU;QACV,OAAO,EAAE,0BAA0B;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB;QACpD,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB;QACtD,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB;QAClD,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,QAAQ,EAAE,2BAA2B,EAAE;KACxC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,2BAA2B;IAOlC,OAAO;QACL,eAAe,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;QACvD,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;QACrD,mBAAmB,EACjB,2KAA2K;QAC7K,oBAAoB,EAClB,yIAAyI;QAC3I,wBAAwB,EAAE,eAAe;KAC1C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,KAOpC;IACC,MAAM,IAAI,GAAG;QACX,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO,EAAE,sBAAsB,KAAK,CAAC,MAAM,EAAE;QAC7C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,kBAAkB;QACnD,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,mBAAmB;QACrD,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,iBAAiB;KAClD,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,IAAI,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAChG,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,aAAa;YACb,QAAQ;YACR,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI;YAC/C,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;YAC3C,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe;YACrD,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB;YACvD,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW;YAC7C,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe;YACtF,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;SACvD,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE;SAC7E,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE;gBACN,GAAG,IAAI;gBACP,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,UAAU,QAAQ,CAAC,MAAM,kCAAkC;gBACpE,QAAQ;aACT;SACF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5E,OAAO;YACL,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,EAAE;gBACN,GAAG,IAAI;gBACP,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;gBAC7C,OAAO,EACL,OAAO,KAAK,IAAI;oBACd,CAAC,CAAC,gCAAgC,SAAS,kBAAkB;oBAC7D,CAAC,CAAC,uCAAuC,SAAS,IAAI;gBAC1D,OAAO;aACR;SACF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7E,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE;SAC7E,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QACrC,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACrF,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;YAC9C,GAAG,KAAK,CAAC,MAAM;YACf,SAAS;YACT,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;SAC7B,CAAC,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,EAAE;gBACN,GAAG,IAAI;gBACP,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,UAAU;aACX;SACF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;YAC7C,GAAG,KAAK,CAAC,MAAM;YACf,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE;YAC9B,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;SACnD,CAAC,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE;gBACN,GAAG,IAAI;gBACP,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;gBACpC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,4BAA4B;gBAC7F,QAAQ;aACT;SACF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7E,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;SACnF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE;gBACN,GAAG,IAAI;gBACP,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,sDAAsD;aAChE;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,MAAuC,EACvC,IAAsC;IAEtC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;IACxC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;QAC7D,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;KACtC,CAAC;AACJ,CAAC;AAoBD,SAAS,sBAAsB,CAC7B,IAAuB,EACvB,KAAa,EACb,MAAc;IAEd,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;QAChC,UAAU;QACV,WAAW;QACX,cAAc;QACd,UAAU;QACV,cAAc;QACd,SAAS;QACT,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,SAAS;QACT,WAAW;QACX,cAAc;QACd,OAAO;KACR,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAC1F,CAAC;IACF,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC,oCAAoC,WAAW,MAAM,KAAK,EAAE,CAAC,CAAC;IAElG,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YACpE,OAAO,WAAW,CAAC,gBAAgB,MAAM,uBAAuB,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAiB,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACvD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAiB,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,WAAW,CAAC,kDAAkD,KAAK,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAC3F,MAAM,qBAAqB,GAAG,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAE5G,OAAO;QACL,UAAU;QACV,SAAS,EACP,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC;YAClC,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC;YACrC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAClE,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,IAAI;gBAClC,CAAC,CAAC,IAAI,CAAC;QACX,QAAQ,EACN,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC;YACjC,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC;YACrC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,OAAO,EACL,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC;YAChC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC;YACnC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,SAAS;QACT,OAAO,EAAE;YACP,QAAQ,EAAE,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC;YAC7C,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACzF,eAAe,EAAE,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC;YACvD,gBAAgB,EAAE,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC;YAC3D,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACxF,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAChD,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAC3D;QACD,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAC7B,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,EAAE;QACb,OAAO,EAAE;YACP,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,EAAE;YACnB,gBAAgB,EAAE,EAAE;YACpB,WAAW,EAAE,EAAE;YACf,aAAa,EAAE,KAAK;YACpB,kBAAkB,EAAE,KAAK;SAC1B;QACD,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAuB,EAAE,UAAkB;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACpD,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAuB,EAAE,UAAkB;IACtE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAuB,EACvB,iBAAsC;IAEtC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;QACzB,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA+B;IACvD,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAChG,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAoC;IACpE,OAAO,4BAA4B,MAAM,CAAC,SAAS,GAAG,CAAC;AACzD,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,4DAA4D,CAAC;IAC5F,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,2CAA2C,CAAC;IAC1E,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,uDAAuD,CAAC;IACrF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,2DAA2D,CAAC;IAC7F,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,2FAA2F,CAAC;IACrG,CAAC;IACD,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QAC5B,OAAO,oFAAoF,CAAC;IAC9F,CAAC;IACD,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,wDAAwD,CAAC;IACvF,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,+CAA+C,CAAC;IAClF,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,6CAA6C,CAAC;IAC9E,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,4CAA4C,CAAC;IAC5E,OAAO,uBAAuB,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;QACL,8CAA8C;QAC9C,EAAE;QACF,WAAW;QACX,4FAA4F;QAC5F,kFAAkF;QAClF,wFAAwF;QACxF,oFAAoF;QACpF,wEAAwE;QACxE,0FAA0F;QAC1F,qFAAqF;QACrF,sFAAsF;QACtF,+EAA+E;QAC/E,wFAAwF;KACzF,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,EAAS,EAAE,KAAc;IAChD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkFA,OAAO,EAIL,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkFA,OAAO,EAIL,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AA8C5B,eAAO,MAAM,UAAU,wCAerB,CAAC;AAEH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;CACpD;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE,KAA0D,GAC7D,OAAO,CAAC,MAAM,CAAC,CAgIjB;AA+CD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GACvD,IAAI,CAGN;AAolJD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAErD;AAyDD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAchG;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IACP,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,GACA,MAAM,GAAG,IAAI,CAYf;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IACP,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC,GACA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CA2CA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IACP,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,2BAA2B,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5D,GACA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAeA;AAuBD,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC,CAAC,GAAG;IACzD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC,GACA,OAAO,CAAC,IAAI,CAAC,CAoBf;AAiED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,SAAS,MAAM,EAAE,CAuBnB"}
|
|
@@ -10,10 +10,11 @@ import { definePackageBoundary, GDH_AUTHORING_DOGFOOD_VERSION, GDH_AUTHORING_SLI
|
|
|
10
10
|
import { fetchOfficialGodotDoc, getGuidanceStatus, resolveGuidanceQuery, searchOfficialGodotDocs, } from "@gdh/docs";
|
|
11
11
|
import { createMcpManifest, invokeMcpTool, serveMcpOverStdio } from "@gdh/mcp";
|
|
12
12
|
import { inspectAuthoringEffectiveness, inspectAuthoringSessions, inspectGuidanceAudit, recordAuthoringSessionEvent, } from "@gdh/observability";
|
|
13
|
-
import { checkRuntimeRecipe, inspectRuntimeBridgeSurface, installRuntimeBridgeSurface, listRuntimeRecipes, removeRuntimeBridgeSurface, repairRuntimeBridgeSurface, runRuntimeRecipe, showRuntimeRecipe, } from "@gdh/runtime";
|
|
13
|
+
import { checkRuntimeRecipe, createRuntimeBridgeManager, serveRuntimeBridgeBroker, inspectRuntimeBridgeSurface, installRuntimeBridgeSurface, listRuntimeRecipes, removeRuntimeBridgeSurface, repairRuntimeBridgeSurface, runRuntimeRecipe, showRuntimeRecipe, } from "@gdh/runtime";
|
|
14
14
|
import { applyRepairableOnboardingWrites, onboardGodotProject, persistInventoryForTarget, readInventoryCacheOrScan, scanGodotProjectInventory, } from "@gdh/scan";
|
|
15
15
|
import { exerciseRuntimeCorpusEntry, inspectRuntimeCorpusStatus, inspectRuntimeVerificationBundleState, inspectRuntimeVerificationReadiness, listRuntimeScenarios, materializeRuntimeCorpusEntry, recordRuntimeCorpusValidation, runRuntimeVerificationScenario, showRuntimeScenario, } from "@gdh/verify";
|
|
16
16
|
import { migrateProjectLifecycleSurface } from "./migrate.js";
|
|
17
|
+
import { runBridgeSessionCommand } from "./bridge-session.js";
|
|
17
18
|
import { cleanupGdhMcpProcesses } from "./mcp-cleanup.js";
|
|
18
19
|
import { presentPublicRuntimeTerms } from "./public-terms.js";
|
|
19
20
|
import { runSelfUpdateCommand } from "./self-update.js";
|
|
@@ -57,6 +58,9 @@ export async function runCli(args, io = { stdout: process.stdout, stderr: proces
|
|
|
57
58
|
io.stdout.write(`${JSON.stringify({ targetPath })}\n`);
|
|
58
59
|
return 0;
|
|
59
60
|
}
|
|
61
|
+
if (command === "__gdh-broker-serve") {
|
|
62
|
+
return runInternalBrokerServeCommand(rest, io);
|
|
63
|
+
}
|
|
60
64
|
if (command === "version") {
|
|
61
65
|
return runVersionCommand(rest, io);
|
|
62
66
|
}
|
|
@@ -132,6 +136,39 @@ export async function runCli(args, io = { stdout: process.stdout, stderr: proces
|
|
|
132
136
|
io.stderr.write(`Unknown command: ${command}\n\n${renderHelp()}`);
|
|
133
137
|
return 1;
|
|
134
138
|
}
|
|
139
|
+
async function runInternalBrokerServeCommand(args, io) {
|
|
140
|
+
const targetPath = readSingleOptionValue(args, "--target");
|
|
141
|
+
const godotProjectRootPath = readSingleOptionValue(args, "--godot-project-root");
|
|
142
|
+
const stateRootPath = readSingleOptionValue(args, "--state-root");
|
|
143
|
+
const tokenFilePath = readSingleOptionValue(args, "--token-file");
|
|
144
|
+
const metadataPath = readSingleOptionValue(args, "--metadata-file");
|
|
145
|
+
const heartbeatPath = readSingleOptionValue(args, "--heartbeat-file");
|
|
146
|
+
if (targetPath === null ||
|
|
147
|
+
godotProjectRootPath === null ||
|
|
148
|
+
stateRootPath === null ||
|
|
149
|
+
tokenFilePath === null ||
|
|
150
|
+
metadataPath === null ||
|
|
151
|
+
heartbeatPath === null) {
|
|
152
|
+
io.stderr.write("Usage error: internal broker serve requires target, state, token, metadata, and heartbeat paths.\n");
|
|
153
|
+
return 1;
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
await serveRuntimeBridgeBroker({
|
|
157
|
+
targetPath,
|
|
158
|
+
godotProjectRootPath,
|
|
159
|
+
stateRootPath,
|
|
160
|
+
tokenFilePath,
|
|
161
|
+
metadataPath,
|
|
162
|
+
heartbeatPath,
|
|
163
|
+
bridgeManager: createRuntimeBridgeManager(),
|
|
164
|
+
});
|
|
165
|
+
return 0;
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
io.stderr.write(`Failed to serve the GDH runtime bridge broker: ${formatCliError(error)}\n`);
|
|
169
|
+
return 1;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
135
172
|
export function writeJsonResult(io, value, options = {}) {
|
|
136
173
|
const output = options.presentRuntimeTerms ? presentPublicRuntimeTerms(value) : value;
|
|
137
174
|
io.stdout.write(`${JSON.stringify(output, null, 2)}\n`);
|
|
@@ -1653,6 +1690,7 @@ async function runBridgeCommand(args, io) {
|
|
|
1653
1690
|
"",
|
|
1654
1691
|
"Commands:",
|
|
1655
1692
|
" status [target] Inspect the managed runtime bridge lifecycle state for one target.",
|
|
1693
|
+
" session <command> [target] Operate broker-owned runtime bridge sessions.",
|
|
1656
1694
|
" doctor [target] Alias for status with the same structured bridge-health report.",
|
|
1657
1695
|
" install [target] [--dry-run] Install the managed runtime bridge addon and autoload surfaces.",
|
|
1658
1696
|
" repair [target] [--dry-run] Rewrite drifted GDH-managed bridge files and autoload state.",
|
|
@@ -1663,6 +1701,9 @@ async function runBridgeCommand(args, io) {
|
|
|
1663
1701
|
if (subcommand === "status") {
|
|
1664
1702
|
return runBridgeStatusCommand(rest, io);
|
|
1665
1703
|
}
|
|
1704
|
+
if (subcommand === "session") {
|
|
1705
|
+
return runBridgeSessionCommand(rest, io);
|
|
1706
|
+
}
|
|
1666
1707
|
if (subcommand === "doctor") {
|
|
1667
1708
|
return runBridgeStatusCommand(rest, io);
|
|
1668
1709
|
}
|
|
@@ -1679,6 +1720,7 @@ async function runBridgeCommand(args, io) {
|
|
|
1679
1720
|
`Unknown bridge command: ${subcommand}`,
|
|
1680
1721
|
"",
|
|
1681
1722
|
"Usage: gdh bridge status [target]",
|
|
1723
|
+
"Usage: gdh bridge session <command> [target]",
|
|
1682
1724
|
"Usage: gdh bridge doctor [target]",
|
|
1683
1725
|
"Usage: gdh bridge install [target] [--dry-run]",
|
|
1684
1726
|
"Usage: gdh bridge repair [target] [--dry-run]",
|
|
@@ -3951,6 +3993,7 @@ function renderHelp() {
|
|
|
3951
3993
|
" run-config check [target] <run-config-id> Evaluate run-configuration readiness.",
|
|
3952
3994
|
" run-config run [target] <run-config-id> Execute one run configuration.",
|
|
3953
3995
|
" bridge status [target] Inspect the managed runtime bridge lifecycle state.",
|
|
3996
|
+
" bridge session <command> [target] Operate broker-owned runtime bridge sessions.",
|
|
3954
3997
|
" bridge doctor [target] Alias for bridge status.",
|
|
3955
3998
|
" bridge install [target] [--dry-run] Install the GDH-managed runtime bridge surface.",
|
|
3956
3999
|
" bridge repair [target] [--dry-run] Repair drifted GDH-managed bridge files and autoload state.",
|