@xrkseek/harness 0.5.1 → 0.5.2

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 (66) hide show
  1. package/node_modules/@xrkseek/core-session/dist/index.d.ts.map +1 -1
  2. package/node_modules/@xrkseek/core-session/dist/index.js +3 -0
  3. package/node_modules/@xrkseek/core-session/dist/index.js.map +1 -1
  4. package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts.map +1 -1
  5. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +16 -0
  6. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js.map +1 -1
  7. package/node_modules/@xrkseek/core-session/dist/store.d.ts +5 -0
  8. package/node_modules/@xrkseek/core-session/dist/store.d.ts.map +1 -1
  9. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  10. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  11. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  12. package/node_modules/@xrkseek/server-face/dist/canvas-store.d.ts +63 -0
  13. package/node_modules/@xrkseek/server-face/dist/canvas-store.d.ts.map +1 -0
  14. package/node_modules/@xrkseek/server-face/dist/canvas-store.js +235 -0
  15. package/node_modules/@xrkseek/server-face/dist/canvas-store.js.map +1 -0
  16. package/node_modules/@xrkseek/server-face/dist/canvas-tools.d.ts +14 -0
  17. package/node_modules/@xrkseek/server-face/dist/canvas-tools.d.ts.map +1 -0
  18. package/node_modules/@xrkseek/server-face/dist/canvas-tools.js +229 -0
  19. package/node_modules/@xrkseek/server-face/dist/canvas-tools.js.map +1 -0
  20. package/node_modules/@xrkseek/server-face/dist/context.d.ts +3 -0
  21. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  22. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  23. package/node_modules/@xrkseek/server-face/dist/dispatch.js +7 -1
  24. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  25. package/node_modules/@xrkseek/server-face/dist/goal-store.d.ts +2 -0
  26. package/node_modules/@xrkseek/server-face/dist/goal-store.d.ts.map +1 -1
  27. package/node_modules/@xrkseek/server-face/dist/goal-store.js +6 -0
  28. package/node_modules/@xrkseek/server-face/dist/goal-store.js.map +1 -1
  29. package/node_modules/@xrkseek/server-face/dist/handlers/canvas.d.ts +4 -0
  30. package/node_modules/@xrkseek/server-face/dist/handlers/canvas.d.ts.map +1 -0
  31. package/node_modules/@xrkseek/server-face/dist/handlers/canvas.js +70 -0
  32. package/node_modules/@xrkseek/server-face/dist/handlers/canvas.js.map +1 -0
  33. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts +6 -0
  34. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  35. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +84 -1
  36. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  37. package/node_modules/@xrkseek/server-face/dist/index.d.ts +2 -0
  38. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  39. package/node_modules/@xrkseek/server-face/dist/index.js +2 -0
  40. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  41. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  42. package/node_modules/@xrkseek/server-face/dist/runtime.js +8 -0
  43. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  44. package/node_modules/@xrkseek/server-face/dist/wire/paths.d.ts.map +1 -1
  45. package/node_modules/@xrkseek/server-face/dist/wire/paths.js +1 -0
  46. package/node_modules/@xrkseek/server-face/dist/wire/paths.js.map +1 -1
  47. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.d.ts +1 -1
  48. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.d.ts.map +1 -1
  49. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.js +15 -0
  50. package/node_modules/@xrkseek/server-face/dist/wire/rpc-error.js.map +1 -1
  51. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts +10 -0
  52. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts.map +1 -1
  53. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js +24 -0
  54. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js.map +1 -1
  55. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  56. package/node_modules/@xrkseek/server-host/dist/index.js +37 -6
  57. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  58. package/node_modules/@xrkseek/server-http/dist/boot-inject.d.ts +14 -0
  59. package/node_modules/@xrkseek/server-http/dist/boot-inject.d.ts.map +1 -1
  60. package/node_modules/@xrkseek/server-http/dist/boot-inject.js +31 -0
  61. package/node_modules/@xrkseek/server-http/dist/boot-inject.js.map +1 -1
  62. package/node_modules/@xrkseek/server-http/dist/index.d.ts +1 -1
  63. package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
  64. package/node_modules/@xrkseek/server-http/dist/index.js +1 -1
  65. package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1,63 @@
1
+ export type CanvasSection = {
2
+ readonly kind: "markdown";
3
+ readonly body: string;
4
+ } | {
5
+ readonly kind: "table";
6
+ readonly columns: readonly string[];
7
+ readonly rows: readonly (readonly string[])[];
8
+ } | {
9
+ readonly kind: "kpi";
10
+ readonly items: readonly {
11
+ readonly label: string;
12
+ readonly value: string;
13
+ }[];
14
+ } | {
15
+ readonly kind: "series";
16
+ readonly title: string;
17
+ readonly points: readonly {
18
+ readonly x: string;
19
+ readonly y: number;
20
+ }[];
21
+ };
22
+ export interface CanvasDocument {
23
+ readonly id: string;
24
+ readonly title: string;
25
+ readonly revision: number;
26
+ readonly createdAt: string;
27
+ readonly updatedAt: string;
28
+ readonly sections: readonly CanvasSection[];
29
+ }
30
+ export interface CanvasSummary {
31
+ readonly id: string;
32
+ readonly title: string;
33
+ readonly revision: number;
34
+ readonly updatedAt: string;
35
+ }
36
+ export declare function canvasesRoot(productHome?: string): string;
37
+ export declare function workspaceCanvasDir(workspaceId: string, productHome?: string): string;
38
+ export declare function isValidCanvasId(id: string): boolean;
39
+ export declare function parseCanvasDocument(raw: unknown): CanvasDocument | undefined;
40
+ export declare function normalizeSections(raw: unknown): CanvasSection[];
41
+ export declare class FaceCanvasStore {
42
+ private readonly productHome;
43
+ private generation;
44
+ private readonly listeners;
45
+ constructor(productHome?: string);
46
+ /** Bumps when any canvas in any workspace changes (Overview refresh). */
47
+ getGeneration(): number;
48
+ subscribe(listener: () => void): () => void;
49
+ private notify;
50
+ list(workspaceId: string): readonly CanvasSummary[];
51
+ get(workspaceId: string, canvasId: string): CanvasDocument | undefined;
52
+ upsert(workspaceId: string, input: {
53
+ readonly id: string;
54
+ readonly title: string;
55
+ readonly sections: readonly CanvasSection[];
56
+ }): CanvasDocument;
57
+ patch(workspaceId: string, canvasId: string, patch: {
58
+ readonly title?: string;
59
+ readonly sections?: readonly CanvasSection[];
60
+ }): CanvasDocument;
61
+ delete(workspaceId: string, canvasId: string): boolean;
62
+ }
63
+ //# sourceMappingURL=canvas-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-store.d.ts","sourceRoot":"","sources":["../src/canvas-store.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;CAC/C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/E,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxE,CAAC;AAEN,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAOD,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAER;AAUD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEnD;AA0DD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAuB5E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,EAAE,CAQ/D;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;gBAEvC,WAAW,CAAC,EAAE,MAAM;IAIhC,yEAAyE;IACzE,aAAa,IAAI,MAAM;IAIvB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAO3C,OAAO,CAAC,MAAM;IAWd,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE;IAqBnD,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IActE,MAAM,CACJ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;QACL,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;KAC7C,GACA,cAAc;IAuBjB,KAAK,CACH,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE;QACL,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;KAC9C,GACA,cAAc;IAUjB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;CAQvD"}
@@ -0,0 +1,235 @@
1
+ /**
2
+ * Workspace-scoped Canvas documents under `{XRK_HOME}/canvases/<workspaceId>/`.
3
+ * Session create/delete does not touch these files.
4
+ */
5
+ import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync } from "node:fs";
6
+ import path from "node:path";
7
+ import { resolveXrkHome } from "@xrkseek/server-config";
8
+ import { tryWriteJsonSidecar } from "./json-sidecar.js";
9
+ const ID_RE = /^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/;
10
+ const TITLE_MAX = 200;
11
+ const SECTION_MAX = 64;
12
+ const MARKDOWN_MAX = 100_000;
13
+ export function canvasesRoot(productHome) {
14
+ return path.join(path.resolve(productHome ?? resolveXrkHome()), "canvases");
15
+ }
16
+ export function workspaceCanvasDir(workspaceId, productHome) {
17
+ return path.join(canvasesRoot(productHome), sanitizeWorkspaceId(workspaceId));
18
+ }
19
+ function sanitizeWorkspaceId(workspaceId) {
20
+ const trimmed = workspaceId.trim();
21
+ if (!trimmed || trimmed.includes("..") || trimmed.includes("/") || trimmed.includes("\\")) {
22
+ throw new Error(`invalid workspaceId: ${workspaceId}`);
23
+ }
24
+ return trimmed;
25
+ }
26
+ export function isValidCanvasId(id) {
27
+ return ID_RE.test(id);
28
+ }
29
+ function canvasPath(workspaceId, canvasId, productHome) {
30
+ if (!isValidCanvasId(canvasId)) {
31
+ throw new Error(`invalid canvas id: ${canvasId}`);
32
+ }
33
+ return path.join(workspaceCanvasDir(workspaceId, productHome), `${canvasId}.json`);
34
+ }
35
+ function parseSection(raw) {
36
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
37
+ return undefined;
38
+ const o = raw;
39
+ const kind = o.kind;
40
+ if (kind === "markdown") {
41
+ if (typeof o.body !== "string")
42
+ return undefined;
43
+ return { kind: "markdown", body: o.body.slice(0, MARKDOWN_MAX) };
44
+ }
45
+ if (kind === "table") {
46
+ if (!Array.isArray(o.columns) || !Array.isArray(o.rows))
47
+ return undefined;
48
+ const columns = o.columns.filter((c) => typeof c === "string").slice(0, 32);
49
+ const rows = o.rows
50
+ .filter((row) => Array.isArray(row))
51
+ .slice(0, 500)
52
+ .map((row) => row.filter((cell) => typeof cell === "string").slice(0, columns.length || 32));
53
+ return { kind: "table", columns, rows };
54
+ }
55
+ if (kind === "kpi") {
56
+ if (!Array.isArray(o.items))
57
+ return undefined;
58
+ const items = o.items
59
+ .filter((item) => !!item && typeof item === "object")
60
+ .slice(0, 32)
61
+ .map((item) => ({
62
+ label: String(item.label ?? "").slice(0, 80),
63
+ value: String(item.value ?? "").slice(0, 120),
64
+ }))
65
+ .filter((item) => item.label.length > 0);
66
+ return { kind: "kpi", items };
67
+ }
68
+ if (kind === "series") {
69
+ if (typeof o.title !== "string" || !Array.isArray(o.points))
70
+ return undefined;
71
+ const points = o.points
72
+ .filter((p) => !!p && typeof p === "object")
73
+ .slice(0, 500)
74
+ .map((p) => ({
75
+ x: String(p.x ?? "").slice(0, 64),
76
+ y: typeof p.y === "number" && Number.isFinite(p.y) ? p.y : 0,
77
+ }));
78
+ return { kind: "series", title: o.title.slice(0, TITLE_MAX), points };
79
+ }
80
+ return undefined;
81
+ }
82
+ export function parseCanvasDocument(raw) {
83
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
84
+ return undefined;
85
+ const o = raw;
86
+ if (typeof o.id !== "string" || !isValidCanvasId(o.id))
87
+ return undefined;
88
+ if (typeof o.title !== "string")
89
+ return undefined;
90
+ if (typeof o.revision !== "number" || !Number.isInteger(o.revision) || o.revision < 1) {
91
+ return undefined;
92
+ }
93
+ if (typeof o.createdAt !== "string" || typeof o.updatedAt !== "string")
94
+ return undefined;
95
+ if (!Array.isArray(o.sections))
96
+ return undefined;
97
+ const sections = [];
98
+ for (const row of o.sections.slice(0, SECTION_MAX)) {
99
+ const section = parseSection(row);
100
+ if (section)
101
+ sections.push(section);
102
+ }
103
+ return {
104
+ id: o.id,
105
+ title: o.title.slice(0, TITLE_MAX),
106
+ revision: o.revision,
107
+ createdAt: o.createdAt,
108
+ updatedAt: o.updatedAt,
109
+ sections,
110
+ };
111
+ }
112
+ export function normalizeSections(raw) {
113
+ if (!Array.isArray(raw))
114
+ return [];
115
+ const out = [];
116
+ for (const row of raw.slice(0, SECTION_MAX)) {
117
+ const section = parseSection(row);
118
+ if (section)
119
+ out.push(section);
120
+ }
121
+ return out;
122
+ }
123
+ export class FaceCanvasStore {
124
+ productHome;
125
+ generation = 0;
126
+ listeners = new Set();
127
+ constructor(productHome) {
128
+ this.productHome = path.resolve(productHome ?? resolveXrkHome());
129
+ }
130
+ /** Bumps when any canvas in any workspace changes (Overview refresh). */
131
+ getGeneration() {
132
+ return this.generation;
133
+ }
134
+ subscribe(listener) {
135
+ this.listeners.add(listener);
136
+ return () => {
137
+ this.listeners.delete(listener);
138
+ };
139
+ }
140
+ notify() {
141
+ this.generation += 1;
142
+ for (const listener of this.listeners) {
143
+ try {
144
+ listener();
145
+ }
146
+ catch {
147
+ /* contain */
148
+ }
149
+ }
150
+ }
151
+ list(workspaceId) {
152
+ const dir = workspaceCanvasDir(workspaceId, this.productHome);
153
+ if (!existsSync(dir))
154
+ return [];
155
+ const out = [];
156
+ for (const name of readdirSync(dir)) {
157
+ if (!name.endsWith(".json"))
158
+ continue;
159
+ const id = name.slice(0, -".json".length);
160
+ if (!isValidCanvasId(id))
161
+ continue;
162
+ const doc = this.get(workspaceId, id);
163
+ if (!doc)
164
+ continue;
165
+ out.push({
166
+ id: doc.id,
167
+ title: doc.title,
168
+ revision: doc.revision,
169
+ updatedAt: doc.updatedAt,
170
+ });
171
+ }
172
+ out.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt) || a.id.localeCompare(b.id));
173
+ return out;
174
+ }
175
+ get(workspaceId, canvasId) {
176
+ if (!isValidCanvasId(canvasId))
177
+ return undefined;
178
+ const file = canvasPath(workspaceId, canvasId, this.productHome);
179
+ if (!existsSync(file))
180
+ return undefined;
181
+ try {
182
+ const raw = JSON.parse(readFileSync(file, "utf8"));
183
+ const doc = parseCanvasDocument(raw);
184
+ if (!doc || doc.id !== canvasId)
185
+ return undefined;
186
+ return doc;
187
+ }
188
+ catch {
189
+ return undefined;
190
+ }
191
+ }
192
+ upsert(workspaceId, input) {
193
+ if (!isValidCanvasId(input.id)) {
194
+ throw new Error(`invalid canvas id: ${input.id}`);
195
+ }
196
+ const title = input.title.trim().slice(0, TITLE_MAX) || input.id;
197
+ const sections = [...input.sections].slice(0, SECTION_MAX);
198
+ const now = new Date().toISOString();
199
+ const prev = this.get(workspaceId, input.id);
200
+ const doc = {
201
+ id: input.id,
202
+ title,
203
+ revision: prev ? prev.revision + 1 : 1,
204
+ createdAt: prev?.createdAt ?? now,
205
+ updatedAt: now,
206
+ sections,
207
+ };
208
+ const dir = workspaceCanvasDir(workspaceId, this.productHome);
209
+ mkdirSync(dir, { recursive: true });
210
+ tryWriteJsonSidecar(canvasPath(workspaceId, input.id, this.productHome), doc);
211
+ this.notify();
212
+ return doc;
213
+ }
214
+ patch(workspaceId, canvasId, patch) {
215
+ const prev = this.get(workspaceId, canvasId);
216
+ if (!prev)
217
+ throw new Error(`canvas not found: ${canvasId}`);
218
+ return this.upsert(workspaceId, {
219
+ id: canvasId,
220
+ title: patch.title !== undefined ? patch.title : prev.title,
221
+ sections: patch.sections !== undefined ? patch.sections : prev.sections,
222
+ });
223
+ }
224
+ delete(workspaceId, canvasId) {
225
+ if (!isValidCanvasId(canvasId))
226
+ return false;
227
+ const file = canvasPath(workspaceId, canvasId, this.productHome);
228
+ if (!existsSync(file))
229
+ return false;
230
+ rmSync(file, { force: true });
231
+ this.notify();
232
+ return true;
233
+ }
234
+ }
235
+ //# sourceMappingURL=canvas-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-store.js","sourceRoot":"","sources":["../src/canvas-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Model-facing canvas_* tools — workspace-scoped, not session-scoped.
3
+ */
4
+ import type { ToolRegistry } from "@xrkseek/core-tools";
5
+ import type { FaceRuntime } from "./context.js";
6
+ export interface BindCanvasToolsOptions {
7
+ readonly runtime: FaceRuntime;
8
+ readonly sessionId: string;
9
+ }
10
+ declare function workspaceIdForSession(runtime: FaceRuntime, sessionId: string): string;
11
+ /** Register canvas_list / canvas_read / canvas_upsert / canvas_patch / canvas_delete. */
12
+ export declare function bindCanvasTools(tools: ToolRegistry, options: BindCanvasToolsOptions): void;
13
+ export { workspaceIdForSession as canvasWorkspaceIdForSession };
14
+ //# sourceMappingURL=canvas-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-tools.d.ts","sourceRoot":"","sources":["../src/canvas-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAShD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAOD,iBAAS,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAO9E;AAmBD,yFAAyF;AACzF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,sBAAsB,GAC9B,IAAI,CA2MN;AAED,OAAO,EAAE,qBAAqB,IAAI,2BAA2B,EAAE,CAAC"}
@@ -0,0 +1,229 @@
1
+ import { isValidCanvasId, normalizeSections, } from "./canvas-store.js";
2
+ import { resolveSessionCwd } from "./session-cwd.js";
3
+ function registerTool(tools, tool) {
4
+ if (tools.get(tool.name))
5
+ tools.replace(tool);
6
+ else
7
+ tools.register(tool);
8
+ }
9
+ function workspaceIdForSession(runtime, sessionId) {
10
+ const mapped = runtime.workspaces.workspaceIdOf(sessionId);
11
+ if (mapped)
12
+ return mapped;
13
+ const cwd = resolveSessionCwd(runtime, sessionId);
14
+ const byPath = runtime.workspaces.findByPath(cwd);
15
+ if (byPath)
16
+ return byPath.workspaceId;
17
+ return runtime.workspaces.defaultId();
18
+ }
19
+ function compactDoc(doc) {
20
+ return {
21
+ id: doc.id,
22
+ title: doc.title,
23
+ revision: doc.revision,
24
+ createdAt: doc.createdAt,
25
+ updatedAt: doc.updatedAt,
26
+ sections: doc.sections,
27
+ pathHint: `{XRK_HOME}/canvases/<workspaceId>/${doc.id}.json`,
28
+ };
29
+ }
30
+ function readArgs(args) {
31
+ if (!args || typeof args !== "object" || Array.isArray(args))
32
+ return {};
33
+ return args;
34
+ }
35
+ /** Register canvas_list / canvas_read / canvas_upsert / canvas_patch / canvas_delete. */
36
+ export function bindCanvasTools(tools, options) {
37
+ const { runtime, sessionId } = options;
38
+ const ws = () => workspaceIdForSession(runtime, sessionId);
39
+ registerTool(tools, {
40
+ name: "canvas_list",
41
+ description: "List workspace Canvases (id, title, updatedAt). Scoped to the current Face workspace — " +
42
+ "survives session create/delete. Prefer this before canvas_read.",
43
+ parameters: {
44
+ type: "object",
45
+ properties: {},
46
+ additionalProperties: false,
47
+ },
48
+ isConcurrencySafe: () => true,
49
+ presentCall: () => ({
50
+ card: "generic",
51
+ title: "canvas_list",
52
+ kind: "search",
53
+ rawInput: {},
54
+ }),
55
+ execute: async () => {
56
+ const workspaceId = ws();
57
+ const items = runtime.canvases.list(workspaceId);
58
+ return {
59
+ content: JSON.stringify({
60
+ workspaceId,
61
+ count: items.length,
62
+ items,
63
+ disk: `{XRK_HOME}/canvases/${workspaceId}/<id>.json`,
64
+ }, null, 2),
65
+ };
66
+ },
67
+ });
68
+ registerTool(tools, {
69
+ name: "canvas_read",
70
+ description: "Read one workspace Canvas document (declarative sections: markdown/table/kpi/series). " +
71
+ "Use anytime — canvases are workspace-locked, not session-locked.",
72
+ parameters: {
73
+ type: "object",
74
+ properties: {
75
+ id: { type: "string", description: "Canvas id (kebab-case)." },
76
+ },
77
+ required: ["id"],
78
+ additionalProperties: false,
79
+ },
80
+ isConcurrencySafe: () => true,
81
+ presentCall: (args) => ({
82
+ card: "generic",
83
+ title: "canvas_read",
84
+ kind: "read",
85
+ rawInput: args,
86
+ }),
87
+ execute: async (args) => {
88
+ const id = String(readArgs(args).id ?? "").trim();
89
+ if (!isValidCanvasId(id)) {
90
+ return { content: "canvas_read: invalid id", isError: true };
91
+ }
92
+ const workspaceId = ws();
93
+ const doc = runtime.canvases.get(workspaceId, id);
94
+ if (!doc) {
95
+ return {
96
+ content: `canvas_read: not found (${id}) in workspace ${workspaceId}`,
97
+ isError: true,
98
+ };
99
+ }
100
+ return { content: JSON.stringify(compactDoc(doc), null, 2) };
101
+ },
102
+ });
103
+ registerTool(tools, {
104
+ name: "canvas_upsert",
105
+ description: "Create or replace a workspace Canvas. sections[] kinds: markdown{body}, " +
106
+ "table{columns,rows}, kpi{items:[{label,value}]}, series{title,points:[{x,y}]}. " +
107
+ "Do not write Canvas JSON via filesystem tools — use this tool.",
108
+ parameters: {
109
+ type: "object",
110
+ properties: {
111
+ id: { type: "string", description: "Stable canvas id (kebab-case)." },
112
+ title: { type: "string" },
113
+ sections: { type: "array", description: "Declarative sections (max 64)." },
114
+ },
115
+ required: ["id", "title", "sections"],
116
+ additionalProperties: false,
117
+ },
118
+ presentCall: (args) => ({
119
+ card: "generic",
120
+ title: "canvas_upsert",
121
+ kind: "edit",
122
+ rawInput: args,
123
+ }),
124
+ execute: async (args) => {
125
+ const a = readArgs(args);
126
+ const id = String(a.id ?? "").trim();
127
+ const title = String(a.title ?? "").trim();
128
+ if (!isValidCanvasId(id)) {
129
+ return { content: "canvas_upsert: invalid id", isError: true };
130
+ }
131
+ if (!title) {
132
+ return { content: "canvas_upsert: title required", isError: true };
133
+ }
134
+ const sections = normalizeSections(a.sections);
135
+ try {
136
+ const doc = runtime.canvases.upsert(ws(), { id, title, sections });
137
+ return { content: JSON.stringify(compactDoc(doc), null, 2) };
138
+ }
139
+ catch (err) {
140
+ return {
141
+ content: `canvas_upsert: ${err instanceof Error ? err.message : String(err)}`,
142
+ isError: true,
143
+ };
144
+ }
145
+ },
146
+ });
147
+ registerTool(tools, {
148
+ name: "canvas_patch",
149
+ description: "Patch an existing workspace Canvas title and/or sections (full sections replace when provided).",
150
+ parameters: {
151
+ type: "object",
152
+ properties: {
153
+ id: { type: "string" },
154
+ title: { type: "string" },
155
+ sections: { type: "array" },
156
+ },
157
+ required: ["id"],
158
+ additionalProperties: false,
159
+ },
160
+ presentCall: (args) => ({
161
+ card: "generic",
162
+ title: "canvas_patch",
163
+ kind: "edit",
164
+ rawInput: args,
165
+ }),
166
+ execute: async (args) => {
167
+ const a = readArgs(args);
168
+ const id = String(a.id ?? "").trim();
169
+ if (!isValidCanvasId(id)) {
170
+ return { content: "canvas_patch: invalid id", isError: true };
171
+ }
172
+ const patch = {};
173
+ if (typeof a.title === "string")
174
+ patch.title = a.title;
175
+ if (a.sections !== undefined)
176
+ patch.sections = normalizeSections(a.sections);
177
+ if (patch.title === undefined && patch.sections === undefined) {
178
+ return { content: "canvas_patch: title or sections required", isError: true };
179
+ }
180
+ try {
181
+ const doc = runtime.canvases.patch(ws(), id, patch);
182
+ return { content: JSON.stringify(compactDoc(doc), null, 2) };
183
+ }
184
+ catch (err) {
185
+ return {
186
+ content: `canvas_patch: ${err instanceof Error ? err.message : String(err)}`,
187
+ isError: true,
188
+ };
189
+ }
190
+ },
191
+ });
192
+ registerTool(tools, {
193
+ name: "canvas_delete",
194
+ description: "Delete one workspace Canvas by id.",
195
+ parameters: {
196
+ type: "object",
197
+ properties: {
198
+ id: { type: "string" },
199
+ },
200
+ required: ["id"],
201
+ additionalProperties: false,
202
+ },
203
+ presentCall: (args) => ({
204
+ card: "generic",
205
+ title: "canvas_delete",
206
+ kind: "execute",
207
+ rawInput: args,
208
+ }),
209
+ execute: async (args) => {
210
+ const id = String(readArgs(args).id ?? "").trim();
211
+ if (!isValidCanvasId(id)) {
212
+ return { content: "canvas_delete: invalid id", isError: true };
213
+ }
214
+ const workspaceId = ws();
215
+ const ok = runtime.canvases.delete(workspaceId, id);
216
+ if (!ok) {
217
+ return {
218
+ content: `canvas_delete: not found (${id})`,
219
+ isError: true,
220
+ };
221
+ }
222
+ return {
223
+ content: JSON.stringify({ deleted: true, id, workspaceId }, null, 2),
224
+ };
225
+ },
226
+ });
227
+ }
228
+ export { workspaceIdForSession as canvasWorkspaceIdForSession };
229
+ //# sourceMappingURL=canvas-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-tools.js","sourceRoot":"","sources":["../src/canvas-tools.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ import type { AgentTeamTaskBoard } from "./agent-team-tasks.js";
23
23
  import type { ManagedWorktreeManager } from "./managed-worktree.js";
24
24
  import type { FaceMessageFeedbackStore } from "./message-feedback.js";
25
25
  import type { FaceGoalStore } from "./goal-store.js";
26
+ import type { FaceCanvasStore } from "./canvas-store.js";
26
27
  import type { FaceWireIdMaps } from "./adapt/wire-ids.js";
27
28
  import type { FaceInboxWireMaps } from "./adapt/inbox-wire.js";
28
29
  import type { DirectoryListingView } from "./host-directory.js";
@@ -129,6 +130,8 @@ export interface FaceRuntime {
129
130
  readonly feedbackSlicesDir?: string;
130
131
  /** Per-session Goal sidecar (projection key `goal`). */
131
132
  readonly goals: FaceGoalStore;
133
+ /** Workspace-scoped Canvas documents (`{XRK_HOME}/canvases/<workspaceId>/`). */
134
+ readonly canvases: FaceCanvasStore;
132
135
  /** Session-scoped turn/step numbers for DSH wire events. */
133
136
  readonly wireIds: FaceWireIdMaps;
134
137
  /** Session-scoped inbox splice projectors for live mux. */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAoClD,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAiO7B,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAElE;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,eAAe,CAAC,CAkB1B"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAoClD,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAwO7B,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAElE;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,eAAe,CAAC,CAkB1B"}