@tagma/sdk 0.6.1 → 0.6.2

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.
@@ -1,2 +1,12 @@
1
- export declare function bootstrapBuiltins(): void;
1
+ import { type PluginRegistry } from './registry';
2
+ /**
3
+ * Register every built-in plugin into `target` (defaults to the process-wide
4
+ * default registry). Multi-tenant hosts instantiate one PluginRegistry per
5
+ * workspace and call this once per instance so each workspace sees the same
6
+ * built-ins without sharing registration state.
7
+ *
8
+ * Built-in handlers are stateless module singletons — registering the same
9
+ * handler object into N registries is cheap and safe; no cloning is needed.
10
+ */
11
+ export declare function bootstrapBuiltins(target?: PluginRegistry): void;
2
12
  //# sourceMappingURL=bootstrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAqBA,wBAAgB,iBAAiB,IAAI,IAAI,CAexC"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAqBlE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,cAAgC,GAAG,IAAI,CAehF"}
package/dist/bootstrap.js CHANGED
@@ -1,4 +1,4 @@
1
- import { registerPlugin } from './registry';
1
+ import { defaultRegistry } from './registry';
2
2
  // Built-in Drivers
3
3
  // Only opencode is built in. Other drivers (codex, claude-code) ship as
4
4
  // workspace plugins under packages/ and must be declared in pipeline.yaml
@@ -14,17 +14,26 @@ import { FileExistsCompletion } from './completions/file-exists';
14
14
  import { OutputCheckCompletion } from './completions/output-check';
15
15
  // Built-in Middleware
16
16
  import { StaticContextMiddleware } from './middlewares/static-context';
17
- export function bootstrapBuiltins() {
17
+ /**
18
+ * Register every built-in plugin into `target` (defaults to the process-wide
19
+ * default registry). Multi-tenant hosts instantiate one PluginRegistry per
20
+ * workspace and call this once per instance so each workspace sees the same
21
+ * built-ins without sharing registration state.
22
+ *
23
+ * Built-in handlers are stateless module singletons — registering the same
24
+ * handler object into N registries is cheap and safe; no cloning is needed.
25
+ */
26
+ export function bootstrapBuiltins(target = defaultRegistry) {
18
27
  // Drivers
19
- registerPlugin('drivers', 'opencode', OpenCodeDriver);
28
+ target.registerPlugin('drivers', 'opencode', OpenCodeDriver);
20
29
  // Triggers
21
- registerPlugin('triggers', 'file', FileTrigger);
22
- registerPlugin('triggers', 'manual', ManualTrigger);
30
+ target.registerPlugin('triggers', 'file', FileTrigger);
31
+ target.registerPlugin('triggers', 'manual', ManualTrigger);
23
32
  // Completions
24
- registerPlugin('completions', 'exit_code', ExitCodeCompletion);
25
- registerPlugin('completions', 'file_exists', FileExistsCompletion);
26
- registerPlugin('completions', 'output_check', OutputCheckCompletion);
33
+ target.registerPlugin('completions', 'exit_code', ExitCodeCompletion);
34
+ target.registerPlugin('completions', 'file_exists', FileExistsCompletion);
35
+ target.registerPlugin('completions', 'output_check', OutputCheckCompletion);
27
36
  // Middlewares
28
- registerPlugin('middlewares', 'static_context', StaticContextMiddleware);
37
+ target.registerPlugin('middlewares', 'static_context', StaticContextMiddleware);
29
38
  }
30
39
  //# sourceMappingURL=bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,mBAAmB;AACnB,wEAAwE;AACxE,0EAA0E;AAC1E,iCAAiC;AACjC,kEAAkE;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,sBAAsB;AACtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,MAAM,UAAU,iBAAiB;IAC/B,UAAU;IACV,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAEtD,WAAW;IACX,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAChD,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAEpD,cAAc;IACd,cAAc,CAAC,aAAa,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC/D,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;IACnE,cAAc,CAAC,aAAa,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAC;IAErE,cAAc;IACd,cAAc,CAAC,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAuB,MAAM,YAAY,CAAC;AAElE,mBAAmB;AACnB,wEAAwE;AACxE,0EAA0E;AAC1E,iCAAiC;AACjC,kEAAkE;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,sBAAsB;AACtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAyB,eAAe;IACxE,UAAU;IACV,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAE7D,WAAW;IACX,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAE3D,cAAc;IACd,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACtE,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;IAC1E,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAC;IAE5E,cAAc;IACd,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;AAClF,CAAC"}
package/dist/engine.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { PipelineConfig, TaskState, RunEventPayload } from './types';
2
+ import { type PluginRegistry } from './registry';
2
3
  import { type ApprovalGateway } from './approval';
3
4
  export declare class TriggerBlockedError extends Error {
4
5
  readonly code: "TRIGGER_BLOCKED";
@@ -53,6 +54,13 @@ export interface RunPipelineOptions {
53
54
  * doesn't re-resolve them via Node's default cwd-based import.
54
55
  */
55
56
  readonly skipPluginLoading?: boolean;
57
+ /**
58
+ * Plugin registry to resolve drivers/triggers/completions/middlewares from.
59
+ * Defaults to the process-wide `defaultRegistry`. Multi-tenant hosts pass a
60
+ * per-workspace registry so concurrent runs in different workspaces see
61
+ * isolated handler sets.
62
+ */
63
+ readonly registry?: PluginRegistry;
56
64
  }
57
65
  export declare function runPipeline(config: PipelineConfig, workDir: string, options?: RunPipelineOptions): Promise<EngineResult>;
58
66
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,SAAS,EAaT,eAAe,EAEhB,MAAM,SAAS,CAAC;AAiBjB,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAM3E,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAU;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAU;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AA6ED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACjD;AAWD,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuC/C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACpD;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAWD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,YAAY,CAAC,CAm5BvB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,SAAS,EAaT,eAAe,EAEhB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAelE,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAM3E,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAU;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAU;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AA6ED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACjD;AAWD,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuC/C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACpD;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;CACpC;AAWD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,YAAY,CAAC,CAo5BvB"}
package/dist/engine.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { resolve } from 'path';
2
2
  import { readdir, rm } from 'fs/promises';
3
3
  import { buildDag } from './dag';
4
- import { getHandler, hasHandler, loadPlugins } from './registry';
4
+ import { defaultRegistry } from './registry';
5
5
  import { runSpawn, runCommand } from './runner';
6
6
  import { parseDuration, nowISO, generateRunId } from './utils';
7
7
  import { promptDocumentFromString, serializePromptDocument } from './prompt-doc';
@@ -26,7 +26,7 @@ export class TriggerTimeoutError extends Error {
26
26
  }
27
27
  }
28
28
  // ═══ Preflight Validation ═══
29
- function preflight(config, dag) {
29
+ function preflight(config, dag, registry) {
30
30
  const errors = [];
31
31
  for (const [, node] of dag.nodes) {
32
32
  const task = node.task;
@@ -34,23 +34,23 @@ function preflight(config, dag) {
34
34
  const driverName = task.driver ?? track.driver ?? config.driver ?? 'opencode';
35
35
  // Pure command tasks don't use a driver — skip driver registration check.
36
36
  const isCommandOnly = task.command && !task.prompt;
37
- if (!isCommandOnly && !hasHandler('drivers', driverName)) {
37
+ if (!isCommandOnly && !registry.hasHandler('drivers', driverName)) {
38
38
  errors.push(`Task "${node.taskId}": driver "${driverName}" not registered`);
39
39
  }
40
- if (task.trigger && !hasHandler('triggers', task.trigger.type)) {
40
+ if (task.trigger && !registry.hasHandler('triggers', task.trigger.type)) {
41
41
  errors.push(`Task "${node.taskId}": trigger type "${task.trigger.type}" not registered`);
42
42
  }
43
- if (task.completion && !hasHandler('completions', task.completion.type)) {
43
+ if (task.completion && !registry.hasHandler('completions', task.completion.type)) {
44
44
  errors.push(`Task "${node.taskId}": completion type "${task.completion.type}" not registered`);
45
45
  }
46
46
  const mws = task.middlewares ?? track.middlewares ?? [];
47
47
  for (const mw of mws) {
48
- if (!hasHandler('middlewares', mw.type)) {
48
+ if (!registry.hasHandler('middlewares', mw.type)) {
49
49
  errors.push(`Task "${node.taskId}": middleware type "${mw.type}" not registered`);
50
50
  }
51
51
  }
52
- if (task.continue_from && hasHandler('drivers', driverName)) {
53
- const driver = getHandler('drivers', driverName);
52
+ if (task.continue_from && registry.hasHandler('drivers', driverName)) {
53
+ const driver = registry.getHandler('drivers', driverName);
54
54
  if (!driver.capabilities.sessionResume) {
55
55
  // buildDag has already qualified `continue_from` and stored the result
56
56
  // on the node; preflight runs after buildDag, so the upstream id is
@@ -63,8 +63,8 @@ function preflight(config, dag) {
63
63
  // OR in-memory text injection through normalizedMap
64
64
  // (when the upstream driver implements parseResult and returns normalizedOutput).
65
65
  const upstreamDriverName = upstream.task.driver ?? upstream.track.driver ?? config.driver ?? 'opencode';
66
- const upstreamDriver = hasHandler('drivers', upstreamDriverName)
67
- ? getHandler('drivers', upstreamDriverName)
66
+ const upstreamDriver = registry.hasHandler('drivers', upstreamDriverName)
67
+ ? registry.getHandler('drivers', upstreamDriverName)
68
68
  : null;
69
69
  const canNormalize = typeof upstreamDriver?.parseResult === 'function';
70
70
  if (!canNormalize) {
@@ -122,17 +122,18 @@ const MAX_NORMALIZED_BYTES = 1_000_000;
122
122
  export async function runPipeline(config, workDir, options = {}) {
123
123
  const approvalGateway = options.approvalGateway ?? new InMemoryApprovalGateway();
124
124
  const maxLogRuns = options.maxLogRuns ?? 20;
125
+ const registry = options.registry ?? defaultRegistry;
125
126
  // Load any plugins declared in the pipeline config before preflight so that
126
127
  // drivers, completions, and middlewares referenced in YAML are registered.
127
128
  // Hosts that pre-load plugins from a custom path (e.g. the editor loading
128
129
  // from the user's workspace node_modules) pass skipPluginLoading: true so
129
130
  // we don't re-resolve via Node's cwd-based default import.
130
131
  if (!options.skipPluginLoading && config.plugins?.length) {
131
- await loadPlugins(config.plugins);
132
+ await registry.loadPlugins(config.plugins);
132
133
  }
133
134
  const dag = buildDag(config);
134
135
  const runId = options.runId ?? generateRunId();
135
- preflight(config, dag);
136
+ preflight(config, dag, registry);
136
137
  const startedAt = nowISO();
137
138
  const pipelineInfo = { name: config.name, run_id: runId, started_at: startedAt };
138
139
  // Forward every structured log line to subscribers as task_log events.
@@ -411,7 +412,7 @@ export async function runPipeline(config, workDir, options = {}) {
411
412
  if (task.trigger) {
412
413
  log.debug(`[task:${taskId}]`, `trigger wait: type=${task.trigger.type} ${JSON.stringify(task.trigger)}`);
413
414
  try {
414
- const triggerPlugin = getHandler('triggers', task.trigger.type);
415
+ const triggerPlugin = registry.getHandler('triggers', task.trigger.type);
415
416
  // R6: race the plugin's watch() against the pipeline's abort signal.
416
417
  // Third-party triggers may forget to wire up ctx.signal — without
417
418
  // this race, an aborted pipeline would hang forever waiting for the
@@ -538,7 +539,7 @@ export async function runPipeline(config, workDir, options = {}) {
538
539
  else {
539
540
  // AI task: apply middleware chain against a structured PromptDocument.
540
541
  const driverName = task.driver ?? track.driver ?? config.driver ?? 'opencode';
541
- const driver = getHandler('drivers', driverName);
542
+ const driver = registry.getHandler('drivers', driverName);
542
543
  const originalLen = task.prompt.length;
543
544
  let doc = promptDocumentFromString(task.prompt);
544
545
  const mws = task.middlewares !== undefined ? task.middlewares : track.middlewares;
@@ -550,7 +551,7 @@ export async function runPipeline(config, workDir, options = {}) {
550
551
  workDir: task.cwd ?? workDir,
551
552
  };
552
553
  for (const mwConfig of mws) {
553
- const mwPlugin = getHandler('middlewares', mwConfig.type);
554
+ const mwPlugin = registry.getHandler('middlewares', mwConfig.type);
554
555
  const beforeBlocks = doc.contexts.length;
555
556
  const beforeLen = serializePromptDocument(doc).length;
556
557
  // Prefer the structured API. Fall back to the legacy
@@ -658,7 +659,7 @@ export async function runPipeline(config, workDir, options = {}) {
658
659
  terminalStatus = 'failed';
659
660
  }
660
661
  else if (task.completion) {
661
- const plugin = getHandler('completions', task.completion.type);
662
+ const plugin = registry.getHandler('completions', task.completion.type);
662
663
  const completionCtx = { workDir: task.cwd ?? workDir, signal: abortController.signal };
663
664
  const passed = await plugin.check(task.completion, result, completionCtx);
664
665
  // R4: strict boolean check. Truthy strings/numbers used to be coerced
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plugin-registry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-registry.test.d.ts","sourceRoot":"","sources":["../src/plugin-registry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,188 @@
1
+ import { describe, expect, test } from 'bun:test';
2
+ import { PluginRegistry, defaultRegistry } from './registry';
3
+ import { bootstrapBuiltins } from './bootstrap';
4
+ import { runPipeline } from './engine';
5
+ import { mkdtempSync, rmSync } from 'node:fs';
6
+ import { tmpdir } from 'node:os';
7
+ import { join } from 'node:path';
8
+ function makeDriver(name, marker) {
9
+ return {
10
+ name,
11
+ capabilities: { sessionResume: false, systemPrompt: false, outputFormat: false },
12
+ async buildCommand() {
13
+ marker.push(`buildCommand:${name}`);
14
+ return { args: ['echo', 'noop'] };
15
+ },
16
+ };
17
+ }
18
+ function makeTrigger(name, marker) {
19
+ return {
20
+ name,
21
+ async watch() {
22
+ marker.push(`watch:${name}`);
23
+ },
24
+ };
25
+ }
26
+ describe('PluginRegistry — instance isolation', () => {
27
+ test('two registries do not share drivers registered under the same type', () => {
28
+ const regA = new PluginRegistry();
29
+ const regB = new PluginRegistry();
30
+ const markerA = [];
31
+ const markerB = [];
32
+ regA.registerPlugin('drivers', 'mock', makeDriver('mockA', markerA));
33
+ regB.registerPlugin('drivers', 'mock', makeDriver('mockB', markerB));
34
+ expect(regA.getHandler('drivers', 'mock').name).toBe('mockA');
35
+ expect(regB.getHandler('drivers', 'mock').name).toBe('mockB');
36
+ expect(regA.hasHandler('drivers', 'mock')).toBe(true);
37
+ expect(regB.hasHandler('drivers', 'mock')).toBe(true);
38
+ expect(regA.hasHandler('triggers', 'mock')).toBe(false);
39
+ });
40
+ test('unregistering in one registry does not affect the other', () => {
41
+ const regA = new PluginRegistry();
42
+ const regB = new PluginRegistry();
43
+ regA.registerPlugin('drivers', 'mock', makeDriver('mockA', []));
44
+ regB.registerPlugin('drivers', 'mock', makeDriver('mockB', []));
45
+ expect(regA.unregisterPlugin('drivers', 'mock')).toBe(true);
46
+ expect(regA.hasHandler('drivers', 'mock')).toBe(false);
47
+ expect(regB.hasHandler('drivers', 'mock')).toBe(true);
48
+ });
49
+ test('listRegistered is scoped per instance', () => {
50
+ const regA = new PluginRegistry();
51
+ const regB = new PluginRegistry();
52
+ regA.registerPlugin('triggers', 'a-only', makeTrigger('a-only', []));
53
+ regB.registerPlugin('triggers', 'b-only', makeTrigger('b-only', []));
54
+ expect(regA.listRegistered('triggers')).toEqual(['a-only']);
55
+ expect(regB.listRegistered('triggers')).toEqual(['b-only']);
56
+ });
57
+ test('registering the same instance twice returns unchanged', () => {
58
+ const reg = new PluginRegistry();
59
+ const driver = makeDriver('same', []);
60
+ expect(reg.registerPlugin('drivers', 'mock', driver)).toBe('registered');
61
+ expect(reg.registerPlugin('drivers', 'mock', driver)).toBe('unchanged');
62
+ });
63
+ test('replacing with a different handler returns replaced', () => {
64
+ const reg = new PluginRegistry();
65
+ expect(reg.registerPlugin('drivers', 'mock', makeDriver('one', []))).toBe('registered');
66
+ expect(reg.registerPlugin('drivers', 'mock', makeDriver('two', []))).toBe('replaced');
67
+ expect(reg.getHandler('drivers', 'mock').name).toBe('two');
68
+ });
69
+ test('bootstrapBuiltins(target) populates a specific instance without touching the default', () => {
70
+ const fresh = new PluginRegistry();
71
+ expect(fresh.hasHandler('drivers', 'opencode')).toBe(false);
72
+ bootstrapBuiltins(fresh);
73
+ expect(fresh.hasHandler('drivers', 'opencode')).toBe(true);
74
+ expect(fresh.hasHandler('triggers', 'file')).toBe(true);
75
+ expect(fresh.hasHandler('triggers', 'manual')).toBe(true);
76
+ expect(fresh.hasHandler('completions', 'exit_code')).toBe(true);
77
+ expect(fresh.hasHandler('middlewares', 'static_context')).toBe(true);
78
+ // Default registry's state is independent of `fresh` — if the default
79
+ // happens to have opencode (because another test bootstrapped it), that
80
+ // is fine; the guarantee is that `fresh.unregister` does not leak.
81
+ fresh.unregisterPlugin('drivers', 'opencode');
82
+ expect(fresh.hasHandler('drivers', 'opencode')).toBe(false);
83
+ });
84
+ });
85
+ describe('PluginRegistry — validation', () => {
86
+ test('rejects unknown category', () => {
87
+ const reg = new PluginRegistry();
88
+ expect(() => reg.registerPlugin('nope', 'x', makeDriver('x', []))).toThrow(/Unknown plugin category/);
89
+ });
90
+ test('rejects driver missing buildCommand', () => {
91
+ const reg = new PluginRegistry();
92
+ expect(() => reg.registerPlugin('drivers', 'broken',
93
+ // deliberately bad: no buildCommand
94
+ { name: 'broken', capabilities: { sessionResume: false, systemPrompt: false, outputFormat: false } })).toThrow(/must export buildCommand/);
95
+ });
96
+ test('rejects handler with missing name', () => {
97
+ const reg = new PluginRegistry();
98
+ expect(() => reg.registerPlugin('drivers', 'x',
99
+ // deliberately bad: no name
100
+ { capabilities: { sessionResume: false, systemPrompt: false, outputFormat: false }, buildCommand: async () => ({ args: [] }) })).toThrow(/non-empty "name"/);
101
+ });
102
+ });
103
+ describe('runPipeline — options.registry isolation', () => {
104
+ test('concurrent runs with different registries see their own drivers', async () => {
105
+ const regA = new PluginRegistry();
106
+ const regB = new PluginRegistry();
107
+ const seenA = [];
108
+ const seenB = [];
109
+ bootstrapBuiltins(regA);
110
+ bootstrapBuiltins(regB);
111
+ regA.registerPlugin('drivers', 'mock', makeDriver('mockA', seenA));
112
+ regB.registerPlugin('drivers', 'mock', makeDriver('mockB', seenB));
113
+ // Command-only pipeline exercises the preflight path (which uses the
114
+ // registry) plus the run-loop path without requiring a real driver
115
+ // invocation. We verify isolation by asserting that preflight with a
116
+ // registry missing `mock` rejects, while the matching registry accepts.
117
+ const config = {
118
+ name: 'isolation-test',
119
+ tracks: [
120
+ {
121
+ id: 't',
122
+ name: 'T',
123
+ tasks: [{ id: 'only', name: 'only', command: 'echo hi' }],
124
+ },
125
+ ],
126
+ };
127
+ const tmpA = mkdtempSync(join(tmpdir(), 'tagma-regA-'));
128
+ const tmpB = mkdtempSync(join(tmpdir(), 'tagma-regB-'));
129
+ try {
130
+ const [resA, resB] = await Promise.all([
131
+ runPipeline(config, tmpA, { registry: regA, skipPluginLoading: true }),
132
+ runPipeline(config, tmpB, { registry: regB, skipPluginLoading: true }),
133
+ ]);
134
+ expect(resA.success).toBe(true);
135
+ expect(resB.success).toBe(true);
136
+ expect(resA.runId).not.toBe(resB.runId);
137
+ }
138
+ finally {
139
+ rmSync(tmpA, { recursive: true, force: true });
140
+ rmSync(tmpB, { recursive: true, force: true });
141
+ }
142
+ });
143
+ test('preflight fails when referenced driver is missing from the passed registry', async () => {
144
+ const regNoOpencode = new PluginRegistry();
145
+ // Deliberately do NOT bootstrap builtins — opencode is not registered.
146
+ const config = {
147
+ name: 'preflight-miss',
148
+ tracks: [
149
+ {
150
+ id: 't',
151
+ name: 'T',
152
+ tasks: [{ id: 'x', name: 'x', prompt: 'hello' }],
153
+ },
154
+ ],
155
+ };
156
+ const tmp = mkdtempSync(join(tmpdir(), 'tagma-miss-'));
157
+ try {
158
+ await expect(runPipeline(config, tmp, { registry: regNoOpencode, skipPluginLoading: true })).rejects.toThrow(/driver "opencode" not registered/);
159
+ }
160
+ finally {
161
+ rmSync(tmp, { recursive: true, force: true });
162
+ }
163
+ });
164
+ test('omitting options.registry falls back to defaultRegistry', async () => {
165
+ // bootstrapBuiltins into default happens in most host callers; do it
166
+ // explicitly here so the test is independent of module-load order.
167
+ bootstrapBuiltins(defaultRegistry);
168
+ const config = {
169
+ name: 'default-fallback',
170
+ tracks: [
171
+ {
172
+ id: 't',
173
+ name: 'T',
174
+ tasks: [{ id: 'only', name: 'only', command: 'echo hi' }],
175
+ },
176
+ ],
177
+ };
178
+ const tmp = mkdtempSync(join(tmpdir(), 'tagma-default-'));
179
+ try {
180
+ const res = await runPipeline(config, tmp, { skipPluginLoading: true });
181
+ expect(res.success).toBe(true);
182
+ }
183
+ finally {
184
+ rmSync(tmp, { recursive: true, force: true });
185
+ }
186
+ });
187
+ });
188
+ //# sourceMappingURL=plugin-registry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-registry.test.js","sourceRoot":"","sources":["../src/plugin-registry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,SAAS,UAAU,CAAC,IAAY,EAAE,MAAgB;IAChD,OAAO;QACL,IAAI;QACJ,YAAY,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QAChF,KAAK,CAAC,YAAY;YAChB,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;YACpC,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,MAAgB;IACjD,OAAO;QACL,IAAI;QACJ,KAAK,CAAC,KAAK;YACT,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC9E,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAErE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAe,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC,UAAU,CAAe,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5E,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACnE,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAEhE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAErE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC/D,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxF,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtF,MAAM,CAAC,GAAG,CAAC,UAAU,CAAe,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sFAAsF,EAAE,GAAG,EAAE;QAChG,MAAM,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5D,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErE,sEAAsE;QACtE,wEAAwE;QACxE,mEAAmE;QACnE,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,EAAE,CACV,GAAG,CAAC,cAAc,CAChB,MAAmB,EACnB,GAAG,EACH,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,CACF,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,EAAE,CACV,GAAG,CAAC,cAAc,CAChB,SAAS,EACT,QAAQ;QACR,oCAAoC;QACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,EAA6B,CAChI,CACF,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,EAAE,CACV,GAAG,CAAC,cAAc,CAChB,SAAS,EACT,GAAG;QACH,4BAA4B;QAC5B,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAA6B,CAC1J,CACF,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAEnE,qEAAqE;QACrE,mEAAmE;QACnE,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,MAAM,GAAmB;YAC7B,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,GAAG;oBACP,IAAI,EAAE,GAAG;oBACT,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;iBAC1D;aACF;SACF,CAAC;QAEF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACrC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;gBACtE,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;aACvE,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,aAAa,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,uEAAuE;QACvE,MAAM,MAAM,GAAmB;YAC7B,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,GAAG;oBACP,IAAI,EAAE,GAAG;oBACT,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;iBACjD;aACF;SACF,CAAC;QACF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,CACV,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAC/E,CAAC,OAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACzE,qEAAqE;QACrE,mEAAmE;QACnE,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAmB;YAC7B,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,GAAG;oBACP,IAAI,EAAE,GAAG;oBACT,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;iBAC1D;aACF;SACF,CAAC;QACF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}