@kheleshikhi/studio-agent 0.6.1 → 0.8.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 +215 -13
- package/dist/browser.d.ts +74 -2
- package/dist/browser.js +472 -12
- package/dist/browser.js.map +1 -1
- package/dist/cli.d.ts +10 -0
- package/dist/cli.js +515 -55
- package/dist/cli.js.map +1 -1
- package/dist/context.d.ts +66 -0
- package/dist/context.js +207 -0
- package/dist/context.js.map +1 -0
- package/dist/daemon.js +41 -3
- package/dist/daemon.js.map +1 -1
- package/dist/presence.d.ts +49 -0
- package/dist/presence.js +141 -0
- package/dist/presence.js.map +1 -0
- package/dist/scenario.d.ts +33 -1
- package/dist/scenario.js +143 -5
- package/dist/scenario.js.map +1 -1
- package/dist/video.d.ts +164 -0
- package/dist/video.js +385 -0
- package/dist/video.js.map +1 -0
- package/package.json +1 -1
package/dist/context.js
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
// Pure readers of the live `/v1/agent/context` projection.
|
|
2
|
+
//
|
|
3
|
+
// The CLI is a thin client of server authority: every list below (offered and
|
|
4
|
+
// frozen targets, deprecations, the Experience schema, the universal capability
|
|
5
|
+
// list, tools) is read from the server's context. Nothing here hard-codes a
|
|
6
|
+
// live contract. When the server does not project a field, the helpers answer
|
|
7
|
+
// "unknown" and the CLI defers to the server's own validation errors.
|
|
8
|
+
import { CliError } from "./types.js";
|
|
9
|
+
function stringList(value) {
|
|
10
|
+
return Array.isArray(value) ? value.filter((item) => typeof item === "string") : null;
|
|
11
|
+
}
|
|
12
|
+
function text(value) {
|
|
13
|
+
return typeof value === "string" && value ? value : null;
|
|
14
|
+
}
|
|
15
|
+
export function parseContext(raw) {
|
|
16
|
+
const deprecations = {};
|
|
17
|
+
if (raw.deprecations && typeof raw.deprecations === "object" && !Array.isArray(raw.deprecations)) {
|
|
18
|
+
for (const [key, value] of Object.entries(raw.deprecations))
|
|
19
|
+
if (typeof value === "string")
|
|
20
|
+
deprecations[key] = value;
|
|
21
|
+
}
|
|
22
|
+
const capabilities = Array.isArray(raw.experience_capabilities)
|
|
23
|
+
? raw.experience_capabilities
|
|
24
|
+
.filter((item) => Boolean(item) && typeof item === "object" && typeof item.id === "string")
|
|
25
|
+
.map((item) => ({ id: String(item.id), versions: Array.isArray(item.versions) ? item.versions.map(Number).filter(Number.isFinite) : [] }))
|
|
26
|
+
: null;
|
|
27
|
+
const tools = raw.experience_tools && typeof raw.experience_tools === "object" && !Array.isArray(raw.experience_tools)
|
|
28
|
+
? raw.experience_tools
|
|
29
|
+
: null;
|
|
30
|
+
const protocol = Number(raw.agent_protocol);
|
|
31
|
+
return {
|
|
32
|
+
agentProtocol: Number.isFinite(protocol) ? protocol : null,
|
|
33
|
+
minimumCliVersion: String(raw.minimum_cli_version || ""),
|
|
34
|
+
recommendedCliVersion: String(raw.recommended_cli_version || raw.minimum_cli_version || ""),
|
|
35
|
+
authoringTargets: stringList(raw.authoring_targets),
|
|
36
|
+
frozenAuthoringTargets: stringList(raw.frozen_authoring_targets),
|
|
37
|
+
deprecations,
|
|
38
|
+
sceneSchema: text(raw.scene_schema),
|
|
39
|
+
sceneManifestSchema: text(raw.scene_manifest_schema),
|
|
40
|
+
experienceSchema: text(raw.experience_schema),
|
|
41
|
+
experienceCapabilities: capabilities,
|
|
42
|
+
experienceTools: tools,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// ---------------------------------------------------------------- versions
|
|
46
|
+
function versionParts(value) {
|
|
47
|
+
const match = /^(\d+)\.(\d+)\.(\d+)/.exec(value);
|
|
48
|
+
if (!match)
|
|
49
|
+
throw new CliError(`Server returned an invalid CLI version: ${value}`, "AGENT_VERSION_INVALID", 5);
|
|
50
|
+
return match.slice(1).map(Number);
|
|
51
|
+
}
|
|
52
|
+
export function compareVersions(left, right) {
|
|
53
|
+
const a = versionParts(left);
|
|
54
|
+
const b = versionParts(right);
|
|
55
|
+
for (let index = 0; index < 3; index += 1) {
|
|
56
|
+
if (a[index] !== b[index])
|
|
57
|
+
return a[index] - b[index];
|
|
58
|
+
}
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
export const PACKAGE_NAME = "@kheleshikhi/studio-agent";
|
|
62
|
+
/** Negotiate this CLI against the server's protocol and min/recommended versions. */
|
|
63
|
+
export function compatibilityReport(raw, cliVersion, cliProtocol) {
|
|
64
|
+
const context = parseContext(raw);
|
|
65
|
+
const base = {
|
|
66
|
+
cli_version: cliVersion,
|
|
67
|
+
agent_protocol: context.agentProtocol,
|
|
68
|
+
minimum_cli_version: context.minimumCliVersion,
|
|
69
|
+
recommended_cli_version: context.recommendedCliVersion,
|
|
70
|
+
};
|
|
71
|
+
if (context.agentProtocol !== cliProtocol) {
|
|
72
|
+
return { ...base, status: "protocol_incompatible", message: `NerdBro speaks Agent protocol ${raw.agent_protocol}; this CLI ${cliVersion} speaks protocol ${cliProtocol}. Install the current CLI: npm install -g ${PACKAGE_NAME}@latest.` };
|
|
73
|
+
}
|
|
74
|
+
if (compareVersions(cliVersion, context.minimumCliVersion) < 0) {
|
|
75
|
+
return { ...base, status: "upgrade_required", message: `CLI ${cliVersion} is too old; NerdBro requires ${context.minimumCliVersion} or newer (recommended ${context.recommendedCliVersion}). Run: npm install -g ${PACKAGE_NAME}@${context.recommendedCliVersion}.` };
|
|
76
|
+
}
|
|
77
|
+
if (compareVersions(cliVersion, context.recommendedCliVersion) < 0) {
|
|
78
|
+
return { ...base, status: "upgrade_recommended", message: `CLI ${context.recommendedCliVersion} is recommended (current ${cliVersion}); older CLIs may not offer the server's current Scene and Experience workflow. Run: npm install -g ${PACKAGE_NAME}@${context.recommendedCliVersion}.` };
|
|
79
|
+
}
|
|
80
|
+
return { ...base, status: "compatible", message: null };
|
|
81
|
+
}
|
|
82
|
+
// ---------------------------------------------------------------- targets
|
|
83
|
+
/** The Scene target ADR-0003 names for all new visual work. */
|
|
84
|
+
export const SCENE_TARGET = "sceneComposition";
|
|
85
|
+
/**
|
|
86
|
+
* Choose the `studio create` target. Without `--target` the Scene target is
|
|
87
|
+
* used (or the server's first offered target if it stops offering it). A target
|
|
88
|
+
* the server's context lists as frozen is refused here with the server's own
|
|
89
|
+
* deprecation text; any other value is sent unchanged for the server to judge.
|
|
90
|
+
*/
|
|
91
|
+
export function resolveCreateTarget(requested, raw) {
|
|
92
|
+
const context = parseContext(raw);
|
|
93
|
+
if (requested === undefined) {
|
|
94
|
+
const offered = context.authoringTargets;
|
|
95
|
+
return !offered || offered.length === 0 || offered.includes(SCENE_TARGET) ? SCENE_TARGET : offered[0];
|
|
96
|
+
}
|
|
97
|
+
if (context.frozenAuthoringTargets?.includes(requested)) {
|
|
98
|
+
const reason = context.deprecations[requested] || "Frozen: kept only so existing assets keep reading.";
|
|
99
|
+
const offered = context.authoringTargets?.length ? context.authoringTargets.join(", ") : SCENE_TARGET;
|
|
100
|
+
throw new CliError(`Target ${requested} is frozen for new work. ${reason} Use --target ${offered.split(", ")[0]} (offered: ${offered}); a graph is a Scene math plane (see \`nerdbro docs open mathgraph\`).`, "STUDIO_TARGET_FROZEN", 2, { target: requested, offered_targets: context.authoringTargets, frozen_targets: context.frozenAuthoringTargets, deprecation: reason });
|
|
101
|
+
}
|
|
102
|
+
return requested;
|
|
103
|
+
}
|
|
104
|
+
// ---------------------------------------------------------------- brief
|
|
105
|
+
const GRAPH_FLAGS = ["graph-purpose", "graph-x", "graph-y", "graph-sync"];
|
|
106
|
+
/**
|
|
107
|
+
* Whether the brief asks for a Scene math plane. A graph is no longer a target
|
|
108
|
+
* (combined/mathGraph) but a plane inside the Scene, so the requirement follows
|
|
109
|
+
* only from the Maker's graph intent: `--math-plane` or any `--graph-*` meaning.
|
|
110
|
+
* Returns undefined when nothing was said, so the server keeps its default.
|
|
111
|
+
*/
|
|
112
|
+
export function mathPlaneRequirement(flags) {
|
|
113
|
+
if (flags.has("no-math-plane"))
|
|
114
|
+
return false;
|
|
115
|
+
if (flags.has("math-plane"))
|
|
116
|
+
return true;
|
|
117
|
+
return GRAPH_FLAGS.some((name) => typeof flags.get(name) === "string") ? true : undefined;
|
|
118
|
+
}
|
|
119
|
+
// ---------------------------------------------------------------- views
|
|
120
|
+
export function deprecationFor(raw, key) {
|
|
121
|
+
return parseContext(raw).deprecations[key] ?? null;
|
|
122
|
+
}
|
|
123
|
+
/** The authoring summary `nerdbro context` prints beside the raw projection. */
|
|
124
|
+
export function contextSummary(raw, cliVersion, cliProtocol) {
|
|
125
|
+
const context = parseContext(raw);
|
|
126
|
+
return {
|
|
127
|
+
compatibility: compatibilityReport(raw, cliVersion, cliProtocol),
|
|
128
|
+
model: "Everything visual is a Scene (graphs are Scene math planes); interaction is an Experience.",
|
|
129
|
+
scene_schema: context.sceneSchema,
|
|
130
|
+
scene_manifest_schema: context.sceneManifestSchema,
|
|
131
|
+
experience_schema: context.experienceSchema,
|
|
132
|
+
authoring_targets: context.authoringTargets,
|
|
133
|
+
frozen_authoring_targets: context.frozenAuthoringTargets,
|
|
134
|
+
deprecations: context.deprecations,
|
|
135
|
+
universal_capabilities: context.experienceCapabilities?.map((item) => item.id) ?? null,
|
|
136
|
+
fields_missing: [
|
|
137
|
+
["authoring_targets", context.authoringTargets],
|
|
138
|
+
["frozen_authoring_targets", context.frozenAuthoringTargets],
|
|
139
|
+
["experience_schema", context.experienceSchema],
|
|
140
|
+
["experience_capabilities", context.experienceCapabilities],
|
|
141
|
+
].filter(([, value]) => value === null).map(([name]) => name),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Decorate a `/v1/agent/schema/<topic>` answer: surface its deprecation, and for
|
|
146
|
+
* the `experience` topic attach the universal capability list from context.
|
|
147
|
+
*/
|
|
148
|
+
export function schemaTopicView(topic, payload, raw) {
|
|
149
|
+
const contract = payload.contract && typeof payload.contract === "object" ? payload.contract : {};
|
|
150
|
+
const view = { ...payload };
|
|
151
|
+
if (typeof contract.deprecated === "string")
|
|
152
|
+
view.deprecated = contract.deprecated;
|
|
153
|
+
if (topic === "experience" && raw) {
|
|
154
|
+
const context = parseContext(raw);
|
|
155
|
+
view.universal_capabilities = context.experienceCapabilities;
|
|
156
|
+
view.capabilities_note = "Every canonical capability is available in every host; requiredCapabilities are derived by the server, never authored.";
|
|
157
|
+
if (context.experienceSchema)
|
|
158
|
+
view.authoring_schema = context.experienceSchema;
|
|
159
|
+
}
|
|
160
|
+
return view;
|
|
161
|
+
}
|
|
162
|
+
/** `nerdbro capabilities`: the Studio capability registry plus the universal Experience list. */
|
|
163
|
+
export function capabilitiesView(registry, raw) {
|
|
164
|
+
const context = raw ? parseContext(raw) : null;
|
|
165
|
+
return {
|
|
166
|
+
universal_capabilities: context?.experienceCapabilities ?? null,
|
|
167
|
+
experience_tools: context?.experienceTools ?? null,
|
|
168
|
+
registry,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* A notice when a local Experience is not the server's authoring schema (e.g. a
|
|
173
|
+
* V2 document still read through the normalizer). The text is the server's.
|
|
174
|
+
*/
|
|
175
|
+
export function experienceSchemaNotice(document, raw) {
|
|
176
|
+
if (!raw || !document || typeof document !== "object")
|
|
177
|
+
return null;
|
|
178
|
+
const context = parseContext(raw);
|
|
179
|
+
const schema = document.schema;
|
|
180
|
+
if (!context.experienceSchema || schema === context.experienceSchema)
|
|
181
|
+
return null;
|
|
182
|
+
const version = typeof schema === "string" ? /\.(v\d+)$/.exec(schema)?.[1] : undefined;
|
|
183
|
+
const deprecation = version ? context.deprecations[`experience.${version}`] : undefined;
|
|
184
|
+
return `source.json declares ${typeof schema === "string" ? schema : "no schema"}; new work is authored as ${context.experienceSchema}.${deprecation ? ` ${deprecation}` : ""}`;
|
|
185
|
+
}
|
|
186
|
+
function count(value) {
|
|
187
|
+
return Array.isArray(value) ? value.length : value !== null && typeof value === "object" ? Object.keys(value).length : null;
|
|
188
|
+
}
|
|
189
|
+
/** Summarise a server Experience draft preview, V3 blocks included. */
|
|
190
|
+
export function experiencePreviewSummary(preview) {
|
|
191
|
+
const entry = preview.entry && typeof preview.entry === "object" ? preview.entry : {};
|
|
192
|
+
const interaction = entry.interaction && typeof entry.interaction === "object" ? entry.interaction : null;
|
|
193
|
+
return {
|
|
194
|
+
mode: preview.mode ?? null,
|
|
195
|
+
source_hash: preview.sourceHash ?? null,
|
|
196
|
+
schema: entry.schema ?? null,
|
|
197
|
+
scenes: count(preview.scenes),
|
|
198
|
+
audio: count(preview.audio),
|
|
199
|
+
interaction: interaction
|
|
200
|
+
? Object.fromEntries(["inputs", "requests", "handlers", "readouts", "exports", "tools"].map((key) => [key, count(interaction[key])]))
|
|
201
|
+
: null,
|
|
202
|
+
rounds: entry.rounds ? count(entry.rounds.pool) : null,
|
|
203
|
+
outcomes: count(entry.assessment?.outcomes),
|
|
204
|
+
required_capabilities: Array.isArray(entry.requiredCapabilities) ? entry.requiredCapabilities : null,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.js
CHANGED
|
@@ -3,6 +3,8 @@ import http from "node:http";
|
|
|
3
3
|
import { removeDaemonMetadata, writeDaemonMetadata } from "./state.js";
|
|
4
4
|
import { AgentApi, traceStorage } from "./protocol.js";
|
|
5
5
|
import { StudioBrowser } from "./browser.js";
|
|
6
|
+
import { PresenceThrottle, stepPresence } from "./presence.js";
|
|
7
|
+
const PRESENCE_SUBJECT = /^(asset|experience):[A-Za-z0-9_.-]{1,80}$/;
|
|
6
8
|
import { CliError } from "./types.js";
|
|
7
9
|
/** Context changes are bounded by a short TTL and reset on session changes. */
|
|
8
10
|
export class BoundedContextCache {
|
|
@@ -50,6 +52,21 @@ export async function runDaemon(options) {
|
|
|
50
52
|
const browser = new StudioBrowser(api);
|
|
51
53
|
if (!options.noBrowser)
|
|
52
54
|
await browser.start(options.headless);
|
|
55
|
+
/**
|
|
56
|
+
* Per-step Agent Presence for a drive. The daemon already holds the scoped
|
|
57
|
+
* Agent credential, so the CLI never needs a second channel; a failed
|
|
58
|
+
* presence update never fails the drive.
|
|
59
|
+
*/
|
|
60
|
+
const presenceListener = (subject) => {
|
|
61
|
+
if (typeof subject !== "string" || !PRESENCE_SUBJECT.test(subject) || !agentToken)
|
|
62
|
+
return undefined;
|
|
63
|
+
const throttle = new PresenceThrottle();
|
|
64
|
+
return async (report) => {
|
|
65
|
+
if (!throttle.admit(String(report.summary.op), report.summary.ok !== true))
|
|
66
|
+
return;
|
|
67
|
+
await api.request("PUT", "/v1/agent/presence", stepPresence(subject, report)).catch(() => undefined);
|
|
68
|
+
};
|
|
69
|
+
};
|
|
53
70
|
let stopping = false;
|
|
54
71
|
const server = http.createServer((request, response) => {
|
|
55
72
|
const attemptId = request.headers["x-nerdbro-attempt-id"];
|
|
@@ -67,7 +84,7 @@ export async function runDaemon(options) {
|
|
|
67
84
|
if (request.method === "GET" && url.pathname === "/status") {
|
|
68
85
|
send(response, 200, {
|
|
69
86
|
ok: true,
|
|
70
|
-
daemon_version: options.version || "0.
|
|
87
|
+
daemon_version: options.version || "0.8.0",
|
|
71
88
|
protocol_version: 1,
|
|
72
89
|
browser_protocol_version: 1,
|
|
73
90
|
pid: process.pid,
|
|
@@ -88,7 +105,7 @@ export async function runDaemon(options) {
|
|
|
88
105
|
const pairing = await api.request("POST", "/v1/agent/pairings", {
|
|
89
106
|
agent_protocol: 1,
|
|
90
107
|
client_label: input.clientLabel || `${process.platform} ${process.arch}`,
|
|
91
|
-
client_version: input.clientVersion || options.version || "0.
|
|
108
|
+
client_version: input.clientVersion || options.version || "0.8.0",
|
|
92
109
|
}, false);
|
|
93
110
|
send(response, 202, { ok: true, phase: "pairing", pairing });
|
|
94
111
|
return;
|
|
@@ -158,7 +175,28 @@ export async function runDaemon(options) {
|
|
|
158
175
|
}
|
|
159
176
|
if (request.method === "POST" && url.pathname === "/browser/drive") {
|
|
160
177
|
const input = await body(request);
|
|
161
|
-
send(response, 200, { ok: true, result: await browser.drive(
|
|
178
|
+
send(response, 200, { ok: true, result: await browser.drive({
|
|
179
|
+
...input,
|
|
180
|
+
onStep: presenceListener(input.presenceSubject),
|
|
181
|
+
}) });
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
if (request.method === "POST" && url.pathname === "/browser/experience-drive") {
|
|
185
|
+
const input = await body(request);
|
|
186
|
+
send(response, 200, { ok: true, result: await browser.driveExperience({
|
|
187
|
+
...input,
|
|
188
|
+
onStep: presenceListener(input.presenceSubject),
|
|
189
|
+
}) });
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
if (request.method === "POST" && url.pathname === "/browser/render-frames") {
|
|
193
|
+
const input = await body(request);
|
|
194
|
+
send(response, 200, { ok: true, result: await browser.renderFrames(input) });
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
if (request.method === "POST" && url.pathname === "/browser/render-experience-frames") {
|
|
198
|
+
const input = await body(request);
|
|
199
|
+
send(response, 200, { ok: true, result: await browser.renderExperienceFrames(input) });
|
|
162
200
|
return;
|
|
163
201
|
}
|
|
164
202
|
if (request.method === "POST" && url.pathname === "/browser/preview-observation") {
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,aAAa,EAAsF,MAAM,cAAc,CAAC;AACjI,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE/D,MAAM,gBAAgB,GAAG,2CAA2C,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAStC,+EAA+E;AAC/E,MAAM,OAAO,mBAAmB;IAGD;IAAiC;IAFtD,KAAK,CAA4C;IAEzD,YAA6B,QAAQ,MAAM,EAAmB,QAAQ,IAAI,CAAC,GAAG;QAAjD,UAAK,GAAL,KAAK,CAAS;QAAmB,UAAK,GAAL,KAAK,CAAW;IAAG,CAAC;IAElF,KAAK,CAAC,GAAG,CAAC,MAAwB;QAChC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QAC7D,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,KAAW,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;CAC1C;AAED,KAAK,UAAU,IAAI,CAAC,OAA6B;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA4B,CAAC;AACvF,CAAC;AAED,SAAS,IAAI,CAAC,QAA6B,EAAE,MAAc,EAAE,KAAc;IACzE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;IAChG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB;IACpD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,UAA8B,CAAC;IACnC,IAAI,cAAkC,CAAC;IACvC,IAAI,gBAAoC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,mBAAmB,EAAW,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9D;;;;OAIG;IACH,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAiC,EAAE;QAC3E,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QACpG,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC;gBAAE,OAAO;YACnF,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACvG,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QACrD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC1D,KAAK,YAAY,CAAC,GAAG,CAAC;YACpB,SAAS,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAChE,SAAS,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACjE,EAAE,KAAK,IAAI,EAAE;YACd,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,KAAK,UAAU,SAAS,EAAE,EAAE,CAAC;gBAC5D,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC;gBACtH,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;gBAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3D,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;wBAClB,EAAE,EAAE,IAAI;wBACR,cAAc,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;wBAC1C,gBAAgB,EAAE,CAAC;wBACnB,wBAAwB,EAAE,CAAC;wBAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC;wBAC9B,SAAS,EAAE,cAAc;wBACzB,gBAAgB;wBAChB,MAAM,EAAE,OAAO,CAAC,SAAS;wBACzB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;wBAC5D,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,GAAG,OAAO,CAAC,yBAAyB,EAAE;qBACvC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAC7D,YAAY,CAAC,KAAK,EAAE,CAAC;oBACrB,OAAO,CAAC,mBAAmB,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAA0B,MAAM,EAAE,oBAAoB,EAAE;wBACvF,cAAc,EAAE,CAAC;wBACjB,YAAY,EAAE,KAAK,CAAC,WAAW,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;wBACxE,cAAc,EAAE,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO;qBAClE,EAAE,KAAK,CAAC,CAAC;oBACV,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC7D,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;oBAClE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,sBAAsB,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;wBACvI,OAAO,EAAE,EAAE,0BAA0B,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;qBACrE,CAAC,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,EAA0D,CAAC;oBAC7F,IAAI,CAAC,MAAM,CAAC,EAAE;wBAAE,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC,CAAC;oBAC3F,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;oBAClC,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;wBAC1C,YAAY,CAAC,KAAK,EAAE,CAAC;wBACrB,OAAO,CAAC,mBAAmB,EAAE,CAAC;wBAC9B,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;wBAC/B,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC1C,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;wBACpD,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBACzB,OAAO,KAAK,CAAC,WAAW,CAAC;oBAC3B,CAAC;oBACD,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;oBAC5C,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;oBAChE,YAAY,CAAC,KAAK,EAAE,CAAC;oBACrB,IAAI,UAAU;wBAAE,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;oBACjG,UAAU,GAAG,SAAS,CAAC;oBACvB,cAAc,GAAG,SAAS,CAAC;oBAC3B,gBAAgB,GAAG,SAAS,CAAC;oBAC7B,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACxB,OAAO,CAAC,mBAAmB,EAAE,CAAC;oBAC9B,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtD,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;oBAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjC,MAAM,MAAM,GAAG,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,mBAAmB;wBAC9D,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAU,MAAM,EAAE,KAAK,CAAC,CAAC;wBACnE,CAAC,CAAC,MAAM,GAAG,CAAC,OAAO,CAAU,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC1D,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,YAAY,UAAU;wBAC9C,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;wBACpE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;oBAChE,uEAAuE;oBACvE,iEAAiE;oBACjE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAClB,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,EAC7B,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAC7B,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,0BAA0B,CAAC,EACvD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CACtE,CAAC;oBACF,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC1C,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;oBAClE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC7F,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC;oBACrE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAyC,CAAC,EAAE,CAAC,CAAC;oBAC5G,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;oBACnE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC;4BAC1D,GAAG,KAAyD;4BAC5D,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC;yBAChD,CAAC,EAAE,CAAC,CAAC;oBACN,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,2BAA2B,EAAE,CAAC;oBAC9E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC;4BACpE,GAAG,KAAmE;4BACtE,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC;yBAChD,CAAC,EAAE,CAAC,CAAC;oBACN,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,wBAAwB,EAAE,CAAC;oBAC3E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,KAAgE,CAAC,EAAE,CAAC,CAAC;oBACxI,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,mCAAmC,EAAE,CAAC;oBACtF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,sBAAsB,CAAC,KAA0E,CAAC,EAAE,CAAC,CAAC;oBAC5J,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,8BAA8B,EAAE,CAAC;oBACjF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,KAA6C,CAAC,EAAE,CAAC,CAAC;oBACvH,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAC1D,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClD,QAAQ,GAAG,IAAI,CAAC;oBAChB,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACnC,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC7G,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChF,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzI,CAAC;QACD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,MAAM,IAAI,QAAQ,CAAC,yCAAyC,CAAC,CAAC;IAC3G,MAAM,mBAAmB,CAAC;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS;QACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,GAAS,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,MAAM,oBAAoB,EAAE,CAAC;IAC7B,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Presence: a small, ephemeral statement of what the Agent is doing,
|
|
3
|
+
* for the Maker's open Studio. Observable workflow facts only — the status,
|
|
4
|
+
* which source paths changed, the last semantic command and its result, and
|
|
5
|
+
* where the runtime is. Never source text, reasoning, credentials or paths on
|
|
6
|
+
* this machine. The server keeps only the latest statement per session.
|
|
7
|
+
*/
|
|
8
|
+
import type { DriveStepReport } from "./browser.js";
|
|
9
|
+
export declare const PRESENCE_STATUSES: readonly ["idle", "editing", "validating", "compiling", "previewing", "probing", "capturing", "saving", "certifying"];
|
|
10
|
+
export type PresenceStatus = typeof PRESENCE_STATUSES[number];
|
|
11
|
+
export declare const MAX_CHANGED_PATHS = 20;
|
|
12
|
+
export type PresencePatch = {
|
|
13
|
+
subject: string;
|
|
14
|
+
status?: PresenceStatus;
|
|
15
|
+
working_source_hash?: string;
|
|
16
|
+
changed_paths?: string[];
|
|
17
|
+
focused_path?: string;
|
|
18
|
+
last_command?: Record<string, unknown>;
|
|
19
|
+
last_result?: Record<string, unknown>;
|
|
20
|
+
runtime?: Record<string, unknown>;
|
|
21
|
+
selection?: Record<string, unknown> | null;
|
|
22
|
+
last_capture?: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Where the runtime is, read from the shared v2 observation domains — the
|
|
26
|
+
* same facts the Maker's Observatory renders.
|
|
27
|
+
*/
|
|
28
|
+
export declare function runtimeSummary(observation: Record<string, unknown> | undefined): Record<string, unknown>;
|
|
29
|
+
export declare function selectionSummary(observation: Record<string, unknown> | undefined): Record<string, unknown> | null;
|
|
30
|
+
/** The presence statement one drive step produces. */
|
|
31
|
+
export declare function stepPresence(subject: string, report: DriveStepReport): PresencePatch;
|
|
32
|
+
/**
|
|
33
|
+
* At most one presence update per interval, except that semantic landmarks
|
|
34
|
+
* (a State jump, a selection, a restart, a capture, the final step) always go
|
|
35
|
+
* out. Remote presence is a summary, never a 150 ms runtime stream.
|
|
36
|
+
*/
|
|
37
|
+
export declare class PresenceThrottle {
|
|
38
|
+
private readonly intervalMs;
|
|
39
|
+
private readonly clock;
|
|
40
|
+
private last;
|
|
41
|
+
constructor(intervalMs?: number, clock?: () => number);
|
|
42
|
+
admit(op: string, force?: boolean): boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Changed JSON Pointers between two versions of a document, in document
|
|
46
|
+
* order and bounded. Pointers name locations, never values, so presence can
|
|
47
|
+
* say *where* the Agent is working without mirroring the unsaved source.
|
|
48
|
+
*/
|
|
49
|
+
export declare function changedPaths(before: unknown, after: unknown, limit?: number): string[];
|
package/dist/presence.js
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
export const PRESENCE_STATUSES = [
|
|
2
|
+
"idle", "editing", "validating", "compiling", "previewing", "probing", "capturing", "saving", "certifying",
|
|
3
|
+
];
|
|
4
|
+
export const MAX_CHANGED_PATHS = 20;
|
|
5
|
+
function object(value) {
|
|
6
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
7
|
+
}
|
|
8
|
+
function boundedStrings(value, limit) {
|
|
9
|
+
return Object.fromEntries(Object.entries(object(value)).slice(0, limit)
|
|
10
|
+
.filter(([, item]) => typeof item === "string")
|
|
11
|
+
.map(([key, item]) => [key.slice(0, 80), String(item).slice(0, 80)]));
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Where the runtime is, read from the shared v2 observation domains — the
|
|
15
|
+
* same facts the Maker's Observatory renders.
|
|
16
|
+
*/
|
|
17
|
+
export function runtimeSummary(observation) {
|
|
18
|
+
const experience = object(observation?.experience);
|
|
19
|
+
const scene = object(observation?.scene);
|
|
20
|
+
const timeline = object(observation?.timeline);
|
|
21
|
+
const probe = object(observation?.probe);
|
|
22
|
+
return {
|
|
23
|
+
...(typeof experience.activeState === "string" ? { active_state: experience.activeState } : {}),
|
|
24
|
+
...(typeof experience.activeScene === "string" ? { active_scene: experience.activeScene } : {}),
|
|
25
|
+
scene_states: boundedStrings(scene.activeStates, 16),
|
|
26
|
+
...(typeof experience.previewOverride === "string" ? { master_override: experience.previewOverride } : {}),
|
|
27
|
+
scene_overrides: boundedStrings(scene.previewOverrides, 16),
|
|
28
|
+
probe_active: probe.active === true,
|
|
29
|
+
probe_setup_keys: Object.keys(object(probe.setup)).slice(0, 16),
|
|
30
|
+
// An Experience run names Scene-local setup separately from master
|
|
31
|
+
// setup; names only, never values.
|
|
32
|
+
...(Object.hasOwn(probe, "experienceSetup")
|
|
33
|
+
? { probe_scene_setup_keys: Object.keys(object(probe.sceneSetup)).slice(0, 16) } : {}),
|
|
34
|
+
...(typeof timeline.ms === "number" ? { timeline_ms: timeline.ms } : {}),
|
|
35
|
+
...(typeof timeline.seconds === "number" ? { timeline_seconds: timeline.seconds } : {}),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export function selectionSummary(observation) {
|
|
39
|
+
const selection = object(observation?.selection);
|
|
40
|
+
if (typeof selection.kind !== "string" || typeof selection.id !== "string")
|
|
41
|
+
return null;
|
|
42
|
+
return {
|
|
43
|
+
kind: selection.kind.slice(0, 40),
|
|
44
|
+
id: selection.id.slice(0, 160),
|
|
45
|
+
...(typeof selection.sourcePath === "string" ? { source_path: selection.sourcePath.slice(0, 240) } : {}),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/** The presence statement one drive step produces. */
|
|
49
|
+
export function stepPresence(subject, report) {
|
|
50
|
+
const summary = report.summary;
|
|
51
|
+
const command = { op: summary.op };
|
|
52
|
+
for (const key of ["target", "value", "setup_keys", "path", "name"]) {
|
|
53
|
+
if (summary[key] !== undefined)
|
|
54
|
+
command[key] = summary[key];
|
|
55
|
+
}
|
|
56
|
+
const patch = {
|
|
57
|
+
subject,
|
|
58
|
+
status: summary.op === "capture" ? "capturing" : "probing",
|
|
59
|
+
last_command: command,
|
|
60
|
+
last_result: { ok: summary.ok === true, ...(summary.observed !== undefined ? { observed: summary.observed } : {}) },
|
|
61
|
+
};
|
|
62
|
+
if (report.observation) {
|
|
63
|
+
patch.runtime = runtimeSummary(report.observation);
|
|
64
|
+
const selection = selectionSummary(report.observation);
|
|
65
|
+
if (selection) {
|
|
66
|
+
patch.selection = selection;
|
|
67
|
+
if (typeof selection.source_path === "string")
|
|
68
|
+
patch.focused_path = selection.source_path;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (summary.op === "capture" && typeof summary.name === "string")
|
|
72
|
+
patch.last_capture = summary.name;
|
|
73
|
+
return patch;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* At most one presence update per interval, except that semantic landmarks
|
|
77
|
+
* (a State jump, a selection, a restart, a capture, the final step) always go
|
|
78
|
+
* out. Remote presence is a summary, never a 150 ms runtime stream.
|
|
79
|
+
*/
|
|
80
|
+
export class PresenceThrottle {
|
|
81
|
+
intervalMs;
|
|
82
|
+
clock;
|
|
83
|
+
last = 0;
|
|
84
|
+
constructor(intervalMs = 500, clock = Date.now) {
|
|
85
|
+
this.intervalMs = intervalMs;
|
|
86
|
+
this.clock = clock;
|
|
87
|
+
}
|
|
88
|
+
admit(op, force = false) {
|
|
89
|
+
const landmark = force || ["previewState", "select", "restart", "capture"].includes(op);
|
|
90
|
+
const now = this.clock();
|
|
91
|
+
if (!landmark && now - this.last < this.intervalMs)
|
|
92
|
+
return false;
|
|
93
|
+
this.last = now;
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function pointerToken(value) {
|
|
98
|
+
return String(value).replaceAll("~", "~0").replaceAll("/", "~1");
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Changed JSON Pointers between two versions of a document, in document
|
|
102
|
+
* order and bounded. Pointers name locations, never values, so presence can
|
|
103
|
+
* say *where* the Agent is working without mirroring the unsaved source.
|
|
104
|
+
*/
|
|
105
|
+
export function changedPaths(before, after, limit = MAX_CHANGED_PATHS) {
|
|
106
|
+
const changes = [];
|
|
107
|
+
const walk = (a, b, pointer) => {
|
|
108
|
+
if (changes.length >= limit)
|
|
109
|
+
return;
|
|
110
|
+
const aObject = a && typeof a === "object";
|
|
111
|
+
const bObject = b && typeof b === "object";
|
|
112
|
+
if (aObject && bObject && Array.isArray(a) === Array.isArray(b)) {
|
|
113
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
114
|
+
const common = Math.min(a.length, b.length);
|
|
115
|
+
for (let index = 0; index < common && changes.length < limit; index++) {
|
|
116
|
+
walk(a[index], b[index], `${pointer}/${index}`);
|
|
117
|
+
}
|
|
118
|
+
if (a.length !== b.length && changes.length < limit)
|
|
119
|
+
changes.push(`${pointer}/${common}`);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const left = a;
|
|
123
|
+
const right = b;
|
|
124
|
+
for (const key of new Set([...Object.keys(left), ...Object.keys(right)])) {
|
|
125
|
+
if (changes.length >= limit)
|
|
126
|
+
return;
|
|
127
|
+
const child = `${pointer}/${pointerToken(key)}`;
|
|
128
|
+
if (!Object.hasOwn(left, key) || !Object.hasOwn(right, key))
|
|
129
|
+
changes.push(child);
|
|
130
|
+
else
|
|
131
|
+
walk(left[key], right[key], child);
|
|
132
|
+
}
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (JSON.stringify(a) !== JSON.stringify(b))
|
|
136
|
+
changes.push(pointer);
|
|
137
|
+
};
|
|
138
|
+
walk(before, after, "");
|
|
139
|
+
return changes.filter((item) => item.length <= 240);
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=presence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence.js","sourceRoot":"","sources":["../src/presence.ts"],"names":[],"mappings":"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"}
|
package/dist/scenario.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
export type ProbeSetup = Record<string, string | number | boolean>;
|
|
1
2
|
export type DriveStep = {
|
|
2
|
-
op: "set" | "fire" | "press" | "tap" | "drag" | "play" | "pause" | "seek" | "reset" | "wait" | "assert" | "capture";
|
|
3
|
+
op: "set" | "fire" | "press" | "tap" | "drag" | "play" | "pause" | "seek" | "step" | "reset" | "restart" | "previewState" | "select" | "wait" | "assert" | "capture";
|
|
3
4
|
target?: string;
|
|
4
5
|
value?: string | number | boolean;
|
|
6
|
+
/** Synthetic declared-variable values applied before a `previewState`. */
|
|
7
|
+
setup?: ProbeSetup;
|
|
5
8
|
path?: string;
|
|
6
9
|
equals?: string | number | boolean | null;
|
|
7
10
|
between?: [number, number];
|
|
@@ -12,8 +15,37 @@ export type DriveScenario = {
|
|
|
12
15
|
version: 1;
|
|
13
16
|
steps: DriveStep[];
|
|
14
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* Domains of the shared `kheleshikhi.studio-observation.v2` contract. The
|
|
20
|
+
* human Observatory renders the same map, so a path here names exactly what
|
|
21
|
+
* the Maker sees.
|
|
22
|
+
*/
|
|
23
|
+
export declare const SHARED_OBSERVATION_ROOTS: string[];
|
|
15
24
|
export declare function parseScenario(value: unknown): DriveScenario;
|
|
16
25
|
export declare function validObservationPath(path: string): boolean;
|
|
17
26
|
export declare function observedValue(observation: Record<string, unknown>, path: string): unknown;
|
|
18
27
|
export declare function matchesObservation(observation: Record<string, unknown>, step: DriveStep): boolean;
|
|
19
28
|
export declare function isDriveCommand(step: DriveStep): boolean;
|
|
29
|
+
export type ExperienceStep = Omit<DriveStep, "op"> & {
|
|
30
|
+
op: "fire" | "fireSceneEvent" | "fireCue" | "press" | "previewState" | "select" | "play" | "pause" | "seek" | "restart" | "wait" | "assert" | "capture";
|
|
31
|
+
};
|
|
32
|
+
export type ExperienceScenario = {
|
|
33
|
+
version: 1;
|
|
34
|
+
steps: ExperienceStep[];
|
|
35
|
+
};
|
|
36
|
+
export declare function parseExperienceScenario(value: unknown): ExperienceScenario;
|
|
37
|
+
export declare function validExperiencePath(path: string): boolean;
|
|
38
|
+
export declare function matchesExperienceObservation(observation: Record<string, unknown>, step: ExperienceStep): boolean;
|
|
39
|
+
export declare function isExperienceCommand(step: ExperienceStep): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Probe or journey. A journey starts from the real initial condition and uses
|
|
42
|
+
* only learner-reachable actions; anything that jumped, fired a hidden event,
|
|
43
|
+
* seeked, or applied synthetic setup is a probe, and so is any run whose
|
|
44
|
+
* shared observation reported `probe.active` at any point. Probe evidence is
|
|
45
|
+
* development evidence; it never proves a learner can reach the result.
|
|
46
|
+
*/
|
|
47
|
+
export declare function evidenceMode(kind: "scene" | "experience", steps: Array<{
|
|
48
|
+
op: string;
|
|
49
|
+
}>, observations: Array<Record<string, unknown> | undefined>): "probe" | "journey";
|
|
50
|
+
/** A bounded, secret-free summary of one drive step for the activity feed. */
|
|
51
|
+
export declare function stepSummary(step: DriveStep | ExperienceStep, ok: boolean, actual?: unknown): Record<string, unknown>;
|