@bilig/workbook 0.93.0 → 0.96.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 (41) hide show
  1. package/README.md +63 -34
  2. package/dist/command-ops.d.ts +2 -1
  3. package/dist/command-ops.js +26 -1
  4. package/dist/command-ops.js.map +1 -1
  5. package/dist/command.d.ts +3 -0
  6. package/dist/command.js +4 -0
  7. package/dist/command.js.map +1 -0
  8. package/dist/describe.d.ts +2 -0
  9. package/dist/describe.js +6 -0
  10. package/dist/describe.js.map +1 -1
  11. package/dist/formula-usage.d.ts +5 -0
  12. package/dist/formula-usage.js +119 -7
  13. package/dist/formula-usage.js.map +1 -1
  14. package/dist/index.d.ts +2 -0
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/readback.d.ts +18 -0
  18. package/dist/readback.js +131 -10
  19. package/dist/readback.js.map +1 -1
  20. package/dist/result.d.ts +2 -0
  21. package/dist/result.js.map +1 -1
  22. package/dist/run-command-receipts.js +49 -11
  23. package/dist/run-command-receipts.js.map +1 -1
  24. package/dist/run-description.js +2 -1
  25. package/dist/run-description.js.map +1 -1
  26. package/dist/run-runtime-boundary.js +35 -12
  27. package/dist/run-runtime-boundary.js.map +1 -1
  28. package/dist/runtime.d.ts +7 -0
  29. package/dist/runtime.js +8 -0
  30. package/dist/runtime.js.map +1 -0
  31. package/dist/schema.d.ts +21 -0
  32. package/dist/schema.js +468 -0
  33. package/dist/schema.js.map +1 -0
  34. package/fixtures/command-bundle.json +28 -0
  35. package/fixtures/command-result.json +58 -0
  36. package/fixtures/invalid-plan.json +9 -0
  37. package/fixtures/readback-proof.json +64 -0
  38. package/fixtures/strict-run-failure.json +11 -0
  39. package/fixtures/strict-run-success.json +118 -0
  40. package/fixtures/valid-plan.json +145 -0
  41. package/package.json +45 -4
package/dist/schema.js ADDED
@@ -0,0 +1,468 @@
1
+ export const workbookJsonSchemaVersion = 'bilig-workbook-json-schema-v1';
2
+ export const workbookJsonSchemaNames = Object.freeze([
3
+ 'refData',
4
+ 'planData',
5
+ 'commandBundle',
6
+ 'commandResult',
7
+ 'runResult',
8
+ 'readbackProof',
9
+ ]);
10
+ const jsonValue = Object.freeze({ $ref: '#/$defs/jsonValue' });
11
+ const refData = Object.freeze({ $ref: '#/$defs/refData' });
12
+ const cellRange = Object.freeze({ $ref: '#/$defs/cellRange' });
13
+ const engineOp = Object.freeze({ $ref: '#/$defs/engineOp' });
14
+ const actionInput = Object.freeze({ $ref: '#/$defs/actionInput' });
15
+ function defs(extra = {}) {
16
+ return {
17
+ jsonValue: {
18
+ oneOf: [
19
+ { type: 'null' },
20
+ { type: 'boolean' },
21
+ { type: 'number' },
22
+ { type: 'string' },
23
+ { type: 'array', items: { $ref: '#/$defs/jsonValue' } },
24
+ { type: 'object', additionalProperties: { $ref: '#/$defs/jsonValue' } },
25
+ ],
26
+ },
27
+ actionInput: { $ref: '#/$defs/jsonValue' },
28
+ cellRange: {
29
+ type: 'object',
30
+ required: ['sheetName', 'startAddress', 'endAddress'],
31
+ additionalProperties: false,
32
+ properties: {
33
+ sheetName: { type: 'string', minLength: 1 },
34
+ startAddress: { type: 'string', minLength: 1 },
35
+ endAddress: { type: 'string', minLength: 1 },
36
+ },
37
+ },
38
+ engineOp: {
39
+ type: 'object',
40
+ required: ['kind'],
41
+ properties: {
42
+ kind: { type: 'string', minLength: 1 },
43
+ },
44
+ additionalProperties: true,
45
+ },
46
+ refData: {
47
+ oneOf: [
48
+ {
49
+ type: 'object',
50
+ required: ['kind', 'id', 'label', 'range'],
51
+ additionalProperties: false,
52
+ properties: {
53
+ kind: { const: 'range' },
54
+ id: { type: 'string', minLength: 1 },
55
+ label: { type: 'string', minLength: 1 },
56
+ range: { $ref: '#/$defs/cellRange' },
57
+ },
58
+ },
59
+ {
60
+ type: 'object',
61
+ required: ['kind', 'id', 'label', 'name'],
62
+ additionalProperties: false,
63
+ properties: {
64
+ kind: { const: 'name' },
65
+ id: { type: 'string', minLength: 1 },
66
+ label: { type: 'string', minLength: 1 },
67
+ name: { type: 'string', minLength: 1 },
68
+ },
69
+ },
70
+ {
71
+ type: 'object',
72
+ required: ['kind', 'id', 'label'],
73
+ additionalProperties: false,
74
+ properties: {
75
+ kind: { const: 'table' },
76
+ id: { type: 'string', minLength: 1 },
77
+ label: { type: 'string', minLength: 1 },
78
+ name: { type: 'string', minLength: 1 },
79
+ sheetName: { type: 'string', minLength: 1 },
80
+ headers: { type: 'array', items: { type: 'string' } },
81
+ },
82
+ },
83
+ {
84
+ type: 'object',
85
+ required: ['kind', 'id', 'label', 'table', 'name'],
86
+ additionalProperties: false,
87
+ properties: {
88
+ kind: { const: 'column' },
89
+ id: { type: 'string', minLength: 1 },
90
+ label: { type: 'string', minLength: 1 },
91
+ table: { $ref: '#/$defs/refData' },
92
+ rows: { $ref: '#/$defs/refData' },
93
+ name: { type: 'string', minLength: 1 },
94
+ },
95
+ },
96
+ {
97
+ type: 'object',
98
+ required: ['kind', 'id', 'label', 'where'],
99
+ additionalProperties: false,
100
+ properties: {
101
+ kind: { const: 'rows' },
102
+ id: { type: 'string', minLength: 1 },
103
+ label: { type: 'string', minLength: 1 },
104
+ sheetName: { type: 'string', minLength: 1 },
105
+ table: { $ref: '#/$defs/refData' },
106
+ where: {
107
+ type: 'object',
108
+ required: ['column', 'op', 'value'],
109
+ additionalProperties: false,
110
+ properties: {
111
+ column: { type: 'string', minLength: 1 },
112
+ op: { enum: ['eq', 'neq', 'contains', 'startsWith', 'gt', 'gte', 'lt', 'lte'] },
113
+ value: { $ref: '#/$defs/jsonValue' },
114
+ },
115
+ },
116
+ },
117
+ },
118
+ ],
119
+ },
120
+ ...extra,
121
+ };
122
+ }
123
+ function schema(name, value) {
124
+ return deepFreeze({
125
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
126
+ $id: `https://bilig.proompteng.ai/schemas/workbook/${workbookJsonSchemaVersion}/${name}.schema.json`,
127
+ title: `@bilig/workbook ${name}`,
128
+ ...value,
129
+ });
130
+ }
131
+ const checkDataSchema = {
132
+ type: 'object',
133
+ required: ['status', 'kind', 'message'],
134
+ properties: {
135
+ status: { enum: ['planned', 'passed', 'failed'] },
136
+ kind: { type: 'string', minLength: 1 },
137
+ target: refData,
138
+ refs: { type: 'array', items: refData },
139
+ message: { type: 'string', minLength: 1 },
140
+ expectation: { type: 'object', additionalProperties: true },
141
+ proof: actionInput,
142
+ },
143
+ additionalProperties: false,
144
+ };
145
+ const changeDataSchema = {
146
+ type: 'object',
147
+ required: ['kind', 'message'],
148
+ additionalProperties: false,
149
+ properties: {
150
+ kind: { type: 'string', minLength: 1 },
151
+ target: refData,
152
+ message: { type: 'string', minLength: 1 },
153
+ },
154
+ };
155
+ export const workbookJsonSchemas = deepFreeze({
156
+ refData: schema('refData', {
157
+ $defs: defs(),
158
+ ...refData,
159
+ }),
160
+ planData: schema('planData', {
161
+ $defs: defs({
162
+ formulaLabel: {
163
+ type: 'object',
164
+ required: ['name', 'ref'],
165
+ additionalProperties: false,
166
+ properties: {
167
+ name: { type: 'string', minLength: 1 },
168
+ ref: refData,
169
+ },
170
+ },
171
+ check: checkDataSchema,
172
+ command: {
173
+ oneOf: [
174
+ {
175
+ type: 'object',
176
+ required: ['kind', 'target', 'formula', 'inputs', 'labels'],
177
+ additionalProperties: false,
178
+ properties: {
179
+ kind: { const: 'writeFormula' },
180
+ target: refData,
181
+ formula: { type: 'string' },
182
+ inputs: { type: 'array', items: refData },
183
+ labels: { type: 'array', items: { $ref: '#/$defs/formulaLabel' } },
184
+ },
185
+ },
186
+ {
187
+ type: 'object',
188
+ required: ['kind', 'target', 'value'],
189
+ additionalProperties: false,
190
+ properties: { kind: { const: 'writeValue' }, target: refData, value: jsonValue },
191
+ },
192
+ {
193
+ type: 'object',
194
+ required: ['kind', 'target'],
195
+ additionalProperties: false,
196
+ properties: {
197
+ kind: { const: 'format' },
198
+ target: refData,
199
+ style: { type: 'object', additionalProperties: true },
200
+ numberFormat: { oneOf: [{ type: 'string' }, { type: 'null' }] },
201
+ },
202
+ },
203
+ {
204
+ type: 'object',
205
+ required: ['kind', 'target'],
206
+ additionalProperties: false,
207
+ properties: { kind: { const: 'clear' }, target: refData },
208
+ },
209
+ {
210
+ type: 'object',
211
+ required: ['kind', 'op'],
212
+ additionalProperties: false,
213
+ properties: {
214
+ kind: { const: 'op' },
215
+ op: engineOp,
216
+ target: refData,
217
+ message: { type: 'string' },
218
+ },
219
+ },
220
+ ],
221
+ },
222
+ change: changeDataSchema,
223
+ }),
224
+ type: 'object',
225
+ required: ['modelName', 'actionName', 'refsUsed', 'commands', 'ops', 'changed', 'checks'],
226
+ additionalProperties: false,
227
+ properties: {
228
+ modelName: { type: 'string', minLength: 1 },
229
+ actionName: { type: 'string', minLength: 1 },
230
+ input: actionInput,
231
+ refsUsed: { type: 'array', items: refData },
232
+ commands: { type: 'array', items: { $ref: '#/$defs/command' } },
233
+ ops: { type: 'array', items: engineOp },
234
+ changed: { type: 'array', items: { $ref: '#/$defs/change' } },
235
+ checks: { type: 'array', items: { $ref: '#/$defs/check' } },
236
+ },
237
+ }),
238
+ commandBundle: schema('commandBundle', {
239
+ $defs: defs({
240
+ commandRequest: {
241
+ type: 'object',
242
+ required: ['featureId', 'commandId'],
243
+ additionalProperties: false,
244
+ properties: {
245
+ featureId: { type: 'string', minLength: 1 },
246
+ commandId: { type: 'string', minLength: 1 },
247
+ category: { enum: ['command', 'operation', 'mutation'] },
248
+ mode: { enum: ['preview', 'apply', 'applyAndVerify'] },
249
+ input: actionInput,
250
+ },
251
+ },
252
+ bundleCommand: {
253
+ oneOf: [
254
+ {
255
+ type: 'object',
256
+ required: ['kind', 'request'],
257
+ additionalProperties: false,
258
+ properties: {
259
+ kind: { const: 'request' },
260
+ id: { type: 'string', minLength: 1 },
261
+ touchedRanges: { type: 'array', items: cellRange },
262
+ destructive: { type: 'boolean' },
263
+ request: { $ref: '#/$defs/commandRequest' },
264
+ },
265
+ },
266
+ {
267
+ type: 'object',
268
+ required: ['kind', 'op'],
269
+ additionalProperties: false,
270
+ properties: {
271
+ kind: { const: 'op' },
272
+ id: { type: 'string', minLength: 1 },
273
+ touchedRanges: { type: 'array', items: cellRange },
274
+ destructive: { type: 'boolean' },
275
+ op: engineOp,
276
+ },
277
+ },
278
+ ],
279
+ },
280
+ }),
281
+ type: 'object',
282
+ required: ['targetRevision', 'idempotencyKey', 'commands'],
283
+ additionalProperties: false,
284
+ properties: {
285
+ id: { type: 'string', minLength: 1 },
286
+ targetRevision: { type: 'integer', minimum: 0 },
287
+ idempotencyKey: { type: 'string', minLength: 1 },
288
+ scope: {
289
+ type: 'object',
290
+ additionalProperties: false,
291
+ properties: { maxTouchedCells: { type: 'integer', minimum: 0 } },
292
+ },
293
+ commands: { type: 'array', minItems: 1, items: { $ref: '#/$defs/bundleCommand' } },
294
+ },
295
+ }),
296
+ commandResult: schema('commandResult', {
297
+ $defs: defs({
298
+ receipt: {
299
+ type: 'object',
300
+ required: ['status', 'featureId', 'commandId', 'category'],
301
+ properties: {
302
+ status: { enum: ['previewed', 'applied', 'rejected', 'noop'] },
303
+ featureId: { type: 'string', minLength: 1 },
304
+ commandId: { type: 'string', minLength: 1 },
305
+ category: { enum: ['command', 'operation', 'mutation'] },
306
+ previewOps: { type: 'array', items: engineOp },
307
+ appliedOps: { type: 'array', items: engineOp },
308
+ undo: { type: 'object', additionalProperties: true },
309
+ changedRanges: { type: 'array', items: cellRange },
310
+ proof: actionInput,
311
+ message: { type: 'string' },
312
+ metadata: actionInput,
313
+ errors: { type: 'array', items: { type: 'string' } },
314
+ },
315
+ additionalProperties: false,
316
+ },
317
+ }),
318
+ type: 'object',
319
+ required: ['status', 'targetRevision', 'idempotencyKey', 'commandCount', 'touchedRanges', 'touchedCellCount'],
320
+ additionalProperties: false,
321
+ properties: {
322
+ status: { enum: ['accepted', 'previewed', 'applied', 'rejected', 'noop'] },
323
+ bundleId: { type: 'string', minLength: 1 },
324
+ targetRevision: { type: 'integer', minimum: 0 },
325
+ idempotencyKey: { type: 'string', minLength: 1 },
326
+ commandCount: { type: 'integer', minimum: 0 },
327
+ touchedRanges: { type: 'array', items: cellRange },
328
+ touchedCellCount: { type: 'integer', minimum: 0 },
329
+ receipts: { type: 'array', items: { $ref: '#/$defs/receipt' } },
330
+ matched: { oneOf: [{ type: 'boolean' }, { type: 'null' }] },
331
+ changedRanges: { type: 'array', items: cellRange },
332
+ revision: { type: 'integer', minimum: 0 },
333
+ undo: { type: 'object', additionalProperties: true },
334
+ errors: { type: 'array', items: { type: 'string' } },
335
+ },
336
+ }),
337
+ runResult: schema('runResult', {
338
+ $defs: defs({
339
+ check: checkDataSchema,
340
+ change: changeDataSchema,
341
+ error: {
342
+ type: 'object',
343
+ required: ['code', 'message'],
344
+ additionalProperties: false,
345
+ properties: {
346
+ code: { type: 'string', minLength: 1 },
347
+ message: { type: 'string', minLength: 1 },
348
+ path: { type: 'string' },
349
+ issueCode: { type: 'string' },
350
+ },
351
+ },
352
+ }),
353
+ oneOf: [
354
+ {
355
+ type: 'object',
356
+ required: ['status', 'changed', 'checks'],
357
+ properties: {
358
+ status: { const: 'done' },
359
+ apply: { type: 'object', additionalProperties: true },
360
+ changed: { type: 'array', items: { $ref: '#/$defs/change' } },
361
+ checks: { type: 'array', items: { $ref: '#/$defs/check' } },
362
+ undo: { type: 'object', additionalProperties: true },
363
+ unverified: { type: 'array', items: { type: 'object', additionalProperties: true } },
364
+ },
365
+ additionalProperties: false,
366
+ },
367
+ {
368
+ type: 'object',
369
+ required: ['status', 'errors', 'changed', 'checks'],
370
+ properties: {
371
+ status: { const: 'failed' },
372
+ errors: { type: 'array', items: { $ref: '#/$defs/error' } },
373
+ apply: { type: 'object', additionalProperties: true },
374
+ changed: { type: 'array', items: { $ref: '#/$defs/change' } },
375
+ checks: { type: 'array', items: { $ref: '#/$defs/check' } },
376
+ undo: { type: 'object', additionalProperties: true },
377
+ unverified: { type: 'array', items: { type: 'object', additionalProperties: true } },
378
+ },
379
+ additionalProperties: false,
380
+ },
381
+ ],
382
+ }),
383
+ readbackProof: schema('readbackProof', {
384
+ $defs: defs({
385
+ check: checkDataSchema,
386
+ readback: {
387
+ type: 'object',
388
+ required: ['target'],
389
+ additionalProperties: false,
390
+ properties: {
391
+ target: refData,
392
+ value: jsonValue,
393
+ formula: { oneOf: [{ type: 'string' }, { type: 'null' }] },
394
+ formulaLabels: {
395
+ type: 'array',
396
+ items: {
397
+ type: 'object',
398
+ required: ['name', 'source'],
399
+ additionalProperties: false,
400
+ properties: {
401
+ name: { type: 'string', minLength: 1 },
402
+ source: { type: 'string' },
403
+ },
404
+ },
405
+ },
406
+ },
407
+ },
408
+ }),
409
+ type: 'object',
410
+ required: ['checks', 'readbacks'],
411
+ additionalProperties: false,
412
+ properties: {
413
+ checks: { type: 'array', items: { $ref: '#/$defs/check' } },
414
+ readbacks: { type: 'array', items: { $ref: '#/$defs/readback' } },
415
+ },
416
+ }),
417
+ });
418
+ export const workbookJsonSchemaHashes = createSchemaHashes();
419
+ export const workbookJsonSchemaBundleHash = workbookJsonSchemaHash({
420
+ version: workbookJsonSchemaVersion,
421
+ schemas: workbookJsonSchemas,
422
+ });
423
+ export function workbookJsonSchemaHash(schemaValue) {
424
+ const json = JSON.stringify(canonicalValue(schemaValue));
425
+ return `bilig-schema-v1:${fnv1a64(json, 0xcbf29ce484222325n)}${fnv1a64(json, 0x84222325cbf29cen)}`;
426
+ }
427
+ function canonicalValue(value) {
428
+ if (Array.isArray(value)) {
429
+ return value.map(canonicalValue);
430
+ }
431
+ if (typeof value === 'object' && value !== null) {
432
+ return Object.fromEntries(Object.entries(value)
433
+ .toSorted(([left], [right]) => left.localeCompare(right))
434
+ .map(([key, entry]) => [key, canonicalValue(entry)]));
435
+ }
436
+ return value;
437
+ }
438
+ function createSchemaHashes() {
439
+ return deepFreeze({
440
+ refData: workbookJsonSchemaHash(workbookJsonSchemas.refData),
441
+ planData: workbookJsonSchemaHash(workbookJsonSchemas.planData),
442
+ commandBundle: workbookJsonSchemaHash(workbookJsonSchemas.commandBundle),
443
+ commandResult: workbookJsonSchemaHash(workbookJsonSchemas.commandResult),
444
+ runResult: workbookJsonSchemaHash(workbookJsonSchemas.runResult),
445
+ readbackProof: workbookJsonSchemaHash(workbookJsonSchemas.readbackProof),
446
+ });
447
+ }
448
+ function fnv1a64(input, seed) {
449
+ let hash = seed;
450
+ for (let index = 0; index < input.length; index += 1) {
451
+ hash ^= BigInt(input.charCodeAt(index));
452
+ hash = BigInt.asUintN(64, hash * 0x100000001b3n);
453
+ }
454
+ return hash.toString(16).padStart(16, '0');
455
+ }
456
+ function deepFreeze(value, seen = new WeakSet()) {
457
+ if (typeof value !== 'object' || value === null || seen.has(value)) {
458
+ return value;
459
+ }
460
+ seen.add(value);
461
+ for (const descriptor of Object.values(Object.getOwnPropertyDescriptors(value))) {
462
+ if ('value' in descriptor) {
463
+ deepFreeze(descriptor.value, seen);
464
+ }
465
+ }
466
+ return Object.freeze(value);
467
+ }
468
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": "agent-bundle-1",
3
+ "targetRevision": 12,
4
+ "idempotencyKey": "agent-bundle-1-on-12",
5
+ "scope": {
6
+ "maxTouchedCells": 1
7
+ },
8
+ "commands": [
9
+ {
10
+ "id": "write-result",
11
+ "kind": "op",
12
+ "destructive": true,
13
+ "touchedRanges": [
14
+ {
15
+ "sheetName": "Resolved",
16
+ "startAddress": "C1",
17
+ "endAddress": "C1"
18
+ }
19
+ ],
20
+ "op": {
21
+ "kind": "setCellFormula",
22
+ "sheetName": "Resolved",
23
+ "address": "C1",
24
+ "formula": "input*factor"
25
+ }
26
+ }
27
+ ]
28
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "status": "applied",
3
+ "bundleId": "agent-bundle-1",
4
+ "targetRevision": 12,
5
+ "idempotencyKey": "agent-bundle-1-on-12",
6
+ "commandCount": 1,
7
+ "touchedRanges": [
8
+ {
9
+ "sheetName": "Resolved",
10
+ "startAddress": "C1",
11
+ "endAddress": "C1"
12
+ }
13
+ ],
14
+ "touchedCellCount": 1,
15
+ "receipts": [
16
+ {
17
+ "status": "applied",
18
+ "featureId": "workbook-op",
19
+ "commandId": "write-result",
20
+ "category": "operation",
21
+ "previewOps": [
22
+ {
23
+ "kind": "setCellFormula",
24
+ "sheetName": "Resolved",
25
+ "address": "C1",
26
+ "formula": "input*factor"
27
+ }
28
+ ],
29
+ "appliedOps": [
30
+ {
31
+ "kind": "setCellFormula",
32
+ "sheetName": "Resolved",
33
+ "address": "C1",
34
+ "formula": "input*factor"
35
+ }
36
+ ],
37
+ "changedRanges": [
38
+ {
39
+ "sheetName": "Resolved",
40
+ "startAddress": "C1",
41
+ "endAddress": "C1"
42
+ }
43
+ ],
44
+ "proof": {
45
+ "source": "fixture"
46
+ }
47
+ }
48
+ ],
49
+ "matched": true,
50
+ "changedRanges": [
51
+ {
52
+ "sheetName": "Resolved",
53
+ "startAddress": "C1",
54
+ "endAddress": "C1"
55
+ }
56
+ ],
57
+ "revision": 13
58
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "modelName": "named-range-formula",
3
+ "actionName": "calculate",
4
+ "refsUsed": "not-an-array",
5
+ "commands": [],
6
+ "ops": [],
7
+ "changed": [],
8
+ "checks": []
9
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "checks": [
3
+ {
4
+ "status": "planned",
5
+ "kind": "formulaEquals",
6
+ "target": {
7
+ "kind": "name",
8
+ "id": "name_result",
9
+ "label": "result",
10
+ "name": "result"
11
+ },
12
+ "message": "result formula equals input*factor",
13
+ "expectation": {
14
+ "kind": "formulaEquals",
15
+ "formula": "input*factor",
16
+ "inputs": [
17
+ {
18
+ "kind": "name",
19
+ "id": "name_input",
20
+ "label": "input",
21
+ "name": "input"
22
+ },
23
+ {
24
+ "kind": "name",
25
+ "id": "name_factor",
26
+ "label": "factor",
27
+ "name": "factor"
28
+ }
29
+ ],
30
+ "labels": [
31
+ {
32
+ "name": "input",
33
+ "ref": {
34
+ "kind": "name",
35
+ "id": "name_input",
36
+ "label": "input",
37
+ "name": "input"
38
+ }
39
+ },
40
+ {
41
+ "name": "factor",
42
+ "ref": {
43
+ "kind": "name",
44
+ "id": "name_factor",
45
+ "label": "factor",
46
+ "name": "factor"
47
+ }
48
+ }
49
+ ]
50
+ }
51
+ }
52
+ ],
53
+ "readbacks": [
54
+ {
55
+ "target": {
56
+ "kind": "name",
57
+ "id": "name_result",
58
+ "label": "result",
59
+ "name": "result"
60
+ },
61
+ "formula": "input*factor"
62
+ }
63
+ ]
64
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "status": "failed",
3
+ "errors": [
4
+ {
5
+ "code": "apply_not_verified",
6
+ "message": "Adapter did not return both previewOps and appliedOps"
7
+ }
8
+ ],
9
+ "changed": [],
10
+ "checks": []
11
+ }