hcifootprint 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 (87) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +524 -0
  3. package/dist/atom/types.d.ts +618 -0
  4. package/dist/atom/types.d.ts.map +1 -0
  5. package/dist/atom/types.js +2 -0
  6. package/dist/atom/types.js.map +1 -0
  7. package/dist/graph/builder.d.ts +31 -0
  8. package/dist/graph/builder.d.ts.map +1 -0
  9. package/dist/graph/builder.js +165 -0
  10. package/dist/graph/builder.js.map +1 -0
  11. package/dist/graph/guards.d.ts +31 -0
  12. package/dist/graph/guards.d.ts.map +1 -0
  13. package/dist/graph/guards.js +94 -0
  14. package/dist/graph/guards.js.map +1 -0
  15. package/dist/graph/skill-deps.d.ts +20 -0
  16. package/dist/graph/skill-deps.d.ts.map +1 -0
  17. package/dist/graph/skill-deps.js +15 -0
  18. package/dist/graph/skill-deps.js.map +1 -0
  19. package/dist/index.d.ts +49 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +42 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/mcp.d.ts +16 -0
  24. package/dist/mcp.d.ts.map +1 -0
  25. package/dist/mcp.js +15 -0
  26. package/dist/mcp.js.map +1 -0
  27. package/dist/presence/presence.d.ts +50 -0
  28. package/dist/presence/presence.d.ts.map +1 -0
  29. package/dist/presence/presence.js +126 -0
  30. package/dist/presence/presence.js.map +1 -0
  31. package/dist/registry/registry.d.ts +53 -0
  32. package/dist/registry/registry.d.ts.map +1 -0
  33. package/dist/registry/registry.js +76 -0
  34. package/dist/registry/registry.js.map +1 -0
  35. package/dist/serve/mcp-server.d.ts +40 -0
  36. package/dist/serve/mcp-server.d.ts.map +1 -0
  37. package/dist/serve/mcp-server.js +72 -0
  38. package/dist/serve/mcp-server.js.map +1 -0
  39. package/dist/serve/mcp.d.ts +12 -0
  40. package/dist/serve/mcp.d.ts.map +1 -0
  41. package/dist/serve/mcp.js +62 -0
  42. package/dist/serve/mcp.js.map +1 -0
  43. package/dist/serve/modes.d.ts +66 -0
  44. package/dist/serve/modes.d.ts.map +1 -0
  45. package/dist/serve/modes.js +347 -0
  46. package/dist/serve/modes.js.map +1 -0
  47. package/dist/testing/harness.d.ts +156 -0
  48. package/dist/testing/harness.d.ts.map +1 -0
  49. package/dist/testing/harness.js +416 -0
  50. package/dist/testing/harness.js.map +1 -0
  51. package/dist/testing/index.d.ts +35 -0
  52. package/dist/testing/index.d.ts.map +1 -0
  53. package/dist/testing/index.js +32 -0
  54. package/dist/testing/index.js.map +1 -0
  55. package/dist/testing/lint.d.ts +20 -0
  56. package/dist/testing/lint.d.ts.map +1 -0
  57. package/dist/testing/lint.js +18 -0
  58. package/dist/testing/lint.js.map +1 -0
  59. package/dist/testing/model/check.d.ts +30 -0
  60. package/dist/testing/model/check.d.ts.map +1 -0
  61. package/dist/testing/model/check.js +89 -0
  62. package/dist/testing/model/check.js.map +1 -0
  63. package/dist/testing/model/lint.d.ts +54 -0
  64. package/dist/testing/model/lint.d.ts.map +1 -0
  65. package/dist/testing/model/lint.js +235 -0
  66. package/dist/testing/model/lint.js.map +1 -0
  67. package/dist/testing/model/satisfiable.d.ts +25 -0
  68. package/dist/testing/model/satisfiable.d.ts.map +1 -0
  69. package/dist/testing/model/satisfiable.js +101 -0
  70. package/dist/testing/model/satisfiable.js.map +1 -0
  71. package/dist/traverse/nav-session.d.ts +108 -0
  72. package/dist/traverse/nav-session.d.ts.map +1 -0
  73. package/dist/traverse/nav-session.js +637 -0
  74. package/dist/traverse/nav-session.js.map +1 -0
  75. package/dist/traverse/session.d.ts +239 -0
  76. package/dist/traverse/session.d.ts.map +1 -0
  77. package/dist/traverse/session.js +1305 -0
  78. package/dist/traverse/session.js.map +1 -0
  79. package/dist/tree/appmap.d.ts +8 -0
  80. package/dist/tree/appmap.d.ts.map +1 -0
  81. package/dist/tree/appmap.js +259 -0
  82. package/dist/tree/appmap.js.map +1 -0
  83. package/dist/tree/types.d.ts +151 -0
  84. package/dist/tree/types.d.ts.map +1 -0
  85. package/dist/tree/types.js +2 -0
  86. package/dist/tree/types.js.map +1 -0
  87. package/package.json +90 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/traverse/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { NavigationGraph, NavigationGraphDef, NodePathsOf } from './types.js';
2
+ /**
3
+ * Compile a navigation graph. The `const` type parameter preserves the literal
4
+ * node names, so the returned graph's session methods (registerToolGroup,
5
+ * setVisible, show) accept ONLY real node paths — a typo is a compile error.
6
+ */
7
+ export declare function buildNavigationGraph<const Def extends NavigationGraphDef>(id: string, def: Def): NavigationGraph<NodePathsOf<Def>>;
8
+ //# sourceMappingURL=appmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appmap.d.ts","sourceRoot":"","sources":["../../src/tree/appmap.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAA6B,MAAM,YAAY,CAAC;AAK9G;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,GAAG,SAAS,kBAAkB,EACvE,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,GAAG,GACP,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAiPnC"}
@@ -0,0 +1,259 @@
1
+ /**
2
+ * buildNavigationGraph() — the authoring surface: one object literal, validated and
3
+ * frozen in one call (no .build()).
4
+ *
5
+ * The compiler's two jobs:
6
+ * 1. ENFORCEMENT SPINE (same philosophy as skillGraph()): every referential
7
+ * or shape mistake dies loudly here, because the runtime fails them
8
+ * silently — typos in node paths, unknown goTo pages, guard-operator
9
+ * typos, ambiguous skill-step suffixes, narrowing conflicts.
10
+ * 2. FLAT PROJECTION: the tree compiles to a Session-compatible
11
+ * SkillGraphSpec (qualified dot-path ids, composed guards, on=[page]) so
12
+ * every existing layer — frames, brief, gap ledger, MCP emission, the
13
+ * footprint trace stack — works on tree graphs unchanged. NavSession adds
14
+ * the tree semantics ON TOP of that projection.
15
+ */
16
+ import { detectSchema } from 'footprintjs';
17
+ import { SkillGraphValidationError, composeGuards, guardStateKeys, validateGuardShape } from '../graph/guards.js';
18
+ import { InteractionSession } from '../traverse/nav-session.js';
19
+ /** Segment names become path/registry/MCP identities — keep the delimiters out. */
20
+ const BAD_SEGMENT = /[.[\]#/|]/;
21
+ /**
22
+ * Compile a navigation graph. The `const` type parameter preserves the literal
23
+ * node names, so the returned graph's session methods (registerToolGroup,
24
+ * setVisible, show) accept ONLY real node paths — a typo is a compile error.
25
+ */
26
+ export function buildNavigationGraph(id, def) {
27
+ if (!id || !id.trim())
28
+ throw new SkillGraphValidationError('buildNavigationGraph(id) requires a non-empty id.');
29
+ if (!def.pages || Object.keys(def.pages).length === 0) {
30
+ throw new SkillGraphValidationError(`buildNavigationGraph '${id}' has no pages — declare at least one.`);
31
+ }
32
+ // Null-prototype containers: membership checks and lookups must never see
33
+ // Object.prototype ('toString' as a skill step would otherwise resolve to a
34
+ // FUNCTION and pass), and a page literally named '__proto__' must be a key,
35
+ // not a prototype swap.
36
+ const nodes = Object.create(null);
37
+ const toolNodes = Object.create(null);
38
+ const affordances = Object.create(null);
39
+ const pages = Object.create(null);
40
+ // -- walk the tree ---------------------------------------------------------
41
+ for (const [pageId, pageDef] of Object.entries(def.pages)) {
42
+ checkSegment(`page '${pageId}'`, pageId);
43
+ pages[pageId] = { id: pageId, route: pageDef.route, description: pageDef.does };
44
+ walkNode(pageId, pageId, null, 'page', pageDef, []);
45
+ }
46
+ function walkNode(path, pageId, parent, kind, nodeDef, guardChain) {
47
+ if (nodeDef.when) {
48
+ rejectEmptyWhen(`node '${path}'`, nodeDef.when);
49
+ validateGuardShape(`node '${path}' when`, nodeDef.when);
50
+ }
51
+ if (nodeDef.repeats && kind === 'page') {
52
+ throw new SkillGraphValidationError(`page '${path}' cannot be repeats — repeat a container inside it.`);
53
+ }
54
+ if (nodeDef.instances && !nodeDef.repeats) {
55
+ throw new SkillGraphValidationError(`node '${path}' declares an instances source but is not repeats: true.`);
56
+ }
57
+ const chain = nodeDef.when ? [...guardChain, nodeDef.when] : guardChain;
58
+ const node = {
59
+ path,
60
+ id: path.split('.').pop(),
61
+ kind,
62
+ parent,
63
+ page: pageId,
64
+ children: [],
65
+ overlay: kind === 'modal' && nodeDef.blocks !== false,
66
+ repeats: nodeDef.repeats ?? false,
67
+ // Clone: the compiled node owns its guard bytes — deepFreeze below must
68
+ // never freeze (or alias) the AUTHOR's live object.
69
+ guard: nodeDef.when ? structuredClone(nodeDef.when) : undefined,
70
+ description: nodeDef.does,
71
+ instances: nodeDef.instances,
72
+ };
73
+ nodes[path] = node;
74
+ const childNames = new Set();
75
+ const buckets = [
76
+ ['area', nodeDef.areas],
77
+ ['tab', nodeDef.tabs],
78
+ ['modal', nodeDef.modals],
79
+ ];
80
+ for (const [childKind, bucket] of buckets) {
81
+ for (const [name, childDef] of Object.entries(bucket ?? {})) {
82
+ checkSegment(`node '${path}' child '${name}'`, name);
83
+ if (childNames.has(name)) {
84
+ throw new SkillGraphValidationError(`node '${path}' declares '${name}' twice (areas/tabs/modals share one namespace).`);
85
+ }
86
+ childNames.add(name);
87
+ const childPath = `${path}.${name}`;
88
+ node.children.push(childPath);
89
+ walkNode(childPath, pageId, path, childKind, childDef, chain);
90
+ }
91
+ }
92
+ for (const [name, tool] of Object.entries(nodeDef.tools ?? {})) {
93
+ checkSegment(`tool '${name}' on '${path}'`, name);
94
+ if (childNames.has(name)) {
95
+ throw new SkillGraphValidationError(`'${path}.${name}' is both a container and a tool — give one of them another name.`);
96
+ }
97
+ const qualifiedId = `${path}.${name}`;
98
+ compileTool(qualifiedId, [path], pageId === path ? [pageId] : [pageId], tool, chain);
99
+ toolNodes[qualifiedId] = [path];
100
+ }
101
+ }
102
+ // -- root-level multi-attach tools ------------------------------------------
103
+ for (const [name, tool] of Object.entries(def.tools ?? {})) {
104
+ checkSegment(`root tool '${name}'`, name);
105
+ const on = Array.isArray(tool.on) ? [...tool.on] : [tool.on];
106
+ if (on.length === 0) {
107
+ throw new SkillGraphValidationError(`root tool '${name}' has on: [] — list at least one page.`);
108
+ }
109
+ for (const pageId of on) {
110
+ if (!Object.hasOwn(def.pages, pageId)) {
111
+ throw new SkillGraphValidationError(`root tool '${name}' is offered on unknown page '${pageId}'. Known pages: ${Object.keys(def.pages).join(', ')}.`);
112
+ }
113
+ }
114
+ if (Object.hasOwn(affordances, name) || Object.hasOwn(nodes, name)) {
115
+ throw new SkillGraphValidationError(`root tool '${name}' collides with an existing id.`);
116
+ }
117
+ compileTool(name, on, on, tool, []);
118
+ toolNodes[name] = on; // a root tool lives on each page it is offered on
119
+ }
120
+ function compileTool(qualifiedId, _nodePaths, onPages, tool, guardChain) {
121
+ if (qualifiedId === 'leave-skill' || qualifiedId.endsWith('.leave-skill')) {
122
+ throw new SkillGraphValidationError(`tool name 'leave-skill' is reserved — it is the synthetic escape tool served while a skill frame is open.`);
123
+ }
124
+ if (!tool.does || !tool.does.trim()) {
125
+ throw new SkillGraphValidationError(`tool '${qualifiedId}' needs a 'does' — it is the one authored string both the consumer and the LLM read.`);
126
+ }
127
+ if (tool.when) {
128
+ rejectEmptyWhen(`tool '${qualifiedId}'`, tool.when);
129
+ validateGuardShape(`tool '${qualifiedId}' when`, tool.when);
130
+ }
131
+ if (tool.goTo && !Object.hasOwn(def.pages, tool.goTo)) {
132
+ throw new SkillGraphValidationError(`tool '${qualifiedId}' goTo unknown page '${tool.goTo}'. Known pages: ${Object.keys(def.pages).join(', ')}.`);
133
+ }
134
+ if (tool.input !== undefined && detectSchema(tool.input) === 'none') {
135
+ throw new SkillGraphValidationError(`tool '${qualifiedId}' has an unrecognized input schema — pass a Zod schema, a JSON Schema object, ` +
136
+ `or a validator with .safeParse/.parse.`);
137
+ }
138
+ const guard = composeGuards(qualifiedId, [...guardChain, ...(tool.when ? [tool.when] : [])]);
139
+ const effect = tool.writes || tool.goTo
140
+ ? { ...(tool.writes ? { writes: [...tool.writes] } : {}), ...(tool.goTo ? { navigatesTo: tool.goTo } : {}) }
141
+ : undefined;
142
+ affordances[qualifiedId] = deepFreeze({
143
+ id: qualifiedId,
144
+ on: [...onPages],
145
+ description: tool.does,
146
+ binding: tool.binding ? structuredClone(tool.binding) : undefined,
147
+ guard,
148
+ effect,
149
+ schema: tool.input,
150
+ highEffect: tool.confirm ?? false,
151
+ role: deriveRole(tool),
152
+ descriptionSource: 'declared',
153
+ }, new Set(['schema']));
154
+ }
155
+ // -- skills (qualified paths, unambiguous-suffix resolution) ----------------
156
+ const skills = Object.create(null);
157
+ for (const [skillId, skillDef] of Object.entries(def.skills ?? {})) {
158
+ // Skill ids feed MCP tool names — same character rules as path segments,
159
+ // or two distinct skills could sanitize to ONE colliding tool name.
160
+ checkSegment(`skill '${skillId}'`, skillId);
161
+ if (!skillDef.does || !skillDef.does.trim()) {
162
+ throw new SkillGraphValidationError(`skill '${skillId}' needs a 'does' (planner-facing text).`);
163
+ }
164
+ if (!skillDef.steps || skillDef.steps.length === 0) {
165
+ throw new SkillGraphValidationError(`skill '${skillId}' needs at least one step.`);
166
+ }
167
+ if (skillDef.when) {
168
+ rejectEmptyWhen(`skill '${skillId}'`, skillDef.when);
169
+ validateGuardShape(`skill '${skillId}' when`, skillDef.when);
170
+ }
171
+ const steps = skillDef.steps.map((step) => resolveStep(skillId, step));
172
+ skills[skillId] = deepFreeze({
173
+ id: skillId,
174
+ description: skillDef.does,
175
+ steps,
176
+ precondition: skillDef.when ? structuredClone(skillDef.when) : undefined,
177
+ });
178
+ }
179
+ function resolveStep(skillId, step) {
180
+ if (Object.hasOwn(affordances, step))
181
+ return step;
182
+ const suffix = `.${step}`;
183
+ const candidates = Object.keys(affordances).filter((qid) => qid.endsWith(suffix));
184
+ if (candidates.length === 1)
185
+ return candidates[0];
186
+ if (candidates.length === 0) {
187
+ throw new SkillGraphValidationError(`skill '${skillId}' step '${step}' matches no tool. Known: ${Object.keys(affordances).join(', ')}.`);
188
+ }
189
+ throw new SkillGraphValidationError(`skill '${skillId}' step '${step}' is ambiguous — qualify it: ${candidates.join(' | ')}.`);
190
+ }
191
+ // -- freeze + assemble -------------------------------------------------------
192
+ for (const page of Object.values(pages))
193
+ Object.freeze(page);
194
+ for (const node of Object.values(nodes))
195
+ deepFreeze(node, new Set(['instances']));
196
+ for (const paths of Object.values(toolNodes))
197
+ Object.freeze(paths);
198
+ const spec = Object.freeze({
199
+ id,
200
+ description: def.does,
201
+ pages: Object.freeze(pages),
202
+ affordances: Object.freeze(affordances),
203
+ skills: Object.freeze(skills),
204
+ });
205
+ const map = {
206
+ id,
207
+ spec,
208
+ nodes: Object.freeze(nodes),
209
+ toolNodes: Object.freeze(toolNodes),
210
+ createSession: (opts) => new InteractionSession(map, opts),
211
+ // Tool guards already carry the COMPOSED ancestor chain, but a guard-bearing
212
+ // container with no static descendant tool contributes keys only via its own
213
+ // node.guard (composed into mount-declared tools at runtime) — so fold those in too.
214
+ requiredStateKeys: () => guardStateKeys([
215
+ ...Object.values(spec.affordances).map((aff) => aff.guard),
216
+ ...Object.values(spec.skills).map((skill) => skill.precondition),
217
+ ...Object.values(nodes).map((node) => node.guard),
218
+ ]),
219
+ };
220
+ // The runtime object is path-untyped; the `const Def` signature re-attaches
221
+ // the literal node-path union to what the caller sees.
222
+ return Object.freeze(map);
223
+ }
224
+ function deriveRole(tool) {
225
+ if (tool.role)
226
+ return tool.role;
227
+ if (tool.goTo)
228
+ return 'next';
229
+ return 'action';
230
+ }
231
+ function checkSegment(owner, name) {
232
+ if (!name || !name.trim())
233
+ throw new SkillGraphValidationError(`${owner}: empty name.`);
234
+ if (BAD_SEGMENT.test(name)) {
235
+ throw new SkillGraphValidationError(`${owner}: '${name}' contains a reserved character (. [ ] # / |) — names become path identities.`);
236
+ }
237
+ }
238
+ function rejectEmptyWhen(owner, when) {
239
+ if (Object.keys(when).length === 0) {
240
+ throw new SkillGraphValidationError(`${owner} has an empty when {} — footprint's evaluator deliberately NEVER matches an empty ` +
241
+ `filter (anti-vacuous-truth). Omit 'when' entirely instead.`);
242
+ }
243
+ }
244
+ /**
245
+ * Freeze an object and every plain nested object/array. `skipKeys` (live
246
+ * references like schema validators / instances selectors) applies at the ROOT
247
+ * level ONLY — a state key that happens to be NAMED 'schema' deep inside a
248
+ * guard still freezes.
249
+ */
250
+ function deepFreeze(value, skipKeys) {
251
+ for (const [key, child] of Object.entries(value)) {
252
+ if (skipKeys?.has(key))
253
+ continue;
254
+ if (child && typeof child === 'object')
255
+ deepFreeze(child);
256
+ }
257
+ return Object.freeze(value);
258
+ }
259
+ //# sourceMappingURL=appmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appmap.js","sourceRoot":"","sources":["../../src/tree/appmap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * D18 navigation-graph authoring types — the semantic container tree a
3
+ * consumer already holds in their head: pages → areas / tabs / modals → tools.
4
+ *
5
+ * The dual identity: the consumer authors a NAVIGATION graph in their own
6
+ * vocabulary; the agent consumes the derived SKILL graph. `does:` is one
7
+ * authored string with two readers — the consumer's intent label IS the
8
+ * agent's tool description (firewall by construction: it is a source-code
9
+ * literal, never runtime text).
10
+ *
11
+ * Exactly THREE authored semantics exist — everything else is descriptive:
12
+ * - `modals` — overlay masking (a shown modal suppresses sibling tools;
13
+ * `blocks: false` opts a popover out). Modals are NEVER assumed
14
+ * active: closed until registered/shown.
15
+ * - `tabs` — an exclusivity PRIOR ("at most one child shown"). NOT a
16
+ * statechart: no transitions, no initial, no history.
17
+ * - `repeats` — a template node with runtime instance keys (one parameterized
18
+ * tool for N cards, never N tools).
19
+ */
20
+ import type { WhereFilter } from 'footprintjs';
21
+ import type { Binding, CanonicalRole, SkillGraphSpec } from '../atom/types.js';
22
+ import type { InteractionSession, InteractionSessionOptions } from '../traverse/nav-session.js';
23
+ /** A tool on a node. Only `does` is required — details may materialize at mount. */
24
+ export interface ToolDef {
25
+ /** AUTHORED intent, one string two readers (consumer label = agent tool description). */
26
+ does: string;
27
+ /** How to reach it on screen (optional — L0b actuation; handlers don't need it). */
28
+ binding?: Binding;
29
+ /** Availability guard over projected state (AND-composed with every ancestor `when`). */
30
+ when?: WhereFilter;
31
+ /** State keys this tool claims to change. */
32
+ writes?: string[];
33
+ /** Page this tool claims to navigate to (a top-level page id). */
34
+ goTo?: string;
35
+ /** Requires explicit confirmation (the high-effect gate). */
36
+ confirm?: boolean;
37
+ /** Payload contract: Zod, JSON Schema, or any .safeParse/.parse validator. */
38
+ input?: unknown;
39
+ role?: CanonicalRole;
40
+ }
41
+ /** A container node: areas coexist (AND), tabs exclude (at most one shown), modals overlay. */
42
+ export interface NodeDef {
43
+ /** Optional authored description of the container itself. */
44
+ does?: string;
45
+ /** Container guard: every descendant tool's guard is AND-narrowed by this. */
46
+ when?: WhereFilter;
47
+ areas?: Record<string, NodeDef>;
48
+ tabs?: Record<string, NodeDef>;
49
+ modals?: Record<string, ModalDef>;
50
+ /** Template container: instances carry runtime keys (order cards, product tiles). */
51
+ repeats?: boolean;
52
+ /**
53
+ * L2 existence source for a repeats container: the COMPLETE instance set,
54
+ * from projected state (order #57 exists while scrolled out of view).
55
+ * Without it, served instance lists fall back to the mounted window —
56
+ * honestly marked enumeration:'mounted-window'.
57
+ */
58
+ instances?: (state: Record<string, unknown>) => string[];
59
+ tools?: Record<string, ToolDef>;
60
+ }
61
+ export interface ModalDef extends NodeDef {
62
+ /** Default true: a shown modal masks tools outside it. `false` = popover (coexists). */
63
+ blocks?: boolean;
64
+ }
65
+ export interface PageNodeDef extends NodeDef {
66
+ route?: string;
67
+ }
68
+ export interface SkillDef2 {
69
+ does: string;
70
+ /** Steps by qualified path ('checkout.confirm-order.place-order') or unambiguous suffix ('place-order'). */
71
+ steps: string[];
72
+ when?: WhereFilter;
73
+ }
74
+ export interface NavigationGraphDef {
75
+ does?: string;
76
+ pages: Record<string, PageNodeDef>;
77
+ /** Root-level multi-attach tools: offered on several PAGES at once. */
78
+ tools?: Record<string, ToolDef & {
79
+ on: string | string[];
80
+ }>;
81
+ skills?: Record<string, SkillDef2>;
82
+ }
83
+ type BucketPaths<Prefix extends string, B> = B extends Record<string, unknown> ? {
84
+ [K in keyof B & string]: `${Prefix}.${K}` | ChildPaths<`${Prefix}.${K}`, B[K]>;
85
+ }[keyof B & string] : never;
86
+ type ChildPaths<Prefix extends string, N> = (N extends {
87
+ areas: infer A;
88
+ } ? BucketPaths<Prefix, A> : never) | (N extends {
89
+ tabs: infer T;
90
+ } ? BucketPaths<Prefix, T> : never) | (N extends {
91
+ modals: infer M;
92
+ } ? BucketPaths<Prefix, M> : never);
93
+ /** The union of every declared node path in a NavigationGraphDef literal. */
94
+ export type NodePathsOf<Def> = Def extends {
95
+ pages: infer P;
96
+ } ? P extends Record<string, unknown> ? {
97
+ [K in keyof P & string]: K | ChildPaths<K, P[K]>;
98
+ }[keyof P & string] : string : string;
99
+ export type NodeKind = 'page' | 'area' | 'tab' | 'modal';
100
+ export interface MapNode {
101
+ /** Dot path — the node's identity ('checkout.confirm-order'). */
102
+ path: string;
103
+ /** Last path segment. */
104
+ id: string;
105
+ kind: NodeKind;
106
+ /** Parent path; null for pages. */
107
+ parent: string | null;
108
+ /** Owning page id (== path's first segment). */
109
+ page: string;
110
+ /** Child NODE paths (tools are not children — see AppMap.toolNodes). */
111
+ children: string[];
112
+ /** True for a blocking modal (kind 'modal' with blocks !== false). */
113
+ overlay: boolean;
114
+ repeats: boolean;
115
+ /** The node's OWN `when` (tool guards already carry the composed chain). */
116
+ guard?: WhereFilter;
117
+ description?: string;
118
+ instances?: (state: Record<string, unknown>) => string[];
119
+ }
120
+ export interface NavigationGraph<Paths extends string = string> {
121
+ id: string;
122
+ /**
123
+ * The flat projection: a Session-compatible SkillGraphSpec whose affordance
124
+ * ids are qualified dot paths and whose guards are the composed root→leaf
125
+ * chains. A plain Session runs on it unchanged; InteractionSession adds the tree.
126
+ */
127
+ spec: SkillGraphSpec;
128
+ /** Every node by path — pages included. */
129
+ nodes: Record<string, MapNode>;
130
+ /** Qualified tool id → the node path(s) it lives on (root tools list their pages). */
131
+ toolNodes: Record<string, string[]>;
132
+ /** Create a live interaction session; `Paths` carries the typed node paths through. */
133
+ createSession(opts?: InteractionSessionOptions): InteractionSession<Paths>;
134
+ /**
135
+ * The sorted, deduped set of state keys every guard in this graph reads —
136
+ * across ALL tool `when`s, container-node `when`s, and skill preconditions,
137
+ * whether or not the node is currently mounted. Seed each of these in your
138
+ * state projector: a guard key ABSENT from projected state is NOT treated as
139
+ * false and hidden — it is served WITH the `guardUnevaluated` honesty marker
140
+ * (the edge is offered, the missing condition flagged as taken-on-faith), so
141
+ * an incompletely-seeded projector silently degrades honest availability into
142
+ * unevaluated-guess territory. Container `when`s are included because they
143
+ * AND-compose into every descendant tool's guard (at build, and into
144
+ * mount-declared tools at runtime), so a guard-bearing container must be
145
+ * seeded even before a tool lands under it. A projection covering this whole
146
+ * set is what lets guards actually decide rather than defer.
147
+ */
148
+ requiredStateKeys(): string[];
149
+ }
150
+ export {};
151
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tree/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tree/types.ts"],"names":[],"mappings":""}