@consciousclouds/canvas-sdk 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 (39) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +29 -0
  3. package/dist/client/canvas-client.d.ts +28 -0
  4. package/dist/client/canvas-client.d.ts.map +1 -0
  5. package/dist/client/canvas-client.js +50 -0
  6. package/dist/client/canvas-client.js.map +1 -0
  7. package/dist/contracts/experience-adapter.d.ts +83 -0
  8. package/dist/contracts/experience-adapter.d.ts.map +1 -0
  9. package/dist/contracts/experience-adapter.js +50 -0
  10. package/dist/contracts/experience-adapter.js.map +1 -0
  11. package/dist/index.d.ts +10 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +5 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/registry/component-registry.d.ts +40 -0
  16. package/dist/registry/component-registry.d.ts.map +1 -0
  17. package/dist/registry/component-registry.js +59 -0
  18. package/dist/registry/component-registry.js.map +1 -0
  19. package/dist/storage/client.d.ts +70 -0
  20. package/dist/storage/client.d.ts.map +1 -0
  21. package/dist/storage/client.js +146 -0
  22. package/dist/storage/client.js.map +1 -0
  23. package/dist/storage/index.d.ts +13 -0
  24. package/dist/storage/index.d.ts.map +1 -0
  25. package/dist/storage/index.js +11 -0
  26. package/dist/storage/index.js.map +1 -0
  27. package/dist/storage/types.d.ts +80 -0
  28. package/dist/storage/types.d.ts.map +1 -0
  29. package/dist/storage/types.js +11 -0
  30. package/dist/storage/types.js.map +1 -0
  31. package/dist/types/canvas.d.ts +94 -0
  32. package/dist/types/canvas.d.ts.map +1 -0
  33. package/dist/types/canvas.js +11 -0
  34. package/dist/types/canvas.js.map +1 -0
  35. package/dist/validate/canvas.d.ts +1091 -0
  36. package/dist/validate/canvas.d.ts.map +1 -0
  37. package/dist/validate/canvas.js +120 -0
  38. package/dist/validate/canvas.js.map +1 -0
  39. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/storage/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @consciousclouds/canvas-sdk/storage — the durable Canvas write seam (Phase 3B).
3
+ *
4
+ * The browser/edge transport of the one Canvas Storage wire contract: a thin, bearer-forwarding HTTP
5
+ * client over canvas-service's record/Parts/lifecycle API, plus the write-side contract types. Pairs with
6
+ * the read-side `@consciousclouds/canvas-sdk/client` (the emitter path) as siblings under one SDK. The
7
+ * server-side write-back enforcement (durable dedup, atomic batch-append route, revision conflict check)
8
+ * is Phase 5; the `apply()` contract + the idempotency key + revision echo are banked here.
9
+ */
10
+ export type { LifecycleState, PartType, CanvasRecord, CanvasPart, CanvasAggregate, CanvasHome, PartInput, IdempotencyKey, BatchAppendRequest, BatchAppendResult, } from './types.js';
11
+ export { CanvasStorageClient, CanvasStorageError, CanvasStorageConflictError, } from './client.js';
12
+ export type { CanvasStorageClientOptions } from './client.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EACV,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,eAAe,EACf,UAAU,EACV,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @consciousclouds/canvas-sdk/storage — the durable Canvas write seam (Phase 3B).
3
+ *
4
+ * The browser/edge transport of the one Canvas Storage wire contract: a thin, bearer-forwarding HTTP
5
+ * client over canvas-service's record/Parts/lifecycle API, plus the write-side contract types. Pairs with
6
+ * the read-side `@consciousclouds/canvas-sdk/client` (the emitter path) as siblings under one SDK. The
7
+ * server-side write-back enforcement (durable dedup, atomic batch-append route, revision conflict check)
8
+ * is Phase 5; the `apply()` contract + the idempotency key + revision echo are banked here.
9
+ */
10
+ export { CanvasStorageClient, CanvasStorageError, CanvasStorageConflictError, } from './client.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,aAAa,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Canvas Storage — write-side contract types (the TS twin of platform/contracts/canvas-storage/v1).
3
+ *
4
+ * The DURABLE storage view of a Canvas, distinct from the CanvasDefinition render view (../types/canvas).
5
+ * Types only — no logic. The factory scope grammar applies: a CanvasRecord is a user artifact carrying
6
+ * `tenant_id` + `owner_user_id` + an optional non-owning `project_id` (null = personal).
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ export type LifecycleState = 'draft' | 'active' | 'archived';
11
+ /** Authored narrative part types. `embed-ref` carries only an opaque pointer in metadata, never a value. */
12
+ export type PartType = 'heading' | 'text' | 'metric' | 'divider' | 'embed-ref';
13
+ /** The durable Canvas record as canvas-service persists + returns it. */
14
+ export interface CanvasRecord {
15
+ id: string;
16
+ tenant_id: string;
17
+ owner_user_id: string;
18
+ /** Optional non-owning project link; null = personal (a permanent valid state). */
19
+ project_id?: string | null;
20
+ lifecycle_state: LifecycleState;
21
+ name?: string | null;
22
+ metadata: Record<string, unknown>;
23
+ created_at: string;
24
+ updated_at: string;
25
+ archived_at?: string | null;
26
+ /** Monotonic optimistic-concurrency token — echo it back on a write to detect a stale-write conflict. */
27
+ revision: number;
28
+ }
29
+ /** An authored child part of a Canvas. */
30
+ export interface CanvasPart {
31
+ id: string;
32
+ tenant_id: string;
33
+ canvas_id: string;
34
+ part_type: PartType;
35
+ text_content?: string | null;
36
+ layout: Record<string, unknown>;
37
+ position: number;
38
+ metadata: Record<string, unknown>;
39
+ created_at: string;
40
+ updated_at: string;
41
+ }
42
+ /** The Open (read) result: the canvas + its ordered parts. */
43
+ export interface CanvasAggregate {
44
+ canvas: CanvasRecord;
45
+ parts: CanvasPart[];
46
+ }
47
+ /** The Workspace-Home read model — the user's desk in one read. */
48
+ export interface CanvasHome {
49
+ continue?: CanvasRecord | null;
50
+ recent: CanvasRecord[];
51
+ draft?: CanvasRecord | null;
52
+ }
53
+ /** An authored part to append. */
54
+ export interface PartInput {
55
+ part_type: PartType;
56
+ text_content?: string | null;
57
+ layout?: Record<string, unknown>;
58
+ metadata?: Record<string, unknown>;
59
+ }
60
+ /** The batch idempotency key — the turn + tool-call binding for the Phase-5 write-back batch. */
61
+ export interface IdempotencyKey {
62
+ turn_id: string;
63
+ tool_call_id: string;
64
+ }
65
+ /**
66
+ * The Phase-5 write-back batch request: append a batch of parts atomically, idempotent under
67
+ * `idempotencyKey`, optimistic against the observed `expectedRevision`.
68
+ */
69
+ export interface BatchAppendRequest {
70
+ idempotencyKey: IdempotencyKey;
71
+ /** The revision the writer observed; omit for no optimistic check. */
72
+ expectedRevision?: number;
73
+ parts: PartInput[];
74
+ }
75
+ /** The Phase-5 batch-append result. */
76
+ export interface BatchAppendResult {
77
+ parts: CanvasPart[];
78
+ revision: number;
79
+ }
80
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE7D,4GAA4G;AAC5G,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/E,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,cAAc,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yGAAyG;IACzG,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC7B;AAED,kCAAkC;AAClC,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Canvas Storage — write-side contract types (the TS twin of platform/contracts/canvas-storage/v1).
3
+ *
4
+ * The DURABLE storage view of a Canvas, distinct from the CanvasDefinition render view (../types/canvas).
5
+ * Types only — no logic. The factory scope grammar applies: a CanvasRecord is a user artifact carrying
6
+ * `tenant_id` + `owner_user_id` + an optional non-owning `project_id` (null = personal).
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * CanvasDefinition wire types.
3
+ *
4
+ * Mirrors the authoritative JSON Schema at platform/contracts/canvas/v1/.
5
+ * Adding a node type is purely additive: add a NodeType, a *Node interface,
6
+ * and a member to the CanvasNode union — nothing existing changes.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ export type CanvasVersion = 'v1';
11
+ /** Declaration of how a node prop was sourced (resolved server-side). */
12
+ export interface Binding {
13
+ prop: string;
14
+ source: string;
15
+ }
16
+ /** An action a node may dispatch to a parent handler (never navigates directly). */
17
+ export interface ActionDef {
18
+ id: string;
19
+ label: string;
20
+ target: string;
21
+ method?: 'GET' | 'POST';
22
+ }
23
+ /** Fields shared by every node wrapper (the wrapper is closed; `props` is open). */
24
+ export interface CanvasNodeBase {
25
+ id: string;
26
+ requiredPermission?: string;
27
+ nodeVersion?: number;
28
+ bindings?: Binding[];
29
+ actions?: ActionDef[];
30
+ }
31
+ export interface StatCardProps {
32
+ label: string;
33
+ value: string | number;
34
+ unit?: string;
35
+ trend?: 'up' | 'down' | 'flat';
36
+ [extra: string]: unknown;
37
+ }
38
+ export interface StatCardNode extends CanvasNodeBase {
39
+ type: 'stat-card';
40
+ props: StatCardProps;
41
+ }
42
+ export interface DataTableColumn {
43
+ key: string;
44
+ label: string;
45
+ }
46
+ export interface DataTableProps {
47
+ title?: string;
48
+ columns: DataTableColumn[];
49
+ rows: Record<string, unknown>[];
50
+ [extra: string]: unknown;
51
+ }
52
+ export interface DataTableNode extends CanvasNodeBase {
53
+ type: 'data-table';
54
+ props: DataTableProps;
55
+ }
56
+ export interface ServiceHealthItem {
57
+ name: string;
58
+ state: 'running' | 'stopped' | 'unknown' | 'error';
59
+ health?: 'healthy' | 'unhealthy' | 'unknown';
60
+ [extra: string]: unknown;
61
+ }
62
+ export interface ServiceHealthProps {
63
+ title?: string;
64
+ services: ServiceHealthItem[];
65
+ [extra: string]: unknown;
66
+ }
67
+ export interface ServiceHealthNode extends CanvasNodeBase {
68
+ type: 'service-health';
69
+ props: ServiceHealthProps;
70
+ }
71
+ export interface TextBlockProps {
72
+ variant: 'heading' | 'subheading' | 'body';
73
+ text: string;
74
+ [extra: string]: unknown;
75
+ }
76
+ export interface TextBlockNode extends CanvasNodeBase {
77
+ type: 'text-block';
78
+ props: TextBlockProps;
79
+ }
80
+ /** The closed, discriminated union of approved node types. */
81
+ export type CanvasNode = StatCardNode | DataTableNode | ServiceHealthNode | TextBlockNode;
82
+ /** The set of node `type` discriminants. */
83
+ export type CanvasNodeType = CanvasNode['type'];
84
+ export interface CanvasLayout {
85
+ type: 'stack' | 'grid';
86
+ columns?: number;
87
+ }
88
+ export interface CanvasDefinition {
89
+ version: CanvasVersion;
90
+ correlationId: string;
91
+ layout: CanvasLayout;
92
+ nodes: CanvasNode[];
93
+ }
94
+ //# sourceMappingURL=canvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/types/canvas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * CanvasDefinition wire types.
3
+ *
4
+ * Mirrors the authoritative JSON Schema at platform/contracts/canvas/v1/.
5
+ * Adding a node type is purely additive: add a NodeType, a *Node interface,
6
+ * and a member to the CanvasNode union — nothing existing changes.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=canvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../src/types/canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}