@artkit-ai/core 0.1.0 → 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/dist/adapter.d.ts +119 -0
  2. package/dist/adapter.d.ts.map +1 -0
  3. package/dist/adapter.js +45 -0
  4. package/dist/adapter.js.map +1 -0
  5. package/dist/diff.d.ts +1 -1
  6. package/dist/diff.d.ts.map +1 -1
  7. package/dist/engine.d.ts +29 -23
  8. package/dist/engine.d.ts.map +1 -1
  9. package/dist/engine.js +148 -197
  10. package/dist/engine.js.map +1 -1
  11. package/dist/envelope.d.ts +10 -27
  12. package/dist/envelope.d.ts.map +1 -1
  13. package/dist/envelope.js +8 -20
  14. package/dist/envelope.js.map +1 -1
  15. package/dist/errors.d.ts +1 -1
  16. package/dist/errors.d.ts.map +1 -1
  17. package/dist/errors.js +4 -4
  18. package/dist/errors.js.map +1 -1
  19. package/dist/events.d.ts +2 -10
  20. package/dist/events.d.ts.map +1 -1
  21. package/dist/events.js.map +1 -1
  22. package/dist/i18n.d.ts +8 -14
  23. package/dist/i18n.d.ts.map +1 -1
  24. package/dist/i18n.js +12 -18
  25. package/dist/i18n.js.map +1 -1
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +2 -2
  29. package/dist/index.js.map +1 -1
  30. package/dist/logger.d.ts +1 -2
  31. package/dist/logger.d.ts.map +1 -1
  32. package/dist/logger.js.map +1 -1
  33. package/dist/memory.d.ts +0 -2
  34. package/dist/memory.d.ts.map +1 -1
  35. package/dist/memory.js +15 -109
  36. package/dist/memory.js.map +1 -1
  37. package/dist/migrations.d.ts +6 -5
  38. package/dist/migrations.d.ts.map +1 -1
  39. package/dist/migrations.js +20 -14
  40. package/dist/migrations.js.map +1 -1
  41. package/dist/projection.d.ts +22 -6
  42. package/dist/projection.d.ts.map +1 -1
  43. package/dist/projection.js +5 -5
  44. package/dist/projection.js.map +1 -1
  45. package/dist/registry.d.ts +17 -16
  46. package/dist/registry.d.ts.map +1 -1
  47. package/dist/registry.js +25 -25
  48. package/dist/registry.js.map +1 -1
  49. package/dist/service.d.ts +19 -51
  50. package/dist/service.d.ts.map +1 -1
  51. package/dist/service.js +119 -404
  52. package/dist/service.js.map +1 -1
  53. package/dist/store.d.ts +12 -61
  54. package/dist/store.d.ts.map +1 -1
  55. package/dist/testing/index.d.ts +10 -9
  56. package/dist/testing/index.d.ts.map +1 -1
  57. package/dist/testing/index.js +75 -136
  58. package/dist/testing/index.js.map +1 -1
  59. package/dist/theme.js +1 -1
  60. package/dist/ui.d.ts +18 -1
  61. package/dist/ui.d.ts.map +1 -1
  62. package/dist/ui.js +5 -3
  63. package/dist/ui.js.map +1 -1
  64. package/package.json +1 -1
  65. package/src/adapter.ts +180 -0
  66. package/src/diff.ts +1 -1
  67. package/src/engine.ts +183 -230
  68. package/src/envelope.ts +11 -29
  69. package/src/errors.ts +4 -4
  70. package/src/events.ts +2 -11
  71. package/src/i18n.ts +14 -20
  72. package/src/index.ts +2 -4
  73. package/src/logger.ts +1 -2
  74. package/src/memory.ts +16 -122
  75. package/src/migrations.ts +24 -18
  76. package/src/projection.ts +25 -7
  77. package/src/registry.ts +45 -41
  78. package/src/service.ts +144 -540
  79. package/src/store.ts +12 -64
  80. package/src/testing/index.ts +89 -164
  81. package/src/theme.ts +1 -1
  82. package/src/ui.ts +24 -4
  83. package/dist/kind.d.ts +0 -156
  84. package/dist/kind.d.ts.map +0 -1
  85. package/dist/kind.js +0 -52
  86. package/dist/kind.js.map +0 -1
  87. package/src/kind.ts +0 -217
package/dist/registry.js CHANGED
@@ -1,6 +1,6 @@
1
+ import { assertFormatContract } from './adapter.js';
1
2
  import { ArtifactError } from './errors.js';
2
3
  import { t } from './i18n.js';
3
- import { assertKindContract } from './kind.js';
4
4
  import { defaultTheme, themeSchema } from './theme.js';
5
5
  export const EXPORT_FORMATS = [
6
6
  'docx',
@@ -16,40 +16,40 @@ export const EXPORT_FORMATS = [
16
16
  ];
17
17
  export const DEFAULT_BATCH_LIMITS = { maxOperations: 200, maxEnvelopeBytes: 5 * 1024 * 1024 };
18
18
  export function createRegistry(options = {}) {
19
- const kinds = new Map();
19
+ const formats = new Map();
20
20
  const themes = new Map([[defaultTheme.id, defaultTheme]]);
21
21
  const exporters = new Map();
22
22
  const limitOverrides = options.limits ?? {};
23
23
  const batch = { ...DEFAULT_BATCH_LIMITS, ...options.batch };
24
24
  const registry = {
25
25
  batch,
26
- register(kind) {
27
- if (kinds.has(kind.kind)) {
28
- throw new ArtifactError('DUPLICATE_KIND', t(undefined, 'DUPLICATE_KIND', { kind: kind.kind }));
26
+ register(adapter) {
27
+ if (formats.has(adapter.format)) {
28
+ throw new ArtifactError('DUPLICATE_FORMAT', t(undefined, 'DUPLICATE_FORMAT', { format: adapter.format }));
29
29
  }
30
- assertKindContract(kind);
31
- kinds.set(kind.kind, kind);
30
+ assertFormatContract(adapter);
31
+ formats.set(adapter.format, adapter);
32
32
  },
33
- get(kind, locale) {
34
- const found = kinds.get(kind);
33
+ get(format, locale) {
34
+ const found = formats.get(format);
35
35
  if (!found) {
36
- throw new ArtifactError('UNKNOWN_KIND', t(locale, 'UNKNOWN_KIND', { kind }), {
36
+ throw new ArtifactError('UNKNOWN_FORMAT', t(locale, 'UNKNOWN_FORMAT', { format }), {
37
37
  issues: [
38
38
  {
39
- path: 'kind',
40
- message: t(locale, 'UNKNOWN_KIND', { kind }),
41
- hint: t(locale, 'UNKNOWN_KIND_HINT', { available: [...kinds.keys()].join(', ') }),
39
+ path: 'format',
40
+ message: t(locale, 'UNKNOWN_FORMAT', { format }),
41
+ hint: t(locale, 'UNKNOWN_FORMAT_HINT', { available: [...formats.keys()].join(', ') }),
42
42
  },
43
43
  ],
44
44
  });
45
45
  }
46
46
  return found;
47
47
  },
48
- has: (kind) => kinds.has(kind),
49
- kinds: () => [...kinds.values()],
50
- limits(kind) {
51
- const base = registry.get(kind).limits;
52
- const overrides = Object.fromEntries(Object.entries(limitOverrides[kind] ?? {}).filter(([, v]) => v !== undefined));
48
+ has: (format) => formats.has(format),
49
+ formats: () => [...formats.values()],
50
+ limits(format) {
51
+ const base = registry.get(format).limits;
52
+ const overrides = Object.fromEntries(Object.entries(limitOverrides[format] ?? {}).filter(([, v]) => v !== undefined));
53
53
  return { ...base, ...overrides };
54
54
  },
55
55
  registerTheme(theme) {
@@ -64,22 +64,22 @@ export function createRegistry(options = {}) {
64
64
  hasTheme: (id) => themes.has(id),
65
65
  themes: () => [...themes.values()],
66
66
  registerExporter(exporter, opts) {
67
- const key = `${exporter.kind}:${exporter.format}`;
67
+ const key = `${exporter.format}:${exporter.target}`;
68
68
  if (exporters.has(key) && !opts?.replace) {
69
69
  throw new Error(`Exporter ${key} is already registered; pass { replace: true } to override it.`);
70
70
  }
71
71
  exporters.set(key, exporter);
72
72
  },
73
- exporter(kind, format, locale) {
74
- const found = exporters.get(`${kind}:${format}`);
73
+ exporter(format, target, locale) {
74
+ const found = exporters.get(`${format}:${target}`);
75
75
  if (!found)
76
- throw new ArtifactError('NOT_FOUND', t(locale, 'EXPORTER_NOT_FOUND', { kind, format }));
76
+ throw new ArtifactError('NOT_FOUND', t(locale, 'EXPORTER_NOT_FOUND', { format, target }));
77
77
  return found;
78
78
  },
79
- exporters: (kind) => [...exporters.values()].filter((e) => kind === undefined || e.kind === kind),
79
+ exporters: (format) => [...exporters.values()].filter((e) => format === undefined || e.format === format),
80
80
  };
81
- for (const kind of options.kinds ?? [])
82
- registry.register(kind);
81
+ for (const adapter of options.formats ?? [])
82
+ registry.register(adapter);
83
83
  for (const theme of options.themes ?? [])
84
84
  registry.registerTheme(theme);
85
85
  for (const exporter of options.exporters ?? [])
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/dist/service.d.ts CHANGED
@@ -1,24 +1,15 @@
1
+ import type { AnyFormatAdapter, ChangeSummary, LintIssue } from './adapter.js';
1
2
  import type { AssetRef, AssetResolver } from './assets.js';
2
- import { deepEqual } from './diff.js';
3
- import { type BatchResult, envelopeOperationSchema } from './engine.js';
3
+ import { type BatchResult } from './engine.js';
4
4
  import { type Artifact, type ArtifactSummary } from './envelope.js';
5
5
  import { type EventBus } from './events.js';
6
- import type { ChangeSummary, LintIssue, Projection, ProjectionOptions } from './kind.js';
7
6
  import { type Logger, type MetricsHooks } from './logger.js';
7
+ import { type Projection, type ProjectionOptions } from './projection.js';
8
8
  import type { ArtifactRegistry } from './registry.js';
9
- import type { ArtifactFilter, ArtifactStore, AssetStore, Lock, Page, PageRequest, Scope, VersionEntry } from './store.js';
10
- export type ArtifactAction = 'create' | 'read' | 'apply' | 'export' | 'list' | 'history' | 'submit' | 'approve' | 'reject' | 'publish' | 'archive' | 'restore' | 'lock';
11
- /** Mandatory authorization hook in toolkits (spec §16). Return false to deny. */
9
+ import type { ArtifactFilter, ArtifactStore, AssetStore, Lock, Page, PageRequest, Scope } from './store.js';
10
+ export type ArtifactAction = 'create' | 'read' | 'apply' | 'export' | 'list' | 'lock';
11
+ /** Mandatory authorization hook in toolkits (spec §16 and §15.1). Return false to deny. */
12
12
  export type AuthorizeFn = (action: ArtifactAction, artifact: ArtifactSummary | null, scope: Scope) => boolean | Promise<boolean>;
13
- export interface ApprovalPolicy {
14
- /** Publishing goes through submit → approve (default true). */
15
- requireApprovalToPublish: boolean;
16
- /** Only published artifacts can be exported (default false). */
17
- requireApprovalToExport: boolean;
18
- /** Agents cannot edit published artifacts without approval (default false). Edits create a new draft. */
19
- requireApprovalToEditPublished: boolean;
20
- }
21
- export declare const DEFAULT_APPROVAL_POLICY: ApprovalPolicy;
22
13
  export interface ArtifactServiceOptions {
23
14
  registry: ArtifactRegistry;
24
15
  store: ArtifactStore;
@@ -32,46 +23,34 @@ export interface ArtifactServiceOptions {
32
23
  /** Default locale of new artifacts. */
33
24
  defaultArtifactLocale?: string;
34
25
  defaultThemeId?: string;
35
- policy?: Partial<ApprovalPolicy>;
36
- /** Times a commit is retried when another writer wins the race (default 3). */
37
- commitRetries?: number;
38
26
  /** Default export timeout (default 60s). */
39
27
  exportTimeoutMs?: number;
40
28
  }
41
29
  export interface CreateRequest {
42
- kind: string;
30
+ format: string;
43
31
  title: string;
32
+ /** Native content: Markdown text, OpenUI Lang text or an `IWorkbookData` object (spec §15.1). */
44
33
  content?: unknown;
45
- /** Alternative input, e.g. `{ format: 'markdown', source: '# Title' }`. */
46
- input?: {
47
- format: string;
48
- source: unknown;
49
- };
34
+ /** Initial batch applied on the adapter's empty content, e.g. the first operations of a sheet. */
35
+ operations?: unknown[];
50
36
  locale?: string;
51
37
  themeId?: string;
52
38
  tags?: string[];
53
- message?: string;
54
- idempotencyKey?: string;
55
39
  }
56
40
  export interface CommitResult {
57
41
  artifact: Artifact;
58
42
  version: number;
59
- createdIds: string[];
43
+ createdRefs: string[];
60
44
  diff: ChangeSummary[];
61
45
  lint: LintIssue[];
62
- /** True when the batch was applied on a newer version than its baseVersion. */
63
- rebased: boolean;
64
- /** True when an earlier call with the same idempotency key was replayed. */
65
- replayed: boolean;
66
46
  }
67
47
  export interface ApplyRequest {
68
48
  artifactId: string;
49
+ /** Version the operations were computed against. Anything else than the current version is a VERSION_CONFLICT. */
69
50
  baseVersion: number;
70
51
  operations: unknown[];
71
- idempotencyKey?: string;
72
- message?: string;
73
52
  }
74
- export interface ReadResult {
53
+ export interface ArtifactReadResult {
75
54
  artifact: ArtifactSummary;
76
55
  version: number;
77
56
  projection: Projection;
@@ -80,8 +59,8 @@ export interface ReadResult {
80
59
  }
81
60
  export interface ExportRequest {
82
61
  artifactId: string;
62
+ /** Target file format: `docx`, `xlsx`, `pptx`, `pdf`, `png`, `html`, `md`, `csv`… */
83
63
  format: string;
84
- version?: number;
85
64
  signal?: AbortSignal;
86
65
  timeoutMs?: number;
87
66
  /** Store the result in the AssetStore and return its reference. */
@@ -104,23 +83,12 @@ export interface ArtifactService {
104
83
  readonly registry: ArtifactRegistry;
105
84
  readonly events: EventBus;
106
85
  create(scope: Scope, request: CreateRequest): Promise<CommitResult>;
107
- get(scope: Scope, id: string, opts?: {
108
- version?: number;
109
- }): Promise<Artifact>;
110
- read(scope: Scope, id: string, options?: Partial<ProjectionOptions> & {
111
- version?: number;
112
- }): Promise<ReadResult>;
86
+ get(scope: Scope, id: string): Promise<Artifact>;
87
+ read(scope: Scope, id: string, options?: Partial<ProjectionOptions>): Promise<ArtifactReadResult>;
113
88
  apply(scope: Scope, request: ApplyRequest): Promise<CommitResult>;
114
89
  /** Pure dry run on the current version: validates and returns diff/lint without committing. */
115
90
  preview(scope: Scope, request: ApplyRequest): Promise<BatchResult>;
116
91
  list(scope: Scope, filter?: ArtifactFilter, page?: PageRequest): Promise<Page<ArtifactSummary>>;
117
- history(scope: Scope, id: string, page?: PageRequest): Promise<Page<VersionEntry>>;
118
- restore(scope: Scope, id: string, version: number, message?: string): Promise<CommitResult>;
119
- submit(scope: Scope, id: string, message?: string): Promise<Artifact>;
120
- approve(scope: Scope, id: string, message?: string): Promise<Artifact>;
121
- reject(scope: Scope, id: string, reason?: string): Promise<Artifact>;
122
- publish(scope: Scope, id: string): Promise<Artifact>;
123
- archive(scope: Scope, id: string): Promise<Artifact>;
124
92
  lock(scope: Scope, id: string, ttlMs?: number): Promise<Lock>;
125
93
  unlock(scope: Scope, lock: Lock): Promise<void>;
126
94
  /** Current lock holder, or null; lets UIs show who is editing before trying to write. */
@@ -130,10 +98,10 @@ export interface ArtifactService {
130
98
  assetResolver(scope: Scope): AssetResolver;
131
99
  }
132
100
  /**
133
- * The high-level pipeline (spec §8.2): authorization, migration, baseVersion check with automatic rebase,
134
- * atomic apply, optimistic commit with retries, idempotency, events and metadata-only logging.
101
+ * The core pipeline (spec §9.1): authorization, migration, baseVersion check, atomic apply, optimistic commit, events
102
+ * and metadata-only logging. There is no history, approval or archive here: the harness decides what a save means.
135
103
  */
136
104
  export declare function createArtifactService(options: ArtifactServiceOptions): ArtifactService;
137
105
  export declare function slugify(title: string): string;
138
- export { deepEqual, envelopeOperationSchema };
106
+ export type { AnyFormatAdapter };
139
107
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}