@oomol-lab/open-flow 0.1.0-beta.90 → 0.1.0-beta.91

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 (37) hide show
  1. package/dist/browser/{FlowCanvas-C4iuvVKB.js → FlowCanvas-CZEphIhX.js} +169 -2324
  2. package/dist/browser/{createResourceDialog-BstGO0m4.js → createResourceDialog-CJbZa2gA.js} +2 -2
  3. package/dist/browser/{dialog-Bi-MVTGj.js → dialog-E1WkapJU.js} +10 -2
  4. package/dist/browser/{exportPng-DMsB9ku_.js → exportPng-c4or5th8.js} +2 -2
  5. package/dist/browser/{flowChanges-SKYJBr6X.js → flowChanges-DsLZdENA.js} +20 -37
  6. package/dist/browser/{flowWorkspace-4UHRaHcz.js → flowWorkspace-CxLQWUdj.js} +54 -19
  7. package/dist/browser/{markdownContent-B75ojl0E.js → markdownContent-BsdTdwBU.js} +1 -1
  8. package/dist/browser/preview.js +231 -68
  9. package/dist/browser/workbench.js +6 -6
  10. package/dist/browser/{workbenchSelect-CHOeceKA.js → workbenchSelect-BfQfMWuY.js} +1 -1
  11. package/dist/browser/{wrapLayout-DU5HG1qH.js → wrapLayout-ZOG4AikN.js} +2493 -200
  12. package/dist/command/index.js +58 -55
  13. package/dist/common/control-api-conformance.js +896 -8
  14. package/dist/common/control-api.js +896 -8
  15. package/dist/common/control-requests.js +17 -6
  16. package/dist/common/decision.js +10 -2
  17. package/dist/common/flow-authoring.js +896 -8
  18. package/dist/common/flow-change.js +896 -8
  19. package/dist/common/flow-encoding.js +896 -8
  20. package/dist/common/flow-semantics.js +10 -2
  21. package/dist/common/integration-trigger.js +10 -2
  22. package/dist/common/licenses.md +2 -0
  23. package/dist/common/mcp.js +896 -8
  24. package/dist/common/openapi.js +10 -2
  25. package/dist/common/poll-trigger.js +10 -2
  26. package/dist/common/provider-triggers.js +1 -1
  27. package/dist/common/scheduler.js +10 -2
  28. package/dist/common/webhook-trigger.js +890 -2
  29. package/dist/common/workflow.js +14 -3
  30. package/dist/render/browser/runtime.js +966 -59
  31. package/dist/render/node/index.js +792 -4
  32. package/package.json +1 -1
  33. package/src/control/common/authoringTools.ts +4 -2
  34. package/src/flow/common/schemaComparer.ts +12 -2
  35. package/src/json-schema-subset/checker/equals.ts +3 -0
  36. package/src/trigger/providers/catalog.generated.json +9 -1
  37. package/src/workflow/common/workflow.ts +4 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oomol-lab/open-flow",
3
- "version": "0.1.0-beta.90",
3
+ "version": "0.1.0-beta.91",
4
4
  "description": "TypeScript contracts and Browser runtime for Open Flow.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {
@@ -99,7 +99,7 @@ export async function prepareAgentTools(
99
99
  name: tool.name,
100
100
  description: tool.description,
101
101
  approval: tool.approval,
102
- inputs: preparedTool.inputs.map((port) => Object.assign({}, port, { source: tool.inputs?.[port.handle] ?? port.source })),
102
+ inputs: preparedTool.inputs.map(({ value: _value, ...port }) => Object.assign({}, port, { source: tool.inputs?.[port.handle] ?? port.source })),
103
103
  })
104
104
  continue
105
105
  }
@@ -116,7 +116,9 @@ export async function prepareAgentTools(
116
116
  ...settings,
117
117
  id: old?.id ?? id(),
118
118
  action: definition?.actionId ?? tool.action,
119
- inputs: ports.map((port) => (sources != null && Object.hasOwn(sources, port.handle) ? Object.assign({}, port, { source: sources[port.handle]! }) : port)),
119
+ inputs: ports.map(({ value: _value, ...port }) =>
120
+ sources != null && Object.hasOwn(sources, port.handle) ? Object.assign({}, port, { source: sources[port.handle]! }) : port,
121
+ ),
120
122
  })
121
123
  }
122
124
  return prepared
@@ -1,5 +1,7 @@
1
+ import type { Schema as JsonSchema } from '@cfworker/json-schema'
1
2
  import type { ExtendsSchema, SubsetCompare } from '../../json-schema-subset/index.ts'
2
3
 
4
+ import { Validator } from '@cfworker/json-schema'
3
5
  import { isString, toPlainObject } from '@wopjs/cast'
4
6
  import { CompiledKind, getKind, isCompiledSchema } from '../../json-schema-subset/compiler/index.ts'
5
7
  import { ExpressionSingleResult, makeSubsetCompare } from '../../json-schema-subset/index.ts'
@@ -72,12 +74,20 @@ class SingleSelectSchema extends SpecialSchema<SingleSelectSchemaValue> {
72
74
 
73
75
  public constructor(id: number, value: unknown, context?: unknown) {
74
76
  if (!SingleSelectSchema.isMatch(value)) throw new TypeError('Invalid single-select schema.')
75
- super(id, value, context)
77
+ const validator = new Validator(structuredClone(value) as JsonSchema, '7')
78
+ super(id, { enum: value.enum.filter((item) => validator.validate(item).valid) }, context)
76
79
  }
77
80
 
78
81
  protected compareImpl(other: unknown): readonly ExpressionSingleResult[] {
82
+ if (this.value.enum.length == 0) {
83
+ const empty = other instanceof SingleSelectSchema ? other.value.enum.length == 0 : isCompiledSchema(other) && getKind(other) === CompiledKind.Never
84
+ return [empty ? ExpressionSingleResult.Equals : ExpressionSingleResult.ContainedBy]
85
+ }
79
86
  if (isStringLikeSchema(other)) {
80
- return [ExpressionSingleResult.ContainedBy]
87
+ const validator = new Validator(structuredClone(other) as JsonSchema, '7')
88
+ const accepted = this.value.enum.filter((item) => validator.validate(item).valid).length
89
+ if (accepted == this.value.enum.length) return [ExpressionSingleResult.ContainedBy]
90
+ return [accepted == 0 ? ExpressionSingleResult.Rejection : ExpressionSingleResult.Intersection]
81
91
  }
82
92
 
83
93
  if (other instanceof SingleSelectSchema) {
@@ -84,6 +84,9 @@ export function schemaEqualsChecker<E>(extendsContext: ExtendsContext): (schema1
84
84
  if (typeof value1 !== typeof value2) {
85
85
  return false
86
86
  }
87
+ if (extendsContext.isExtendsSchema(value1) || extendsContext.isExtendsSchema(value2)) {
88
+ return extendsContext.equals(value1, value2)
89
+ }
87
90
  if (isCompiledSchema<E>(value1) && isCompiledSchema<E>(value2)) {
88
91
  return isCompiledSchemaEquals(value1, value2)
89
92
  }
@@ -3640,7 +3640,15 @@
3640
3640
  "type": "integration"
3641
3641
  },
3642
3642
  "callback": {
3643
- "headers": ["x-shopify-api-version", "x-shopify-event-id", "x-shopify-shop-domain", "x-shopify-topic", "x-shopify-triggered-at", "x-shopify-webhook-id"],
3643
+ "headers": [
3644
+ "x-shopify-api-version",
3645
+ "x-shopify-event-id",
3646
+ "x-shopify-hmac-sha256",
3647
+ "x-shopify-shop-domain",
3648
+ "x-shopify-topic",
3649
+ "x-shopify-triggered-at",
3650
+ "x-shopify-webhook-id"
3651
+ ],
3644
3652
  "query": ["open_flow_callback"]
3645
3653
  },
3646
3654
  "options": false
@@ -189,9 +189,10 @@ export function workflowAgentTool(id: string, name: string, target: WorkflowCont
189
189
  id,
190
190
  description: previous?.description ?? target.name,
191
191
  approval: previous?.approval ?? false,
192
- inputs: capability.inputs.map((port) =>
193
- Object.assign({}, port, { source: previous?.inputs.find((old) => old.handle == port.handle)?.source ?? { kind: 'model' as const } }),
194
- ),
192
+ inputs: capability.inputs.map((input) => {
193
+ const { value: _value, ...port } = input as typeof input & { value?: unknown }
194
+ return Object.assign({}, port, { source: previous?.inputs.find((old) => old.handle == port.handle)?.source ?? { kind: 'model' as const } })
195
+ }),
195
196
  }
196
197
  }
197
198