@graview/tools 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 (111) hide show
  1. package/LICENSE +96 -0
  2. package/README.md +47 -0
  3. package/dist/agent/adapters.d.ts +43 -0
  4. package/dist/agent/adapters.d.ts.map +1 -0
  5. package/dist/agent/adapters.js +52 -0
  6. package/dist/agent/adapters.js.map +1 -0
  7. package/dist/agent/tools.d.ts +105 -0
  8. package/dist/agent/tools.d.ts.map +1 -0
  9. package/dist/agent/tools.js +311 -0
  10. package/dist/agent/tools.js.map +1 -0
  11. package/dist/cli.d.ts +37 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +306 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/conversation.d.ts +108 -0
  16. package/dist/conversation.d.ts.map +1 -0
  17. package/dist/conversation.js +698 -0
  18. package/dist/conversation.js.map +1 -0
  19. package/dist/decide.d.ts +43 -0
  20. package/dist/decide.d.ts.map +1 -0
  21. package/dist/decide.js +125 -0
  22. package/dist/decide.js.map +1 -0
  23. package/dist/derive.d.ts +84 -0
  24. package/dist/derive.d.ts.map +1 -0
  25. package/dist/derive.js +302 -0
  26. package/dist/derive.js.map +1 -0
  27. package/dist/edit.d.ts +70 -0
  28. package/dist/edit.d.ts.map +1 -0
  29. package/dist/edit.js +97 -0
  30. package/dist/edit.js.map +1 -0
  31. package/dist/figure.d.ts +53 -0
  32. package/dist/figure.d.ts.map +1 -0
  33. package/dist/figure.js +86 -0
  34. package/dist/figure.js.map +1 -0
  35. package/dist/index.d.ts +44 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +31 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/intelligence.d.ts +132 -0
  40. package/dist/intelligence.d.ts.map +1 -0
  41. package/dist/intelligence.js +463 -0
  42. package/dist/intelligence.js.map +1 -0
  43. package/dist/local.d.ts +192 -0
  44. package/dist/local.d.ts.map +1 -0
  45. package/dist/local.js +365 -0
  46. package/dist/local.js.map +1 -0
  47. package/dist/loop.d.ts +84 -0
  48. package/dist/loop.d.ts.map +1 -0
  49. package/dist/loop.js +173 -0
  50. package/dist/loop.js.map +1 -0
  51. package/dist/mcp-stdio.d.ts +38 -0
  52. package/dist/mcp-stdio.d.ts.map +1 -0
  53. package/dist/mcp-stdio.js +83 -0
  54. package/dist/mcp-stdio.js.map +1 -0
  55. package/dist/pins.d.ts +29 -0
  56. package/dist/pins.d.ts.map +1 -0
  57. package/dist/pins.js +60 -0
  58. package/dist/pins.js.map +1 -0
  59. package/dist/plan.d.ts +150 -0
  60. package/dist/plan.d.ts.map +1 -0
  61. package/dist/plan.js +303 -0
  62. package/dist/plan.js.map +1 -0
  63. package/dist/providers/insight.d.ts +14 -0
  64. package/dist/providers/insight.d.ts.map +1 -0
  65. package/dist/providers/insight.js +81 -0
  66. package/dist/providers/insight.js.map +1 -0
  67. package/dist/providers/invariant.d.ts +14 -0
  68. package/dist/providers/invariant.d.ts.map +1 -0
  69. package/dist/providers/invariant.js +123 -0
  70. package/dist/providers/invariant.js.map +1 -0
  71. package/dist/providers/jev.d.ts +115 -0
  72. package/dist/providers/jev.d.ts.map +1 -0
  73. package/dist/providers/jev.js +148 -0
  74. package/dist/providers/jev.js.map +1 -0
  75. package/dist/providers/lens.d.ts +24 -0
  76. package/dist/providers/lens.d.ts.map +1 -0
  77. package/dist/providers/lens.js +36 -0
  78. package/dist/providers/lens.js.map +1 -0
  79. package/dist/providers/llm.d.ts +25 -0
  80. package/dist/providers/llm.d.ts.map +1 -0
  81. package/dist/providers/llm.js +44 -0
  82. package/dist/providers/llm.js.map +1 -0
  83. package/dist/providers/schema.d.ts +12 -0
  84. package/dist/providers/schema.d.ts.map +1 -0
  85. package/dist/providers/schema.js +508 -0
  86. package/dist/providers/schema.js.map +1 -0
  87. package/dist/providers/structure.d.ts +14 -0
  88. package/dist/providers/structure.d.ts.map +1 -0
  89. package/dist/providers/structure.js +211 -0
  90. package/dist/providers/structure.js.map +1 -0
  91. package/dist/questions.d.ts +162 -0
  92. package/dist/questions.d.ts.map +1 -0
  93. package/dist/questions.js +316 -0
  94. package/dist/questions.js.map +1 -0
  95. package/dist/run.d.ts +202 -0
  96. package/dist/run.d.ts.map +1 -0
  97. package/dist/run.js +453 -0
  98. package/dist/run.js.map +1 -0
  99. package/dist/space.d.ts +50 -0
  100. package/dist/space.d.ts.map +1 -0
  101. package/dist/space.js +55 -0
  102. package/dist/space.js.map +1 -0
  103. package/dist/types.d.ts +122 -0
  104. package/dist/types.d.ts.map +1 -0
  105. package/dist/types.js +2 -0
  106. package/dist/types.js.map +1 -0
  107. package/dist/usage.d.ts +10 -0
  108. package/dist/usage.d.ts.map +1 -0
  109. package/dist/usage.js +59 -0
  110. package/dist/usage.js.map +1 -0
  111. package/package.json +61 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { AnySchema, Store } from "@graview/core";
2
+ import type { Completion } from "./intelligence.js";
3
+ import type { Decide, Decided } from "./providers/jev.js";
4
+ import type { Question } from "./questions.js";
5
+ /**
6
+ * THE OTHER TWO WAYS A DECISION IS ANSWERED.
7
+ *
8
+ * A decision provider answers a typed question exactly. The two rungs
9
+ * either side of it can answer the same question, worse: the graph by its
10
+ * own rules — a rule's truth is whatever the store's judgement says, a
11
+ * repair is one the violation named — and a model with the whole
12
+ * parse-and-refuse layer behind it, which is what a decision provider
13
+ * makes unnecessary and what this file has to carry so the LLM rung can
14
+ * serve the capability at all. Both answer in the SAME shape, so a surface
15
+ * asking for a decision cannot tell which rung answered except by the
16
+ * confidence, which is the point.
17
+ */
18
+ /** An answer the graph could not give is left out and named here. */
19
+ export interface PartlyDecided extends Decided {
20
+ readonly unanswered: readonly string[];
21
+ }
22
+ /**
23
+ * The graph decides what its own rules already decided. A question keyed
24
+ * `rule:<name>[:<subject>]` is answered from `store.violations()` — a
25
+ * probability of exactly 1 or 0, because the store does not guess — and a
26
+ * `repair:` question is answered with the first option, which is the
27
+ * violation's first ready repair. Everything else is unanswered: the graph
28
+ * has no opinion about which surface a lawn is.
29
+ */
30
+ export declare function graphDecide<S extends AnySchema>(store: Store<S>): (state: unknown, questions: Readonly<Record<string, Question>>) => Promise<PartlyDecided>;
31
+ /**
32
+ * A model as a decision provider: the parse-and-refuse layer, in full.
33
+ *
34
+ * The questions go up as they are; the model is asked for a JSON object
35
+ * of answers under the same keys. What comes back is held to the
36
+ * question: a Choice must name an option that was offered, a truth must
37
+ * be a probability, a Score must be a level that exists. Anything else is
38
+ * a refusal for that key — never a guess — and the model's confidence is
39
+ * what it says it is, which a reader should trust rather less than a
40
+ * decision provider's.
41
+ */
42
+ export declare function completionDecide(complete: Completion): Decide;
43
+ //# sourceMappingURL=decide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decide.d.ts","sourceRoot":"","sources":["../src/decide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAU,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;;;;;GAYG;AAEH,qEAAqE;AACrE,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CA2B3J;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAsE7D"}
package/dist/decide.js ADDED
@@ -0,0 +1,125 @@
1
+ import { firstJsonObject } from "./intelligence.js";
2
+ /**
3
+ * The graph decides what its own rules already decided. A question keyed
4
+ * `rule:<name>[:<subject>]` is answered from `store.violations()` — a
5
+ * probability of exactly 1 or 0, because the store does not guess — and a
6
+ * `repair:` question is answered with the first option, which is the
7
+ * violation's first ready repair. Everything else is unanswered: the graph
8
+ * has no opinion about which surface a lawn is.
9
+ */
10
+ export function graphDecide(store) {
11
+ return async (_state, questions) => {
12
+ const violations = store.violations();
13
+ const answers = {};
14
+ const unanswered = [];
15
+ for (const [key, question] of Object.entries(questions)) {
16
+ const rule = /^rule:([^:]+)(?::(.+))?$/.exec(key);
17
+ if (rule && question.type === "noul") {
18
+ const [, name, subject] = rule;
19
+ const broken = violations.some((v) => v.invariant === name && (subject === undefined || v.subjectId === subject));
20
+ answers[key] = { type: "noul", noul: broken ? 0 : 1 };
21
+ continue;
22
+ }
23
+ const repair = /^repair:/.exec(key);
24
+ if (repair && question.type === "choice") {
25
+ const first = Object.keys(question.criteria)[0];
26
+ if (first) {
27
+ const probabilities = {};
28
+ for (const option of Object.keys(question.criteria))
29
+ probabilities[option] = option === first ? 1 : 0;
30
+ answers[key] = { type: "choice", choice: first, confidence: 1, probabilities };
31
+ continue;
32
+ }
33
+ }
34
+ unanswered.push(key);
35
+ }
36
+ return { answers, unanswered, usage: { inputTokens: 0, outputTokens: 0 } };
37
+ };
38
+ }
39
+ /**
40
+ * A model as a decision provider: the parse-and-refuse layer, in full.
41
+ *
42
+ * The questions go up as they are; the model is asked for a JSON object
43
+ * of answers under the same keys. What comes back is held to the
44
+ * question: a Choice must name an option that was offered, a truth must
45
+ * be a probability, a Score must be a level that exists. Anything else is
46
+ * a refusal for that key — never a guess — and the model's confidence is
47
+ * what it says it is, which a reader should trust rather less than a
48
+ * decision provider's.
49
+ */
50
+ export function completionDecide(complete) {
51
+ return async (state, questions) => {
52
+ const asked = Object.keys(questions);
53
+ if (asked.length === 0)
54
+ return { answers: {}, usage: { inputTokens: 0, outputTokens: 0 } };
55
+ const prompt = [
56
+ "You are answering typed questions about a state. Answer ONLY a JSON object keyed by question id.",
57
+ "For a \"choice\" question answer {\"choice\": <one of the criteria keys>, \"confidence\": 0..1}.",
58
+ "For a \"noul\" question answer {\"noul\": <probability 0..1 that the answer is yes>}.",
59
+ "For a \"score\" question answer {\"level\": <index into criteria, 0-based>, \"confidence\": 0..1}.",
60
+ `State:\n${JSON.stringify(state)}`,
61
+ `Questions:\n${JSON.stringify(questions)}`,
62
+ ].join("\n\n");
63
+ const text = await complete(prompt);
64
+ const read = firstJsonObject(text);
65
+ if (!read || typeof read !== "object" || Array.isArray(read)) {
66
+ throw new Error("The model answered in a shape that is not a map of answers.");
67
+ }
68
+ const given = read;
69
+ const answers = {};
70
+ const refused = [];
71
+ for (const key of asked) {
72
+ const question = questions[key];
73
+ const said = given[key];
74
+ const clamp = (n, fallback) => (typeof n === "number" && n >= 0 && n <= 1 ? n : fallback);
75
+ if (!said || typeof said !== "object") {
76
+ refused.push(key);
77
+ continue;
78
+ }
79
+ if (question.type === "choice") {
80
+ const options = Object.keys(question.criteria);
81
+ const choice = typeof said["choice"] === "string" ? said["choice"] : undefined;
82
+ if (!choice || !options.includes(choice)) {
83
+ refused.push(key);
84
+ continue;
85
+ }
86
+ const confidence = clamp(said["confidence"], 0.5);
87
+ const probabilities = {};
88
+ const rest = options.length > 1 ? (1 - confidence) / (options.length - 1) : 0;
89
+ for (const option of options)
90
+ probabilities[option] = option === choice ? confidence : rest;
91
+ answers[key] = { type: "choice", choice, confidence, probabilities };
92
+ }
93
+ else if (question.type === "noul") {
94
+ const noul = said["noul"];
95
+ if (typeof noul !== "number" || noul < 0 || noul > 1) {
96
+ refused.push(key);
97
+ continue;
98
+ }
99
+ answers[key] = { type: "noul", noul };
100
+ }
101
+ else {
102
+ const level = said["level"];
103
+ if (typeof level !== "number" || !Number.isInteger(level) || level < 0 || level >= question.criteria.length) {
104
+ refused.push(key);
105
+ continue;
106
+ }
107
+ const confidence = clamp(said["confidence"], 0.5);
108
+ const probabilities = {};
109
+ const legend = {};
110
+ const rest = question.criteria.length > 1 ? (1 - confidence) / (question.criteria.length - 1) : 0;
111
+ question.criteria.forEach((description, at) => {
112
+ probabilities[String(at)] = at === level ? confidence : rest;
113
+ legend[String(at)] = description;
114
+ });
115
+ const score = Object.entries(probabilities).reduce((sum, [at, p]) => sum + Number(at) * p, 0);
116
+ answers[key] = { type: "score", score, confidence, probabilities, legend };
117
+ }
118
+ }
119
+ if (refused.length > 0) {
120
+ throw new Error(`The model did not answer ${refused.map((key) => `"${key}"`).join(", ")} in the shape asked, so nothing was taken for them.`);
121
+ }
122
+ return { answers, usage: { inputTokens: 0, outputTokens: 0 } };
123
+ };
124
+ }
125
+ //# sourceMappingURL=decide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decide.js","sourceRoot":"","sources":["../src/decide.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { type AnySchema, type Principal, type Store } from "@graview/core";
2
+ import type { Affordance, AffordanceProvider, AffordanceSet } from "./types.js";
3
+ export interface DeriveOptions<S extends AnySchema> {
4
+ /** Replaces the default set. Spread `defaultProviders()` to add to it. */
5
+ readonly providers?: readonly AffordanceProvider<S>[];
6
+ readonly context?: Readonly<Record<string, unknown>>;
7
+ /** Caps the returned list; observations are never capped. */
8
+ readonly limit?: number;
9
+ /**
10
+ * Who is asking. Actions this principal may not run move to `withheld`
11
+ * rather than being dropped.
12
+ *
13
+ * The narrowing happens HERE, once, rather than in each provider — a
14
+ * provider's job is to notice what could be done, and whether you in
15
+ * particular may do it is a different question asked of the same answer.
16
+ * No app writes filtering code, and a provider written tomorrow inherits it.
17
+ */
18
+ readonly principal?: Principal;
19
+ /**
20
+ * Kinds the selection DENOTES when it is not nodes — a selected kind card
21
+ * or district. Supplied by the binding, which owns those ids; providers
22
+ * only see the kinds. This is how an empty kind can still answer "how does
23
+ * the first one get here".
24
+ */
25
+ readonly kindSelection?: readonly string[];
26
+ /** Edges the selection names — supplied by the binding, like kinds. */
27
+ readonly edgeSelection?: readonly {
28
+ kind: string;
29
+ from: string;
30
+ to: string;
31
+ }[];
32
+ /**
33
+ * The person's pin overrides. Supplied by the binding (which owns the
34
+ * browser's storage — see `loadPins`); the dev's pins come from the
35
+ * declarations and need no option. `pinned` outranks a declared pin,
36
+ * `unpinned` demotes one.
37
+ */
38
+ readonly pins?: {
39
+ readonly pinned?: readonly string[];
40
+ readonly unpinned?: readonly string[];
41
+ };
42
+ /**
43
+ * THE THING UNDER THE POINTER — the node right-clicked, the node the
44
+ * strip's last press selected, the record a page is about.
45
+ *
46
+ * The selection says what the acts are DERIVED from; this says which one
47
+ * of them you just touched, and the ranking leads with it: that node's own
48
+ * repair, then its own acts, then everything else. Without it a rule that
49
+ * implicates six late tasks in ONE violation offered the six repairs in
50
+ * the order it happened to list them, so right-clicking the fourth task
51
+ * met the first task's repair at the top — asking to fix a different
52
+ * thing than the one you pressed on.
53
+ *
54
+ * Optional, and omitting it changes nothing: with no focus every act is
55
+ * equally about the selection and the older bands decide alone.
56
+ */
57
+ readonly focus?: string;
58
+ }
59
+ /**
60
+ * Schema, invariant and structure, in that order of precedence when scores
61
+ * tie. Lens and LLM providers are added by the app, because only the app
62
+ * knows which lens is active and whether an LLM is available at all.
63
+ */
64
+ export declare function defaultProviders<S extends AnySchema>(): AffordanceProvider<S>[];
65
+ /**
66
+ * Given a selection, what can be done with it.
67
+ *
68
+ * Every provider contributes candidates and they merge into one ranked set —
69
+ * there is no menu to hunt and no prompt to write. An LLM is one optional
70
+ * provider among these, not the mechanism: the useful suggestions come from
71
+ * the schema, the invariants and the shape of the graph.
72
+ */
73
+ export declare function deriveAffordances<S extends AnySchema>(store: Store<S>, selection: readonly string[], options?: DeriveOptions<S>): AffordanceSet;
74
+ /**
75
+ * Applies an affordance. Human-initiated and agent-initiated actions run the
76
+ * same path and produce the same diff, which is why watching an agent work
77
+ * needs no bespoke observability layer.
78
+ */
79
+ export declare function applyAffordance<S extends AnySchema>(store: Store<S>, affordance: Affordance, extraArgs?: Readonly<Record<string, unknown>>, options?: {
80
+ author?: Principal;
81
+ }): import("@graview/core").ApplyResult<S>;
82
+ /** What an affordance would do, as a diff plus the invariants it would break. */
83
+ export declare function previewAffordance<S extends AnySchema>(store: Store<S>, affordance: Affordance, extraArgs?: Readonly<Record<string, unknown>>): import("@graview/core").Preview<S>;
84
+ //# sourceMappingURL=derive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../src/derive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAqB,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAM3G,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,aAAa,EAId,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS;IAChD,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,uEAAuE;IACvE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/E;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACvC,CAAC;IACF;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,KAAK,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAE/E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,EACnD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,GAAE,aAAa,CAAC,CAAC,CAAM,GAC7B,aAAa,CA4Nf;AAoCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,EACjD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,EACjD,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,SAAS,CAAA;CAAO,0CAuBrC;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,EACnD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,sCAMlD"}
package/dist/derive.js ADDED
@@ -0,0 +1,302 @@
1
+ import { nodeRefArgs } from "@graview/core";
2
+ import { insightProvider } from "./providers/insight.js";
3
+ import { usageBoost, usageWeights } from "./usage.js";
4
+ import { invariantProvider } from "./providers/invariant.js";
5
+ import { schemaProvider } from "./providers/schema.js";
6
+ import { structureProvider } from "./providers/structure.js";
7
+ /**
8
+ * Schema, invariant and structure, in that order of precedence when scores
9
+ * tie. Lens and LLM providers are added by the app, because only the app
10
+ * knows which lens is active and whether an LLM is available at all.
11
+ */
12
+ export function defaultProviders() {
13
+ return [invariantProvider(), structureProvider(), schemaProvider(), insightProvider()];
14
+ }
15
+ /**
16
+ * Given a selection, what can be done with it.
17
+ *
18
+ * Every provider contributes candidates and they merge into one ranked set —
19
+ * there is no menu to hunt and no prompt to write. An LLM is one optional
20
+ * provider among these, not the mechanism: the useful suggestions come from
21
+ * the schema, the invariants and the shape of the graph.
22
+ */
23
+ export function deriveAffordances(store, selection, options = {}) {
24
+ const started = now();
25
+ const providers = options.providers ?? defaultProviders();
26
+ const nodes = selection
27
+ .map((id) => store.graph.getNode(id))
28
+ .filter((node) => node !== undefined);
29
+ const context = {
30
+ store,
31
+ selection,
32
+ nodes,
33
+ kindSelection: options.kindSelection ?? [],
34
+ edgeSelection: options.edgeSelection ?? [],
35
+ // Evaluated once and shared: every provider that cares about violations
36
+ // sees the same ones, and a selection change costs one evaluation.
37
+ violations: store.violations(options.context),
38
+ context: options.context ?? {},
39
+ };
40
+ const affordances = [];
41
+ const observations = [];
42
+ for (const provider of providers) {
43
+ const result = provider.derive(context);
44
+ affordances.push(...(result.affordances ?? []));
45
+ observations.push(...(result.observations ?? []));
46
+ }
47
+ /*
48
+ * THE BANDS ARE INVIOLATE; everything else shuffles inside them.
49
+ *
50
+ * Destructive actions come LAST, whatever their score — "Remove" sorting
51
+ * first on an ordinary selection is an interface leading with the one
52
+ * thing that cannot be taken back. Then the PRESS decides: the thing you
53
+ * clicked gets its own repairs, then its own acts, before anything the
54
+ * rest of the selection offers (see `focusRank`). Repairs come FIRST
55
+ * within each of those halves: a broken rule outranks any preference,
56
+ * and between two of a rule's own repairs the RULE's order stands —
57
+ * naming "give it a new date" before "finish it" is a judgement, and a
58
+ * pin is not entitled to overrule it. Below the repairs, pins rank before
59
+ * the rest (a person's own pin before the app's declared one), and a
60
+ * deterministic usage boost — decayed recency and frequency read off the
61
+ * op log, no model — lets what this workspace actually does rank ahead of
62
+ * what it never touches. The same order reaches the strip, the pointer
63
+ * menu, the record page and an agent's tool list, so no surface
64
+ * contradicts another.
65
+ */
66
+ const declaredPins = new Set(store
67
+ .allMutations()
68
+ .filter((mutation) => mutation.pinned)
69
+ .map((mutation) => mutation.name));
70
+ const userPins = new Set(options.pins?.pinned ?? []);
71
+ // A declared pin the person turned off ranks like anything else.
72
+ const demoted = new Set(options.pins?.unpinned ?? []);
73
+ const holds = (affordance) => userPins.has(affordance.mutation)
74
+ ? "user"
75
+ : declaredPins.has(affordance.mutation) && !demoted.has(affordance.mutation)
76
+ ? "declared"
77
+ : undefined;
78
+ const pinnedAs = (affordance) => {
79
+ const held = holds(affordance);
80
+ return held ? { ...affordance, pinned: held } : affordance;
81
+ };
82
+ // Stamped and summed once; the comparator reads plain fields.
83
+ const boost = new Map();
84
+ for (const [name, weight] of usageWeights(store.log.all()))
85
+ boost.set(name, usageBoost(weight));
86
+ const pinRank = (affordance) => affordance.pinned === "user" ? 0 : affordance.pinned === "declared" ? 1 : 2;
87
+ const boosted = (affordance) => affordance.score + (boost.get(affordance.mutation) ?? 0);
88
+ /*
89
+ * WHICH NODES AN ACT WOULD ACTUALLY CHANGE, read off the mutation's own
90
+ * input rather than declared per act.
91
+ *
92
+ * `nodeIds` is what an act is ABOUT — a violation hands its repairs the
93
+ * whole set of nodes it implicates — and that is right for highlighting
94
+ * and wrong for "is this the thing I clicked". The arguments are precise:
95
+ * a repair carrying `taskId: "t-book"` acts on that task and no other,
96
+ * whichever six the rule mentioned in passing.
97
+ */
98
+ const declaredMutations = new Map(store.allMutations().map((mutation) => [mutation.name, mutation]));
99
+ const refNames = new Map();
100
+ const targetsOf = (affordance) => {
101
+ const declared = declaredMutations.get(affordance.mutation);
102
+ if (!declared)
103
+ return [];
104
+ let names = refNames.get(affordance.mutation);
105
+ if (!names) {
106
+ names = nodeRefArgs(declared.input).map((arg) => arg.name);
107
+ refNames.set(affordance.mutation, names);
108
+ }
109
+ const found = [];
110
+ for (const call of affordance.batch ?? [affordance.args]) {
111
+ for (const name of names) {
112
+ const value = call[name] ?? affordance.args[name];
113
+ if (typeof value === "string")
114
+ found.push(value);
115
+ }
116
+ }
117
+ return found;
118
+ };
119
+ /*
120
+ * THE PRESS LEADS THE LIST.
121
+ *
122
+ * Five bands, and the focus decides the first four: the clicked thing's
123
+ * own repair, then a repair that merely implicates it, then its own acts
124
+ * — the ones already settled to a single press ahead of the ones that
125
+ * still ask — and finally everything the rest of the selection offers,
126
+ * where the older bands (repairs first, pins, usage) decide as they
127
+ * always did. The destructive tail is untouched and still outermost: a
128
+ * "Delete" for the thing you clicked is still not the first thing an
129
+ * interface should offer you.
130
+ *
131
+ * With no focus every act lands in the last band, which is the order this
132
+ * function returned before there was a focus at all.
133
+ */
134
+ const focus = options.focus;
135
+ const REST = 4;
136
+ /*
137
+ * SETTLED, OR STILL ASKING — and an optional argument is still a question.
138
+ *
139
+ * Asking only about the required ones put "Change the task", whose fields
140
+ * are every one of them optional, ahead of "Rename", which needs a name.
141
+ * Both open a form; neither is one press. What the band is for is the act
142
+ * the derivation already worked out in full, which is the act with nothing
143
+ * left open at all.
144
+ */
145
+ const asks = (affordance) => (affordance.open.length > 0 ? 1 : 0);
146
+ const focusRank = (affordance) => {
147
+ if (focus === undefined)
148
+ return REST;
149
+ const targets = targetsOf(affordance);
150
+ /*
151
+ * AN ACT THAT NAMES A NODE NAMES WHOSE ACT IT IS, whatever the rule it
152
+ * came from was about. "A new date for Book the hall" arrived from the
153
+ * same violation as yours and implicates your task in passing; it is
154
+ * still somebody else's repair and belongs with the rest.
155
+ */
156
+ if (targets.length > 0)
157
+ return targets.includes(focus) ? bandFor(affordance, 0) : REST;
158
+ // Nothing named: it is yours if the rule implicates you, or judges you.
159
+ if (affordance.nodeIds.includes(focus) || affordance.subjectId === focus) {
160
+ return bandFor(affordance, 1);
161
+ }
162
+ return REST;
163
+ };
164
+ /** A repair leads; an act follows, settled before asking. */
165
+ const bandFor = (affordance, repairBand) => affordance.provider === "invariant" ? repairBand : 2 + asks(affordance);
166
+ const candidates = dedupe(affordances).map(pinnedAs);
167
+ // The order the rules listed them in, kept for the two repair bands: a
168
+ // rule that names "finish it" before "put it back" meant that.
169
+ const listed = new Map(candidates.map((affordance, at) => [affordance, at]));
170
+ const ranked = candidates.sort((a, b) => {
171
+ const destructive = Number(a.destructive ?? false) - Number(b.destructive ?? false);
172
+ if (destructive !== 0)
173
+ return destructive;
174
+ const band = focusRank(a) - focusRank(b);
175
+ if (band !== 0)
176
+ return band;
177
+ if (focusRank(a) < 2)
178
+ return listed.get(a) - listed.get(b);
179
+ return (Number(b.provider === "invariant") - Number(a.provider === "invariant") ||
180
+ pinRank(a) - pinRank(b) ||
181
+ boosted(b) - boosted(a) ||
182
+ a.id.localeCompare(b.id));
183
+ });
184
+ /*
185
+ * An action you may not take SAYS SO rather than vanishing.
186
+ *
187
+ * The framework already treats an empty action list as a result and
188
+ * explains it; "you cannot do this, and here is who can" is the same
189
+ * honesty. Silently hiding it teaches people the software is broken, and
190
+ * teaches an agent that a capability does not exist when it does.
191
+ */
192
+ /*
193
+ * ASKED AS SOMEBODY, ALWAYS — the same somebody the store assumes.
194
+ *
195
+ * This skipped the check entirely when no principal was passed, so a
196
+ * caller that did not thread one was told it could do everything while
197
+ * `store.apply` refused it: `store.permits` and `applyAll` both default to
198
+ * `{ kind: "human" }` and fail CLOSED, and this failed open. The scene was
199
+ * fine because the React provider defaults the principal to that same
200
+ * anonymous human; every other caller — `recordFacts`, `kindFacts`, an
201
+ * app calling this directly — got a face full of acts that refused on
202
+ * press, which is the one thing the permission contract exists to prevent.
203
+ *
204
+ * Opt-in is unaffected: a store with no policy permits this principal
205
+ * everything, which is exactly what made the old shortcut look harmless.
206
+ */
207
+ const asking = options.principal ?? { kind: "human" };
208
+ const allowed = [];
209
+ const withheld = [];
210
+ for (const affordance of ranked) {
211
+ const verdict = store.permits({ name: affordance.mutation, args: { ...affordance.args, ...(affordance.batch?.[0] ?? {}) } }, asking);
212
+ if (verdict.ok)
213
+ allowed.push(affordance);
214
+ else
215
+ withheld.push({ ...affordance, refusal: verdict.refusal });
216
+ }
217
+ /*
218
+ * ONE RANK, STAMPED ONCE. The strip, the pointer menu, the record page's
219
+ * acts and an agent's tool list all read these arrays; a surface that
220
+ * regroups them can still say which entry the derivation put first rather
221
+ * than deciding for itself and contradicting its neighbour. Withheld acts
222
+ * continue the same numbering, because "last, and still shown" is where
223
+ * the order puts them.
224
+ */
225
+ const offered = allowed.map((affordance, at) => ({ ...affordance, rank: at }));
226
+ const stated = withheld.map((affordance, at) => ({ ...affordance, rank: allowed.length + at }));
227
+ return {
228
+ affordances: options.limit === undefined ? offered : offered.slice(0, options.limit),
229
+ withheld: stated,
230
+ observations: dedupeObservations(observations),
231
+ ms: now() - started,
232
+ };
233
+ }
234
+ /**
235
+ * The same mutation with the same arguments reached by two providers is one
236
+ * action, kept at the better score. A repair and a schema-derived action can
237
+ * be the same edit — showing it twice would make the interface look confused
238
+ * about itself.
239
+ *
240
+ * The batch is part of the identity: "reassign this run" and "reassign all
241
+ * three" are different actions even though they share a first call, and
242
+ * collapsing them would quietly drop the one that acts on the selection.
243
+ */
244
+ function dedupe(affordances) {
245
+ const best = new Map();
246
+ for (const affordance of affordances) {
247
+ const key = [
248
+ affordance.mutation,
249
+ JSON.stringify(affordance.args),
250
+ JSON.stringify(affordance.batch ?? null),
251
+ ].join("|");
252
+ const existing = best.get(key);
253
+ if (!existing || affordance.score > existing.score)
254
+ best.set(key, affordance);
255
+ }
256
+ return [...best.values()];
257
+ }
258
+ function dedupeObservations(observations) {
259
+ const seen = new Map();
260
+ for (const observation of observations)
261
+ seen.set(observation.text, observation);
262
+ return [...seen.values()];
263
+ }
264
+ function now() {
265
+ return typeof performance !== "undefined" ? performance.now() : Date.now();
266
+ }
267
+ /**
268
+ * Applies an affordance. Human-initiated and agent-initiated actions run the
269
+ * same path and produce the same diff, which is why watching an agent work
270
+ * needs no bespoke observability layer.
271
+ */
272
+ export function applyAffordance(store, affordance, extraArgs = {}, options = {}) {
273
+ const calls = (affordance.batch ?? [affordance.args]).map((args) => ({
274
+ name: affordance.mutation,
275
+ args: { ...affordance.args, ...args, ...extraArgs },
276
+ }));
277
+ /*
278
+ * THE LOG SAYS WHAT HAPPENED, NOT WHAT THE BUTTON SAID.
279
+ *
280
+ * An act that declares `describe` has words for itself with its arguments
281
+ * in — "Pay the deposit is handled by Ada Nowak" — and the routed face
282
+ * has always logged those. The strip logged the BUTTON instead: "Hand it
283
+ * to someone", and for a repair answered through an ask, "Hand Pay the
284
+ * deposit to somebody" after Ada had been chosen — the question's words
285
+ * standing in the history for the answer. One act, one sentence, on
286
+ * every face; the label is only the fallback for an act with no words of
287
+ * its own, where the compiled intent would be `name(k=v)`.
288
+ */
289
+ const declared = store.allMutations().find((mutation) => mutation.name === affordance.mutation);
290
+ return store.applyAll(calls, {
291
+ ...(declared?.describe ? {} : { intent: affordance.label }),
292
+ ...(options.author ? { author: options.author } : {}),
293
+ });
294
+ }
295
+ /** What an affordance would do, as a diff plus the invariants it would break. */
296
+ export function previewAffordance(store, affordance, extraArgs = {}) {
297
+ return store.preview({
298
+ name: affordance.mutation,
299
+ args: { ...affordance.args, ...extraArgs },
300
+ });
301
+ }
302
+ //# sourceMappingURL=derive.js.map