@ouispec/cli 0.1.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 (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +112 -0
  3. package/dist/analyze.d.ts +282 -0
  4. package/dist/analyze.d.ts.map +1 -0
  5. package/dist/analyze.js +1421 -0
  6. package/dist/analyze.js.map +1 -0
  7. package/dist/assemble.d.ts +50 -0
  8. package/dist/assemble.d.ts.map +1 -0
  9. package/dist/assemble.js +555 -0
  10. package/dist/assemble.js.map +1 -0
  11. package/dist/cli.d.ts +12 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +54 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/config.d.ts +54 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +126 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/contract.d.ts +10 -0
  20. package/dist/contract.d.ts.map +1 -0
  21. package/dist/contract.js +15 -0
  22. package/dist/contract.js.map +1 -0
  23. package/dist/generate.d.ts +49 -0
  24. package/dist/generate.d.ts.map +1 -0
  25. package/dist/generate.js +178 -0
  26. package/dist/generate.js.map +1 -0
  27. package/dist/index.d.ts +9 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +8 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/inputs.d.ts +134 -0
  32. package/dist/inputs.d.ts.map +1 -0
  33. package/dist/inputs.js +705 -0
  34. package/dist/inputs.js.map +1 -0
  35. package/dist/knowledge.d.ts +19 -0
  36. package/dist/knowledge.d.ts.map +1 -0
  37. package/dist/knowledge.js +366 -0
  38. package/dist/knowledge.js.map +1 -0
  39. package/dist/program.d.ts +60 -0
  40. package/dist/program.d.ts.map +1 -0
  41. package/dist/program.js +302 -0
  42. package/dist/program.js.map +1 -0
  43. package/dist/recipes.d.ts +17 -0
  44. package/dist/recipes.d.ts.map +1 -0
  45. package/dist/recipes.js +48 -0
  46. package/dist/recipes.js.map +1 -0
  47. package/dist/tier2.d.ts +74 -0
  48. package/dist/tier2.d.ts.map +1 -0
  49. package/dist/tier2.js +303 -0
  50. package/dist/tier2.js.map +1 -0
  51. package/package.json +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The knowledge generated from the same declarations as the surfaces
3
+ * (ADR-0220 §2.5): what each page offers, how to reach it, its parameters,
4
+ * the relationships its types imply, and the task recipes the UI implies.
5
+ *
6
+ * The recipe templates below are the only prose written here. They are
7
+ * generic — none names a feature — and each is instantiated only from what
8
+ * the declarations say. A task only a room knows is a recipe the room
9
+ * declares; none is inferred from what its entries are called.
10
+ */
11
+ import { type KnowledgeEntry, type ManifestSurface, type PageKnowledge, type RoomCatalogData } from '@ouispec/bindings';
12
+ import { type PageMeta } from './assemble.js';
13
+ import type { ApiOperation, NavEntry } from './inputs.js';
14
+ export declare function generateKnowledge(surfaces: readonly ManifestSurface[], pages: readonly PageMeta[], frames: readonly PageMeta[], catalogs: readonly RoomCatalogData[], nav: readonly NavEntry[], api: ReadonlyMap<string, ApiOperation>): {
15
+ overview: KnowledgeEntry;
16
+ pages: PageKnowledge[];
17
+ frames?: PageKnowledge[];
18
+ };
19
+ //# sourceMappingURL=knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAQL,KAAK,cAAc,EAGnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAElB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK1D,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,GAAG,EAAE,SAAS,QAAQ,EAAE,EACxB,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;CAAE,CAkEhF"}
@@ -0,0 +1,366 @@
1
+ /**
2
+ * The knowledge generated from the same declarations as the surfaces
3
+ * (ADR-0220 §2.5): what each page offers, how to reach it, its parameters,
4
+ * the relationships its types imply, and the task recipes the UI implies.
5
+ *
6
+ * The recipe templates below are the only prose written here. They are
7
+ * generic — none names a feature — and each is instantiated only from what
8
+ * the declarations say. A task only a room knows is a recipe the room
9
+ * declares; none is inferred from what its entries are called.
10
+ */
11
+ import { isKeyframeable, NAVIGATE_ACTION_ID, PROBLEMS_OBSERVATION_ID, ROOM_RUN_COMMAND_ID, ROOM_SET_PROPERTIES_ID, toolName, } from '@ouispec/bindings';
12
+ import { describeStep } from './assemble.js';
13
+ import { resolveRecipe, roomToolName } from './recipes.js';
14
+ const CREATE_VERB = /^(add|create|draw|new|place|insert|make)\b/i;
15
+ export function generateKnowledge(surfaces, pages, frames, catalogs, nav, api) {
16
+ const byId = new Map(surfaces.map(s => [s.id, s]));
17
+ const byRoom = new Map(catalogs.map(c => [`room:${c.room}`, c]));
18
+ // Which pages lead to which, from navigate effects.
19
+ const leadsTo = new Map();
20
+ for (const page of pages) {
21
+ const actions = [page.surface, ...page.shared].flatMap(id => byId.get(id)?.actions ?? []);
22
+ for (const a of actions) {
23
+ if (a.effect && typeof a.effect === 'object' && a.effect.kind === 'navigate') {
24
+ const target = pageForRoute(pages, a.effect.to);
25
+ if (target && target.surface !== page.surface) {
26
+ const set = leadsTo.get(page.surface) ?? new Set();
27
+ set.add(target.surface);
28
+ leadsTo.set(page.surface, set);
29
+ }
30
+ }
31
+ }
32
+ }
33
+ const overview = overviewEntry(pages, nav);
34
+ const out = pages.map(page => {
35
+ const own = byId.get(page.surface);
36
+ const shared = page.shared.map(id => byId.get(id)).filter(Boolean);
37
+ const rooms = page.rooms
38
+ .map(id => ({ surface: byId.get(id), catalog: byRoom.get(id) }))
39
+ .filter(r => r.surface && r.catalog);
40
+ // A shared control is where this page puts it: its tab and opener here.
41
+ const controls = [own, ...shared].flatMap(s => s.actions.map(a => (page.sharedReach[a.name] ? { ...a, reach: page.sharedReach[a.name] } : a)));
42
+ const adjacent = new Set(leadsTo.get(page.surface) ?? []);
43
+ for (const [from, to] of leadsTo)
44
+ if (to.has(page.surface))
45
+ adjacent.add(from);
46
+ return {
47
+ surface: page.surface,
48
+ routes: page.routes,
49
+ summary: {
50
+ title: page.title,
51
+ content: `${page.title} (${page.routes.join(', ')})${page.nav ? `, in the sidebar under ${page.nav}` : ''}: ${firstSentence(page.description)}`,
52
+ },
53
+ detail: {
54
+ title: `${page.title} (${page.routes.join(', ')})`,
55
+ content: detail(page, controls, rooms, api),
56
+ },
57
+ relationships: relationships(page, controls, rooms, pages, api),
58
+ recipes: recipes(page, controls, rooms),
59
+ adjacent: [...adjacent].sort(),
60
+ };
61
+ });
62
+ // The frame: what it offers and where, on every page it frames. No recipes of
63
+ // its own: its controls take part in the pages' tasks.
64
+ const frameKnowledge = frames.map(frame => {
65
+ const own = byId.get(frame.surface);
66
+ const controls = own ? [...own.actions] : [];
67
+ return {
68
+ surface: frame.surface,
69
+ routes: frame.routes,
70
+ summary: { title: frame.title, content: `${frame.title}: ${firstSentence(frame.description)}` },
71
+ detail: { title: frame.title, content: detail(frame, controls, [], api) },
72
+ relationships: null,
73
+ recipes: [],
74
+ adjacent: [],
75
+ };
76
+ });
77
+ return frameKnowledge.length ? { overview, pages: out, frames: frameKnowledge } : { overview, pages: out };
78
+ }
79
+ function pageForRoute(pages, to) {
80
+ return (pages.find(p => p.routes.includes(to)) ?? pages.find(p => p.routes.some(r => routeRegex(r).test(to))));
81
+ }
82
+ function routeRegex(pattern) {
83
+ return new RegExp(`^${pattern
84
+ .split('/')
85
+ .map(s => (s.startsWith(':') ? '[^/]+' : s))
86
+ .join('/')}$`);
87
+ }
88
+ function overviewEntry(pages, nav) {
89
+ const lines = [];
90
+ const groups = [...new Set(nav.map(n => n.group))];
91
+ for (const group of groups) {
92
+ const entries = nav.filter(n => n.group === group);
93
+ lines.push(group ? `${group}:` : 'Main:');
94
+ for (const n of entries) {
95
+ const page = pages.find(p => p.routes.includes(n.route));
96
+ lines.push(`- ${n.label} (${n.route})${page ? ` — ${firstSentence(page.description)}` : ''}`);
97
+ }
98
+ }
99
+ const unlisted = pages.filter(p => !nav.some(n => p.routes.includes(n.route))).length;
100
+ lines.push(`${unlisted} more pages are reached from these or by address; the page you are on is described in full below, and moving to another page gives you its tools.`, `Go to any page by its address with [${toolName(NAVIGATE_ACTION_ID)}]; its path lists every page.`);
101
+ return { title: 'The app’s pages', content: lines.join('\n') };
102
+ }
103
+ function detail(page, controls, rooms, api) {
104
+ const lines = [page.description];
105
+ lines.push(page.surface.startsWith('shell:')
106
+ ? 'Where: the app’s frame, whatever page is open.'
107
+ : page.nav
108
+ ? `Where: the sidebar, ${page.nav}.`
109
+ : `Where: reached by address (${page.routes.join(', ')}) or from another page.`);
110
+ if (controls.length) {
111
+ lines.push('', 'What you can do here (tool in brackets):');
112
+ const groups = new Map();
113
+ for (const a of controls) {
114
+ const where = a.reach.slice(1).map(describeStep).join(', ') || 'on the page';
115
+ groups.set(where, [...(groups.get(where) ?? []), a]);
116
+ }
117
+ for (const [where, actions] of [...groups.entries()].sort(([a], [b]) => a === 'on the page' ? -1 : b === 'on the page' ? 1 : a.localeCompare(b))) {
118
+ lines.push(`${where[0].toUpperCase()}${where.slice(1)}:`);
119
+ // A control on the page itself is a tool the PA holds, with its description
120
+ // and schema; one behind a tab, dialog or panel is not a tool until it is
121
+ // opened, so the knowledge is where the PA learns what it does.
122
+ for (const a of actions) {
123
+ const hidden = a.reach.some(step => step.kind !== 'route');
124
+ lines.push(hidden
125
+ ? `- ${a.title} [${a.name}]: ${bindingDescription(a)}${params(a.input)}${effectNote(a, api)}`
126
+ : `- ${a.title} [${a.name}]${effectNote(a, api)}`);
127
+ }
128
+ }
129
+ }
130
+ if (page.shown.length) {
131
+ lines.push('', 'What it shows (read it in its state, under shown, by id):');
132
+ for (const d of page.shown) {
133
+ const where = d.reach.slice(1).map(describeStep).join(', ');
134
+ const labels = d.labels.length ? ` (${d.labels.join(', ')})` : '';
135
+ lines.push(`- ${d.title}${labels} [${d.id}]: ${d.description}${where ? `; ${where}` : ''}`);
136
+ }
137
+ }
138
+ for (const { surface, catalog } of rooms) {
139
+ lines.push('', `${catalog.title} (on this page): ${catalog.description}`);
140
+ const actions = catalog.actions.filter(a => a.id !== ROOM_SET_PROPERTIES_ID && a.id !== ROOM_RUN_COMMAND_ID);
141
+ if (actions.length) {
142
+ lines.push('Actions:');
143
+ for (const a of actions) {
144
+ // The room's actions are tools whenever the room is open; their meaning
145
+ // and input are in the tool. Knowledge says where a person does each.
146
+ lines.push(`- ${a.title} [${roomToolName(catalog.room, a.id)}]: ${a.control}${a.destructive ? ' (confirm first)' : ''}`);
147
+ }
148
+ }
149
+ if (catalog.fields.length) {
150
+ lines.push(`Fields, set with [${roomToolName(catalog.room, ROOM_SET_PROPERTIES_ID)}] under values, by id (each one's meaning, range and unit are in that tool's input):`);
151
+ // Where each field is, grouped by the section a person finds it in. What
152
+ // a field means and takes is in the tool's schema; repeating it here
153
+ // would spend the context budget twice (ADR-0167).
154
+ const sections = [...new Set(catalog.fields.map(f => f.section.title))];
155
+ for (const section of sections) {
156
+ const fields = catalog.fields.filter(x => x.section.title === section);
157
+ lines.push(`- ${section}: ${fields.map(f => `${f.title} (${f.id})`).join(', ')}`);
158
+ }
159
+ }
160
+ const available = catalog.commands.filter(c => c.status === 'available');
161
+ if (available.length) {
162
+ lines.push(`Commands, run with [${roomToolName(catalog.room, ROOM_RUN_COMMAND_ID)}] (what each does is in that tool's input):`);
163
+ const groups = [...new Set(available.map(c => c.group))];
164
+ for (const group of groups) {
165
+ const commands = available.filter(c => c.group === group);
166
+ lines.push(`- ${group}: ${commands.map(c => `${c.title} (${c.id}${c.keys.length ? `, ${c.keys.join(' / ')}` : ''})`).join('; ')}`);
167
+ }
168
+ }
169
+ const reserved = catalog.commands.filter(c => c.status === 'reserved');
170
+ if (reserved.length)
171
+ lines.push(`Not built yet (their keys do nothing): ${reserved.map(c => c.title).join(', ')}.`);
172
+ lines.push(`What it reports: ${surface.observations.map(o => `${o.id} — ${o.description}`).join(' ')}`);
173
+ }
174
+ lines.push('', `What the page reports: state (its fields, lists and unavailable controls) and ${PROBLEMS_OBSERVATION_ID}.`);
175
+ return lines.join('\n');
176
+ }
177
+ function bindingDescription(a) {
178
+ // The tool description starts with the verb and title; knowledge lists the title already.
179
+ const i = a.description.indexOf('": ');
180
+ const text = i === -1 ? a.description : a.description.slice(i + 3);
181
+ return text.split(' It is ')[0].split(' It goes to ')[0].split(' It saves through ')[0];
182
+ }
183
+ function effectNote(a, api) {
184
+ const e = a.effect;
185
+ const notes = [];
186
+ if (a.itemized)
187
+ notes.push('one per row');
188
+ if (a.destructive || a.confirm)
189
+ notes.push('confirm first');
190
+ if (e && typeof e === 'object') {
191
+ if (e.kind === 'navigate')
192
+ notes.push(`goes to ${e.to}`);
193
+ if (e.kind === 'mutate')
194
+ notes.push(`saves through ${e.operation}${api.get(e.operation) ? ` (${api.get(e.operation).method} ${api.get(e.operation).url})` : ''}`);
195
+ if (e.kind === 'open')
196
+ notes.push(`opens ${e.container}`);
197
+ if (e.kind === 'transaction') {
198
+ const op = e.operation ? api.get(e.operation) : undefined;
199
+ notes.push(`irreversible: needs the person’s approval${e.operation ? `; through ${e.operation}${op ? ` (${op.method} ${op.url})` : ''}` : ''}`);
200
+ }
201
+ }
202
+ return notes.length ? ` (${notes.join('; ')})` : '';
203
+ }
204
+ function params(input) {
205
+ const props = Object.entries(input.properties ?? {});
206
+ if (!props.length)
207
+ return '';
208
+ return ` Takes ${props.map(([k, v]) => `${k}: ${valueSummary(v)}`).join('; ')}.`;
209
+ }
210
+ function valueSummary(s) {
211
+ if (s.anyOf)
212
+ return s.anyOf.map(valueSummary).join(' or ');
213
+ const type = Array.isArray(s.type) ? s.type.join(' or ') : (s.type ?? 'value');
214
+ const parts = [type];
215
+ if (s.minimum !== undefined || s.maximum !== undefined)
216
+ parts.push(`${s.minimum ?? '…'} to ${s.maximum ?? '…'}`);
217
+ if (s['x-unit'])
218
+ parts.push(s['x-unit']);
219
+ if (s.enum)
220
+ parts.push(`one of ${s.enum
221
+ .slice(0, 20)
222
+ .map(v => JSON.stringify(v))
223
+ .join(', ')}${s.enum.length > 20 ? ', …' : ''}`);
224
+ return parts.join(' ');
225
+ }
226
+ function relationships(page, controls, rooms, pages, api) {
227
+ const lines = [];
228
+ for (const { catalog } of rooms) {
229
+ const kinds = [...new Set(catalog.fields.flatMap(f => f.appliesTo))].sort();
230
+ for (const kind of kinds) {
231
+ const fields = catalog.fields.filter(f => f.appliesTo.includes(kind));
232
+ lines.push(`In the ${catalog.title}, ${kind} accepts: ${fields.map(f => `${f.title} (${f.id})`).join(', ')}.`);
233
+ }
234
+ const keyframeable = catalog.fields.filter(isKeyframeable);
235
+ if (keyframeable.length) {
236
+ lines.push(`Keyframeable (set at the playhead, a keyframe there when animated): ${keyframeable.map(f => f.title).join(', ')}.`);
237
+ }
238
+ const creators = catalog.actions.filter(a => a.effect === 'edit' && CREATE_VERB.test(a.title));
239
+ if (creators.length)
240
+ lines.push(`These make something new and select it: ${creators.map(a => a.title).join(', ')}.`);
241
+ const selectors = catalog.actions.filter(a => a.effect === 'selection');
242
+ if (selectors.length)
243
+ lines.push(`These change what is selected, which fields act on: ${selectors.map(a => a.title).join(', ')}.`);
244
+ }
245
+ for (const a of controls) {
246
+ const e = a.effect;
247
+ if (e && typeof e === 'object' && e.kind === 'navigate') {
248
+ const target = pageForRoute(pages, e.to);
249
+ lines.push(`${a.title} [${a.name}] leads to ${target ? target.title : e.to} (${e.to}).`);
250
+ }
251
+ if (e && typeof e === 'object' && e.kind === 'mutate') {
252
+ const op = api.get(e.operation);
253
+ lines.push(`${a.title} [${a.name}] changes data: ${e.operation}${op ? ` — ${op.method} ${op.url}${op.summary ? `, ${op.summary}` : ''}` : ''}.`);
254
+ }
255
+ }
256
+ if (!lines.length)
257
+ return null;
258
+ return { title: `${page.title}: how things relate`, content: lines.join('\n') };
259
+ }
260
+ function recipes(page, controls, rooms) {
261
+ const out = [];
262
+ const verify = `Read the page's state and ${PROBLEMS_OBSERVATION_ID} in the result, and tell the user only what they confirm.`;
263
+ // Fill and submit: each dialog with controls inside it.
264
+ const dialogs = new Map();
265
+ for (const a of controls) {
266
+ const i = a.reach.findIndex(s => s.kind === 'dialog');
267
+ if (i === -1)
268
+ continue;
269
+ const step = a.reach[i];
270
+ const key = `${step.title}|${step.binding ?? ''}`;
271
+ const entry = dialogs.get(key) ?? { step, actions: [], before: a.reach.slice(1, i) };
272
+ entry.actions.push(a);
273
+ dialogs.set(key, entry);
274
+ }
275
+ for (const { step, actions, before: inside } of dialogs.values()) {
276
+ // Be where its opener is: the dialog may be mounted anywhere on the page.
277
+ const opener = controls.find(c => step.openedBy.includes(c.id));
278
+ const before = opener ? opener.reach.slice(1) : inside;
279
+ const fields = actions.filter(a => a.control && a.control !== 'button' && a.control !== 'dialog');
280
+ const buttons = actions.filter(a => a.control === 'button');
281
+ const finish = buttons.filter(a => a.effect && typeof a.effect === 'object' && a.effect.kind === 'mutate');
282
+ out.push({
283
+ name: `Use the "${step.title}" dialog`,
284
+ trigger: `Anything done in the "${step.title}" dialog on ${page.title}`,
285
+ steps: [
286
+ ...before.map(s => `Be ${describeStep(s)}.`),
287
+ step.openedBy.length
288
+ ? `Open it with ${step.openedBy.map(toolName).join(' or ')}.`
289
+ : 'Open it from the page.',
290
+ ...(fields.length
291
+ ? [`Set what it asks for: ${fields.map(f => `${f.title} [${f.name}]`).join(', ')}.`]
292
+ : []),
293
+ ...((finish.length ? finish : buttons).length
294
+ ? [
295
+ `Finish with ${(finish.length ? finish : buttons).map(b => `${b.title} [${b.name}]`).join(' or ')}.`,
296
+ ]
297
+ : []),
298
+ verify,
299
+ ],
300
+ });
301
+ }
302
+ // Act on a row.
303
+ const rowed = controls.filter(a => a.itemized);
304
+ if (rowed.length) {
305
+ out.push({
306
+ name: `Act on one row on ${page.title}`,
307
+ trigger: `Doing something to one listed item on ${page.title}`,
308
+ steps: [
309
+ `Find the row in the page state's lists: its key (id) and title.`,
310
+ `Call the row's tool with it as item: ${[...new Set(rowed.map(a => `${a.title} [${a.name}]`))].join(', ')}.`,
311
+ verify,
312
+ ],
313
+ });
314
+ }
315
+ for (const { catalog } of rooms) {
316
+ const doc = catalog.observations.find(o => o.id !== PROBLEMS_OBSERVATION_ID);
317
+ const selectors = catalog.actions.filter(a => a.effect === 'selection');
318
+ const setFields = roomToolName(catalog.room, ROOM_SET_PROPERTIES_ID);
319
+ const roomVerify = `Read ${doc ? doc.id : 'the room’s observations'} and ${PROBLEMS_OBSERVATION_ID}; if something is not drawn, fix that before saying it is done.`;
320
+ if (catalog.fields.length && selectors.length) {
321
+ out.push({
322
+ name: `Change a property in the ${catalog.title}`,
323
+ trigger: `Changing how something already in the ${catalog.title} looks`,
324
+ steps: [
325
+ `Find its id in ${doc ? doc.id : 'the room’s observation'}.`,
326
+ `Select it with ${selectors.map(a => roomToolName(catalog.room, a.id)).join(' or ')}.`,
327
+ `Set the fields that apply to its kind with ${setFields}, giving their ids under values (the relationships say which).`,
328
+ roomVerify,
329
+ ],
330
+ });
331
+ }
332
+ for (const creator of catalog.actions.filter(a => a.effect === 'edit' && CREATE_VERB.test(a.title))) {
333
+ out.push({
334
+ name: `${creator.title} and style it`,
335
+ trigger: `Making something new with ${creator.title} in the ${catalog.title}`,
336
+ steps: [
337
+ `Make it with ${roomToolName(catalog.room, creator.id)}; the result names it and it is selected.`,
338
+ ...(catalog.fields.length
339
+ ? [`Style it with ${setFields}, using the fields that apply to what it made.`]
340
+ : []),
341
+ roomVerify,
342
+ ],
343
+ });
344
+ }
345
+ // Tasks only the room knows, as it declares them.
346
+ for (const declared of catalog.recipes ?? []) {
347
+ const { recipe } = resolveRecipe(catalog, declared);
348
+ out.push({ ...recipe, steps: [...recipe.steps, roomVerify] });
349
+ }
350
+ out.push({
351
+ name: `Fix what the ${catalog.title} reports`,
352
+ trigger: `${PROBLEMS_OBSERVATION_ID} lists anything, or the user cannot see something`,
353
+ steps: [
354
+ `Read ${PROBLEMS_OBSERVATION_ID}: each says what is wrong, what it hides, and which action resolves it.`,
355
+ 'Resolve each with the action it names, using one of the choices it offers.',
356
+ roomVerify,
357
+ ],
358
+ });
359
+ }
360
+ return out;
361
+ }
362
+ function firstSentence(text) {
363
+ const m = /^(.+?[.!?])(\s|$)/.exec(text.trim());
364
+ return m ? m[1] : text.trim();
365
+ }
366
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * The app's source as the TypeScript compiler sees it, and what can be read
3
+ * from it without running it: literals, constants, JSX text.
4
+ */
5
+ import ts from 'typescript';
6
+ export interface Source {
7
+ program: ts.Program;
8
+ checker: ts.TypeChecker;
9
+ root: string;
10
+ /** Whether a file is the app's own source (not a declaration, not a dependency). */
11
+ isAppFile(file: ts.SourceFile): boolean;
12
+ /** A file's path relative to the app root, for messages and `declaredIn`. */
13
+ rel(file: ts.SourceFile | string): string;
14
+ }
15
+ /**
16
+ * The app's program. `overlay` holds files the generator is about to emit (a
17
+ * tier 2 bound module), by absolute path: the program reads them as written
18
+ * now, not as they are on disk, so a page's imports of them resolve and type
19
+ * against the output of this run, in `--check` too.
20
+ */
21
+ export declare function loadSource(root: string, tsconfig: string, rootNames?: readonly string[], overlay?: ReadonlyMap<string, string>): Source;
22
+ /** A value that cannot be known without running the app. */
23
+ export declare const UNKNOWN: unique symbol;
24
+ export type Evaluated = unknown | typeof UNKNOWN;
25
+ /** Strip `as`, `satisfies`, `!` and parentheses. */
26
+ export declare function unwrap(expr: ts.Expression): ts.Expression;
27
+ /** The declaration a symbol finally stands for, through imports and re-exports. */
28
+ export declare function resolveSymbol(checker: ts.TypeChecker, node: ts.Node): ts.Symbol | undefined;
29
+ /** The initializer of the constant an identifier names, if it is one. */
30
+ export declare function constInitializer(checker: ts.TypeChecker, id: ts.Identifier): ts.Expression | undefined;
31
+ /**
32
+ * The value an expression has without running anything: literals, arrays and
33
+ * objects of them, constants (imported ones too), properties of constant
34
+ * objects, arithmetic on known numbers, and strings built only from those — a template literal or a `+`
35
+ * whose every part is itself known. Anything else, a call above all, is
36
+ * `UNKNOWN` (inside objects and arrays too, so a partly-known value keeps what
37
+ * is known). A text written once as a constant can so be a binding's
38
+ * description without being copied into it.
39
+ */
40
+ export declare function evaluate(checker: ts.TypeChecker, expr: ts.Expression | undefined, depth?: number): Evaluated;
41
+ export declare function propertyName(name: ts.PropertyName): string | null;
42
+ /** An object literal's property, by name. */
43
+ export declare function objectProperty(obj: ts.ObjectLiteralExpression, name: string): ts.Expression | undefined;
44
+ export type JsxOpening = ts.JsxOpeningElement | ts.JsxSelfClosingElement;
45
+ /** A JSX element's attribute expression (`true` for a bare attribute), by name. */
46
+ export declare function jsxAttribute(el: JsxOpening, name: string): ts.Expression | true | undefined;
47
+ export declare function hasJsxAttribute(el: JsxOpening, name: string): boolean;
48
+ /**
49
+ * The label a JSX element's own children show: its direct text, and for an
50
+ * expression that is not static (`{busy ? 'Saving…' : 'Save'}`) its resting
51
+ * label, the last alternative. Nested elements (icons, badges) are not read:
52
+ * their text is not the control's name.
53
+ */
54
+ export declare function jsxText(checker: ts.TypeChecker, node: ts.Node): string;
55
+ /** `voices.detail.preview-save-sound` → `Preview save sound`: a name when the code gives none. */
56
+ export declare function humanizeId(id: string): string;
57
+ /** Every string literal in an expression: the words a conditional title or description can show. */
58
+ export declare function stringLiterals(expr: ts.Node | undefined): string[];
59
+ export declare function isComparison(kind: ts.SyntaxKind): boolean;
60
+ //# sourceMappingURL=program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IACpB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;IACxC,6EAA6E;IAC7E,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,GAC/C,MAAM,CAmCR;AAED,4DAA4D;AAC5D,eAAO,MAAM,OAAO,EAAE,OAAO,MAA0B,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,OAAO,CAAC;AAEjD,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAYzD;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,SAAS,CAI3F;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,SAAS,CAQtG;AASD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,SAAI,GAAG,SAAS,CAgFvG;AAkBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,GAAG,MAAM,GAAG,IAAI,CAGjE;AAED,6CAA6C;AAC7C,wBAAgB,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,uBAAuB,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,GAAG,SAAS,CAMvG;AAED,MAAM,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,GAAG,EAAE,CAAC,qBAAqB,CAAC;AAEzE,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAU3F;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAetE;AAED,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQ7C;AAED,oGAAoG;AACpG,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAalE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,OAAO,CAOzD"}