@bilig/workbook 0.67.15 → 0.68.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.
package/README.md CHANGED
@@ -102,7 +102,7 @@ The main API is intentionally small:
102
102
  - descriptions: `describeModel`, `describeRef`, `describePlan`, `describePlanResult`, `describeRuntimeRequirements`, `checkRuntimeRequirements`, `checkRuntimeAdapter`, `describeRunResult`
103
103
  - transport data: `isWorkbookRefData`, `toWorkbookRefData`, `collectWorkbookRefData`, `hydrateWorkbookRef`, `hydrateWorkbookRefs`, `toPlanData`, `isPlanData`, `checkPlanData`, `hydratePlanData`, `verifyPlanData`
104
104
  - runtime handoff: `runWorkbookPlan`, `runWorkbookAction`, `WorkbookRunAdapter`
105
- - feature handoff: `defineWorkbookFeaturePlugin`, `checkWorkbookFeaturePlugin`, `checkWorkbookCommandRequest`, `normalizeWorkbookCommandRequest`, `checkWorkbookCommandReceipt`, `normalizeWorkbookCommandReceipt`, `workbookCommandReceiptOpsMatch`
105
+ - feature handoff: `defineWorkbookFeaturePlugin`, `checkWorkbookFeaturePlugin`, `checkWorkbookCommandRequest`, `normalizeWorkbookCommandRequest`, `checkWorkbookCommandBundle`, `normalizeWorkbookCommandBundle`, `workbookCommandResultFor`, `checkWorkbookCommandReceipt`, `normalizeWorkbookCommandReceipt`, `workbookCommandReceiptOpsMatch`
106
106
  - low-level language: `WorkbookOp`, `WorkbookTxn`, `EngineOp`, `EngineOpBatch`, `isEngineOpBatch`
107
107
 
108
108
  Stable data helpers are exported for generic tool builders:
@@ -116,6 +116,7 @@ Stable data helpers are exported for generic tool builders:
116
116
  - `workbookRuntimeRequirementKinds`, `isWorkbookRuntimeRequirementKind`, `workbookRuntimeCapabilities`, `isWorkbookRuntimeCapability`, `checkRuntimeRequirements`
117
117
  - `workbookCommandCategories`, `isWorkbookCommandCategory`, `workbookCommandExecutionModes`, `isWorkbookCommandExecutionMode`, `workbookCommandReceiptStatuses`, `isWorkbookCommandReceiptStatus`
118
118
  - `workbookProjectionInterceptorPoints`, `isWorkbookProjectionInterceptorPoint`, `workbookUiContributionSlots`, `isWorkbookUiContributionSlot`, `checkWorkbookCommandRequest`
119
+ - `workbookCommandBundleCommandKinds`, `isWorkbookCommandBundleCommandKind`, `checkWorkbookCommandBundle`, `isWorkbookCommandBundle`, `workbookCommandResultFor`
119
120
  - `workbookRunErrorCodes`, `isWorkbookRunErrorCode`
120
121
 
121
122
  Model action manifests are frozen null-prototype maps. Consumers can use normal
@@ -319,6 +320,16 @@ runtime. The exported command category, execution-mode, receipt-status,
319
320
  projection-point, and UI-slot lists let tool builders present and validate
320
321
  command contracts without importing a schema framework.
321
322
 
323
+ Use `checkWorkbookCommandBundle(data)` when an agent wants to hand a runtime a
324
+ single ordered set of command requests and low-level ops. A bundle must include
325
+ `targetRevision`, `idempotencyKey`, and non-empty `commands`. Each command uses
326
+ plain `kind: "request"` or `kind: "op"` data, keeps declared `touchedRanges`
327
+ canonical, and preserves command order after normalization. Mutation requests
328
+ and ops must say `destructive: true`, so broad edits are never implied by a
329
+ generic payload. `scope.maxTouchedCells` lets a caller reject oversized edits
330
+ before execution. The validator returns a `WorkbookCommandResult` with normalized
331
+ touched ranges and touched-cell count without importing `@bilig/core`.
332
+
322
333
  Use `checkWorkbookCommandReceipt(data)` before trusting runtime command evidence.
323
334
  It returns the same boring `{ status, issues }` shape for receipt fields such as
324
335
  `status`, `featureId`, `commandId`, `previewOps`, `appliedOps`, `undo`,
@@ -0,0 +1,58 @@
1
+ import type { CellRangeRef } from '@bilig/protocol';
2
+ import type { EngineOp } from './ops.js';
3
+ import { type WorkbookCommandRequest } from './features.js';
4
+ export type WorkbookCommandBundleCommandKind = 'request' | 'op';
5
+ export declare const workbookCommandBundleCommandKinds: readonly ["request", "op"];
6
+ export interface WorkbookCommandBundleScope {
7
+ readonly maxTouchedCells?: number;
8
+ }
9
+ export interface WorkbookCommandBundleCommandBase {
10
+ readonly id?: string;
11
+ readonly touchedRanges?: readonly CellRangeRef[];
12
+ readonly destructive?: boolean;
13
+ }
14
+ export interface WorkbookCommandBundleRequestCommand extends WorkbookCommandBundleCommandBase {
15
+ readonly kind: 'request';
16
+ readonly request: WorkbookCommandRequest;
17
+ }
18
+ export interface WorkbookCommandBundleOpCommand extends WorkbookCommandBundleCommandBase {
19
+ readonly kind: 'op';
20
+ readonly op: EngineOp;
21
+ }
22
+ export type WorkbookCommandBundleCommand = WorkbookCommandBundleRequestCommand | WorkbookCommandBundleOpCommand;
23
+ export interface WorkbookCommandBundle {
24
+ readonly id?: string;
25
+ readonly targetRevision: number;
26
+ readonly idempotencyKey: string;
27
+ readonly scope?: WorkbookCommandBundleScope;
28
+ readonly commands: readonly WorkbookCommandBundleCommand[];
29
+ }
30
+ export interface WorkbookCommandResult {
31
+ readonly status: 'accepted';
32
+ readonly bundleId?: string;
33
+ readonly targetRevision: number;
34
+ readonly idempotencyKey: string;
35
+ readonly commandCount: number;
36
+ readonly touchedRanges: readonly CellRangeRef[];
37
+ readonly touchedCellCount: number;
38
+ }
39
+ export type WorkbookCommandBundleIssueCode = 'invalid_bundle' | 'missing_target_revision' | 'invalid_target_revision' | 'missing_idempotency_key' | 'invalid_idempotency_key' | 'missing_commands' | 'unknown_command_kind' | 'invalid_command' | 'invalid_range' | 'destructive_not_confirmed' | 'too_many_touched_cells';
40
+ export interface WorkbookCommandBundleIssue {
41
+ readonly code: WorkbookCommandBundleIssueCode;
42
+ readonly path: string;
43
+ readonly message: string;
44
+ }
45
+ export type WorkbookCommandBundleCheckResult = {
46
+ readonly status: 'valid';
47
+ readonly bundle: WorkbookCommandBundle;
48
+ readonly result: WorkbookCommandResult;
49
+ readonly issues: readonly [];
50
+ } | {
51
+ readonly status: 'invalid';
52
+ readonly issues: readonly WorkbookCommandBundleIssue[];
53
+ };
54
+ export declare function isWorkbookCommandBundleCommandKind(value: unknown): value is WorkbookCommandBundleCommandKind;
55
+ export declare function checkWorkbookCommandBundle(value: unknown): WorkbookCommandBundleCheckResult;
56
+ export declare function normalizeWorkbookCommandBundle(value: unknown): WorkbookCommandBundle;
57
+ export declare function isWorkbookCommandBundle(value: unknown): value is WorkbookCommandBundle;
58
+ export declare function workbookCommandResultFor(bundle: WorkbookCommandBundle): WorkbookCommandResult;
@@ -0,0 +1,445 @@
1
+ import { formatAddress, parseCellAddress } from '@bilig/formula';
2
+ import { isWorkbookOp } from './guards.js';
3
+ import { checkWorkbookCommandRequest, normalizeWorkbookCommandRequest } from './features.js';
4
+ export const workbookCommandBundleCommandKinds = Object.freeze([
5
+ 'request',
6
+ 'op',
7
+ ]);
8
+ const WORKBOOK_COMMAND_BUNDLE_COMMAND_KIND_SET = new Set(workbookCommandBundleCommandKinds);
9
+ export function isWorkbookCommandBundleCommandKind(value) {
10
+ return typeof value === 'string' && WORKBOOK_COMMAND_BUNDLE_COMMAND_KIND_SET.has(value);
11
+ }
12
+ export function checkWorkbookCommandBundle(value) {
13
+ if (!isRecord(value)) {
14
+ return {
15
+ status: 'invalid',
16
+ issues: Object.freeze([commandBundleIssue('invalid_bundle', 'bundle', 'Workbook command bundle must be an object')]),
17
+ };
18
+ }
19
+ const accessorPath = firstAccessorPath(value, 'bundle');
20
+ if (accessorPath !== null) {
21
+ return {
22
+ status: 'invalid',
23
+ issues: Object.freeze([
24
+ commandBundleIssue('invalid_bundle', accessorPath, 'Workbook command bundle must contain only data properties'),
25
+ ]),
26
+ };
27
+ }
28
+ const issues = [];
29
+ pushOptionalStringIssue(issues, ownValue(value, 'id'), 'id', 'bundle id');
30
+ pushTargetRevisionIssue(issues, ownValue(value, 'targetRevision'));
31
+ pushIdempotencyKeyIssue(issues, ownValue(value, 'idempotencyKey'));
32
+ pushScopeIssues(issues, ownValue(value, 'scope'));
33
+ const commands = ownValue(value, 'commands');
34
+ if (!Array.isArray(commands) || commands.length === 0) {
35
+ issues.push(commandBundleIssue('missing_commands', 'commands', 'Workbook command bundle commands must be a non-empty array'));
36
+ }
37
+ else {
38
+ pushArrayDataIssues(issues, commands, 'commands', 'Workbook command bundle commands');
39
+ for (let index = 0; index < commands.length; index += 1) {
40
+ const command = arrayDataValue(commands, index);
41
+ if (command === undefined) {
42
+ continue;
43
+ }
44
+ pushCommandIssues(issues, command, `commands[${index}]`);
45
+ }
46
+ }
47
+ if (issues.length > 0) {
48
+ return {
49
+ status: 'invalid',
50
+ issues: Object.freeze(issues),
51
+ };
52
+ }
53
+ const normalized = normalizeWorkbookCommandBundleData(value);
54
+ const result = workbookCommandResultFor(normalized);
55
+ const maxTouchedCells = normalized.scope?.maxTouchedCells;
56
+ if (maxTouchedCells !== undefined && result.touchedCellCount > maxTouchedCells) {
57
+ return {
58
+ status: 'invalid',
59
+ issues: Object.freeze([
60
+ commandBundleIssue('too_many_touched_cells', 'scope.maxTouchedCells', `Workbook command bundle touches ${result.touchedCellCount} cells, exceeding scope.maxTouchedCells ${maxTouchedCells}`),
61
+ ]),
62
+ };
63
+ }
64
+ return {
65
+ status: 'valid',
66
+ bundle: normalized,
67
+ result,
68
+ issues: Object.freeze([]),
69
+ };
70
+ }
71
+ export function normalizeWorkbookCommandBundle(value) {
72
+ const check = checkWorkbookCommandBundle(value);
73
+ if (check.status === 'invalid') {
74
+ const [firstIssue] = check.issues;
75
+ throw new Error(firstIssue === undefined ? 'Workbook command bundle is invalid' : `Workbook command bundle is invalid: ${firstIssue.message}`);
76
+ }
77
+ return check.bundle;
78
+ }
79
+ export function isWorkbookCommandBundle(value) {
80
+ return checkWorkbookCommandBundle(value).status === 'valid';
81
+ }
82
+ export function workbookCommandResultFor(bundle) {
83
+ const touchedRanges = [];
84
+ let touchedCellCount = 0;
85
+ for (const command of bundle.commands) {
86
+ for (const range of command.touchedRanges ?? []) {
87
+ const normalized = normalizeRange(range, 'touchedRanges');
88
+ touchedRanges.push(normalized.range);
89
+ touchedCellCount += normalized.cellCount;
90
+ }
91
+ }
92
+ return Object.freeze({
93
+ status: 'accepted',
94
+ ...(bundle.id !== undefined ? { bundleId: bundle.id } : {}),
95
+ targetRevision: bundle.targetRevision,
96
+ idempotencyKey: bundle.idempotencyKey,
97
+ commandCount: bundle.commands.length,
98
+ touchedRanges: Object.freeze(touchedRanges),
99
+ touchedCellCount,
100
+ });
101
+ }
102
+ function pushCommandIssues(issues, value, path) {
103
+ if (!isRecord(value)) {
104
+ issues.push(commandBundleIssue('invalid_command', path, 'Workbook command bundle command must be an object'));
105
+ return;
106
+ }
107
+ pushOptionalStringIssue(issues, ownValue(value, 'id'), `${path}.id`, 'command id');
108
+ const kind = ownValue(value, 'kind');
109
+ if (!isWorkbookCommandBundleCommandKind(kind)) {
110
+ issues.push(commandBundleIssue('unknown_command_kind', `${path}.kind`, 'Workbook command bundle command kind is unknown'));
111
+ return;
112
+ }
113
+ const touchedRanges = ownValue(value, 'touchedRanges');
114
+ pushTouchedRangesIssues(issues, touchedRanges, `${path}.touchedRanges`);
115
+ const destructive = ownValue(value, 'destructive');
116
+ if (destructive !== undefined && typeof destructive !== 'boolean') {
117
+ issues.push(commandBundleIssue('invalid_command', `${path}.destructive`, 'Workbook command bundle command destructive flag must be boolean'));
118
+ }
119
+ if (kind === 'request') {
120
+ pushRequestCommandIssues(issues, value, path);
121
+ return;
122
+ }
123
+ pushOpCommandIssues(issues, value, path);
124
+ }
125
+ function pushRequestCommandIssues(issues, value, path) {
126
+ const request = ownValue(value, 'request');
127
+ const requestCheck = checkWorkbookCommandRequest(request);
128
+ if (requestCheck.status === 'invalid') {
129
+ requestCheck.issues.forEach((issue) => {
130
+ issues.push(commandBundleIssue('invalid_command', `${path}.request.${issue.path}`, issue.message));
131
+ });
132
+ return;
133
+ }
134
+ if (commandNeedsDestructiveConfirmation(requestCheck.request) && ownValue(value, 'destructive') !== true) {
135
+ issues.push(commandBundleIssue('destructive_not_confirmed', `${path}.destructive`, 'Workbook command bundle request mutates the workbook and must set destructive: true'));
136
+ }
137
+ }
138
+ function pushOpCommandIssues(issues, value, path) {
139
+ if (!isWorkbookOp(ownValue(value, 'op'))) {
140
+ issues.push(commandBundleIssue('invalid_command', `${path}.op`, 'Workbook command bundle op is invalid'));
141
+ }
142
+ if (ownValue(value, 'destructive') !== true) {
143
+ issues.push(commandBundleIssue('destructive_not_confirmed', `${path}.destructive`, 'Workbook command bundle op mutates the workbook and must set destructive: true'));
144
+ }
145
+ }
146
+ function commandNeedsDestructiveConfirmation(request) {
147
+ return request.category === 'mutation' || request.mode === 'apply' || request.mode === 'applyAndVerify';
148
+ }
149
+ function pushTouchedRangesIssues(issues, value, path) {
150
+ if (value === undefined) {
151
+ return;
152
+ }
153
+ if (!Array.isArray(value)) {
154
+ issues.push(commandBundleIssue('invalid_range', path, 'Workbook command bundle touched ranges must be an array'));
155
+ return;
156
+ }
157
+ pushArrayDataIssues(issues, value, path, 'Workbook command bundle touched ranges');
158
+ for (let index = 0; index < value.length; index += 1) {
159
+ const range = arrayDataValue(value, index);
160
+ if (range === undefined) {
161
+ continue;
162
+ }
163
+ try {
164
+ normalizeRange(range, `${path}[${index}]`);
165
+ }
166
+ catch (error) {
167
+ issues.push(commandBundleIssue('invalid_range', `${path}[${index}]`, errorMessage(error)));
168
+ }
169
+ }
170
+ }
171
+ function pushScopeIssues(issues, value) {
172
+ if (value === undefined) {
173
+ return;
174
+ }
175
+ if (!isRecord(value)) {
176
+ issues.push(commandBundleIssue('invalid_bundle', 'scope', 'Workbook command bundle scope must be an object'));
177
+ return;
178
+ }
179
+ const maxTouchedCells = ownValue(value, 'maxTouchedCells');
180
+ if (maxTouchedCells !== undefined && !isSafeNonNegativeInteger(maxTouchedCells)) {
181
+ issues.push(commandBundleIssue('invalid_bundle', 'scope.maxTouchedCells', 'Workbook command bundle maxTouchedCells must be a safe non-negative integer'));
182
+ }
183
+ }
184
+ function pushTargetRevisionIssue(issues, value) {
185
+ if (value === undefined) {
186
+ issues.push(commandBundleIssue('missing_target_revision', 'targetRevision', 'Workbook command bundle targetRevision is required'));
187
+ return;
188
+ }
189
+ if (!isSafeNonNegativeInteger(value)) {
190
+ issues.push(commandBundleIssue('invalid_target_revision', 'targetRevision', 'Workbook command bundle targetRevision must be a safe non-negative integer'));
191
+ }
192
+ }
193
+ function pushIdempotencyKeyIssue(issues, value) {
194
+ if (value === undefined) {
195
+ issues.push(commandBundleIssue('missing_idempotency_key', 'idempotencyKey', 'Workbook command bundle idempotencyKey is required'));
196
+ return;
197
+ }
198
+ if (typeof value !== 'string') {
199
+ issues.push(commandBundleIssue('invalid_idempotency_key', 'idempotencyKey', 'Workbook command bundle idempotencyKey must be a string'));
200
+ return;
201
+ }
202
+ pushNonEmptyExactStringIssue(issues, value, 'idempotencyKey', 'idempotencyKey', 'invalid_idempotency_key');
203
+ }
204
+ function pushOptionalStringIssue(issues, value, path, label) {
205
+ if (value === undefined) {
206
+ return;
207
+ }
208
+ if (typeof value !== 'string') {
209
+ issues.push(commandBundleIssue('invalid_bundle', path, `Workbook command bundle ${label} must be a string`));
210
+ return;
211
+ }
212
+ pushNonEmptyExactStringIssue(issues, value, path, label, 'invalid_bundle');
213
+ }
214
+ function pushNonEmptyExactStringIssue(issues, value, path, label, code) {
215
+ const normalized = value.trim();
216
+ if (normalized === '') {
217
+ issues.push(commandBundleIssue(code, path, `Workbook command bundle ${label} cannot be empty`));
218
+ return;
219
+ }
220
+ if (normalized !== value) {
221
+ issues.push(commandBundleIssue(code, path, `Workbook command bundle ${label} must not have leading or trailing whitespace`));
222
+ }
223
+ }
224
+ function pushArrayDataIssues(issues, value, path, label) {
225
+ const accessorPath = firstAccessorPath(value, path);
226
+ if (accessorPath !== null) {
227
+ issues.push(commandBundleIssue('invalid_bundle', accessorPath, `${label} must contain only data properties`));
228
+ return;
229
+ }
230
+ for (let index = 0; index < value.length; index += 1) {
231
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
232
+ if (descriptor === undefined || !descriptor.enumerable || !('value' in descriptor)) {
233
+ issues.push(commandBundleIssue('invalid_bundle', `${path}[${index}]`, `${label} must contain only data properties`));
234
+ }
235
+ }
236
+ }
237
+ function normalizeWorkbookCommandBundleData(value) {
238
+ const id = ownValue(value, 'id');
239
+ const targetRevision = ownValue(value, 'targetRevision');
240
+ const idempotencyKey = ownValue(value, 'idempotencyKey');
241
+ const scope = ownValue(value, 'scope');
242
+ const maxTouchedCells = isRecord(scope) ? ownValue(scope, 'maxTouchedCells') : undefined;
243
+ const commands = ownValue(value, 'commands');
244
+ if (!isSafeNonNegativeInteger(targetRevision)) {
245
+ throw new Error('Workbook command bundle targetRevision is invalid');
246
+ }
247
+ if (typeof idempotencyKey !== 'string') {
248
+ throw new Error('Workbook command bundle idempotencyKey is invalid');
249
+ }
250
+ if (!Array.isArray(commands)) {
251
+ throw new Error('Workbook command bundle commands are invalid');
252
+ }
253
+ return Object.freeze({
254
+ ...(typeof id === 'string' ? { id } : {}),
255
+ targetRevision,
256
+ idempotencyKey,
257
+ ...(isSafeNonNegativeInteger(maxTouchedCells) ? { scope: Object.freeze({ maxTouchedCells }) } : {}),
258
+ commands: Object.freeze(commands.map((command, index) => normalizeCommand(command, index))),
259
+ });
260
+ }
261
+ function normalizeCommand(value, index) {
262
+ if (!isRecord(value)) {
263
+ throw new Error(`Workbook command bundle command ${index} is invalid`);
264
+ }
265
+ const id = ownValue(value, 'id');
266
+ const kind = ownValue(value, 'kind');
267
+ const touchedRanges = normalizeTouchedRanges(ownValue(value, 'touchedRanges'));
268
+ const destructive = ownValue(value, 'destructive');
269
+ const common = Object.freeze({
270
+ ...(typeof id === 'string' ? { id } : {}),
271
+ ...(touchedRanges.length > 0 ? { touchedRanges } : {}),
272
+ ...(destructive !== undefined ? { destructive: destructive === true } : {}),
273
+ });
274
+ if (kind === 'request') {
275
+ return Object.freeze({
276
+ ...common,
277
+ kind,
278
+ request: normalizeWorkbookCommandRequest(ownValue(value, 'request')),
279
+ });
280
+ }
281
+ return Object.freeze({
282
+ ...common,
283
+ kind: 'op',
284
+ op: normalizeOp(ownValue(value, 'op')),
285
+ });
286
+ }
287
+ function normalizeOp(value) {
288
+ if (!isWorkbookOp(value)) {
289
+ throw new Error('Workbook command bundle op is invalid');
290
+ }
291
+ const cloned = cloneData(value);
292
+ if (!isWorkbookOp(cloned)) {
293
+ throw new Error('Workbook command bundle op clone is invalid');
294
+ }
295
+ return freezeData(cloned);
296
+ }
297
+ function normalizeTouchedRanges(value) {
298
+ if (!Array.isArray(value)) {
299
+ return Object.freeze([]);
300
+ }
301
+ return Object.freeze(value.map((range, index) => normalizeRange(range, `touchedRanges[${index}]`).range));
302
+ }
303
+ function normalizeRange(value, path) {
304
+ if (!isRecord(value)) {
305
+ throw new Error(`Workbook command bundle ${path} must be an object`);
306
+ }
307
+ const sheetName = ownValue(value, 'sheetName');
308
+ const startAddress = ownValue(value, 'startAddress');
309
+ const endAddress = ownValue(value, 'endAddress');
310
+ if (typeof sheetName !== 'string' || typeof startAddress !== 'string' || typeof endAddress !== 'string') {
311
+ throw new Error(`Workbook command bundle ${path} must include sheetName, startAddress, and endAddress strings`);
312
+ }
313
+ const normalizedSheetName = normalizeExactString(sheetName, `${path}.sheetName`);
314
+ const start = normalizeCellAddress(startAddress, `${path}.startAddress`);
315
+ const end = normalizeCellAddress(endAddress, `${path}.endAddress`);
316
+ if (end.row < start.row || end.col < start.col) {
317
+ throw new Error(`Workbook command bundle ${path} endAddress must not be before startAddress`);
318
+ }
319
+ return {
320
+ range: Object.freeze({
321
+ sheetName: normalizedSheetName,
322
+ startAddress: start.text,
323
+ endAddress: end.text,
324
+ }),
325
+ cellCount: (end.row - start.row + 1) * (end.col - start.col + 1),
326
+ };
327
+ }
328
+ function normalizeCellAddress(value, path) {
329
+ try {
330
+ const parsed = parseCellAddress(value);
331
+ if (parsed.sheetName !== undefined) {
332
+ throw new Error('qualified');
333
+ }
334
+ return {
335
+ row: parsed.row,
336
+ col: parsed.col,
337
+ text: formatAddress(parsed.row, parsed.col),
338
+ };
339
+ }
340
+ catch {
341
+ throw new Error(`Workbook command bundle ${path} is invalid: ${value}`);
342
+ }
343
+ }
344
+ function normalizeExactString(value, path) {
345
+ const normalized = value.trim();
346
+ if (normalized === '') {
347
+ throw new Error(`Workbook command bundle ${path} cannot be empty`);
348
+ }
349
+ if (normalized !== value) {
350
+ throw new Error(`Workbook command bundle ${path} must not have leading or trailing whitespace`);
351
+ }
352
+ return normalized;
353
+ }
354
+ function commandBundleIssue(code, path, message) {
355
+ return Object.freeze({
356
+ code,
357
+ path,
358
+ message,
359
+ });
360
+ }
361
+ function arrayDataValue(value, index) {
362
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
363
+ return descriptor !== undefined && descriptor.enumerable && 'value' in descriptor ? descriptor.value : undefined;
364
+ }
365
+ function ownValue(value, key) {
366
+ return Object.getOwnPropertyDescriptor(value, key)?.value;
367
+ }
368
+ function isRecord(value) {
369
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
370
+ }
371
+ function isSafeNonNegativeInteger(value) {
372
+ return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
373
+ }
374
+ function errorMessage(error) {
375
+ return error instanceof Error ? error.message : String(error);
376
+ }
377
+ function firstAccessorPath(value, path, seen = new WeakSet()) {
378
+ if (typeof value !== 'object' || value === null) {
379
+ return null;
380
+ }
381
+ if (seen.has(value)) {
382
+ return null;
383
+ }
384
+ seen.add(value);
385
+ for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(value))) {
386
+ const childPath = Array.isArray(value) && /^\d+$/.test(key) ? `${path}[${key}]` : `${path}.${key}`;
387
+ if (!('value' in descriptor)) {
388
+ return childPath;
389
+ }
390
+ const nestedPath = firstAccessorPath(descriptor.value, childPath, seen);
391
+ if (nestedPath !== null) {
392
+ return nestedPath;
393
+ }
394
+ }
395
+ return null;
396
+ }
397
+ function freezeData(value, seen = new WeakSet()) {
398
+ if (typeof value !== 'object' || value === null) {
399
+ return value;
400
+ }
401
+ if (seen.has(value)) {
402
+ return value;
403
+ }
404
+ seen.add(value);
405
+ Object.values(Object.getOwnPropertyDescriptors(value)).forEach((descriptor) => {
406
+ if ('value' in descriptor) {
407
+ freezeData(descriptor.value, seen);
408
+ }
409
+ });
410
+ return Object.freeze(value);
411
+ }
412
+ function cloneData(value, seen = new WeakMap()) {
413
+ if (typeof value !== 'object' || value === null) {
414
+ return value;
415
+ }
416
+ const existing = seen.get(value);
417
+ if (existing !== undefined) {
418
+ return existing;
419
+ }
420
+ if (Array.isArray(value)) {
421
+ const cloned = [];
422
+ seen.set(value, cloned);
423
+ for (let index = 0; index < value.length; index += 1) {
424
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
425
+ if (descriptor !== undefined && descriptor.enumerable && 'value' in descriptor) {
426
+ cloned[index] = cloneData(descriptor.value, seen);
427
+ }
428
+ }
429
+ return cloned;
430
+ }
431
+ const cloned = Object.create(Object.getPrototypeOf(value));
432
+ seen.set(value, cloned);
433
+ Object.entries(Object.getOwnPropertyDescriptors(value)).forEach(([key, descriptor]) => {
434
+ if (descriptor.enumerable && 'value' in descriptor) {
435
+ Object.defineProperty(cloned, key, {
436
+ configurable: true,
437
+ enumerable: true,
438
+ value: cloneData(descriptor.value, seen),
439
+ writable: true,
440
+ });
441
+ }
442
+ });
443
+ return cloned;
444
+ }
445
+ //# sourceMappingURL=command-bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-bundle.js","sourceRoot":"","sources":["../src/command-bundle.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,5 +13,6 @@ export * from './result.js';
13
13
  export * from './requirements.js';
14
14
  export * from './features.js';
15
15
  export * from './feature-plugin.js';
16
+ export * from './command-bundle.js';
16
17
  export { checkPlanData, hydratePlanData, isPlanData, toPlanData } from './plan-data.js';
17
18
  export type { WorkbookExecutablePlan, WorkbookPlanData, WorkbookPlanDataCheckResult, WorkbookPlanDataIssue, WorkbookPlanDataIssueCode, WorkbookPlanDataRefs, } from './plan-data.js';
package/dist/index.js CHANGED
@@ -13,5 +13,6 @@ export * from './result.js';
13
13
  export * from './requirements.js';
14
14
  export * from './features.js';
15
15
  export * from './feature-plugin.js';
16
+ export * from './command-bundle.js';
16
17
  export { checkPlanData, hydratePlanData, isPlanData, toPlanData } from './plan-data.js';
17
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bilig/workbook",
3
- "version": "0.67.15",
3
+ "version": "0.68.0",
4
4
  "description": "Agent-first workbook model API and transport-neutral workbook operation language for bilig.",
5
5
  "keywords": [
6
6
  "agent-first",
@@ -40,11 +40,11 @@
40
40
  },
41
41
  "scripts": {
42
42
  "build": "tsc -b tsconfig.json",
43
- "test": "cd ../.. && tsx scripts/run-vitest.ts --run packages/workbook/src/__tests__/guards.test.ts packages/workbook/src/__tests__/model-api.test.ts packages/workbook/src/__tests__/model-verification-api.test.ts packages/workbook/src/__tests__/transport-api.test.ts packages/workbook/src/__tests__/low-level-op-api.test.ts packages/workbook/src/__tests__/check-api.test.ts packages/workbook/src/__tests__/format-api.test.ts packages/workbook/src/__tests__/formula-api.test.ts packages/workbook/src/__tests__/action-input-api.test.ts packages/workbook/src/__tests__/action-metadata-api.test.ts packages/workbook/src/__tests__/features-api.test.ts packages/workbook/src/__tests__/run-api.test.ts packages/workbook/src/__tests__/run-proof-boundary.test.ts packages/workbook/src/__tests__/requirements-api.test.ts packages/workbook/src/__tests__/plan-refs-api.test.ts"
43
+ "test": "cd ../.. && tsx scripts/run-vitest.ts --run packages/workbook/src/__tests__/guards.test.ts packages/workbook/src/__tests__/model-api.test.ts packages/workbook/src/__tests__/model-verification-api.test.ts packages/workbook/src/__tests__/transport-api.test.ts packages/workbook/src/__tests__/low-level-op-api.test.ts packages/workbook/src/__tests__/check-api.test.ts packages/workbook/src/__tests__/format-api.test.ts packages/workbook/src/__tests__/formula-api.test.ts packages/workbook/src/__tests__/action-input-api.test.ts packages/workbook/src/__tests__/action-metadata-api.test.ts packages/workbook/src/__tests__/features-api.test.ts packages/workbook/src/__tests__/command-bundle-api.test.ts packages/workbook/src/__tests__/run-api.test.ts packages/workbook/src/__tests__/run-proof-boundary.test.ts packages/workbook/src/__tests__/requirements-api.test.ts packages/workbook/src/__tests__/plan-refs-api.test.ts"
44
44
  },
45
45
  "dependencies": {
46
- "@bilig/formula": "0.67.15",
47
- "@bilig/protocol": "0.67.15"
46
+ "@bilig/formula": "0.68.0",
47
+ "@bilig/protocol": "0.68.0"
48
48
  },
49
49
  "engines": {
50
50
  "node": ">=22.0.0"