@ouispec/agent-worker 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/approvals/continuation.d.ts +14 -1
  2. package/dist/approvals/continuation.d.ts.map +1 -1
  3. package/dist/approvals/continuation.js +12 -2
  4. package/dist/approvals/continuation.js.map +1 -1
  5. package/dist/index.d.ts +6 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/orchestrator.d.ts.map +1 -1
  10. package/dist/orchestrator.js +383 -128
  11. package/dist/orchestrator.js.map +1 -1
  12. package/dist/prompt/clock.d.ts +34 -0
  13. package/dist/prompt/clock.d.ts.map +1 -0
  14. package/dist/prompt/clock.js +63 -0
  15. package/dist/prompt/clock.js.map +1 -0
  16. package/dist/prompt/rules/ui-control.d.ts +3 -3
  17. package/dist/prompt/rules/ui-control.d.ts.map +1 -1
  18. package/dist/prompt/rules/ui-control.js +45 -22
  19. package/dist/prompt/rules/ui-control.js.map +1 -1
  20. package/dist/runtime/turn-runner.d.ts.map +1 -1
  21. package/dist/runtime/turn-runner.js +3 -1
  22. package/dist/runtime/turn-runner.js.map +1 -1
  23. package/dist/runtime/types.d.ts +5 -3
  24. package/dist/runtime/types.d.ts.map +1 -1
  25. package/dist/tools/builtin-tools.js +11 -4
  26. package/dist/tools/builtin-tools.js.map +1 -1
  27. package/dist/tools/types.d.ts +17 -0
  28. package/dist/tools/types.d.ts.map +1 -1
  29. package/dist/tools/types.js.map +1 -1
  30. package/dist/turn-ledger.d.ts +30 -0
  31. package/dist/turn-ledger.d.ts.map +1 -0
  32. package/dist/turn-ledger.js +45 -0
  33. package/dist/turn-ledger.js.map +1 -0
  34. package/dist/types.d.ts +9 -2
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/ui/answer-image.d.ts +32 -0
  37. package/dist/ui/answer-image.d.ts.map +1 -0
  38. package/dist/ui/answer-image.js +50 -0
  39. package/dist/ui/answer-image.js.map +1 -0
  40. package/dist/ui/observations.d.ts +29 -5
  41. package/dist/ui/observations.d.ts.map +1 -1
  42. package/dist/ui/observations.js +122 -46
  43. package/dist/ui/observations.js.map +1 -1
  44. package/dist/ui/outline.d.ts +49 -0
  45. package/dist/ui/outline.d.ts.map +1 -0
  46. package/dist/ui/outline.js +229 -0
  47. package/dist/ui/outline.js.map +1 -0
  48. package/dist/ui/page-index.d.ts +74 -0
  49. package/dist/ui/page-index.d.ts.map +1 -0
  50. package/dist/ui/page-index.js +137 -0
  51. package/dist/ui/page-index.js.map +1 -0
  52. package/dist/ui/snapshot.d.ts +24 -12
  53. package/dist/ui/snapshot.d.ts.map +1 -1
  54. package/dist/ui/snapshot.js +34 -39
  55. package/dist/ui/snapshot.js.map +1 -1
  56. package/dist/ui/ui-sequence.d.ts +9 -9
  57. package/dist/ui/ui-sequence.d.ts.map +1 -1
  58. package/dist/ui/ui-sequence.js +2 -2
  59. package/dist/ui/ui-sequence.js.map +1 -1
  60. package/dist/ui/ui-tools.d.ts +64 -14
  61. package/dist/ui/ui-tools.d.ts.map +1 -1
  62. package/dist/ui/ui-tools.js +466 -92
  63. package/dist/ui/ui-tools.js.map +1 -1
  64. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"observations.js","sourceRoot":"","sources":["../../src/ui/observations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observations.js","sourceRoot":"","sources":["../../src/ui/observations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * A definition the model can read (ADR-0245 §2.3).
3
+ *
4
+ * An action's input schema can be a whole catalogue: an effect action's union
5
+ * of sixty effects is 94 KB. Handed over whole it would fill the model's
6
+ * context for one call, so a schema past a size is given in outline: each
7
+ * property on a line with its type, range and unit, a nested object closed
8
+ * with its property count, a union listed by what tells its members apart. The
9
+ * model then opens the part it needs by path.
10
+ *
11
+ * Computed from the schema alone, by rule: the same schema always outlines the
12
+ * same way, and no catalogue is reshaped to fit.
13
+ */
14
+ /** A schema's JSON up to this many characters is returned whole. */
15
+ export declare const WHOLE_SCHEMA_CHARS = 4000;
16
+ type Schema = Record<string, unknown>;
17
+ /** The property every member of a union fixes to its own constant: what tells them apart. */
18
+ export declare function discriminatorOf(members: readonly Schema[]): string | null;
19
+ /**
20
+ * The schema `path` names inside `schema`, or why nothing is there.
21
+ *
22
+ * A path is steps joined by ".": a property name; `name=value` for the member
23
+ * of a union whose discriminator is that value; `#n` for a union's nth member
24
+ * (from 1) when nothing tells them apart; `[]` for a list's items.
25
+ */
26
+ export declare function schemaAt(schema: Schema, path: string): {
27
+ schema: Schema;
28
+ } | {
29
+ error: string;
30
+ };
31
+ export interface SchemaView {
32
+ /** The schema's JSON when it is small enough, else its outline. */
33
+ text: string;
34
+ /** Whether `text` is the whole schema. */
35
+ whole: boolean;
36
+ }
37
+ /**
38
+ * What an action takes, or the part of it `path` names: whole when its JSON is
39
+ * at most `maxChars` characters, otherwise in outline, saying how to open each
40
+ * part that holds more.
41
+ */
42
+ export declare function describeSchema(schema: Record<string, unknown> | undefined, options?: {
43
+ path?: string;
44
+ maxChars?: number;
45
+ }): SchemaView | {
46
+ error: string;
47
+ };
48
+ export {};
49
+ //# sourceMappingURL=outline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/ui/outline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AAMxC,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAmBtC,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAMzE;AA4DD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA0C7F;AAmDD,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC3C,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAgBhC"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * A definition the model can read (ADR-0245 §2.3).
3
+ *
4
+ * An action's input schema can be a whole catalogue: an effect action's union
5
+ * of sixty effects is 94 KB. Handed over whole it would fill the model's
6
+ * context for one call, so a schema past a size is given in outline: each
7
+ * property on a line with its type, range and unit, a nested object closed
8
+ * with its property count, a union listed by what tells its members apart. The
9
+ * model then opens the part it needs by path.
10
+ *
11
+ * Computed from the schema alone, by rule: the same schema always outlines the
12
+ * same way, and no catalogue is reshaped to fit.
13
+ */
14
+ /** A schema's JSON up to this many characters is returned whole. */
15
+ export const WHOLE_SCHEMA_CHARS = 4_000;
16
+ /** The most lines an outline lists of one object's properties or one union's members. */
17
+ const OUTLINE_ROWS = 80;
18
+ /** The longest description kept on an outline line. */
19
+ const LINE_DESCRIPTION_CHARS = 110;
20
+ const isSchema = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
21
+ const propertiesOf = (schema) => isSchema(schema.properties) ? schema.properties : {};
22
+ const unionOf = (schema) => {
23
+ const members = (schema.oneOf ?? schema.anyOf);
24
+ return Array.isArray(members) && members.length > 0 && members.every(isSchema) ? members : null;
25
+ };
26
+ /** The one value a schema allows, when it allows one. */
27
+ function constantOf(schema) {
28
+ if (!schema)
29
+ return undefined;
30
+ const c = schema.const;
31
+ if (typeof c === 'string' || typeof c === 'number' || typeof c === 'boolean')
32
+ return c;
33
+ const e = schema.enum;
34
+ return Array.isArray(e) && e.length === 1 ? e[0] : undefined;
35
+ }
36
+ /** The property every member of a union fixes to its own constant: what tells them apart. */
37
+ export function discriminatorOf(members) {
38
+ for (const name of Object.keys(propertiesOf(members[0] ?? {}))) {
39
+ const constants = members.map((m) => constantOf(propertiesOf(m)[name]));
40
+ if (constants.every((c) => c !== undefined) && new Set(constants).size === members.length)
41
+ return name;
42
+ }
43
+ return null;
44
+ }
45
+ function clip(text, max) {
46
+ const line = text.replace(/\s+/g, ' ').trim();
47
+ return line.length <= max ? line : `${line.slice(0, max - 1).trimEnd()}…`;
48
+ }
49
+ /** What a product's contract says of a value beside its type: its unit, its space, what it refers to. */
50
+ function annotations(schema) {
51
+ const notes = Object.keys(schema)
52
+ .filter((k) => k.startsWith('x-') && ['string', 'number', 'boolean'].includes(typeof schema[k]))
53
+ .sort()
54
+ .map((k) => `${k.slice(2)}: ${String(schema[k])}`);
55
+ return notes.length ? ` [${notes.join(', ')}]` : '';
56
+ }
57
+ /** A value's type in a few words. */
58
+ function typeLine(schema) {
59
+ const constant = constantOf(schema);
60
+ if (constant !== undefined && !Array.isArray(schema.enum))
61
+ return JSON.stringify(constant);
62
+ if (Array.isArray(schema.enum)) {
63
+ const values = schema.enum;
64
+ const shown = values.slice(0, 12).map((v) => JSON.stringify(v)).join(' | ');
65
+ return values.length > 12 ? `${shown} | … (${values.length} values)` : shown;
66
+ }
67
+ const union = unionOf(schema);
68
+ if (union) {
69
+ const by = discriminatorOf(union);
70
+ return `one of ${union.length}${by ? ` by ${by}` : ''}`;
71
+ }
72
+ const type = Array.isArray(schema.type) ? schema.type.join('|') : (schema.type ?? '');
73
+ if (type === 'number' || type === 'integer') {
74
+ const { minimum: min, maximum: max } = schema;
75
+ const range = min !== undefined && max !== undefined ? ` ${min}–${max}` : min !== undefined ? ` ≥${min}` : max !== undefined ? ` ≤${max}` : '';
76
+ return `${type}${range}`;
77
+ }
78
+ if (type === 'string') {
79
+ const limits = [
80
+ schema.format ? `format ${String(schema.format)}` : '',
81
+ schema.maxLength !== undefined ? `≤${String(schema.maxLength)} chars` : '',
82
+ schema.pattern ? `pattern ${String(schema.pattern)}` : '',
83
+ ].filter(Boolean);
84
+ return limits.length ? `string (${limits.join(', ')})` : 'string';
85
+ }
86
+ if (type === 'array')
87
+ return isSchema(schema.items) ? `list of ${typeLine(schema.items)}` : 'list';
88
+ if (type === 'object' || isSchema(schema.properties)) {
89
+ const n = Object.keys(propertiesOf(schema)).length;
90
+ return n > 0 ? `object (${n} properties)` : 'object';
91
+ }
92
+ return type || 'any';
93
+ }
94
+ /** Whether a property's schema holds more than its line shows. */
95
+ function opens(schema) {
96
+ if (unionOf(schema))
97
+ return true;
98
+ if (Object.keys(propertiesOf(schema)).length > 0)
99
+ return true;
100
+ return isSchema(schema.items) && opens(schema.items);
101
+ }
102
+ /**
103
+ * The schema `path` names inside `schema`, or why nothing is there.
104
+ *
105
+ * A path is steps joined by ".": a property name; `name=value` for the member
106
+ * of a union whose discriminator is that value; `#n` for a union's nth member
107
+ * (from 1) when nothing tells them apart; `[]` for a list's items.
108
+ */
109
+ export function schemaAt(schema, path) {
110
+ let at = schema;
111
+ const walked = [];
112
+ for (const step of path.split('.').filter((s) => s.length > 0)) {
113
+ const here = walked.length ? `"${walked.join('.')}"` : 'the input';
114
+ const union = unionOf(at);
115
+ if (step === '[]') {
116
+ if (!isSchema(at.items))
117
+ return { error: `${here} is not a list, so it has no "[]"` };
118
+ at = at.items;
119
+ }
120
+ else if (/^#\d+$/.test(step)) {
121
+ const member = union?.[Number(step.slice(1)) - 1];
122
+ if (!member)
123
+ return { error: `${here} has no member ${step}${union ? `: it has ${union.length}` : ''}` };
124
+ at = member;
125
+ }
126
+ else if (step.includes('=')) {
127
+ const [name, ...rest] = step.split('=');
128
+ const value = rest.join('=');
129
+ const member = union?.find((m) => String(constantOf(propertiesOf(m)[name])) === value);
130
+ if (!member) {
131
+ const by = union ? discriminatorOf(union) : null;
132
+ const values = union && by ? union.map((m) => String(constantOf(propertiesOf(m)[by]))) : [];
133
+ return {
134
+ error: union
135
+ ? `${here} has no member with ${name} = "${value}"${by ? `. Its members are told apart by ${by}: ${clip(values.join(', '), 600)}` : ''}`
136
+ : `${here} is not a union, so "${step}" names nothing in it`,
137
+ };
138
+ }
139
+ at = member;
140
+ }
141
+ else {
142
+ const next = propertiesOf(at)[step];
143
+ if (!next) {
144
+ const names = Object.keys(propertiesOf(at));
145
+ return {
146
+ error: union
147
+ ? `${here} is a union: open one of its members first (${discriminatorOf(union) ?? '#n'}=…), then "${step}"`
148
+ : `${here} has no property "${step}"${names.length ? `. It has: ${clip(names.join(', '), 600)}` : ''}`,
149
+ };
150
+ }
151
+ at = next;
152
+ }
153
+ walked.push(step);
154
+ }
155
+ return { schema: at };
156
+ }
157
+ function join(path, step) {
158
+ return path ? `${path}.${step}` : step;
159
+ }
160
+ /** One property on a line: its name, whether it is required, its type, what the contract says of it, what it is. */
161
+ function propertyLine(name, schema, required, path) {
162
+ const description = typeof schema.description === 'string' ? ` — ${clip(schema.description, LINE_DESCRIPTION_CHARS)}` : '';
163
+ const more = opens(schema) ? ` (open: path "${join(path, name)}")` : '';
164
+ return `- ${name}${required ? ' (required)' : ''}: ${typeLine(schema)}${annotations(schema)}${description}${more}`;
165
+ }
166
+ /** A schema's outline: what it is, then its properties or its union's members, a line each. */
167
+ function outlineLines(schema, path) {
168
+ const lines = [];
169
+ const head = [typeLine(schema) + annotations(schema), typeof schema.description === 'string' ? clip(schema.description, 300) : '']
170
+ .filter(Boolean)
171
+ .join(' — ');
172
+ lines.push(head);
173
+ const union = unionOf(schema);
174
+ if (union) {
175
+ const by = discriminatorOf(union);
176
+ lines.push(by ? `Members, by ${by} (open one with path "${join(path, `${by}=<value>`)}"):` : `Members (open one with path "${join(path, '#<n>')}"):`);
177
+ union.slice(0, OUTLINE_ROWS).forEach((member, i) => {
178
+ const label = by ? String(constantOf(propertiesOf(member)[by])) : `#${i + 1}`;
179
+ const title = typeof member.title === 'string' ? member.title : typeof member.description === 'string' ? member.description : '';
180
+ const fields = Object.keys(propertiesOf(member)).filter((n) => n !== by);
181
+ lines.push(`- ${label}${title ? ` — ${clip(title, LINE_DESCRIPTION_CHARS)}` : ''}${fields.length ? ` (${fields.length} more fields)` : ''}`);
182
+ });
183
+ if (union.length > OUTLINE_ROWS)
184
+ lines.push(`- … and ${union.length - OUTLINE_ROWS} more`);
185
+ return lines;
186
+ }
187
+ const properties = propertiesOf(schema);
188
+ const names = Object.keys(properties);
189
+ if (names.length > 0) {
190
+ const required = new Set(Array.isArray(schema.required) ? schema.required : []);
191
+ const ordered = [...names.filter((n) => required.has(n)), ...names.filter((n) => !required.has(n))];
192
+ lines.push(`Properties (${names.length}):`);
193
+ for (const name of ordered.slice(0, OUTLINE_ROWS))
194
+ lines.push(propertyLine(name, properties[name], required.has(name), path));
195
+ if (ordered.length > OUTLINE_ROWS) {
196
+ lines.push(`- … and ${ordered.length - OUTLINE_ROWS} more: ${clip(ordered.slice(OUTLINE_ROWS).join(', '), 1_200)}`);
197
+ }
198
+ }
199
+ else if (isSchema(schema.items) && opens(schema.items)) {
200
+ lines.push(`Each item (open with path "${join(path, '[]')}"): ${typeLine(schema.items)}`);
201
+ }
202
+ return lines;
203
+ }
204
+ /**
205
+ * What an action takes, or the part of it `path` names: whole when its JSON is
206
+ * at most `maxChars` characters, otherwise in outline, saying how to open each
207
+ * part that holds more.
208
+ */
209
+ export function describeSchema(schema, options = {}) {
210
+ const maxChars = options.maxChars ?? WHOLE_SCHEMA_CHARS;
211
+ const path = options.path ?? '';
212
+ const found = schemaAt(schema ?? { type: 'object', properties: {} }, path);
213
+ if ('error' in found)
214
+ return found;
215
+ const json = JSON.stringify(found.schema);
216
+ if (json.length <= maxChars)
217
+ return { text: json, whole: true };
218
+ let lines = outlineLines(found.schema, path);
219
+ // An outline is itself held to the size: rows are dropped from the end, and said so.
220
+ let dropped = 0;
221
+ while (lines.join('\n').length > maxChars && lines.length > 3) {
222
+ lines = lines.slice(0, -1);
223
+ dropped++;
224
+ }
225
+ if (dropped > 0)
226
+ lines.push(`- … and ${dropped} more, not listed: open a part by its path to read it`);
227
+ return { text: lines.join('\n'), whole: false };
228
+ }
229
+ //# sourceMappingURL=outline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/ui/outline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * The page as the worker holds it: an index of what it offers (ADR-0245 §2.1).
3
+ *
4
+ * A client sends its surfaces in one of two forms (oui-spec §7.3.8): an index
5
+ * of its actions, or every action's definition. The worker works from the
6
+ * index either way. From definitions it derives the same index, and keeps the
7
+ * definitions to describe actions from; from an index it fetches a definition
8
+ * when one is needed.
9
+ */
10
+ import { type OUIAction, type OUIActionIndexEntry, type OUIObservation, type OUISurface, type OUISurfaceIndex } from 'oui-spec/spec';
11
+ /** One surface of the page: what it is, what it reports, and its actions in index. */
12
+ export interface PageSurface {
13
+ id: string;
14
+ name: string;
15
+ description: string;
16
+ observations?: OUIObservation[];
17
+ index: OUIActionIndexEntry[];
18
+ }
19
+ /** An action of the page, with the surface that offers it. */
20
+ export interface PageAction {
21
+ surface: PageSurface;
22
+ entry: OUIActionIndexEntry;
23
+ }
24
+ /** The key a definition is kept under: it is good until the action's definition changes. */
25
+ export declare const definitionKey: (surfaceId: string, entry: Pick<OUIActionIndexEntry, "id" | "definitionHash">) => string;
26
+ /** Definitions the worker holds, by `definitionKey`. */
27
+ export type HeldDefinitions = Map<string, OUIAction>;
28
+ /** Whether `value` is a surface in index form. */
29
+ export declare function isSurfaceIndex(value: unknown): value is OUISurfaceIndex;
30
+ /** Whether `value` is a surface with its actions' definitions. */
31
+ export declare function isFullSurface(value: unknown): value is OUISurface;
32
+ /** The page from surfaces in index form. */
33
+ export declare function pageFromIndex(index: readonly OUISurfaceIndex[]): PageSurface[];
34
+ /**
35
+ * The page from surfaces with definitions (a client on oui-spec 0.6, or one
36
+ * made to send them): the same index a client would have sent, and each
37
+ * definition kept in `held`, so describing an action needs no request.
38
+ */
39
+ export declare function pageFromSurfaces(surfaces: readonly OUISurface[], held: HeldDefinitions): PageSurface[];
40
+ /** Every action of the page. The first surface to offer an action id keeps it. */
41
+ export declare function pageActions(page: readonly PageSurface[]): {
42
+ actions: PageAction[];
43
+ collisions: Array<{
44
+ actionId: string;
45
+ keptSurface: string;
46
+ droppedSurface: string;
47
+ }>;
48
+ };
49
+ /**
50
+ * A stable fingerprint of what the page offers: its surface ids and each
51
+ * action's id and definition. Two pages with the same fingerprint offer the
52
+ * model the same index.
53
+ */
54
+ export declare function pageFingerprint(page: readonly PageSurface[]): string;
55
+ /**
56
+ * One action on a line, as the model reads the index: its id, what it does,
57
+ * what it takes, and what calling it involves.
58
+ */
59
+ export declare function indexLine(entry: OUIActionIndexEntry): string;
60
+ /** The longest the page's index is in the model's context, in characters, before surfaces are listed by name only. */
61
+ export declare const DEFAULT_INDEX_CHARS = 60000;
62
+ /**
63
+ * The page's index as the model reads it: each surface, then its actions a
64
+ * line each. Past `maxChars`, the surfaces furthest from the page (shared
65
+ * chrome before rooms and pages, as `order` gives them) are listed by their
66
+ * action ids only, and say so: every action stays findable.
67
+ */
68
+ export declare function indexText(page: readonly PageSurface[], maxChars?: number): string;
69
+ /** What an answer changed in what the page offers: the actions added, a line each, and the ids removed. */
70
+ export declare function indexDiff(before: readonly PageSurface[], after: readonly PageSurface[]): {
71
+ added: string[];
72
+ removed: string[];
73
+ };
74
+ //# sourceMappingURL=page-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-index.d.ts","sourceRoot":"","sources":["../../src/ui/page-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAgB,KAAK,SAAS,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnJ,sFAAsF;AACtF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAED,4FAA4F;AAC5F,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,EAAE,OAAO,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,gBAAgB,CAAC,KAAG,MAC/C,CAAC;AAE/D,wDAAwD;AACxD,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAcrD,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CASvE;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CASjE;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,WAAW,EAAE,CAQ9E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,EAAE,CAMtG;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,GAAG;IAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,UAAU,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAgBzK;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAEpE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAQ5D;AAED,sHAAsH;AACtH,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,EAAE,QAAQ,GAAE,MAA4B,GAAG,MAAM,CAiBtG;AAED,2GAA2G;AAC3G,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAS/H"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * The page as the worker holds it: an index of what it offers (ADR-0245 §2.1).
3
+ *
4
+ * A client sends its surfaces in one of two forms (oui-spec §7.3.8): an index
5
+ * of its actions, or every action's definition. The worker works from the
6
+ * index either way. From definitions it derives the same index, and keeps the
7
+ * definitions to describe actions from; from an index it fetches a definition
8
+ * when one is needed.
9
+ */
10
+ import { surfaceIndex } from 'oui-spec/spec';
11
+ /** The key a definition is kept under: it is good until the action's definition changes. */
12
+ export const definitionKey = (surfaceId, entry) => `${surfaceId}\u0000${entry.id}\u0000${entry.definitionHash}`;
13
+ const isRecord = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
14
+ function isIndexEntry(value) {
15
+ return (isRecord(value) &&
16
+ typeof value.id === 'string' &&
17
+ typeof value.description === 'string' &&
18
+ typeof value.input === 'string' &&
19
+ typeof value.definitionHash === 'string');
20
+ }
21
+ /** Whether `value` is a surface in index form. */
22
+ export function isSurfaceIndex(value) {
23
+ return (isRecord(value) &&
24
+ typeof value.id === 'string' &&
25
+ typeof value.name === 'string' &&
26
+ typeof value.description === 'string' &&
27
+ Array.isArray(value.index) &&
28
+ value.index.every(isIndexEntry));
29
+ }
30
+ /** Whether `value` is a surface with its actions' definitions. */
31
+ export function isFullSurface(value) {
32
+ return (isRecord(value) &&
33
+ typeof value.id === 'string' &&
34
+ typeof value.name === 'string' &&
35
+ typeof value.description === 'string' &&
36
+ Array.isArray(value.actions) &&
37
+ value.actions.every((a) => isRecord(a) && typeof a.id === 'string' && typeof a.description === 'string'));
38
+ }
39
+ /** The page from surfaces in index form. */
40
+ export function pageFromIndex(index) {
41
+ return index.map((s) => ({
42
+ id: s.id,
43
+ name: s.name,
44
+ description: s.description,
45
+ ...(s.observations ? { observations: s.observations } : {}),
46
+ index: s.index,
47
+ }));
48
+ }
49
+ /**
50
+ * The page from surfaces with definitions (a client on oui-spec 0.6, or one
51
+ * made to send them): the same index a client would have sent, and each
52
+ * definition kept in `held`, so describing an action needs no request.
53
+ */
54
+ export function pageFromSurfaces(surfaces, held) {
55
+ return surfaces.map((surface) => {
56
+ const indexed = surfaceIndex(surface);
57
+ surface.actions.forEach((action, i) => held.set(definitionKey(surface.id, indexed.index[i]), action));
58
+ return pageFromIndex([indexed])[0];
59
+ });
60
+ }
61
+ /** Every action of the page. The first surface to offer an action id keeps it. */
62
+ export function pageActions(page) {
63
+ const owner = new Map();
64
+ const actions = [];
65
+ const collisions = [];
66
+ for (const surface of page) {
67
+ for (const entry of surface.index) {
68
+ const kept = owner.get(entry.id);
69
+ if (kept !== undefined) {
70
+ collisions.push({ actionId: entry.id, keptSurface: kept, droppedSurface: surface.id });
71
+ continue;
72
+ }
73
+ owner.set(entry.id, surface.id);
74
+ actions.push({ surface, entry });
75
+ }
76
+ }
77
+ return { actions, collisions };
78
+ }
79
+ /**
80
+ * A stable fingerprint of what the page offers: its surface ids and each
81
+ * action's id and definition. Two pages with the same fingerprint offer the
82
+ * model the same index.
83
+ */
84
+ export function pageFingerprint(page) {
85
+ return page.map((s) => `${s.id}(${s.index.map((a) => `${a.id}@${a.definitionHash}`).join(',')})`).join('|');
86
+ }
87
+ /**
88
+ * One action on a line, as the model reads the index: its id, what it does,
89
+ * what it takes, and what calling it involves.
90
+ */
91
+ export function indexLine(entry) {
92
+ const marks = [
93
+ entry.effect === 'view' ? 'reads' : '',
94
+ entry.effect === 'transaction' || entry.confirm ? 'needs approval' : '',
95
+ entry.async ? `waits for its work${entry.estimatedDuration ? `, ${entry.estimatedDuration}` : ''}` : '',
96
+ ].filter(Boolean);
97
+ const takes = entry.input === 'none' ? 'takes nothing' : `takes ${entry.input}`;
98
+ return `- ${entry.id}: ${entry.description} (${takes}${marks.length ? `; ${marks.join('; ')}` : ''})`;
99
+ }
100
+ /** The longest the page's index is in the model's context, in characters, before surfaces are listed by name only. */
101
+ export const DEFAULT_INDEX_CHARS = 60_000;
102
+ /**
103
+ * The page's index as the model reads it: each surface, then its actions a
104
+ * line each. Past `maxChars`, the surfaces furthest from the page (shared
105
+ * chrome before rooms and pages, as `order` gives them) are listed by their
106
+ * action ids only, and say so: every action stays findable.
107
+ */
108
+ export function indexText(page, maxChars = DEFAULT_INDEX_CHARS) {
109
+ const full = page.map((s) => ({
110
+ surface: s,
111
+ text: [`${s.name} (${s.id}): ${s.description}`, ...s.index.map(indexLine)].join('\n'),
112
+ }));
113
+ let total = full.reduce((n, s) => n + s.text.length + 2, 0);
114
+ // Shorten from the end: a client lists the page's own surfaces first.
115
+ for (let i = full.length - 1; i >= 0 && total > maxChars; i--) {
116
+ const s = full[i].surface;
117
+ const short = [
118
+ `${s.name} (${s.id}): ${s.description}`,
119
+ `- ${s.index.length} actions, listed by id only to save room; describe one to learn what it does: ${s.index.map((a) => a.id).join(', ')}`,
120
+ ].join('\n');
121
+ total += short.length - full[i].text.length;
122
+ full[i].text = short;
123
+ }
124
+ return full.map((s) => s.text).join('\n\n');
125
+ }
126
+ /** What an answer changed in what the page offers: the actions added, a line each, and the ids removed. */
127
+ export function indexDiff(before, after) {
128
+ const was = new Map(pageActions(before).actions.map((a) => [a.entry.id, a.entry.definitionHash]));
129
+ const now = pageActions(after).actions;
130
+ const nowIds = new Set(now.map((a) => a.entry.id));
131
+ return {
132
+ // An action whose definition changed is listed again: what it takes may have.
133
+ added: now.filter((a) => was.get(a.entry.id) !== a.entry.definitionHash).map((a) => indexLine(a.entry)),
134
+ removed: [...was.keys()].filter((id) => !nowIds.has(id)),
135
+ };
136
+ }
137
+ //# sourceMappingURL=page-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-index.js","sourceRoot":"","sources":["../../src/ui/page-index.ts"],"names":[],"mappings":"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"}