@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
@@ -1,108 +0,0 @@
1
- import { describe, expect, test } from 'bun:test';
2
- import { compileYamlContent } from './yaml-compiler';
3
-
4
- describe('compileYamlContent', () => {
5
- test('reports YAML syntax failures as parse errors', () => {
6
- const result = compileYamlContent('pipeline:\n name: [');
7
-
8
- expect(result.parseOk).toBe(false);
9
- expect(result.success).toBe(false);
10
- expect(result.validation.errors).toEqual([]);
11
- expect(result.summary).toMatch(/^YAML parse error:/);
12
- });
13
-
14
- test('reports missing top-level pipeline as a validation error', () => {
15
- const result = compileYamlContent('name: Missing Pipeline\n');
16
-
17
- expect(result.parseOk).toBe(true);
18
- expect(result.success).toBe(false);
19
- expect(result.validation.errors).toEqual([
20
- { path: 'pipeline', message: 'Top-level "pipeline" key is required' },
21
- ]);
22
- expect(result.summary).toBe('Invalid: 1 error(s), 0 warning(s)');
23
- });
24
-
25
- test('reports non-array tracks as a validation error, not a parse failure', () => {
26
- const result = compileYamlContent(`
27
- pipeline:
28
- name: Bad
29
- tracks:
30
- id: not-an-array
31
- `);
32
-
33
- expect(result.parseOk).toBe(true);
34
- expect(result.success).toBe(false);
35
- expect(result.validation.errors).toEqual([
36
- { path: 'tracks', message: 'pipeline.tracks must be an array' },
37
- ]);
38
- });
39
-
40
- test('reports non-array task lists as validation errors, not validation crashes', () => {
41
- const result = compileYamlContent(`
42
- pipeline:
43
- name: Bad Tasks
44
- tracks:
45
- - id: t
46
- name: T
47
- tasks:
48
- id: not-an-array
49
- `);
50
-
51
- expect(result.parseOk).toBe(true);
52
- expect(result.success).toBe(false);
53
- expect(result.validation.errors).toEqual([
54
- { path: 'tracks[0].tasks', message: 'Track "t": tasks must be an array' },
55
- ]);
56
- expect(result.summary).not.toMatch(/Validation crashed/);
57
- });
58
-
59
- test('routes schema errors through validation when YAML syntax is valid', () => {
60
- const result = compileYamlContent(`
61
- pipeline:
62
- name: Missing Track Name
63
- tracks:
64
- - id: main
65
- tasks:
66
- - id: task
67
- prompt: hello
68
- `);
69
-
70
- expect(result.parseOk).toBe(true);
71
- expect(result.success).toBe(false);
72
- expect(result.validation.errors).toContainEqual({
73
- path: 'tracks[0].name',
74
- message: 'Track name is required',
75
- });
76
- });
77
-
78
- test('validates pipeline, track, and task permissions shape', () => {
79
- const result = compileYamlContent(`
80
- pipeline:
81
- name: Bad Permissions
82
- permissions: { read: true, write: "yes", execute: false }
83
- tracks:
84
- - id: main
85
- name: Main
86
- permissions: { read: true, execute: false }
87
- tasks:
88
- - id: task
89
- prompt: hello
90
- permissions: nope
91
- `);
92
-
93
- expect(result.parseOk).toBe(true);
94
- expect(result.success).toBe(false);
95
- expect(result.validation.errors).toContainEqual({
96
- path: 'permissions.write',
97
- message: 'permissions.write must be a boolean',
98
- });
99
- expect(result.validation.errors).toContainEqual({
100
- path: 'tracks[0].permissions.write',
101
- message: 'permissions.write is required',
102
- });
103
- expect(result.validation.errors).toContainEqual({
104
- path: 'tracks[0].tasks[0].permissions',
105
- message: 'permissions must be an object with read/write/execute booleans',
106
- });
107
- });
108
- });
@@ -1,110 +0,0 @@
1
- import yaml from 'js-yaml';
2
- import { validateRaw } from './validate-raw';
3
- import type { ValidationError, KnownPluginTypes } from './validate-raw';
4
- import type { RawPipelineConfig } from './types';
5
-
6
- export interface YamlCompileResult {
7
- readonly timestamp: string;
8
- readonly sourceName: string;
9
- readonly success: boolean;
10
- readonly parseOk: boolean;
11
- readonly validation: {
12
- readonly errors: ReadonlyArray<Pick<ValidationError, 'path' | 'message'>>;
13
- readonly warnings: ReadonlyArray<Pick<ValidationError, 'path' | 'message'>>;
14
- };
15
- readonly summary: string;
16
- }
17
-
18
- export interface CompileYamlOptions {
19
- readonly sourceName?: string;
20
- readonly knownTypes?: KnownPluginTypes;
21
- }
22
-
23
- export function compileYamlContent(
24
- content: string,
25
- opts: CompileYamlOptions = {},
26
- ): YamlCompileResult {
27
- const timestamp = new Date().toISOString();
28
- const sourceName = opts.sourceName ?? 'untitled';
29
-
30
- let doc: unknown;
31
- try {
32
- doc = yaml.load(content);
33
- } catch (err) {
34
- return {
35
- timestamp,
36
- sourceName,
37
- success: false,
38
- parseOk: false,
39
- validation: { errors: [], warnings: [] },
40
- summary: `YAML parse error: ${errorMessage(err)}`,
41
- };
42
- }
43
-
44
- const envelopeErrors = validateEnvelope(doc);
45
- if (envelopeErrors.length > 0) {
46
- return buildValidationResult(timestamp, sourceName, envelopeErrors);
47
- }
48
- const config = (doc as { pipeline: RawPipelineConfig }).pipeline;
49
-
50
- let errors: ValidationError[];
51
- try {
52
- errors = validateRaw(config, opts.knownTypes);
53
- } catch (err) {
54
- return {
55
- timestamp,
56
- sourceName,
57
- success: false,
58
- parseOk: true,
59
- validation: { errors: [], warnings: [] },
60
- summary: `Validation crashed: ${errorMessage(err)}`,
61
- };
62
- }
63
-
64
- return buildValidationResult(timestamp, sourceName, errors);
65
- }
66
-
67
- function validateEnvelope(doc: unknown): ValidationError[] {
68
- if (!doc || typeof doc !== 'object' || Array.isArray(doc) || !('pipeline' in doc)) {
69
- return [{ path: 'pipeline', message: 'Top-level "pipeline" key is required' }];
70
- }
71
- const pipeline = (doc as Record<string, unknown>).pipeline;
72
- if (!pipeline || typeof pipeline !== 'object' || Array.isArray(pipeline)) {
73
- return [{ path: 'pipeline', message: 'pipeline must be an object' }];
74
- }
75
- return [];
76
- }
77
-
78
- function buildValidationResult(
79
- timestamp: string,
80
- sourceName: string,
81
- diagnostics: readonly ValidationError[],
82
- ): YamlCompileResult {
83
- const validationErrors = diagnostics.filter(
84
- (e) => e.severity === 'error' || e.severity == null,
85
- );
86
- const validationWarnings = diagnostics.filter((e) => e.severity === 'warning');
87
-
88
- return {
89
- timestamp,
90
- sourceName,
91
- success: validationErrors.length === 0,
92
- parseOk: true,
93
- validation: {
94
- errors: validationErrors.map((e) => ({ path: e.path, message: e.message })),
95
- warnings: validationWarnings.map((e) => ({ path: e.path, message: e.message })),
96
- },
97
- summary:
98
- validationErrors.length === 0
99
- ? validationWarnings.length === 0
100
- ? 'Valid pipeline configuration'
101
- : `Valid with ${validationWarnings.length} warning(s)`
102
- : `Invalid: ${validationErrors.length} error(s), ${validationWarnings.length} warning(s)`,
103
- };
104
- }
105
-
106
- function errorMessage(err: unknown): string {
107
- if (err instanceof Error && err.message) return err.message;
108
- if (typeof err === 'string') return err;
109
- return 'Unknown error';
110
- }
package/src/yaml.ts DELETED
@@ -1,11 +0,0 @@
1
- export {
2
- parseYaml,
3
- resolveConfig,
4
- loadPipeline,
5
- serializePipeline,
6
- deresolvePipeline,
7
- validateConfig,
8
- } from './schema';
9
- export { compileYamlContent } from './yaml-compiler';
10
- export type { YamlCompileResult, CompileYamlOptions } from './yaml-compiler';
11
-