@forestadmin/workflow-executor 1.12.0 → 1.14.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 (59) hide show
  1. package/README.md +4 -0
  2. package/dist/adapters/agent-client-agent-port.d.ts +1 -1
  3. package/dist/adapters/agent-client-agent-port.js +3 -3
  4. package/dist/adapters/ai-client-adapter.d.ts +5 -1
  5. package/dist/adapters/ai-client-adapter.js +4 -1
  6. package/dist/adapters/always-error-ai-model-port.d.ts +5 -1
  7. package/dist/adapters/always-error-ai-model-port.js +6 -1
  8. package/dist/adapters/server-ai-adapter.d.ts +5 -1
  9. package/dist/adapters/server-ai-adapter.js +4 -1
  10. package/dist/adapters/step-outcome-to-update-step-mapper.js +4 -1
  11. package/dist/build-workflow-executor.js +87 -2
  12. package/dist/crypto/credential-encryption.d.ts +10 -0
  13. package/dist/crypto/credential-encryption.js +75 -0
  14. package/dist/defaults.d.ts +1 -0
  15. package/dist/defaults.js +5 -2
  16. package/dist/errors.d.ts +18 -0
  17. package/dist/errors.js +50 -2
  18. package/dist/executors/mcp-step-executor.d.ts +7 -2
  19. package/dist/executors/mcp-step-executor.js +78 -14
  20. package/dist/executors/step-executor-factory.d.ts +1 -1
  21. package/dist/executors/step-executor-factory.js +24 -3
  22. package/dist/executors/trigger-record-action-step-executor.js +10 -4
  23. package/dist/http/executor-http-server.d.ts +12 -0
  24. package/dist/http/executor-http-server.js +90 -1
  25. package/dist/http/mcp-oauth-credentials.d.ts +24 -0
  26. package/dist/http/mcp-oauth-credentials.js +77 -0
  27. package/dist/index.d.ts +7 -1
  28. package/dist/index.js +10 -3
  29. package/dist/oauth/keyed-mutex.d.ts +5 -0
  30. package/dist/oauth/keyed-mutex.js +27 -0
  31. package/dist/oauth/refresh-grant.d.ts +15 -0
  32. package/dist/oauth/refresh-grant.js +112 -0
  33. package/dist/oauth/token-endpoint-url.d.ts +2 -0
  34. package/dist/oauth/token-endpoint-url.js +103 -0
  35. package/dist/oauth/token-service.d.ts +34 -0
  36. package/dist/oauth/token-service.js +172 -0
  37. package/dist/ports/agent-port.d.ts +1 -0
  38. package/dist/ports/ai-model-port.d.ts +5 -1
  39. package/dist/ports/mcp-oauth-credentials-store.d.ts +24 -0
  40. package/dist/ports/mcp-oauth-credentials-store.js +3 -0
  41. package/dist/ports/run-store.d.ts +1 -0
  42. package/dist/remote-tool-fetcher.d.ts +7 -2
  43. package/dist/remote-tool-fetcher.js +53 -6
  44. package/dist/runner.d.ts +2 -0
  45. package/dist/runner.js +3 -3
  46. package/dist/stores/database-mcp-oauth-credentials-store.d.ts +22 -0
  47. package/dist/stores/database-mcp-oauth-credentials-store.js +188 -0
  48. package/dist/stores/database-store.d.ts +1 -1
  49. package/dist/stores/database-store.js +17 -50
  50. package/dist/stores/in-memory-mcp-oauth-credentials-store.d.ts +13 -0
  51. package/dist/stores/in-memory-mcp-oauth-credentials-store.js +44 -0
  52. package/dist/stores/in-memory-store.d.ts +1 -0
  53. package/dist/stores/in-memory-store.js +6 -1
  54. package/dist/stores/schema-migrations.d.ts +19 -0
  55. package/dist/stores/schema-migrations.js +69 -0
  56. package/dist/types/validated/execution.d.ts +6 -0
  57. package/dist/types/validated/step-outcome.d.ts +10 -0
  58. package/dist/types/validated/step-outcome.js +7 -2
  59. package/package.json +4 -4
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StepOutcomeSchema = exports.GuidanceStepOutcomeSchema = exports.McpStepOutcomeSchema = exports.RecordStepOutcomeSchema = exports.ConditionStepOutcomeSchema = exports.RecordStepStatusSchema = exports.BaseStepStatusSchema = void 0;
3
+ exports.StepOutcomeSchema = exports.GuidanceStepOutcomeSchema = exports.McpStepOutcomeSchema = exports.RecordStepOutcomeSchema = exports.ConditionStepOutcomeSchema = exports.AwaitingInputReasonSchema = exports.RecordStepStatusSchema = exports.BaseStepStatusSchema = void 0;
4
4
  exports.stepTypeToOutcomeType = stepTypeToOutcomeType;
5
5
  const zod_1 = require("zod");
6
6
  const step_definition_1 = require("./step-definition");
7
7
  exports.BaseStepStatusSchema = zod_1.z.enum(['success', 'error']);
8
8
  // AI steps can pause mid-execution to await user input (awaiting-input).
9
9
  exports.RecordStepStatusSchema = zod_1.z.enum(['success', 'error', 'awaiting-input']);
10
+ // Typed reason for an awaiting-input pause the user must resolve out of band: the Forest server
11
+ // validates it and the front reads it to prompt the matching action.
12
+ exports.AwaitingInputReasonSchema = zod_1.z.enum(['needs-oauth-reauth']);
10
13
  /**
11
14
  * StepOutcome is sent to the orchestrator — it must NEVER contain client data.
12
15
  * Any privacy-sensitive information (e.g. AI reasoning) must stay in
@@ -40,6 +43,8 @@ exports.McpStepOutcomeSchema = zod_1.z
40
43
  ...baseOutcomeFields,
41
44
  type: zod_1.z.literal('mcp'),
42
45
  status: exports.RecordStepStatusSchema,
46
+ /** Present when status is 'awaiting-input' because the step paused for re-authentication. */
47
+ awaitingInputReason: exports.AwaitingInputReasonSchema.optional(),
43
48
  })
44
49
  .strict();
45
50
  exports.GuidanceStepOutcomeSchema = zod_1.z
@@ -64,4 +69,4 @@ function stepTypeToOutcomeType(type) {
64
69
  return 'guidance';
65
70
  return 'record';
66
71
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1vdXRjb21lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL3ZhbGlkYXRlZC9zdGVwLW91dGNvbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0VBLHNEQU1DO0FBOUVELDZCQUF3QjtBQUV4Qix1REFBNkM7QUFFaEMsUUFBQSxvQkFBb0IsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFHakUseUVBQXlFO0FBQzVELFFBQUEsc0JBQXNCLEdBQUcsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBS3JGOzs7O0dBSUc7QUFDSCxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRTtJQUN6QyxzQ0FBc0M7SUFDdEMsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDN0IsQ0FBQztBQUVXLFFBQUEsMEJBQTBCLEdBQUcsT0FBQztLQUN4QyxNQUFNLENBQUM7SUFDTixHQUFHLGlCQUFpQjtJQUNwQixJQUFJLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDNUIsTUFBTSxFQUFFLDhCQUFzQjtJQUM5Qix3Q0FBd0M7SUFDeEMsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDdEMsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFDO0FBR0MsUUFBQSx1QkFBdUIsR0FBRyxPQUFDO0tBQ3JDLE1BQU0sQ0FBQztJQUNOLEdBQUcsaUJBQWlCO0lBQ3BCLElBQUksRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN6QixNQUFNLEVBQUUsOEJBQXNCO0lBQzlCLGVBQWUsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ3pELENBQUM7S0FDRCxNQUFNLEVBQUUsQ0FBQztBQUdDLFFBQUEsb0JBQW9CLEdBQUcsT0FBQztLQUNsQyxNQUFNLENBQUM7SUFDTixHQUFHLGlCQUFpQjtJQUNwQixJQUFJLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDdEIsTUFBTSxFQUFFLDhCQUFzQjtDQUMvQixDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUM7QUFHQyxRQUFBLHlCQUF5QixHQUFHLE9BQUM7S0FDdkMsTUFBTSxDQUFDO0lBQ04sR0FBRyxpQkFBaUI7SUFDcEIsSUFBSSxFQUFFLE9BQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQzNCLE1BQU0sRUFBRSw4QkFBc0I7Q0FDL0IsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFDO0FBR0MsUUFBQSxpQkFBaUIsR0FBRyxPQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFO0lBQzVELGtDQUEwQjtJQUMxQiwrQkFBdUI7SUFDdkIsNEJBQW9CO0lBQ3BCLGlDQUF5QjtDQUMxQixDQUFDLENBQUM7QUFHSCxTQUFnQixxQkFBcUIsQ0FBQyxJQUFjO0lBQ2xELElBQUksSUFBSSxLQUFLLDBCQUFRLENBQUMsU0FBUztRQUFFLE9BQU8sV0FBVyxDQUFDO0lBQ3BELElBQUksSUFBSSxLQUFLLDBCQUFRLENBQUMsR0FBRztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ3hDLElBQUksSUFBSSxLQUFLLDBCQUFRLENBQUMsUUFBUTtRQUFFLE9BQU8sVUFBVSxDQUFDO0lBRWxELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMifQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1vdXRjb21lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL3ZhbGlkYXRlZC9zdGVwLW91dGNvbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK0VBLHNEQU1DO0FBckZELDZCQUF3QjtBQUV4Qix1REFBNkM7QUFFaEMsUUFBQSxvQkFBb0IsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFHakUseUVBQXlFO0FBQzVELFFBQUEsc0JBQXNCLEdBQUcsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBR3JGLGdHQUFnRztBQUNoRyxxRUFBcUU7QUFDeEQsUUFBQSx5QkFBeUIsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0FBS3hFOzs7O0dBSUc7QUFDSCxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRTtJQUN6QyxzQ0FBc0M7SUFDdEMsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDN0IsQ0FBQztBQUVXLFFBQUEsMEJBQTBCLEdBQUcsT0FBQztLQUN4QyxNQUFNLENBQUM7SUFDTixHQUFHLGlCQUFpQjtJQUNwQixJQUFJLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDNUIsTUFBTSxFQUFFLDhCQUFzQjtJQUM5Qix3Q0FBd0M7SUFDeEMsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDdEMsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFDO0FBR0MsUUFBQSx1QkFBdUIsR0FBRyxPQUFDO0tBQ3JDLE1BQU0sQ0FBQztJQUNOLEdBQUcsaUJBQWlCO0lBQ3BCLElBQUksRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN6QixNQUFNLEVBQUUsOEJBQXNCO0lBQzlCLGVBQWUsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ3pELENBQUM7S0FDRCxNQUFNLEVBQUUsQ0FBQztBQUdDLFFBQUEsb0JBQW9CLEdBQUcsT0FBQztLQUNsQyxNQUFNLENBQUM7SUFDTixHQUFHLGlCQUFpQjtJQUNwQixJQUFJLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDdEIsTUFBTSxFQUFFLDhCQUFzQjtJQUM5Qiw2RkFBNkY7SUFDN0YsbUJBQW1CLEVBQUUsaUNBQXlCLENBQUMsUUFBUSxFQUFFO0NBQzFELENBQUM7S0FDRCxNQUFNLEVBQUUsQ0FBQztBQUdDLFFBQUEseUJBQXlCLEdBQUcsT0FBQztLQUN2QyxNQUFNLENBQUM7SUFDTixHQUFHLGlCQUFpQjtJQUNwQixJQUFJLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDM0IsTUFBTSxFQUFFLDhCQUFzQjtDQUMvQixDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUM7QUFHQyxRQUFBLGlCQUFpQixHQUFHLE9BQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUU7SUFDNUQsa0NBQTBCO0lBQzFCLCtCQUF1QjtJQUN2Qiw0QkFBb0I7SUFDcEIsaUNBQXlCO0NBQzFCLENBQUMsQ0FBQztBQUdILFNBQWdCLHFCQUFxQixDQUFDLElBQWM7SUFDbEQsSUFBSSxJQUFJLEtBQUssMEJBQVEsQ0FBQyxTQUFTO1FBQUUsT0FBTyxXQUFXLENBQUM7SUFDcEQsSUFBSSxJQUFJLEtBQUssMEJBQVEsQ0FBQyxHQUFHO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDeEMsSUFBSSxJQUFJLEtBQUssMEJBQVEsQ0FBQyxRQUFRO1FBQUUsT0FBTyxVQUFVLENBQUM7SUFFbEQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/workflow-executor",
3
- "version": "1.12.0",
3
+ "version": "1.14.0",
4
4
  "main": "dist/index.js",
5
5
  "bin": {
6
6
  "forest-workflow-executor": "dist/cli.js"
@@ -29,9 +29,9 @@
29
29
  "test": "jest"
30
30
  },
31
31
  "dependencies": {
32
- "@forestadmin/agent-client": "1.9.0",
33
- "@forestadmin/ai-proxy": "1.11.3",
34
- "@forestadmin/forestadmin-client": "1.40.3",
32
+ "@forestadmin/agent-client": "1.10.1",
33
+ "@forestadmin/ai-proxy": "1.12.0",
34
+ "@forestadmin/forestadmin-client": "1.40.4",
35
35
  "@koa/bodyparser": "^6.1.0",
36
36
  "@koa/router": "^15.6.0",
37
37
  "jsonwebtoken": "^9.0.3",