@revisium/orchestrator 0.1.0-alpha.2 → 0.1.0-alpha.4

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 (154) hide show
  1. package/control-plane/bootstrap.config.json +103 -2
  2. package/control-plane/default-playbook/catalog/pipelines.json +360 -0
  3. package/control-plane/default-playbook/catalog/roles.json +56 -0
  4. package/control-plane/default-playbook/package.json +5 -0
  5. package/control-plane/default-playbook/playbook.json +13 -0
  6. package/control-plane/default-playbook/prompts/analyst.md +27 -0
  7. package/control-plane/default-playbook/prompts/developer.md +26 -0
  8. package/control-plane/default-playbook/prompts/integrator.md +20 -0
  9. package/control-plane/default-playbook/prompts/orchestrator.md +23 -0
  10. package/control-plane/default-playbook/prompts/reviewer.md +28 -0
  11. package/control-plane/default-playbook/prompts/watcher.md +24 -0
  12. package/dist/cli/commands/bootstrap.js +68 -7
  13. package/dist/cli/commands/bootstrap.js.map +1 -1
  14. package/dist/cli/commands/inbox.js +0 -21
  15. package/dist/cli/commands/inbox.js.map +1 -1
  16. package/dist/cli/commands/run.js +76 -49
  17. package/dist/cli/commands/run.js.map +1 -1
  18. package/dist/cli/needs-host.js +7 -8
  19. package/dist/cli/needs-host.js.map +1 -1
  20. package/dist/cli/program.js +0 -2
  21. package/dist/cli/program.js.map +1 -1
  22. package/dist/config.js +18 -1
  23. package/dist/config.js.map +1 -1
  24. package/dist/control-plane/client-transport.js +73 -40
  25. package/dist/control-plane/client-transport.js.map +1 -1
  26. package/dist/control-plane/data-access.js +3 -2
  27. package/dist/control-plane/data-access.js.map +1 -1
  28. package/dist/control-plane/definitions.js +1 -1
  29. package/dist/control-plane/definitions.js.map +1 -1
  30. package/dist/control-plane/json-fields.js +2 -0
  31. package/dist/control-plane/json-fields.js.map +1 -1
  32. package/dist/control-plane/schema-migration.js +86 -0
  33. package/dist/control-plane/schema-migration.js.map +1 -0
  34. package/dist/control-plane/seed-default-playbook.js +71 -0
  35. package/dist/control-plane/seed-default-playbook.js.map +1 -0
  36. package/dist/control-plane/tables.js +1 -0
  37. package/dist/control-plane/tables.js.map +1 -1
  38. package/dist/e2e/kit/agents.js +113 -0
  39. package/dist/e2e/kit/agents.js.map +1 -0
  40. package/dist/e2e/kit/assertions.js +119 -0
  41. package/dist/e2e/kit/assertions.js.map +1 -0
  42. package/dist/e2e/kit/crash.js +44 -0
  43. package/dist/e2e/kit/crash.js.map +1 -0
  44. package/dist/e2e/kit/drive.js +49 -0
  45. package/dist/e2e/kit/drive.js.map +1 -0
  46. package/dist/e2e/kit/env.js +16 -0
  47. package/dist/e2e/kit/env.js.map +1 -0
  48. package/dist/e2e/kit/fake-integrator.js +42 -0
  49. package/dist/e2e/kit/fake-integrator.js.map +1 -0
  50. package/dist/e2e/kit/gh-emulator.js +49 -0
  51. package/dist/e2e/kit/gh-emulator.js.map +1 -0
  52. package/dist/e2e/kit/git-target-repo.js +83 -0
  53. package/dist/e2e/kit/git-target-repo.js.map +1 -0
  54. package/dist/e2e/kit/harness.js +59 -0
  55. package/dist/e2e/kit/harness.js.map +1 -0
  56. package/dist/e2e/kit/index.js +14 -0
  57. package/dist/e2e/kit/index.js.map +1 -0
  58. package/dist/e2e/kit/mcp.js +32 -0
  59. package/dist/e2e/kit/mcp.js.map +1 -0
  60. package/dist/e2e/kit/scenarios.js +196 -0
  61. package/dist/e2e/kit/scenarios.js.map +1 -0
  62. package/dist/e2e/recovery-crash-child.js +29 -0
  63. package/dist/e2e/recovery-crash-child.js.map +1 -0
  64. package/dist/e2e/recovery-dd-crash-child.js +42 -0
  65. package/dist/e2e/recovery-dd-crash-child.js.map +1 -0
  66. package/dist/engine/ensure-postgres.js +13 -1
  67. package/dist/engine/ensure-postgres.js.map +1 -1
  68. package/dist/mcp/mcp-capabilities.js +1 -0
  69. package/dist/mcp/mcp-capabilities.js.map +1 -1
  70. package/dist/mcp/mcp-facade.service.js +24 -3
  71. package/dist/mcp/mcp-facade.service.js.map +1 -1
  72. package/dist/mcp/mcp-tools.js +16 -7
  73. package/dist/mcp/mcp-tools.js.map +1 -1
  74. package/dist/pipeline/data-driven-task.workflow.js +493 -0
  75. package/dist/pipeline/data-driven-task.workflow.js.map +1 -0
  76. package/dist/pipeline/data-driven-template.js +57 -0
  77. package/dist/pipeline/data-driven-template.js.map +1 -0
  78. package/dist/pipeline/develop-task.workflow.js +151 -316
  79. package/dist/pipeline/develop-task.workflow.js.map +1 -1
  80. package/dist/pipeline/pipeline.module.js +1 -1
  81. package/dist/pipeline/route-contract.js +82 -0
  82. package/dist/pipeline/route-contract.js.map +1 -0
  83. package/dist/pipeline-core/index.js +16 -0
  84. package/dist/pipeline-core/index.js.map +1 -0
  85. package/dist/pipeline-core/interpret.js +351 -0
  86. package/dist/pipeline-core/interpret.js.map +1 -0
  87. package/dist/pipeline-core/kit/assertions.js +61 -0
  88. package/dist/pipeline-core/kit/assertions.js.map +1 -0
  89. package/dist/pipeline-core/kit/builders.js +136 -0
  90. package/dist/pipeline-core/kit/builders.js.map +1 -0
  91. package/dist/pipeline-core/kit/drive.js +96 -0
  92. package/dist/pipeline-core/kit/drive.js.map +1 -0
  93. package/dist/pipeline-core/kit/fixtures.js +248 -0
  94. package/dist/pipeline-core/kit/fixtures.js.map +1 -0
  95. package/dist/pipeline-core/kit/index.js +13 -0
  96. package/dist/pipeline-core/kit/index.js.map +1 -0
  97. package/dist/pipeline-core/types.js +132 -0
  98. package/dist/pipeline-core/types.js.map +1 -0
  99. package/dist/pipeline-core/validate.js +1192 -0
  100. package/dist/pipeline-core/validate.js.map +1 -0
  101. package/dist/playbook/catalog-loader.js +14 -1
  102. package/dist/playbook/catalog-loader.js.map +1 -1
  103. package/dist/playbook/import-mapper.js +14 -38
  104. package/dist/playbook/import-mapper.js.map +1 -1
  105. package/dist/playbook/manifest.js +1 -1
  106. package/dist/revisium/playbooks.service.js +95 -17
  107. package/dist/revisium/playbooks.service.js.map +1 -1
  108. package/dist/revisium/roles.service.js +1 -1
  109. package/dist/revisium/roles.service.js.map +1 -1
  110. package/dist/revisium/run.service.js +16 -0
  111. package/dist/revisium/run.service.js.map +1 -1
  112. package/dist/run/append-event.js +24 -1
  113. package/dist/run/append-event.js.map +1 -1
  114. package/dist/run/block-run.js +17 -0
  115. package/dist/run/block-run.js.map +1 -0
  116. package/dist/run/create-run.js +28 -5
  117. package/dist/run/create-run.js.map +1 -1
  118. package/dist/run/inspect-run.js +9 -0
  119. package/dist/run/inspect-run.js.map +1 -1
  120. package/dist/run/run-outputs.js +88 -0
  121. package/dist/run/run-outputs.js.map +1 -0
  122. package/dist/run/terminal-run-status.js +89 -7
  123. package/dist/run/terminal-run-status.js.map +1 -1
  124. package/dist/runners/claude-code.service.js +4 -0
  125. package/dist/runners/claude-code.service.js.map +1 -1
  126. package/dist/runners/integrator.js +25 -9
  127. package/dist/runners/integrator.js.map +1 -1
  128. package/dist/task-control-plane/task-control-plane-api.service.js +247 -28
  129. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  130. package/dist/worker/artifact-store.js +111 -0
  131. package/dist/worker/artifact-store.js.map +1 -0
  132. package/dist/worker/build-context.js +17 -0
  133. package/dist/worker/build-context.js.map +1 -1
  134. package/dist/worker/claude-code-runner.js +44 -5
  135. package/dist/worker/claude-code-runner.js.map +1 -1
  136. package/dist/worker/process-executor.js +23 -2
  137. package/dist/worker/process-executor.js.map +1 -1
  138. package/dist/worker/runner-dispatch.js +1 -0
  139. package/dist/worker/runner-dispatch.js.map +1 -1
  140. package/dist/worker/runner.js +11 -1
  141. package/dist/worker/runner.js.map +1 -1
  142. package/dist/worker/stub-runner.js +7 -45
  143. package/dist/worker/stub-runner.js.map +1 -1
  144. package/package.json +3 -1
  145. package/dist/cli/commands/work.js +0 -149
  146. package/dist/cli/commands/work.js.map +0 -1
  147. package/dist/worker/git-worktree-manager.js +0 -84
  148. package/dist/worker/git-worktree-manager.js.map +0 -1
  149. package/dist/worker/loop.js +0 -122
  150. package/dist/worker/loop.js.map +0 -1
  151. package/dist/worker/script-runner.js +0 -28
  152. package/dist/worker/script-runner.js.map +0 -1
  153. package/dist/worker/worker-id.js +0 -18
  154. package/dist/worker/worker-id.js.map +0 -1
@@ -0,0 +1,132 @@
1
+ /**
2
+ * pipeline-core/types.ts — the pure, framework-free data model for plan 0015.
3
+ *
4
+ * Spec: docs/plans/0015-pipeline-state-machine.md (§1 nodes, §3 transitions+guards, §4 fork/join,
5
+ * §6 failure model, §7 scoped counters, §8 verdicts, §10 Decision + RunState).
6
+ *
7
+ * ZERO imports from NestJS / DBOS / Revisium / runners / any I/O. Everything here is plain data.
8
+ */
9
+ // ─────────────────────────────────────────────────────────────────────────────
10
+ // §8 Verdicts — two tiers
11
+ // ─────────────────────────────────────────────────────────────────────────────
12
+ /**
13
+ * CORE verdicts are carried by `specVersion` (§8). The engine acts on these STRUCTURALLY
14
+ * (catch / onFailure / terminal / timeout) — they NEVER appear in a branch guard (§3/§6).
15
+ */
16
+ export const CORE_VERDICTS = ['succeeded', 'failed', 'errored', 'timed_out'];
17
+ /** Terminal run statuses a `terminal` node may carry, and the `complete` Decision reports (§1/§10). */
18
+ export const TERMINAL_STATUSES = ['succeeded', 'failed', 'blocked'];
19
+ /** Every `Condition` op tag — used by validation to reject anything outside the v1 grammar. */
20
+ export const CONDITION_OPS = [
21
+ 'verdict.eq',
22
+ 'verdict.in',
23
+ 'counter.lt',
24
+ 'counter.gte',
25
+ 'all',
26
+ 'any',
27
+ 'not',
28
+ ];
29
+ export function isDefaultBranch(b) {
30
+ return 'default' in b;
31
+ }
32
+ export function isGuardedBranch(b) {
33
+ return 'when' in b;
34
+ }
35
+ export const FAILURE_POLICIES = ['abort', 'route', 'escalate'];
36
+ // ─────────────────────────────────────────────────────────────────────────────
37
+ // §1/§3/§4 Node — the closed 8-kind discriminated union.
38
+ //
39
+ // Node ids, scope ids, role/script capability handles and result-schema handles are all plain
40
+ // strings; the field and parameter names below carry their domain meaning. (A roleRef/scriptRef is an
41
+ // opaque capability handle the adapter resolves — the engine holds no role-ids, §1; a resultSchema is
42
+ // validated at the ADAPTER boundary, never in the core, §10.)
43
+ // ─────────────────────────────────────────────────────────────────────────────
44
+ export const NODE_KINDS = [
45
+ 'agent',
46
+ 'script',
47
+ 'humanGate',
48
+ 'choice',
49
+ 'parallel',
50
+ 'join',
51
+ 'wait',
52
+ 'terminal',
53
+ ];
54
+ export const JOIN_MODE_KINDS = ['all', 'any', 'quorum'];
55
+ export const MERGE_REDUCERS = ['overwrite', 'appendByBranchOrder'];
56
+ /** True for a well-formed reserved engine error code. */
57
+ export function isRevoErrorCode(value) {
58
+ return /^revo\.[A-Za-z][A-Za-z0-9]*$/.test(value);
59
+ }
60
+ /** Stable diagnostic codes — one per §12 rule (+ sub-codes), referenced by tests and the adapter. */
61
+ export const DIAGNOSTIC_CODES = [
62
+ // 1 single entry
63
+ 'ENTRY_MISSING',
64
+ 'ENTRY_UNRESOLVED',
65
+ // 2 references resolve
66
+ 'REF_UNRESOLVED',
67
+ // 3 terminals / non-terminals
68
+ 'TERMINAL_BAD_STATUS',
69
+ 'TERMINAL_HAS_EXIT',
70
+ 'NONTERMINAL_NO_EXIT',
71
+ // 4 total routing
72
+ 'ROUTING_NO_DEFAULT',
73
+ 'ROUTING_GUARD_AFTER_DEFAULT',
74
+ 'ROUTING_MULTIPLE_DEFAULT',
75
+ // 5 reachability
76
+ 'UNREACHABLE_NODE',
77
+ // 6 loop-cap presence
78
+ 'LOOP_UNBOUNDED',
79
+ // 7 counter-scope well-formedness
80
+ 'SCOPE_UNDECLARED',
81
+ 'SCOPE_PARENT_UNRESOLVED',
82
+ 'SCOPE_CYCLE',
83
+ 'SCOPE_NOT_STRICT_ANCESTOR',
84
+ 'SCOPE_SPANS_PARALLEL',
85
+ // 8 parallel/join well-formedness
86
+ 'PARALLEL_JOIN_UNRESOLVED',
87
+ 'PARALLEL_JOIN_KIND',
88
+ 'JOIN_MULTIPLE_PARALLELS',
89
+ 'BRANCH_MEMBERSHIP',
90
+ 'BRANCH_CROSS_GOTO',
91
+ 'JOIN_UNREACHABLE_BRANCH',
92
+ 'QUORUM_K_GT_N',
93
+ 'MERGE_MISSING',
94
+ 'MERGE_LASTWRITE_REJECTED',
95
+ // 9 verdict-vocabulary closure
96
+ 'VERDICT_UNDECLARED',
97
+ 'VERDICT_CORE_IN_GUARD',
98
+ 'VERDICT_DOMAIN_SHADOWS_CORE',
99
+ 'VERDICT_DECLARED_UNUSED',
100
+ 'GATE_OUTCOME_NOT_SUBSET',
101
+ // 10 conflict-matrix
102
+ 'CONFLICT_SAME_ACTOR',
103
+ 'CONFLICT_REF_INVALID',
104
+ // 11 id/namespace hygiene
105
+ 'ID_DUPLICATE',
106
+ 'ID_BAD_PATTERN',
107
+ 'REVO_CODE_COLLIDES_VERDICT',
108
+ // 12 capability-ref shape
109
+ 'CAPABILITY_REF_SHAPE',
110
+ // 6 failure policy well-formedness (validated structurally alongside refs)
111
+ 'FAILURE_ROUTE_NO_CATCH',
112
+ 'FAILURE_ESCALATE_NO_TARGET',
113
+ 'CATCH_BAD_CODE',
114
+ // grammar / shape sanity (feeds rules 2/4/9 — a malformed Condition can't be evaluated)
115
+ 'CONDITION_BAD_OP',
116
+ 'CONDITION_BAD_SHAPE',
117
+ // 14 dataflow (produces/consumes, 0016 §7)
118
+ 'CONSUMES_NODE_UNRESOLVED', // consumes.node is not a node id
119
+ 'CONSUMES_PRODUCER_MISSING', // referenced node declares no produces / cannot produce
120
+ 'CONSUMES_NOT_DOMINATED', // producer does not dominate the consumer (error req / warn opt)
121
+ 'CONSUMES_STALE_RISK', // loop re-enterable without the producer + latest, no staleOk (warning)
122
+ 'CONSUMES_CROSS_PARALLEL_UNSAFE', // producer/consumer in unsafely-related parallel branches
123
+ 'CONSUMES_AS_DUP', // two refs on one node share the same `as` key
124
+ 'PRODUCES_NAME_DUP', // two nodes share a produces.name (warning — grammar keys by node)
125
+ // 13 diff classifier
126
+ 'DIFF_UNCLASSIFIED',
127
+ 'DIFF_NODE_DELETED',
128
+ 'DIFF_NODE_KIND_CHANGED',
129
+ 'DIFF_NODE_TOPOLOGY_CHANGED',
130
+ 'DIFF_ID_REUSED_INCOMPATIBLE',
131
+ ];
132
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pipeline-core/types.ts"],"names":[],"mappings":"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"}