@ifc-lite/flow-nodes 0.5.1 → 0.8.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 (80) hide show
  1. package/README.md +74 -2
  2. package/dist/ai-classify.d.ts +8 -0
  3. package/dist/ai-classify.d.ts.map +1 -0
  4. package/dist/ai-classify.js +113 -0
  5. package/dist/ai-classify.js.map +1 -0
  6. package/dist/ai-extract.d.ts +26 -0
  7. package/dist/ai-extract.d.ts.map +1 -0
  8. package/dist/ai-extract.js +127 -0
  9. package/dist/ai-extract.js.map +1 -0
  10. package/dist/ai-propose-fields.d.ts +12 -0
  11. package/dist/ai-propose-fields.d.ts.map +1 -0
  12. package/dist/ai-propose-fields.js +57 -0
  13. package/dist/ai-propose-fields.js.map +1 -0
  14. package/dist/ai-propose.d.ts +3 -0
  15. package/dist/ai-propose.d.ts.map +1 -0
  16. package/dist/ai-propose.js +94 -0
  17. package/dist/ai-propose.js.map +1 -0
  18. package/dist/ai-response-schemas.d.ts +11 -0
  19. package/dist/ai-response-schemas.d.ts.map +1 -0
  20. package/dist/ai-response-schemas.js +46 -0
  21. package/dist/ai-response-schemas.js.map +1 -0
  22. package/dist/ai-service.d.ts +60 -0
  23. package/dist/ai-service.d.ts.map +1 -0
  24. package/dist/ai-service.js +109 -0
  25. package/dist/ai-service.js.map +1 -0
  26. package/dist/ai-summarize.d.ts +3 -0
  27. package/dist/ai-summarize.d.ts.map +1 -0
  28. package/dist/ai-summarize.js +75 -0
  29. package/dist/ai-summarize.js.map +1 -0
  30. package/dist/ai.d.ts +15 -0
  31. package/dist/ai.d.ts.map +1 -0
  32. package/dist/ai.js +10 -0
  33. package/dist/ai.js.map +1 -0
  34. package/dist/bcf-nodes.d.ts.map +1 -1
  35. package/dist/bcf-nodes.js +12 -2
  36. package/dist/bcf-nodes.js.map +1 -1
  37. package/dist/bcf-publication.d.ts +13 -0
  38. package/dist/bcf-publication.d.ts.map +1 -0
  39. package/dist/bcf-publication.js +24 -0
  40. package/dist/bcf-publication.js.map +1 -0
  41. package/dist/bcf-write-gateway.d.ts +41 -0
  42. package/dist/bcf-write-gateway.d.ts.map +1 -0
  43. package/dist/bcf-write-gateway.js +75 -0
  44. package/dist/bcf-write-gateway.js.map +1 -0
  45. package/dist/capability.d.ts +4 -0
  46. package/dist/capability.d.ts.map +1 -0
  47. package/dist/capability.js +21 -0
  48. package/dist/capability.js.map +1 -0
  49. package/dist/element-nodes.d.ts +9 -1
  50. package/dist/element-nodes.d.ts.map +1 -1
  51. package/dist/element-nodes.js +82 -9
  52. package/dist/element-nodes.js.map +1 -1
  53. package/dist/host.d.ts +28 -40
  54. package/dist/host.d.ts.map +1 -1
  55. package/dist/host.js +2 -31
  56. package/dist/host.js.map +1 -1
  57. package/dist/ids-nodes.d.ts +23 -0
  58. package/dist/ids-nodes.d.ts.map +1 -0
  59. package/dist/ids-nodes.js +166 -0
  60. package/dist/ids-nodes.js.map +1 -0
  61. package/dist/index.d.ts +3 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +5 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/ports.d.ts +38 -0
  66. package/dist/ports.d.ts.map +1 -0
  67. package/dist/ports.js +14 -0
  68. package/dist/ports.js.map +1 -0
  69. package/dist/session-contracts.d.ts +65 -0
  70. package/dist/session-contracts.d.ts.map +1 -0
  71. package/dist/session-contracts.js +87 -0
  72. package/dist/session-contracts.js.map +1 -0
  73. package/dist/session-nodes.d.ts +3 -0
  74. package/dist/session-nodes.d.ts.map +1 -0
  75. package/dist/session-nodes.js +67 -0
  76. package/dist/session-nodes.js.map +1 -0
  77. package/dist/speckle/url.d.ts.map +1 -1
  78. package/dist/speckle/url.js +9 -1
  79. package/dist/speckle/url.js.map +1 -1
  80. package/package.json +26 -12
@@ -0,0 +1,75 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import { NetworkDeniedError } from '@ifc-lite/sandbox';
5
+ import { classifyWriteError } from './bcf-publication.js';
6
+ import { redactDeep, redactText } from './secrets.js';
7
+ const RECEIPT_IDS = ['guid', 'topic_guid', 'viewpoint_guid', 'reply_to_comment_guid'];
8
+ /** Send one write through the host gateway, or directly with explicit unknown-outcome reporting. */
9
+ export async function sendBcfWrite(ctx, intent, send, secrets = []) {
10
+ const gateway = ctx.host.bcfWrites;
11
+ // Enrol the actual resolved bearer, including short literal/Player values.
12
+ // Structural identifiers cannot be redacted without changing the object they name.
13
+ const redaction = new Map(secrets.filter(secret => secret.length > 0).flatMap(secret => [...new Set([secret, JSON.stringify(secret).slice(1, -1)])].map(value => [value, '[REDACTED]'])));
14
+ const checkedReceipt = (result) => {
15
+ if (!result || typeof result !== 'object') {
16
+ throw new Error('BCF server receipt has no valid identifier; the server outcome is unknown.');
17
+ }
18
+ for (const field of RECEIPT_IDS) {
19
+ const value = Reflect.get(result, field);
20
+ if (field !== 'guid' && (value === undefined || value === null))
21
+ continue;
22
+ if (typeof value !== 'string' || value.length === 0) {
23
+ throw new Error('BCF server receipt has no valid identifier; the server outcome is unknown.');
24
+ }
25
+ if ([...redaction.keys()].some(secret => value.includes(secret))) {
26
+ throw new Error('BCF server receipt contains credential text; the server outcome is unknown.');
27
+ }
28
+ }
29
+ return result;
30
+ };
31
+ // Check before an owned gateway settles the real send, and also when another
32
+ // gateway returns its own receipt without forwarding this callback.
33
+ const checkedSend = async () => checkedReceipt(await send());
34
+ const redactedReceipt = (result) => {
35
+ const fields = { ...checkedReceipt(result) };
36
+ for (const field of RECEIPT_IDS)
37
+ Reflect.deleteProperty(fields, field);
38
+ const redacted = redactDeep(fields, redaction);
39
+ // Protocol identifier keys are not echoed credentials. Keep every present
40
+ // identifier unchanged, including nullable optional relationship identifiers.
41
+ for (const field of RECEIPT_IDS) {
42
+ if (field === 'guid' || Object.hasOwn(result, field))
43
+ Reflect.set(redacted, field, Reflect.get(result, field));
44
+ }
45
+ return redacted;
46
+ };
47
+ if (gateway) {
48
+ try {
49
+ return redactedReceipt(await gateway.write(intent, checkedSend, secrets));
50
+ }
51
+ catch (error) {
52
+ // Keep host-owned recovery/refusal semantics; never propagate an opaque raw cause.
53
+ throw new Error(redactText(error instanceof Error ? error.message : String(error), redaction));
54
+ }
55
+ }
56
+ try {
57
+ return redactedReceipt(await checkedSend());
58
+ }
59
+ catch (err) {
60
+ // Use the same dispatch/status provenance as both durable publication hosts.
61
+ const classified = classifyWriteError(err, new Date().toISOString());
62
+ if (err instanceof NetworkDeniedError && err.dispatched === false) {
63
+ // This diagnostic is produced locally before dispatch; preserve it without its cause.
64
+ throw new Error(`${intent.nodeType}: ${redactText(err.message, redaction)}`);
65
+ }
66
+ const status = classified.failure.status === undefined ? '' : `, HTTP ${classified.failure.status}`;
67
+ const context = `${classified.failure.code}${status}`;
68
+ const message = classified.state === 'failed'
69
+ ? `${intent.nodeType}: request refused (${context}).`
70
+ : `${intent.nodeType}: outcome unknown — the server may have applied this ${intent.operation} (${context}). Check the project before running this node again.`;
71
+ // Server bodies/URLs and the original cause may echo a literal/Player bearer.
72
+ throw new Error(redactText(message, redaction));
73
+ }
74
+ }
75
+ //# sourceMappingURL=bcf-write-gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcf-write-gateway.js","sourceRoot":"","sources":["../src/bcf-write-gateway.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAgB/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,CAAU,CAAC;AAwB/F,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAQ,EACR,MAAsB,EACtB,IAAsB,EACtB,UAA6B,EAAE;IAE/B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IACnC,2EAA2E;IAC3E,mFAAmF;IACnF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,CAAU,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,cAAc,GAAG,CAAC,MAAS,EAAK,EAAE;QACtC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,MAAM,KAAK,GAAY,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,KAAK,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;gBAAE,SAAS;YAC1E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,6EAA6E;IAC7E,oEAAoE;IACpE,MAAM,WAAW,GAAG,KAAK,IAAgB,EAAE,CAAC,cAAc,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,CAAC,MAAS,EAAK,EAAE;QACvC,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,WAAW;YAAE,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,0EAA0E;QAC1E,8EAA8E;QAC9E,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,IAAI,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACjH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC;YAAC,OAAO,eAAe,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,CAAC;QAClF,OAAO,KAAK,EAAE,CAAC;YACb,mFAAmF;YACnF,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,6EAA6E;QAC7E,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,IAAI,GAAG,YAAY,kBAAkB,IAAI,GAAG,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAClE,sFAAsF;YACtF,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,KAAK,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpG,MAAM,OAAO,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,KAAK,QAAQ;YAC3C,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,sBAAsB,OAAO,IAAI;YACrD,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,wDAAwD,MAAM,CAAC,SAAS,KAAK,OAAO,sDAAsD,CAAC;QACjK,8EAA8E;QAC9E,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Ctx } from './host.js';
2
+ /** Throws `CapabilityDeniedError` unless the host's grants cover `raw`. */
3
+ export declare function requireCapability(ctx: Ctx, raw: string, grants?: readonly import("@ifc-lite/extensions").Capability[] | undefined): void;
4
+ //# sourceMappingURL=capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,mEAAkB,GAAG,IAAI,CAOvF"}
@@ -0,0 +1,21 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * The run-time capability gate every node calls before acting. Its own module
6
+ * (re-exported by `host.ts`) so nodes loaded on demand, such as the AI nodes,
7
+ * share it without pulling the rest of the host helpers along (#6923).
8
+ */
9
+ import { CapabilityDeniedError, hasCapability, parseCapability } from '@ifc-lite/extensions';
10
+ /** Throws `CapabilityDeniedError` unless the host's grants cover `raw`. */
11
+ export function requireCapability(ctx, raw, grants = ctx.host.grants) {
12
+ if (!grants)
13
+ return;
14
+ const parsed = parseCapability(raw);
15
+ if (!parsed.ok)
16
+ throw new Error(`node requested a malformed capability "${raw}": ${parsed.errors.map((e) => e.message).join('; ')}`);
17
+ if (!hasCapability(grants, parsed.value)) {
18
+ throw new CapabilityDeniedError(`flow node (${raw})`, [raw], grants.map((g) => g.raw));
19
+ }
20
+ }
21
+ //# sourceMappingURL=capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG7F,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB,CAAC,GAAQ,EAAE,GAAW,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM;IAC/E,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,qBAAqB,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzF,CAAC;AACH,CAAC"}
@@ -13,7 +13,7 @@
13
13
  * is no BRep / Solid write path, and this file does not pretend otherwise.
14
14
  */
15
15
  import type { EntityRef } from '@ifc-lite/flow';
16
- import type { AddBeamInStoreParams, AddColumnInStoreParams, AddSlabRectangleParams, AddWallInStoreParams } from '@ifc-lite/sdk';
16
+ import type { AddBeamInStoreParams, AddColumnInStoreParams, AddSlabRectangleParams, AddWallInStoreParams, StoreNamespace } from '@ifc-lite/sdk';
17
17
  import { type FlowNodeDef } from './host.js';
18
18
  export type ElementSpec = {
19
19
  readonly kind: 'wall';
@@ -31,6 +31,14 @@ export type ElementSpec = {
31
31
  readonly kind: 'slab';
32
32
  readonly storey: EntityRef;
33
33
  readonly params: AddSlabRectangleParams;
34
+ } | {
35
+ readonly kind: 'stair';
36
+ readonly storey: EntityRef;
37
+ readonly params: Parameters<StoreNamespace['addStair']>[2];
38
+ } | {
39
+ readonly kind: 'railing';
40
+ readonly storey: EntityRef;
41
+ readonly params: Parameters<StoreNamespace['addRailing']>[2];
34
42
  };
35
43
  export declare const elementNodes: FlowNodeDef[];
36
44
  //# sourceMappingURL=element-nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element-nodes.d.ts","sourceRoot":"","sources":["../src/element-nodes.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAS,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,oBAAoB,EAA6B,MAAM,eAAe,CAAC;AAC3J,OAAO,EAAwH,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnK,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAsBnG,eAAO,MAAM,YAAY,EAAE,WAAW,EAqLrC,CAAC"}
1
+ {"version":3,"file":"element-nodes.d.ts","sourceRoot":"","sources":["../src/element-nodes.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAS,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,oBAAoB,EAA6B,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3K,OAAO,EAAwH,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnK,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAC9F;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,GAClH;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAuB3H,eAAO,MAAM,YAAY,EAAE,WAAW,EAuOrC,CAAC"}
@@ -16,6 +16,7 @@ const point = (v, name) => {
16
16
  return [v[0], v[1], v[2]];
17
17
  };
18
18
  const optName = (v) => (typeof v === 'string' && v.length > 0 ? v : undefined);
19
+ const optNum = (v, name) => v === undefined ? undefined : num(v, name);
19
20
  function specOf(v) {
20
21
  const s = v;
21
22
  if (!s || typeof s !== 'object' || !s.kind || !s.storey || !s.params)
@@ -133,6 +134,56 @@ export const elementNodes = [
133
134
  },
134
135
  }),
135
136
  },
137
+ {
138
+ type: 'element.stair',
139
+ title: 'Stair spec',
140
+ category: 'element',
141
+ inputs: [{ name: 'storey', type: ENTITY_ITEM }, { name: 'Position', type: POINT_ITEM }],
142
+ outputs: [{ name: 'spec', type: SPEC_ITEM }],
143
+ params: [
144
+ { name: 'NumberOfRisers', kind: 'number', default: 17 },
145
+ { name: 'RiserHeight', kind: 'number', default: .175 },
146
+ { name: 'TreadLength', kind: 'number', default: .3 },
147
+ { name: 'Width', kind: 'number', default: 1 },
148
+ { name: 'Direction', kind: 'number', default: 0, doc: 'Run direction in radians, in the storey frame.' },
149
+ { name: 'WaistThickness', kind: 'number' },
150
+ { name: 'Name', kind: 'string' },
151
+ ],
152
+ capabilities: [],
153
+ run: (_c, i, p) => ({ spec: {
154
+ kind: 'stair', storey: i.storey,
155
+ params: { Position: point(i.Position, 'Position'), NumberOfRisers: num(p.NumberOfRisers, 'NumberOfRisers'),
156
+ RiserHeight: num(p.RiserHeight, 'RiserHeight'), TreadLength: num(p.TreadLength, 'TreadLength'),
157
+ Width: num(p.Width, 'Width'), Direction: optNum(p.Direction, 'Direction'),
158
+ WaistThickness: optNum(p.WaistThickness, 'WaistThickness'), Name: optName(p.Name) },
159
+ } }),
160
+ },
161
+ {
162
+ type: 'element.railing',
163
+ title: 'Railing spec',
164
+ category: 'element',
165
+ inputs: [{ name: 'storey', type: ENTITY_ITEM }],
166
+ outputs: [{ name: 'spec', type: SPEC_ITEM }],
167
+ params: [
168
+ { name: 'Path', kind: 'json', doc: 'Base polyline [[x, y, z], ...], in storey-local metres.' },
169
+ { name: 'Height', kind: 'number', default: 1.1 },
170
+ { name: 'RailDiameter', kind: 'number' },
171
+ { name: 'PostDiameter', kind: 'number' },
172
+ { name: 'PostSpacing', kind: 'number' },
173
+ { name: 'Name', kind: 'string' },
174
+ ],
175
+ capabilities: [],
176
+ run: (_c, i, p) => {
177
+ if (!Array.isArray(p.Path))
178
+ throw new Error('"Path" must be a polyline [[x, y, z], ...]');
179
+ return { spec: {
180
+ kind: 'railing', storey: i.storey,
181
+ params: { Path: p.Path.map((v, index) => point(v, `Path[${index}]`)), Height: num(p.Height, 'Height'),
182
+ RailDiameter: optNum(p.RailDiameter, 'RailDiameter'), PostDiameter: optNum(p.PostDiameter, 'PostDiameter'),
183
+ PostSpacing: optNum(p.PostSpacing, 'PostSpacing'), Name: optName(p.Name) },
184
+ } };
185
+ },
186
+ },
136
187
  {
137
188
  type: 'model.addElement',
138
189
  title: 'Add element',
@@ -164,24 +215,26 @@ export const elementNodes = [
164
215
  // model was rebuilt from an older file) both end in a fresh element under
165
216
  // the same GlobalId; a keep that returned a handle to nothing would read
166
217
  // as success downstream.
218
+ let ref;
167
219
  if (t.action === 'update' && existing) {
168
- // A removal the store refused leaves a live element under this
169
- // GlobalId; creating a second one would make the key ambiguous.
170
- if (!ctx.host.bim.store.removeEntity(existing))
171
- throw new Error(`element ${t.globalId} (#${existing.expressId}) could not be removed for update`);
172
- forgetGlobalId(ctx.host.bim, t.globalId);
220
+ if (existing.modelId !== storey.modelId)
221
+ throw new Error('Tracked replacement must remain in the same model');
222
+ // The shared capability stages old removal + builder writes together.
223
+ // Failed creation must not forget the live GlobalId or tracking entry.
224
+ ref = ctx.host.bim.store.replaceElement(existing, storey.expressId, replacementSpec(spec, t.globalId));
173
225
  }
174
- else if (t.action !== 'create') {
175
- ctx.log('warn', `element ${t.globalId} was tracked but is no longer in the model; re-creating it`);
226
+ else {
227
+ if (t.action !== 'create')
228
+ ctx.log('warn', `element ${t.globalId} was tracked but is no longer in the model; re-creating it`);
229
+ ref = addSpec(ctx, storey, spec, t.globalId);
176
230
  }
177
- const ref = addSpec(ctx, storey, spec, t.globalId);
178
231
  rememberGlobalId(ctx.host.bim, t.globalId, ref);
179
232
  return { entity: { globalId: t.globalId, modelId: ref.modelId, expressId: ref.expressId } };
180
233
  },
181
234
  remove: (ctx, globalId) => {
182
235
  const existing = resolveByGlobalId(ctx.host.bim, globalId);
183
236
  if (existing) {
184
- if (!ctx.host.bim.store.removeEntity(existing))
237
+ if (!removeTrackedElement(ctx, existing))
185
238
  throw new Error(`element ${globalId} (#${existing.expressId}) could not be removed`);
186
239
  forgetGlobalId(ctx.host.bim, globalId);
187
240
  }
@@ -211,6 +264,13 @@ export const elementNodes = [
211
264
  },
212
265
  },
213
266
  ];
267
+ /** A stair's flight is a live product, unlike detached representation helpers. */
268
+ function removeTrackedElement(ctx, ref) {
269
+ const entity = ctx.host.bim.entity(ref);
270
+ return entity?.type.toUpperCase() === 'IFCSTAIR'
271
+ ? ctx.host.bim.store.removeStair(ref)
272
+ : ctx.host.bim.store.removeEntity(ref);
273
+ }
214
274
  function addSpec(ctx, storey, spec, GlobalId) {
215
275
  const store = ctx.host.bim.store;
216
276
  switch (spec.kind) {
@@ -218,7 +278,20 @@ function addSpec(ctx, storey, spec, GlobalId) {
218
278
  case 'column': return store.addColumn(storey.modelId, storey.expressId, { ...spec.params, GlobalId });
219
279
  case 'beam': return store.addBeam(storey.modelId, storey.expressId, { ...spec.params, GlobalId });
220
280
  case 'slab': return store.addSlab(storey.modelId, storey.expressId, { ...spec.params, GlobalId });
281
+ case 'stair': return store.addStair(storey.modelId, storey.expressId, { ...spec.params, GlobalId });
282
+ case 'railing': return store.addRailing(storey.modelId, storey.expressId, { ...spec.params, GlobalId });
221
283
  default: throw new Error(`unknown element kind "${String(spec.kind)}"`);
222
284
  }
223
285
  }
286
+ /** Discriminated canonical params, including a cross-kind tracked replacement. */
287
+ function replacementSpec(spec, GlobalId) {
288
+ switch (spec.kind) {
289
+ case 'wall': return { kind: spec.kind, params: { ...spec.params, GlobalId } };
290
+ case 'column': return { kind: spec.kind, params: { ...spec.params, GlobalId } };
291
+ case 'beam': return { kind: spec.kind, params: { ...spec.params, GlobalId } };
292
+ case 'slab': return { kind: spec.kind, params: { ...spec.params, GlobalId } };
293
+ case 'stair': return { kind: spec.kind, params: { ...spec.params, GlobalId } };
294
+ case 'railing': return { kind: spec.kind, params: { ...spec.params, GlobalId } };
295
+ }
296
+ }
224
297
  //# sourceMappingURL=element-nodes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element-nodes.js","sourceRoot":"","sources":["../src/element-nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element-nodes.js","sourceRoot":"","sources":["../src/element-nodes.ts"],"names":[],"mappings":"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"}
package/dist/host.d.ts CHANGED
@@ -8,13 +8,17 @@
8
8
  * pset the node is about to write, which `assertMethodCall` cannot do
9
9
  * because it never sees arguments.
10
10
  */
11
- import { type Capability } from '@ifc-lite/extensions';
11
+ import type { Capability } from '@ifc-lite/extensions';
12
12
  import type { FetchTransport } from '@ifc-lite/sandbox';
13
13
  import type { NodeDef, NodeRunContext } from '@ifc-lite/flow';
14
14
  import type { BimContext, EntityData, EntityRef as SdkEntityRef } from '@ifc-lite/sdk';
15
15
  import type { EntityRef } from '@ifc-lite/flow';
16
16
  import type { EntityTable } from '@ifc-lite/data';
17
+ import type { IFCDataAccessor } from '@ifc-lite/ids';
17
18
  import type { MutablePropertyView } from '@ifc-lite/mutations';
19
+ import type { SessionAutomationHost } from './session-contracts.js';
20
+ import type { BcfWriteGateway } from './bcf-write-gateway.js';
21
+ import type { FlowAiService } from './ai-service.js';
18
22
  /** A string-interning lookup, the shape `csv-match.ts`'s match-context builder
19
23
  * needs for `globalId`/`name` strategies (an entity table's `name`/`globalId`
20
24
  * columns are interned string indices, not inline strings). */
@@ -40,6 +44,13 @@ export interface TableAccess {
40
44
  readonly strings: StringLookup;
41
45
  }
42
46
  export interface FlowHost {
47
+ /**
48
+ * The host's AI model service for `ai.*` nodes (`@ifc-lite/flow-nodes/ai`).
49
+ * The host owns the provider, credentials, the run's root budget and its
50
+ * receipts; a host that offers it lists the `ai` backend feature.
51
+ */
52
+ readonly ai?: FlowAiService;
53
+ readonly automation?: SessionAutomationHost;
43
54
  readonly bim: BimContext;
44
55
  /**
45
56
  * Capabilities granted to the running graph. `undefined` means "trusted
@@ -48,7 +59,7 @@ export interface FlowHost {
48
59
  */
49
60
  readonly grants?: readonly Capability[];
50
61
  /**
51
- * The graph's own declared `network.fetch:<host>` (and `secret.read:<NAME>`)
62
+ * The graph's own declared `network.ai`, `network.fetch:<host>` and `secret.read:<NAME>`
52
63
  * capabilities — ALWAYS populated by every caller (CLI, MCP, viewer),
53
64
  * independent of `grants`/the trust gate above. Real network access and
54
65
  * secret reads are the one place "trusted local caller" does not mean
@@ -63,6 +74,13 @@ export interface FlowHost {
63
74
  * move — the grant check against `networkGrants` always runs first.
64
75
  */
65
76
  readonly networkTransport?: FetchTransport;
77
+ /**
78
+ * Durable path for `bcf.*` writes (see `bcf-write-gateway.ts`). A host
79
+ * that supplies it records each write's intent and receipt and refuses to
80
+ * resend one with an unknown outcome; without it, writes go straight to
81
+ * the server and an unknown outcome is reported, never retried.
82
+ */
83
+ readonly bcfWrites?: BcfWriteGateway;
66
84
  /** Model to query when a node does not name one. */
67
85
  readonly defaultModelId?: string;
68
86
  /** See {@link TableAccess}. `modelId` defaults to `defaultModelId`. */
@@ -78,11 +96,16 @@ export interface FlowHost {
78
96
  openModel?(bytes: Uint8Array, name: string): Promise<{
79
97
  readonly modelId: string;
80
98
  }>;
99
+ /**
100
+ * An `@ifc-lite/ids` `IFCDataAccessor` over the active model, for
101
+ * `ids.validate`. Hosts that hold the parsed store (CLI, MCP) offer it;
102
+ * without it `ids.validate` fails with a clear message.
103
+ */
104
+ idsAccessor?(): IFCDataAccessor;
81
105
  }
82
106
  export type FlowNodeDef = NodeDef<FlowHost>;
83
107
  export type Ctx = NodeRunContext<FlowHost>;
84
- /** Throws `CapabilityDeniedError` unless the host's grants cover `raw`. */
85
- export declare function requireCapability(ctx: Ctx, raw: string): void;
108
+ export { requireCapability } from './capability.js';
86
109
  /** Flow handle from an SDK entity: GlobalId is the identity, the address is a cache. */
87
110
  export declare function toRef(e: EntityData): EntityRef;
88
111
  export declare function resolveByGlobalId(bim: BimContext, globalId: string): SdkEntityRef | undefined;
@@ -96,40 +119,5 @@ export declare function invalidateGlobalIdIndex(bim: BimContext): void;
96
119
  */
97
120
  export declare function toSdkRef(ctx: Ctx, ref: EntityRef): SdkEntityRef;
98
121
  export declare function entityOf(ctx: Ctx, ref: EntityRef): EntityData;
99
- export declare const ENTITY_ITEM: {
100
- readonly kind: "entity";
101
- readonly access: "item";
102
- };
103
- export declare const ENTITY_LIST: {
104
- readonly kind: "entity";
105
- readonly access: "list";
106
- };
107
- export declare const ENTITY_GROUP: {
108
- readonly kind: "entity";
109
- readonly access: "group";
110
- };
111
- export declare const SCALAR_ITEM: {
112
- readonly kind: "scalar";
113
- readonly access: "item";
114
- };
115
- export declare const SCALAR_LIST: {
116
- readonly kind: "scalar";
117
- readonly access: "list";
118
- };
119
- export declare const TABLE_ITEM: {
120
- readonly kind: "table";
121
- readonly access: "item";
122
- };
123
- export declare const ANY_ITEM: {
124
- readonly kind: "any";
125
- readonly access: "item";
126
- };
127
- export declare const ANY_LIST: {
128
- readonly kind: "any";
129
- readonly access: "list";
130
- };
131
- export declare const ANY_GROUP: {
132
- readonly kind: "any";
133
- readonly access: "group";
134
- };
122
+ export { ENTITY_ITEM, ENTITY_LIST, ENTITY_GROUP, SCALAR_ITEM, SCALAR_LIST, TABLE_ITEM, ANY_ITEM, ANY_LIST, ANY_GROUP } from './ports.js';
135
123
  //# sourceMappingURL=host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
package/dist/host.js CHANGED
@@ -1,28 +1,7 @@
1
1
  /* This Source Code Form is subject to the terms of the Mozilla Public
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
- /**
5
- * The host services every standard node receives, and the capability gate.
6
- *
7
- * Nodes run on the host (viewer or CLI) as trusted code, so the gate is
8
- * not a sandbox: it is the same grant check the extension runtime applies
9
- * (`hasCapability` over the extension grammar), evaluated with the node's
10
- * *actual* target — `model.mutate:Pset_WallCommon` is checked against the
11
- * pset the node is about to write, which `assertMethodCall` cannot do
12
- * because it never sees arguments.
13
- */
14
- import { CapabilityDeniedError, hasCapability, parseCapability } from '@ifc-lite/extensions';
15
- /** Throws `CapabilityDeniedError` unless the host's grants cover `raw`. */
16
- export function requireCapability(ctx, raw) {
17
- if (!ctx.host.grants)
18
- return;
19
- const parsed = parseCapability(raw);
20
- if (!parsed.ok)
21
- throw new Error(`node requested a malformed capability "${raw}": ${parsed.errors.map((e) => e.message).join('; ')}`);
22
- if (!hasCapability(ctx.host.grants, parsed.value)) {
23
- throw new CapabilityDeniedError(`flow node (${raw})`, [raw], ctx.host.grants.map((g) => g.raw));
24
- }
25
- }
4
+ export { requireCapability } from './capability.js';
26
5
  /** Flow handle from an SDK entity: GlobalId is the identity, the address is a cache. */
27
6
  export function toRef(e) {
28
7
  return { globalId: e.globalId, modelId: e.ref.modelId, expressId: e.ref.expressId };
@@ -82,13 +61,5 @@ export function entityOf(ctx, ref) {
82
61
  throw new Error(`entity ${ref.globalId} is not in any loaded model`);
83
62
  return data;
84
63
  }
85
- export const ENTITY_ITEM = { kind: 'entity', access: 'item' };
86
- export const ENTITY_LIST = { kind: 'entity', access: 'list' };
87
- export const ENTITY_GROUP = { kind: 'entity', access: 'group' };
88
- export const SCALAR_ITEM = { kind: 'scalar', access: 'item' };
89
- export const SCALAR_LIST = { kind: 'scalar', access: 'list' };
90
- export const TABLE_ITEM = { kind: 'table', access: 'item' };
91
- export const ANY_ITEM = { kind: 'any', access: 'item' };
92
- export const ANY_LIST = { kind: 'any', access: 'list' };
93
- export const ANY_GROUP = { kind: 'any', access: 'group' };
64
+ export { ENTITY_ITEM, ENTITY_LIST, ENTITY_GROUP, SCALAR_ITEM, SCALAR_LIST, TABLE_ITEM, ANY_ITEM, ANY_LIST, ANY_GROUP } from './ports.js';
94
65
  //# sourceMappingURL=host.js.map
package/dist/host.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * `ids.load` / `ids.lint` / `ids.validate` (IDS-122): the no-code
3
+ * pipeline "Load IDS → Lint → Validate model → BCF". `ids.validate`
4
+ * emits one row per failing element with `title` and `description`
5
+ * columns, so its table wires straight into `bcf.createTopic`'s `rows`.
6
+ *
7
+ * The IDS document travels between nodes as a Studio document (plain
8
+ * JSON, content-derived node ids; `@ifc-lite/ids-authoring`), the same
9
+ * shape the MCP tools exchange.
10
+ *
11
+ * The node definitions are eager (the standard registry lists them), but the
12
+ * authoring runtime is loaded inside `run` via `import()`: the viewer
13
+ * registers these nodes at startup, and the authoring gate, reducer and lint
14
+ * rules must stay out of its eager bundle. `run` may return a promise, so
15
+ * the contract is unchanged; a failed load fails the node with its error.
16
+ */
17
+ import { type IDSValidationReport } from '@ifc-lite/ids';
18
+ import type { Row } from '@ifc-lite/flow';
19
+ import { type FlowNodeDef } from './host.js';
20
+ /** One row per failing element, phrased for an issue tracker. */
21
+ export declare function failureRows(report: IDSValidationReport): Row[];
22
+ export declare const idsNodes: FlowNodeDef[];
23
+ //# sourceMappingURL=ids-nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids-nodes.d.ts","sourceRoot":"","sources":["../src/ids-nodes.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAe,KAAK,mBAAmB,EAAwB,MAAM,eAAe,CAAC;AAE5F,OAAO,KAAK,EAAU,GAAG,EAAS,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAyD,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAoCpG,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,EAAE,CAmB9D;AAQD,eAAO,MAAM,QAAQ,EAAE,WAAW,EAqFjC,CAAC"}