@tagma/sdk 0.7.4 → 0.7.6

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 (191) hide show
  1. package/README.md +60 -53
  2. package/dist/completions/file-exists.js +1 -1
  3. package/dist/completions/file-exists.js.map +1 -1
  4. package/dist/completions/output-check.d.ts.map +1 -1
  5. package/dist/completions/output-check.js +17 -4
  6. package/dist/completions/output-check.js.map +1 -1
  7. package/dist/config.d.ts +4 -4
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +2 -2
  10. package/dist/config.js.map +1 -1
  11. package/dist/dataflow.d.ts +3 -0
  12. package/dist/dataflow.d.ts.map +1 -0
  13. package/dist/dataflow.js +2 -0
  14. package/dist/dataflow.js.map +1 -0
  15. package/dist/drivers/opencode.d.ts.map +1 -1
  16. package/dist/drivers/opencode.js +23 -71
  17. package/dist/drivers/opencode.js.map +1 -1
  18. package/dist/middlewares/static-context.d.ts.map +1 -1
  19. package/dist/middlewares/static-context.js +1 -2
  20. package/dist/middlewares/static-context.js.map +1 -1
  21. package/dist/pipeline-runner.d.ts.map +1 -1
  22. package/dist/pipeline-runner.js +2 -2
  23. package/dist/pipeline-runner.js.map +1 -1
  24. package/dist/schema.d.ts.map +1 -1
  25. package/dist/schema.js +3 -4
  26. package/dist/schema.js.map +1 -1
  27. package/dist/triggers/file.d.ts.map +1 -1
  28. package/dist/triggers/file.js +1 -2
  29. package/dist/triggers/file.js.map +1 -1
  30. package/dist/triggers/manual.d.ts.map +1 -1
  31. package/dist/triggers/manual.js +1 -2
  32. package/dist/triggers/manual.js.map +1 -1
  33. package/dist/types.d.ts +1 -2
  34. package/dist/types.d.ts.map +1 -1
  35. package/dist/types.js +1 -12
  36. package/dist/types.js.map +1 -1
  37. package/dist/utils-api.d.ts +1 -1
  38. package/dist/utils-api.d.ts.map +1 -1
  39. package/dist/utils-api.js +1 -1
  40. package/dist/utils-api.js.map +1 -1
  41. package/dist/validate-raw.d.ts +4 -4
  42. package/dist/validate-raw.d.ts.map +1 -1
  43. package/dist/validate-raw.js +45 -52
  44. package/dist/validate-raw.js.map +1 -1
  45. package/package.json +11 -24
  46. package/dist/adapters/stdin-approval.d.ts +0 -2
  47. package/dist/adapters/stdin-approval.d.ts.map +0 -1
  48. package/dist/adapters/stdin-approval.js +0 -2
  49. package/dist/adapters/stdin-approval.js.map +0 -1
  50. package/dist/adapters/websocket-approval.d.ts +0 -2
  51. package/dist/adapters/websocket-approval.d.ts.map +0 -1
  52. package/dist/adapters/websocket-approval.js +0 -2
  53. package/dist/adapters/websocket-approval.js.map +0 -1
  54. package/dist/core/dataflow.d.ts +0 -23
  55. package/dist/core/dataflow.d.ts.map +0 -1
  56. package/dist/core/dataflow.js +0 -99
  57. package/dist/core/dataflow.js.map +0 -1
  58. package/dist/core/log-prune.d.ts +0 -16
  59. package/dist/core/log-prune.d.ts.map +0 -1
  60. package/dist/core/log-prune.js +0 -34
  61. package/dist/core/log-prune.js.map +0 -1
  62. package/dist/core/preflight.d.ts +0 -13
  63. package/dist/core/preflight.d.ts.map +0 -1
  64. package/dist/core/preflight.js +0 -61
  65. package/dist/core/preflight.js.map +0 -1
  66. package/dist/core/run-context.d.ts +0 -55
  67. package/dist/core/run-context.d.ts.map +0 -1
  68. package/dist/core/run-context.js +0 -158
  69. package/dist/core/run-context.js.map +0 -1
  70. package/dist/core/run-state.d.ts +0 -25
  71. package/dist/core/run-state.d.ts.map +0 -1
  72. package/dist/core/run-state.js +0 -93
  73. package/dist/core/run-state.js.map +0 -1
  74. package/dist/core/scheduler.d.ts +0 -13
  75. package/dist/core/scheduler.d.ts.map +0 -1
  76. package/dist/core/scheduler.js +0 -35
  77. package/dist/core/scheduler.js.map +0 -1
  78. package/dist/core/task-executor.d.ts +0 -13
  79. package/dist/core/task-executor.d.ts.map +0 -1
  80. package/dist/core/task-executor.js +0 -610
  81. package/dist/core/task-executor.js.map +0 -1
  82. package/dist/core/trigger-errors.d.ts +0 -9
  83. package/dist/core/trigger-errors.d.ts.map +0 -1
  84. package/dist/core/trigger-errors.js +0 -15
  85. package/dist/core/trigger-errors.js.map +0 -1
  86. package/dist/dag.d.ts +0 -45
  87. package/dist/dag.d.ts.map +0 -1
  88. package/dist/dag.js +0 -177
  89. package/dist/dag.js.map +0 -1
  90. package/dist/hooks.d.ts +0 -73
  91. package/dist/hooks.d.ts.map +0 -1
  92. package/dist/hooks.js +0 -106
  93. package/dist/hooks.js.map +0 -1
  94. package/dist/pipeline-definition.d.ts +0 -3
  95. package/dist/pipeline-definition.d.ts.map +0 -1
  96. package/dist/pipeline-definition.js +0 -4
  97. package/dist/pipeline-definition.js.map +0 -1
  98. package/dist/ports.d.ts +0 -196
  99. package/dist/ports.d.ts.map +0 -1
  100. package/dist/ports.js +0 -688
  101. package/dist/ports.js.map +0 -1
  102. package/dist/prompt-doc.d.ts +0 -70
  103. package/dist/prompt-doc.d.ts.map +0 -1
  104. package/dist/prompt-doc.js +0 -154
  105. package/dist/prompt-doc.js.map +0 -1
  106. package/dist/registry.d.ts +0 -3
  107. package/dist/registry.d.ts.map +0 -1
  108. package/dist/registry.js +0 -2
  109. package/dist/registry.js.map +0 -1
  110. package/dist/task-ref.d.ts +0 -55
  111. package/dist/task-ref.d.ts.map +0 -1
  112. package/dist/task-ref.js +0 -103
  113. package/dist/task-ref.js.map +0 -1
  114. package/dist/utils.d.ts +0 -13
  115. package/dist/utils.d.ts.map +0 -1
  116. package/dist/utils.js +0 -177
  117. package/dist/utils.js.map +0 -1
  118. package/src/adapters/stdin-approval.ts +0 -1
  119. package/src/adapters/websocket-approval.ts +0 -1
  120. package/src/approval.ts +0 -9
  121. package/src/bootstrap.ts +0 -55
  122. package/src/completions/exit-code.ts +0 -34
  123. package/src/completions/file-exists.ts +0 -66
  124. package/src/completions/output-check.test.ts +0 -50
  125. package/src/completions/output-check.ts +0 -92
  126. package/src/config-ops.test.ts +0 -70
  127. package/src/config-ops.ts +0 -328
  128. package/src/config.ts +0 -26
  129. package/src/core/dataflow.test.ts +0 -166
  130. package/src/core/dataflow.ts +0 -161
  131. package/src/core/log-prune.test.ts +0 -58
  132. package/src/core/log-prune.ts +0 -43
  133. package/src/core/preflight.test.ts +0 -49
  134. package/src/core/preflight.ts +0 -89
  135. package/src/core/run-context.test.ts +0 -291
  136. package/src/core/run-context.ts +0 -211
  137. package/src/core/run-state.test.ts +0 -98
  138. package/src/core/run-state.ts +0 -122
  139. package/src/core/scheduler.test.ts +0 -83
  140. package/src/core/scheduler.ts +0 -42
  141. package/src/core/task-executor.ts +0 -752
  142. package/src/core/trigger-errors.ts +0 -15
  143. package/src/dag.test.ts +0 -56
  144. package/src/dag.ts +0 -245
  145. package/src/drivers/opencode.ts +0 -410
  146. package/src/engine-ports-mixed.test.ts +0 -182
  147. package/src/engine-ports.test.ts +0 -210
  148. package/src/engine-task-type.test.ts +0 -56
  149. package/src/engine.ts +0 -32
  150. package/src/hooks.ts +0 -193
  151. package/src/index.ts +0 -31
  152. package/src/logger.ts +0 -2
  153. package/src/middlewares/static-context.ts +0 -49
  154. package/src/package-split.test.ts +0 -15
  155. package/src/pipeline-definition.ts +0 -5
  156. package/src/pipeline-runner.test.ts +0 -144
  157. package/src/pipeline-runner.ts +0 -194
  158. package/src/plugin-registry.test.ts +0 -448
  159. package/src/plugins.ts +0 -21
  160. package/src/ports.test.ts +0 -678
  161. package/src/ports.ts +0 -925
  162. package/src/prompt-doc.test.ts +0 -174
  163. package/src/prompt-doc.ts +0 -169
  164. package/src/registry.ts +0 -7
  165. package/src/runner.test.ts +0 -142
  166. package/src/runner.ts +0 -1
  167. package/src/runtime/adapters/stdin-approval.ts +0 -1
  168. package/src/runtime/adapters/websocket-approval.ts +0 -1
  169. package/src/runtime/bun-process-runner.ts +0 -1
  170. package/src/runtime-adapters.test.ts +0 -10
  171. package/src/runtime.ts +0 -12
  172. package/src/schema-ports.test.ts +0 -172
  173. package/src/schema.test.ts +0 -213
  174. package/src/schema.ts +0 -379
  175. package/src/tagma.test.ts +0 -317
  176. package/src/tagma.ts +0 -67
  177. package/src/task-ref.test.ts +0 -401
  178. package/src/task-ref.ts +0 -121
  179. package/src/triggers/file.test.ts +0 -79
  180. package/src/triggers/file.ts +0 -131
  181. package/src/triggers/manual.ts +0 -86
  182. package/src/types.ts +0 -18
  183. package/src/utils-api.ts +0 -8
  184. package/src/utils.test.ts +0 -28
  185. package/src/utils.ts +0 -203
  186. package/src/validate-raw-plugin-types.test.ts +0 -60
  187. package/src/validate-raw-ports.test.ts +0 -136
  188. package/src/validate-raw.ts +0 -852
  189. package/src/yaml-compiler.test.ts +0 -108
  190. package/src/yaml-compiler.ts +0 -110
  191. package/src/yaml.ts +0 -11
package/dist/ports.d.ts DELETED
@@ -1,196 +0,0 @@
1
- import type { PortDef, PortType, TaskConfig, TaskOutputBindings, TaskPorts } from './types';
2
- /**
3
- * Scan `text` for every `{{inputs.<name>}}` placeholder and return the
4
- * set of referenced input names. Useful at validation time: the editor
5
- * can cross-check that each placeholder has a corresponding declared
6
- * port and flag typos before a run ever starts.
7
- */
8
- export declare function extractInputReferences(text: string): string[];
9
- export interface SubstituteResult {
10
- readonly text: string;
11
- /** Port names that appeared in placeholders but weren't in `inputs`. */
12
- readonly unresolved: readonly string[];
13
- }
14
- /**
15
- * Replace `{{inputs.<name>}}` placeholders in `text` with values from
16
- * `inputs`. Coercion:
17
- * - string → as-is
18
- * - number / boolean → `String(value)`
19
- * - null / undefined → empty string (name is also reported as unresolved)
20
- * - anything else (object, array, json port) → `JSON.stringify(value)`
21
- *
22
- * Values are substituted *verbatim* — quoting is the user's
23
- * responsibility in the authored text. For command lines that interpolate
24
- * user-provided strings, authors should wrap the placeholder in quotes:
25
- *
26
- * weather.sh --city "{{inputs.city}}"
27
- *
28
- * That's a documented contract rather than a silent shell-escape, because
29
- * silent escaping would hide the difference between `--city Shanghai` and
30
- * `--flag $(echo pwned)` — both valid command fragments, one a bug, one a
31
- * feature. Users know which they want; the engine doesn't.
32
- */
33
- export declare function substituteInputs(text: string, inputs: Readonly<Record<string, unknown>>): SubstituteResult;
34
- export type InputResolution = {
35
- readonly kind: 'ready';
36
- readonly inputs: Readonly<Record<string, unknown>>;
37
- /**
38
- * Optional inputs that had no upstream producer and no default;
39
- * they are absent from `inputs` (so placeholders render empty).
40
- * Separate from `missingRequired` so the engine can log softly
41
- * without blocking the task.
42
- */
43
- readonly missingOptional: readonly string[];
44
- } | {
45
- readonly kind: 'blocked';
46
- /** Required port names that could not be satisfied. */
47
- readonly missingRequired: readonly string[];
48
- /** Port names with multiple ambiguous producers. */
49
- readonly ambiguous: readonly {
50
- port: string;
51
- producers: readonly string[];
52
- }[];
53
- /** Port names whose resolved value failed type coercion. */
54
- readonly typeErrors: readonly {
55
- port: string;
56
- reason: string;
57
- }[];
58
- /** Human-readable multi-line description for the engine to log. */
59
- readonly reason: string;
60
- };
61
- /**
62
- * Resolve the input values for `task` from the outputs its direct
63
- * upstreams produced.
64
- *
65
- * `upstreamOutputs` is keyed by fully-qualified task id and maps to the
66
- * outputs that task published (its `TaskResult.outputs`). `dependsOn` is
67
- * the already-qualified dependency list (from `DagNode.dependsOn`). When
68
- * an upstream has no outputs entry (e.g. it didn't declare any or it
69
- * failed), its entry may be missing — we just skip it during matching.
70
- *
71
- * Matching rules:
72
- * - If the input port has `from: "taskId.portName"` → look up that
73
- * specific upstream / port. Missing = unsatisfied.
74
- * - If it has `from: "portName"` (bare) → treat as explicit port name
75
- * but allow any upstream to provide it (useful when the user wants
76
- * to match by name but still be explicit about the intent).
77
- * - If no `from` → scan every upstream's outputs for a key matching
78
- * the input name. Zero hits = unsatisfied; 2+ hits across different
79
- * upstreams = ambiguous.
80
- *
81
- * The function never throws on config errors — every failure mode maps
82
- * to a field of the `blocked` result so the engine can log a unified
83
- * message and mark the task blocked.
84
- */
85
- export declare function resolveTaskInputs(task: TaskConfig, upstreamOutputs: ReadonlyMap<string, Readonly<Record<string, unknown>>>, dependsOn: readonly string[]): InputResolution;
86
- export interface UpstreamBindingData {
87
- readonly outputs?: Readonly<Record<string, unknown>> | null;
88
- readonly stdout?: string;
89
- readonly stderr?: string;
90
- readonly normalizedOutput?: string | null;
91
- readonly exitCode?: number | null;
92
- }
93
- export type BindingInputResolution = {
94
- readonly kind: 'ready';
95
- readonly inputs: Readonly<Record<string, unknown>>;
96
- readonly missingOptional: readonly string[];
97
- } | {
98
- readonly kind: 'blocked';
99
- readonly missingRequired: readonly string[];
100
- readonly ambiguous: readonly {
101
- input: string;
102
- producers: readonly string[];
103
- }[];
104
- readonly typeErrors: readonly {
105
- input: string;
106
- reason: string;
107
- }[];
108
- readonly reason: string;
109
- };
110
- export declare function resolveTaskBindingInputs(task: Pick<TaskConfig, 'inputs'>, upstreamData: ReadonlyMap<string, UpstreamBindingData>, dependsOn: readonly string[]): BindingInputResolution;
111
- export interface ExtractResult {
112
- /** Coerced values keyed by port name. Ports that failed to resolve are absent. */
113
- readonly outputs: Readonly<Record<string, unknown>>;
114
- /**
115
- * Human-readable diagnostic describing what went wrong, if anything.
116
- * `null` when every declared output was resolved cleanly. The engine
117
- * appends this to stderr so the pipeline log explains why downstream
118
- * inputs are missing.
119
- */
120
- readonly diagnostic: string | null;
121
- }
122
- /**
123
- * Extract declared outputs from a terminated task's output streams.
124
- *
125
- * Strategy (v1 — intentionally dumb but predictable):
126
- * 1. Prefer `normalizedOutput` when provided (AI drivers populate this
127
- * with the canonical assistant message; it's much cleaner than raw
128
- * stdout, which often has JSONL event dumps). Fall back to stdout
129
- * otherwise.
130
- * 2. Scan from the end for the first non-empty line. If it parses as a
131
- * JSON object, use that as the source record.
132
- * 3. If (2) fails, try parsing the entire source as JSON (supports
133
- * commands that pretty-print with line breaks).
134
- * 4. For each declared output port, read the matching key and coerce
135
- * to the declared type. Coercion failures produce a diagnostic and
136
- * the port is absent from `outputs` (treated as missing downstream).
137
- *
138
- * When no declared outputs are present this returns an empty `outputs`
139
- * map and null diagnostic — the engine interprets that as "task has no
140
- * port contract".
141
- */
142
- export declare function extractTaskOutputs(ports: TaskPorts | undefined, stdout: string, normalizedOutput: string | null): ExtractResult;
143
- export declare function extractTaskBindingOutputs(bindings: TaskOutputBindings | undefined, stdout: string, stderr: string, normalizedOutput: string | null): ExtractResult;
144
- export interface PromptUpstreamNeighbor {
145
- readonly taskId: string;
146
- /**
147
- * Declared outputs of the upstream task. `undefined` signals that the
148
- * neighbor is a Prompt Task (no structured contribution) or otherwise
149
- * has no outputs to offer. The inference logic treats `undefined` and
150
- * an empty array the same way — neither contributes ports.
151
- */
152
- readonly outputs: readonly PortDef[] | undefined;
153
- }
154
- export interface PromptDownstreamNeighbor {
155
- readonly taskId: string;
156
- /**
157
- * Declared inputs of the downstream task. `undefined` signals a
158
- * Prompt-Task neighbor or a Command Task without declared inputs.
159
- * Either way it contributes no ports to the inferred output contract.
160
- */
161
- readonly inputs: readonly PortDef[] | undefined;
162
- }
163
- export interface PromptPortConflict {
164
- readonly portName: string;
165
- readonly producers: readonly {
166
- readonly taskId: string;
167
- readonly type: PortType;
168
- }[];
169
- /** Pre-formatted human-readable reason for logs / stderr. */
170
- readonly reason: string;
171
- }
172
- export interface PromptPortInference {
173
- /**
174
- * Synthetic `TaskPorts` the engine feeds into the resolve / substitute /
175
- * render / extract helpers, exactly as if the Prompt had declared these
176
- * ports itself. Empty arrays are preserved as absent so downstream code
177
- * paths treat "no ports" uniformly (see engine.ts's existing
178
- * `task.ports?.outputs && task.ports.outputs.length > 0` guard).
179
- */
180
- readonly ports: TaskPorts;
181
- readonly inputConflicts: readonly PromptPortConflict[];
182
- readonly outputConflicts: readonly PromptPortConflict[];
183
- }
184
- /**
185
- * Derive the effective `TaskPorts` for a Prompt Task from its direct
186
- * neighbors. See the module-level "Prompt-task port inference" comment
187
- * for the full contract.
188
- *
189
- * Pure function — no side effects, safe to call from the CLI, editor
190
- * preview, and engine hot path alike.
191
- */
192
- export declare function inferPromptPorts(input: {
193
- readonly upstreams: readonly PromptUpstreamNeighbor[];
194
- readonly downstreams: readonly PromptDownstreamNeighbor[];
195
- }): PromptPortInference;
196
- //# sourceMappingURL=ports.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":"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"}