@nodetool-ai/node-sdk 0.7.0-rc.23 → 0.8.2

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 (158) hide show
  1. package/README.md +34 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/base-node.d.ts +285 -14
  4. package/dist/base-node.d.ts.map +1 -1
  5. package/dist/base-node.js +359 -49
  6. package/dist/base-node.js.map +1 -1
  7. package/dist/class-name-to-title.d.ts +26 -0
  8. package/dist/class-name-to-title.d.ts.map +1 -0
  9. package/dist/class-name-to-title.js +59 -0
  10. package/dist/class-name-to-title.js.map +1 -0
  11. package/dist/code-analysis.d.ts +234 -0
  12. package/dist/code-analysis.d.ts.map +1 -0
  13. package/dist/code-analysis.js +919 -0
  14. package/dist/code-analysis.js.map +1 -0
  15. package/dist/code-body.d.ts +61 -0
  16. package/dist/code-body.d.ts.map +1 -0
  17. package/dist/code-body.js +288 -0
  18. package/dist/code-body.js.map +1 -0
  19. package/dist/code-node-validation.d.ts +67 -0
  20. package/dist/code-node-validation.d.ts.map +1 -0
  21. package/dist/code-node-validation.js +540 -0
  22. package/dist/code-node-validation.js.map +1 -0
  23. package/dist/content-card.d.ts +30 -0
  24. package/dist/content-card.d.ts.map +1 -0
  25. package/dist/content-card.js +68 -0
  26. package/dist/content-card.js.map +1 -0
  27. package/dist/correlation-validation.d.ts +19 -0
  28. package/dist/correlation-validation.d.ts.map +1 -0
  29. package/dist/correlation-validation.js +101 -0
  30. package/dist/correlation-validation.js.map +1 -0
  31. package/dist/cost-estimate.d.ts +244 -0
  32. package/dist/cost-estimate.d.ts.map +1 -0
  33. package/dist/cost-estimate.js +637 -0
  34. package/dist/cost-estimate.js.map +1 -0
  35. package/dist/decorators.d.ts.map +1 -1
  36. package/dist/decorators.js +4 -1
  37. package/dist/decorators.js.map +1 -1
  38. package/dist/docs/nodes.d.ts.map +1 -1
  39. package/dist/docs/nodes.js +3 -2
  40. package/dist/docs/nodes.js.map +1 -1
  41. package/dist/docs/overview.d.ts.map +1 -1
  42. package/dist/docs/overview.js +4 -3
  43. package/dist/docs/overview.js.map +1 -1
  44. package/dist/docs/workflows.d.ts.map +1 -1
  45. package/dist/docs/workflows.js +10 -9
  46. package/dist/docs/workflows.js.map +1 -1
  47. package/dist/field-classification.d.ts +31 -0
  48. package/dist/field-classification.d.ts.map +1 -0
  49. package/dist/field-classification.js +58 -0
  50. package/dist/field-classification.js.map +1 -0
  51. package/dist/graph-validation.d.ts +239 -0
  52. package/dist/graph-validation.d.ts.map +1 -0
  53. package/dist/graph-validation.js +1174 -0
  54. package/dist/graph-validation.js.map +1 -0
  55. package/dist/index.d.ts +27 -2
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +29 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/js-script-link.d.ts +53 -0
  60. package/dist/js-script-link.d.ts.map +1 -0
  61. package/dist/js-script-link.js +58 -0
  62. package/dist/js-script-link.js.map +1 -0
  63. package/dist/js-script-materialize.d.ts +52 -0
  64. package/dist/js-script-materialize.d.ts.map +1 -0
  65. package/dist/js-script-materialize.js +24 -0
  66. package/dist/js-script-materialize.js.map +1 -0
  67. package/dist/manifest-node-values.d.ts +106 -0
  68. package/dist/manifest-node-values.d.ts.map +1 -0
  69. package/dist/manifest-node-values.js +195 -0
  70. package/dist/manifest-node-values.js.map +1 -0
  71. package/dist/metadata.d.ts +75 -3
  72. package/dist/metadata.d.ts.map +1 -1
  73. package/dist/metadata.js +132 -49
  74. package/dist/metadata.js.map +1 -1
  75. package/dist/node-metadata.d.ts.map +1 -1
  76. package/dist/node-metadata.js +61 -56
  77. package/dist/node-metadata.js.map +1 -1
  78. package/dist/node-type-inventory.d.ts +51 -0
  79. package/dist/node-type-inventory.d.ts.map +1 -0
  80. package/dist/node-type-inventory.js +121 -0
  81. package/dist/node-type-inventory.js.map +1 -0
  82. package/dist/nodes/test-nodes.d.ts +77 -30
  83. package/dist/nodes/test-nodes.d.ts.map +1 -1
  84. package/dist/nodes/test-nodes.js +2 -34
  85. package/dist/nodes/test-nodes.js.map +1 -1
  86. package/dist/pack-loader.d.ts +202 -0
  87. package/dist/pack-loader.d.ts.map +1 -0
  88. package/dist/pack-loader.js +529 -0
  89. package/dist/pack-loader.js.map +1 -0
  90. package/dist/port-types.d.ts +15 -0
  91. package/dist/port-types.d.ts.map +1 -0
  92. package/dist/port-types.js +72 -0
  93. package/dist/port-types.js.map +1 -0
  94. package/dist/pricing-bundle.d.ts +83 -0
  95. package/dist/pricing-bundle.d.ts.map +1 -0
  96. package/dist/pricing-bundle.js +82 -0
  97. package/dist/pricing-bundle.js.map +1 -0
  98. package/dist/pricing-params.d.ts +59 -0
  99. package/dist/pricing-params.d.ts.map +1 -0
  100. package/dist/pricing-params.js +282 -0
  101. package/dist/pricing-params.js.map +1 -0
  102. package/dist/python-package-scan.d.ts +8 -0
  103. package/dist/python-package-scan.d.ts.map +1 -1
  104. package/dist/python-package-scan.js +21 -8
  105. package/dist/python-package-scan.js.map +1 -1
  106. package/dist/registry.d.ts +105 -2
  107. package/dist/registry.d.ts.map +1 -1
  108. package/dist/registry.js +403 -30
  109. package/dist/registry.js.map +1 -1
  110. package/dist/sandbox-bridge-packs.d.ts +39 -0
  111. package/dist/sandbox-bridge-packs.d.ts.map +1 -0
  112. package/dist/sandbox-bridge-packs.js +249 -0
  113. package/dist/sandbox-bridge-packs.js.map +1 -0
  114. package/dist/sandbox-catalog-host.d.ts +31 -0
  115. package/dist/sandbox-catalog-host.d.ts.map +1 -0
  116. package/dist/sandbox-catalog-host.js +78 -0
  117. package/dist/sandbox-catalog-host.js.map +1 -0
  118. package/dist/sandbox-module-catalog.d.ts +14 -0
  119. package/dist/sandbox-module-catalog.d.ts.map +1 -0
  120. package/dist/sandbox-module-catalog.js +402 -0
  121. package/dist/sandbox-module-catalog.js.map +1 -0
  122. package/dist/sandbox-npm-artifacts.d.ts +56 -0
  123. package/dist/sandbox-npm-artifacts.d.ts.map +1 -0
  124. package/dist/sandbox-npm-artifacts.js +17 -0
  125. package/dist/sandbox-npm-artifacts.js.map +1 -0
  126. package/dist/sandbox-pack-discovery.d.ts +93 -0
  127. package/dist/sandbox-pack-discovery.d.ts.map +1 -0
  128. package/dist/sandbox-pack-discovery.js +807 -0
  129. package/dist/sandbox-pack-discovery.js.map +1 -0
  130. package/dist/search.d.ts +29 -1
  131. package/dist/search.d.ts.map +1 -1
  132. package/dist/search.js +136 -9
  133. package/dist/search.js.map +1 -1
  134. package/dist/type-compat.d.ts +36 -0
  135. package/dist/type-compat.d.ts.map +1 -0
  136. package/dist/type-compat.js +98 -0
  137. package/dist/type-compat.js.map +1 -0
  138. package/dist/type-predicates.d.ts +25 -0
  139. package/dist/type-predicates.d.ts.map +1 -0
  140. package/dist/type-predicates.js +31 -0
  141. package/dist/type-predicates.js.map +1 -0
  142. package/dist/validation.d.ts +18 -0
  143. package/dist/validation.d.ts.map +1 -1
  144. package/dist/validation.js +70 -11
  145. package/dist/validation.js.map +1 -1
  146. package/dist/workflow-document-tools.d.ts +35 -0
  147. package/dist/workflow-document-tools.d.ts.map +1 -0
  148. package/dist/workflow-document-tools.js +402 -0
  149. package/dist/workflow-document-tools.js.map +1 -0
  150. package/dist/workflow-interface.d.ts +62 -0
  151. package/dist/workflow-interface.d.ts.map +1 -0
  152. package/dist/workflow-interface.js +351 -0
  153. package/dist/workflow-interface.js.map +1 -0
  154. package/package.json +67 -10
  155. package/dist/package-registry-client.d.ts +0 -12
  156. package/dist/package-registry-client.d.ts.map +0 -1
  157. package/dist/package-registry-client.js +0 -40
  158. package/dist/package-registry-client.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { isCallable } from "./type-predicates.js";
1
2
  const declaredPropsByClass = new WeakMap();
2
3
  function getOrCreatePropMap(ctor) {
3
4
  const existing = declaredPropsByClass.get(ctor);
@@ -8,9 +9,11 @@ function getOrCreatePropMap(ctor) {
8
9
  return created;
9
10
  }
10
11
  function collectDeclaredProps(ctor) {
12
+ // Stryker disable next-line ArrayDeclaration: a bogus seed element is a string and declaredPropsByClass.get(string) is undefined → skipped, so the merged result is unchanged (equivalent mutant).
11
13
  const chain = [];
12
14
  let current = ctor;
13
- while (typeof current === "function" && current !== Function.prototype) {
15
+ // Stryker disable next-line ConditionalExpression: a constructor's prototype chain always terminates at Function.prototype via the right-hand guard, which carries no declared props, so neither guard can change the collected chain (equivalent).
16
+ while (isCallable(current) && current !== Function.prototype) {
14
17
  chain.push(current);
15
18
  current = Object.getPrototypeOf(current);
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAiBA,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAGrC,CAAC;AAEJ,SAAS,kBAAkB,CACzB,IAAc;IAEd,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC5D,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAc;IAC1C,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAY,IAAI,CAAC;IAC5B,OAAO,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,CAAC,OAAO,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC3D,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAc,EACd,IAAY,EACZ,OAAoB;IAEpB,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,IAAc;IAEd,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAoB;IACvC,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAQ,EAAE;QAC5D,MAAM,IAAI,GAAI,MAAoC,CAAC,WAAW,CAAC;QAC/D,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAmBlD,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAGrC,CAAC;AAEJ,SAAS,kBAAkB,CACzB,IAAc;IAEd,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC5D,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAc;IAC1C,mMAAmM;IACnM,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAY,IAAI,CAAC;IAC5B,oPAAoP;IACpP,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,CAAC,OAAO,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC3D,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAc,EACd,IAAY,EACZ,OAAoB;IAEpB,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,IAAc;IAEd,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAoB;IACvC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAQ,EAAE;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/docs/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgCD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAQ9D;AAiBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAiC/D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,EAAE,EACrB,IAAI,GAAE,cAAmB,GACxB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrB"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/docs/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgCD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAQ9D;AAiBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAiC/D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,EAAE,EACrB,IAAI,GAAE,cAAmB,GACxB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrB"}
@@ -1,3 +1,4 @@
1
+ import { isObjectLike, isString } from "../type-predicates.js";
1
2
  function typeMetaToString(type) {
2
3
  const args = (type.type_args ?? []).map(typeMetaToString).filter(Boolean);
3
4
  if (args.length === 0)
@@ -15,10 +16,10 @@ function formatDefault(value) {
15
16
  return "";
16
17
  if (value === null)
17
18
  return "null";
18
- if (typeof value === "string") {
19
+ if (isString(value)) {
19
20
  return value.length > 40 ? `"${value.slice(0, 37)}..."` : `"${value}"`;
20
21
  }
21
- if (typeof value === "object") {
22
+ if (isObjectLike(value)) {
22
23
  try {
23
24
  const s = JSON.stringify(value);
24
25
  return s.length > 40 ? `${s.slice(0, 37)}...` : s;
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/docs/nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/docs/nodes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../src/docs/overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;AAGpE,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoBD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,eAAe,EACpB,IAAI,GAAE,eAAoB,GACzB,MAAM,CA0DR"}
1
+ {"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../src/docs/overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;AAIpE,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoBD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,eAAe,EACpB,IAAI,GAAE,eAAoB,GACzB,MAAM,CA0DR"}
@@ -1,4 +1,5 @@
1
1
  import { slugifyNodeFilename } from "./nodes.js";
2
+ import { isRecord, isString } from "../type-predicates.js";
2
3
  function shortDescription(text) {
3
4
  if (!text)
4
5
  return "";
@@ -6,12 +7,12 @@ function shortDescription(text) {
6
7
  return firstLine.trim();
7
8
  }
8
9
  function exampleLabel(example) {
9
- if (!example || typeof example !== "object" || Array.isArray(example)) {
10
+ if (!isRecord(example)) {
10
11
  return String(example);
11
12
  }
12
13
  const record = example;
13
- return ((typeof record["name"] === "string" && record["name"]) ||
14
- (typeof record["id"] === "string" && record["id"]) ||
14
+ return ((isString(record["name"]) && record["name"]) ||
15
+ (isString(record["id"]) && record["id"]) ||
15
16
  "example");
16
17
  }
17
18
  export function generatePackageOverviewMarkdown(pkg, opts = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../src/docs/overview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../src/docs/overview.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/docs/workflows.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAyDD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAgEjE;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,YAAY,EAAE,EACzB,IAAI,GAAE,kBAAuB,GAC5B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAerB"}
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/docs/workflows.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAyDD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAgEjE;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,YAAY,EAAE,EACzB,IAAI,GAAE,kBAAuB,GAC5B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAerB"}
@@ -1,4 +1,5 @@
1
1
  import path from "node:path";
2
+ import { isNonEmptyString, isString } from "../type-predicates.js";
2
3
  function asGraph(data) {
3
4
  const graph = (data["graph"] ?? data);
4
5
  const nodes = Array.isArray(graph["nodes"])
@@ -10,17 +11,17 @@ function asGraph(data) {
10
11
  return { nodes, edges };
11
12
  }
12
13
  function filterIO(nodes, prefix) {
13
- return nodes.filter((n) => typeof n.type === "string" && n.type.startsWith(prefix));
14
+ return nodes.filter((n) => isString(n.type) && n.type.startsWith(prefix));
14
15
  }
15
16
  function slotName(node) {
16
- const props = (node.properties ?? node.data ?? {});
17
- if (typeof props["name"] === "string" && props["name"])
17
+ const props = node.properties ?? node.data ?? {};
18
+ if (isNonEmptyString(props["name"]))
18
19
  return props["name"];
19
20
  return node.id ?? (node.type ?? "unknown");
20
21
  }
21
22
  function slotDescription(node) {
22
- const props = (node.properties ?? node.data ?? {});
23
- if (typeof props["description"] === "string")
23
+ const props = node.properties ?? node.data ?? {};
24
+ if (isString(props["description"]))
24
25
  return props["description"];
25
26
  return "";
26
27
  }
@@ -38,10 +39,10 @@ function slugifyWorkflowName(name) {
38
39
  }
39
40
  export function generateWorkflowMarkdown(wf) {
40
41
  const { nodes, edges } = asGraph(wf.data);
41
- const name = typeof wf.data["name"] === "string"
42
+ const name = isString(wf.data["name"])
42
43
  ? wf.data["name"]
43
44
  : path.basename(wf.path, ".json");
44
- const description = typeof wf.data["description"] === "string" ? wf.data["description"] : "";
45
+ const description = isString(wf.data["description"]) ? wf.data["description"] : "";
45
46
  const inputs = filterIO(nodes, "nodetool.input.");
46
47
  const outputs = filterIO(nodes, "nodetool.output.");
47
48
  const lines = [];
@@ -98,10 +99,10 @@ export function generateAllWorkflowDocs(workflows, opts = {}) {
98
99
  for (const wf of workflows) {
99
100
  if (opts.packageName) {
100
101
  const pkg = wf.data["package_name"];
101
- if (typeof pkg === "string" && pkg !== opts.packageName)
102
+ if (isString(pkg) && pkg !== opts.packageName)
102
103
  continue;
103
104
  }
104
- const name = typeof wf.data["name"] === "string"
105
+ const name = isString(wf.data["name"])
105
106
  ? wf.data["name"]
106
107
  : path.basename(wf.path, ".json");
107
108
  const filename = `${slugifyWorkflowName(name)}.md`;
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/docs/workflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/docs/workflows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Shared field-classification helper for node factories.
3
+ *
4
+ * Codegen and runtime factories (replicate, fal, kie) need to derive a
5
+ * node's `inlineFields` / `inputFields` from a flat list of properties.
6
+ * The classification rule is identical across providers:
7
+ *
8
+ * - Asset-ref types (image, video, audio, image_mask, model_3d, document,
9
+ * dataframe, tensor, and their list[] variants) -> `inputFields`
10
+ * (rendered as a handle-only port; wired from upstream).
11
+ * - Short-text properties (`str`, `text`) whose name matches a small set
12
+ * of "user types this directly" keys (prompt, query, code, url, ...)
13
+ * -> `inputFields` as well, so the prompt/text fields are exposed as
14
+ * handles on the node body. The editor is reached via the Inspector.
15
+ * - Everything else -> Inspector only.
16
+ *
17
+ * Callers pre-normalize their field shape (lowercasing propType, skipping
18
+ * sub-fields, etc.) and pass the filtered list to `classifyFields`.
19
+ */
20
+ export interface ClassifyFieldInput {
21
+ /** Field/property name */
22
+ name: string;
23
+ /** Normalized prop type — callers should lowercase before passing */
24
+ propType: string;
25
+ }
26
+ export interface FieldClassification {
27
+ inlineFields: string[];
28
+ inputFields: string[];
29
+ }
30
+ export declare function classifyFields(fields: ReadonlyArray<ClassifyFieldInput>): FieldClassification;
31
+ //# sourceMappingURL=field-classification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-classification.d.ts","sourceRoot":"","sources":["../src/field-classification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA6BH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,GACxC,mBAAmB,CAgBrB"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Shared field-classification helper for node factories.
3
+ *
4
+ * Codegen and runtime factories (replicate, fal, kie) need to derive a
5
+ * node's `inlineFields` / `inputFields` from a flat list of properties.
6
+ * The classification rule is identical across providers:
7
+ *
8
+ * - Asset-ref types (image, video, audio, image_mask, model_3d, document,
9
+ * dataframe, tensor, and their list[] variants) -> `inputFields`
10
+ * (rendered as a handle-only port; wired from upstream).
11
+ * - Short-text properties (`str`, `text`) whose name matches a small set
12
+ * of "user types this directly" keys (prompt, query, code, url, ...)
13
+ * -> `inputFields` as well, so the prompt/text fields are exposed as
14
+ * handles on the node body. The editor is reached via the Inspector.
15
+ * - Everything else -> Inspector only.
16
+ *
17
+ * Callers pre-normalize their field shape (lowercasing propType, skipping
18
+ * sub-fields, etc.) and pass the filtered list to `classifyFields`.
19
+ */
20
+ const ASSET_PROP_TYPES = new Set([
21
+ "image",
22
+ "video",
23
+ "audio",
24
+ "image_mask",
25
+ "model_3d",
26
+ "document",
27
+ "dataframe",
28
+ "tensor",
29
+ "list[image]",
30
+ "list[video]",
31
+ "list[audio]"
32
+ ]);
33
+ const TEXT_PROP_TYPES = new Set(["str", "text"]);
34
+ const INLINE_TEXT_FIELD_NAMES = new Set([
35
+ "prompt",
36
+ "system_prompt",
37
+ "query",
38
+ "text",
39
+ "template",
40
+ "code",
41
+ "expression",
42
+ "url"
43
+ ]);
44
+ export function classifyFields(fields) {
45
+ const inlineFields = [];
46
+ const inputFields = [];
47
+ for (const field of fields) {
48
+ if (ASSET_PROP_TYPES.has(field.propType)) {
49
+ inputFields.push(field.name);
50
+ }
51
+ else if (TEXT_PROP_TYPES.has(field.propType) &&
52
+ INLINE_TEXT_FIELD_NAMES.has(field.name)) {
53
+ inputFields.push(field.name);
54
+ }
55
+ }
56
+ return { inlineFields, inputFields };
57
+ }
58
+ //# sourceMappingURL=field-classification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-classification.js","sourceRoot":"","sources":["../src/field-classification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,OAAO;IACP,OAAO;IACP,OAAO;IACP,YAAY;IACZ,UAAU;IACV,UAAU;IACV,WAAW;IACX,QAAQ;IACR,aAAa;IACb,aAAa;IACb,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtE,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAC3D,QAAQ;IACR,eAAe;IACf,OAAO;IACP,MAAM;IACN,UAAU;IACV,MAAM;IACN,YAAY;IACZ,KAAK;CACN,CAAC,CAAC;AAcH,MAAM,UAAU,cAAc,CAC5B,MAAyC;IAEzC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,IACL,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YACnC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EACvC,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * Static workflow-graph validation.
3
+ *
4
+ * Checks a graph against the node registry WITHOUT executing it: unknown node
5
+ * types, duplicate ids, missing required / unselected-model properties, dangling
6
+ * edges, unknown edge handles, mis-spelled dynamic slot types, Code node bodies
7
+ * (syntax, inputs, outputs), and (best-effort) edge type mismatches. Catches the
8
+ * breakage that would otherwise only surface after a full workflow run.
9
+ *
10
+ * Takes a {@link GraphValidationRegistry} (the slice of NodeRegistry it needs)
11
+ * so it can be unit-tested with a fake and reused by the CLI and agent tools.
12
+ */
13
+ import { type DynamicSlotMeta } from "@nodetool-ai/protocol";
14
+ import { type SandboxModuleCatalog } from "@nodetool-ai/runtime";
15
+ import { type JsScriptLink, type JsScriptLinkLookup } from "./js-script-link.js";
16
+ import type { NodeMetadata } from "./metadata.js";
17
+ import type { NodePropertyValidationIssue } from "./validation.js";
18
+ /** A node in either kernel (`properties`) or ReactFlow (`data`) shape. */
19
+ export interface GraphValidationNode {
20
+ id?: unknown;
21
+ type?: unknown;
22
+ properties?: Record<string, unknown>;
23
+ data?: Record<string, unknown>;
24
+ /** Inline values of dynamic input slots. */
25
+ dynamic_properties?: Record<string, unknown>;
26
+ /** Typed declarations for dynamic input slots (undeclared slot = `any`). */
27
+ dynamic_inputs?: Record<string, DynamicSlotMeta>;
28
+ /** Typed declarations of dynamic output slots (`{ name: TypeMetadata }`). */
29
+ dynamic_outputs?: unknown;
30
+ }
31
+ export interface GraphValidationEdge {
32
+ id?: unknown;
33
+ source?: unknown;
34
+ sourceHandle?: unknown;
35
+ source_handle?: unknown;
36
+ target?: unknown;
37
+ targetHandle?: unknown;
38
+ target_handle?: unknown;
39
+ /** `"control"` marks an edge the kernel excludes from data-flow analysis. */
40
+ edge_type?: unknown;
41
+ /** ReactFlow edge kind — `"control"` there too. */
42
+ type?: unknown;
43
+ data?: Record<string, unknown>;
44
+ }
45
+ export interface GraphValidationInput {
46
+ nodes?: GraphValidationNode[];
47
+ edges?: GraphValidationEdge[];
48
+ }
49
+ /**
50
+ * `info` is below the `--warnings-as-errors` ratchet: it reports something
51
+ * worth knowing about a graph that is not a defect. An untyped dynamic slot
52
+ * is the motivating case — every workflow saved before typed slots has one
53
+ * per dynamic edge, and none of them are broken.
54
+ */
55
+ export type GraphValidationSeverity = "error" | "warning" | "info";
56
+ export interface GraphValidationIssue {
57
+ severity: GraphValidationSeverity;
58
+ /**
59
+ * Stable category: "unknown_node" | "missing_id" | "duplicate_id" |
60
+ * "property" | "dangling_edge" | "unknown_handle" | "missing_handle" |
61
+ * "cycle" | "type_mismatch" | "fan_in" | "untyped_dynamic_slot" |
62
+ * "dynamic_type_mismatch" | "unknown_provider" | "missing_provider" |
63
+ * "unknown_model" | "missing_secret" | "slot_type_alias" | "invalid_graph", plus the `code_*`
64
+ * categories a Code node body produces (see {@link validateCodeNodeBody}).
65
+ *
66
+ * - "invalid_graph" (error): `nodes` or `edges` is not an array, so that half
67
+ * of the graph cannot be read at all.
68
+ * - "missing_id" (error): a node with no id — unaddressable by any edge.
69
+ * - "missing_handle" (error): an edge whose endpoints both exist but which
70
+ * names no source/target handle, so the kernel cannot route it.
71
+ * - "cycle" (error): a self-loop, or a cycle in the data subgraph the
72
+ * kernel's correlation analysis requires to be a DAG.
73
+ * - "untyped_dynamic_slot" (info): an edge targets a dynamic input that
74
+ * carries no `dynamic_inputs` declaration, so its type cannot be checked.
75
+ * Legacy graphs produce one per dynamic edge; never an error, and below
76
+ * the warnings-as-errors ratchet.
77
+ * - "dynamic_type_mismatch" (warning): an inline `dynamic_properties` value
78
+ * does not match its slot's declared type.
79
+ * - "missing_provider" (error): a model reference carries an id but no
80
+ * provider, so nothing can route it. See
81
+ * {@link collectModelSelectionIssues} for this and its two siblings.
82
+ * - "missing_required_model_input" (info): a node leaves a property blank
83
+ * that the model it selects declares required, so swapping the model
84
+ * breaks the graph. Only reported where the provider enumerates its
85
+ * requirements offline. `info` because the graph is not broken, it is
86
+ * model-specific — and because the manifests are generated, so a wrong
87
+ * `required` must not fail a build.
88
+ * - "missing_secret" (warning): a node declares a credential
89
+ * ({@link collectSecretRequirementSites}) that `options.availableSecrets`
90
+ * cannot resolve. Only reported when a set was supplied; warning because
91
+ * some declared keys are optional at call time, so absence does not prove
92
+ * a failed run.
93
+ * - "type_mismatch": a warning for declared properties (best-effort), an
94
+ * error when the target is a *declared* dynamic slot whose type the source
95
+ * output cannot satisfy.
96
+ */
97
+ code: string;
98
+ nodeId?: string;
99
+ nodeType?: string;
100
+ edgeId?: string;
101
+ message: string;
102
+ }
103
+ export interface GraphValidationReport {
104
+ ok: boolean;
105
+ nodeCount: number;
106
+ edgeCount: number;
107
+ counts: {
108
+ errors: number;
109
+ warnings: number;
110
+ info: number;
111
+ };
112
+ issues: GraphValidationIssue[];
113
+ }
114
+ /** The slice of NodeRegistry the validator needs (kept narrow for testing). */
115
+ export interface GraphValidationRegistry {
116
+ has(nodeType: string): boolean;
117
+ getMetadata(nodeType: string): NodeMetadata | undefined;
118
+ validateNode(descriptor: {
119
+ id: string;
120
+ type: string;
121
+ properties?: Record<string, unknown>;
122
+ dynamic_inputs?: Record<string, DynamicSlotMeta>;
123
+ dynamic_properties?: Record<string, unknown>;
124
+ }, connectedHandles?: ReadonlySet<string>): NodePropertyValidationIssue[];
125
+ /**
126
+ * Provider ids the runtime can actually construct. Optional: a caller that
127
+ * cannot reach the provider registry (the browser) omits it and the
128
+ * provider check is skipped rather than guessing.
129
+ */
130
+ listProviderIds?(): readonly string[];
131
+ /**
132
+ * Model ids `provider` is known to offer, or undefined when they cannot be
133
+ * enumerated without a network call. Undefined means "cannot tell", never
134
+ * "no such model" — a provider whose catalog is only reachable online must
135
+ * not have its models reported as absent. Optional for the same reason
136
+ * {@link listProviderIds} is: a caller that cannot reach the provider
137
+ * registry omits it and the check is skipped rather than guessed at.
138
+ */
139
+ listModelIds?(provider: string, modelType: string): readonly string[] | undefined;
140
+ /**
141
+ * Text inputs `modelId` declares it will not run without, named the way the
142
+ * node's own properties are, or undefined when that cannot be established
143
+ * without a network call. Optional and silent-by-default like its two
144
+ * siblings above.
145
+ */
146
+ listRequiredTextInputs?(provider: string, modelType: string, modelId: string): readonly string[] | undefined;
147
+ }
148
+ export declare function isEditorOnlyType(nodeType: string): boolean;
149
+ /** The slice of the registry {@link collectModelSelectionIssues} needs. */
150
+ export type ModelSelectionRegistry = Pick<GraphValidationRegistry, "listProviderIds" | "listModelIds">;
151
+ /**
152
+ * Every provider/model id in `graph` that the runtime cannot honour.
153
+ *
154
+ * Split out of {@link validateGraph} so a caller that wants only this — a run
155
+ * preflight, an agent about to save a graph — pays for a property walk instead
156
+ * of a full graph validation, and so all of them report the same thing. The
157
+ * checks stay in `validateGraph` too; this is the same code, not a second
158
+ * opinion.
159
+ *
160
+ * Both checks fail toward silence. An empty provider list means the registry
161
+ * could not be reached, not that zero providers exist; an undefined model list
162
+ * means the catalog is only knowable online. Neither is evidence of a bad id.
163
+ */
164
+ export declare function collectModelSelectionIssues(graph: GraphValidationInput, registry: ModelSelectionRegistry): GraphValidationIssue[];
165
+ export interface SecretRequirementSite {
166
+ nodeId: string;
167
+ nodeType: string;
168
+ /** The credential name, e.g. `OPENAI_API_KEY`. */
169
+ key: string;
170
+ /** The declaration that introduced this credential requirement. */
171
+ source: "required_setting" | "code_secret";
172
+ }
173
+ /**
174
+ * Every credential name a graph's nodes declare, deduplicated per node.
175
+ *
176
+ * Split out of {@link collectMissingSecretIssues} so a host can resolve the
177
+ * names against its store first and hand back only the availability set —
178
+ * validation stays synchronous and store-shaped knowledge stays with the
179
+ * host that owns it.
180
+ */
181
+ export declare function collectSecretRequirementSites(graph: GraphValidationInput, registry: Pick<GraphValidationRegistry, "has" | "getMetadata">): SecretRequirementSite[];
182
+ /**
183
+ * Nodes whose declared credentials the supplied set cannot resolve.
184
+ *
185
+ * Both sources warn rather than error. A `required_settings` entry reaches
186
+ * `process()` as an empty string when absent, and some nodes treat that as
187
+ * optional at call time (a HuggingFace token widens the model catalog but is
188
+ * not the only way in), so absence does not prove a failed run. The Code
189
+ * node's list scopes reads rather than requiring them, for the same reason.
190
+ * The certain failure — a provider constructed without the credential its
191
+ * registration requires — is checked where the answer is certain, in the
192
+ * run preflight (`@nodetool-ai/execution`), against the provider registry.
193
+ *
194
+ * Fails toward silence like every catalog here: no set, nothing reported.
195
+ */
196
+ export declare function collectMissingSecretIssues(graph: GraphValidationInput, registry: Pick<GraphValidationRegistry, "has" | "getMetadata">, availableSecrets?: ReadonlySet<string> | null): GraphValidationIssue[];
197
+ /**
198
+ * Distinct provider ids across every model reference in the graph, in walk
199
+ * order. The run preflight resolves each against the provider registry to
200
+ * refuse a graph whose credentials are missing before anything executes.
201
+ */
202
+ export declare function collectModelProviders(graph: GraphValidationInput): string[];
203
+ export interface GraphValidationOptions {
204
+ /**
205
+ * Exact credential names resolvable from the host's secret store. When set,
206
+ * a node that declares a credential this set lacks is reported as a
207
+ * `missing_secret` warning: the node may still run (some keys are optional
208
+ * at call time), so it informs rather than refuses. Undefined or null means
209
+ * no store was reachable and nothing is reported — absence of evidence is
210
+ * not evidence of a missing key.
211
+ */
212
+ availableSecrets?: ReadonlySet<string> | null;
213
+ /**
214
+ * Catalog the Code node bodies' imports resolve against. Defaults
215
+ * to the process-wide catalog the host installed; pass `null` to check the
216
+ * graph without one (a browser client, a test).
217
+ */
218
+ sandboxModuleCatalog?: SandboxModuleCatalog | null;
219
+ /**
220
+ * Resolves a Code node's pinned `script` link. Validation is synchronous, so
221
+ * a caller that can reach the script store prefetches every link
222
+ * ({@link collectJsScriptLinks}) and passes a lookup over what it found.
223
+ *
224
+ * A link the lookup cannot answer for is a warning either way: the node runs
225
+ * the body it copied at link time, so a script that moved or disappeared
226
+ * costs freshness, not the run.
227
+ */
228
+ jsScriptLookup?: JsScriptLinkLookup | null;
229
+ }
230
+ /**
231
+ * Every pinned script link a graph's Code nodes carry, deduplicated. A host
232
+ * that wants the linked-script checks loads these first and hands
233
+ * {@link validateGraph} a lookup over the result.
234
+ */
235
+ export declare function collectJsScriptLinks(graph: GraphValidationInput): JsScriptLink[];
236
+ export declare function validateGraph(rawGraph: GraphValidationInput, registry: GraphValidationRegistry, options?: GraphValidationOptions): GraphValidationReport;
237
+ /** One-line summary headline for human output. */
238
+ export declare function validationHeadline(report: GraphValidationReport): string;
239
+ //# sourceMappingURL=graph-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-validation.d.ts","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"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"}