@sensigo/realm-cli 0.12.0 → 0.13.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.
- package/dist/agent/run-attach.d.ts +24 -0
- package/dist/agent/run-attach.d.ts.map +1 -0
- package/dist/agent/run-attach.js +77 -0
- package/dist/agent/run-attach.js.map +1 -0
- package/dist/commands/agent.d.ts +13 -0
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +38 -8
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/init.d.ts +2 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +42 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/inspect.d.ts +1 -0
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +93 -1
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/listen.d.ts +11 -0
- package/dist/commands/listen.d.ts.map +1 -1
- package/dist/commands/listen.js +36 -1
- package/dist/commands/listen.js.map +1 -1
- package/dist/commands/mcp.d.ts +2 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +12 -5
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/register.d.ts +6 -0
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +20 -1
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +12 -0
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/serve.d.ts +6 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +17 -4
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +25 -1
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +53 -8
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +6 -1
- package/dist/commands/watch.js.map +1 -1
- package/dist/extensions/extension-identity.d.ts +63 -0
- package/dist/extensions/extension-identity.d.ts.map +1 -0
- package/dist/extensions/extension-identity.js +218 -0
- package/dist/extensions/extension-identity.js.map +1 -0
- package/dist/extensions/load-project-extensions.d.ts +36 -0
- package/dist/extensions/load-project-extensions.d.ts.map +1 -0
- package/dist/extensions/load-project-extensions.js +358 -0
- package/dist/extensions/load-project-extensions.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { RunStore, WorkflowRegistrar, WorkflowDefinition, ExtensionRegistry, ExtensionManifest } from '@sensigo/realm';
|
|
2
|
+
import { loadProjectExtensions } from '../extensions/load-project-extensions.js';
|
|
3
|
+
/** Terminal reason written when extension loading fails before a run has started executing. */
|
|
4
|
+
export declare const EXTENSIONS_LOAD_FAILED = "extensions_load_failed";
|
|
5
|
+
export interface ResolveRunAttachDeps {
|
|
6
|
+
store: RunStore;
|
|
7
|
+
workflowStore: Pick<WorkflowRegistrar, 'get'>;
|
|
8
|
+
/** DI seam for tests — defaults to the real loader. */
|
|
9
|
+
loadExtensions?: typeof loadProjectExtensions;
|
|
10
|
+
}
|
|
11
|
+
export interface ResolveRunAttachResult {
|
|
12
|
+
definition: WorkflowDefinition;
|
|
13
|
+
registry: ExtensionRegistry;
|
|
14
|
+
manifest: ExtensionManifest;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Resolves everything `realm agent --run-id` needs before the run is claimed:
|
|
18
|
+
* the stored definition and the extension registry/manifest, with the v4 failure and
|
|
19
|
+
* re-attach semantics described above.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveRunAttach(runId: string, deps: ResolveRunAttachDeps, opts?: {
|
|
22
|
+
overrideModule?: string;
|
|
23
|
+
}): Promise<ResolveRunAttachResult>;
|
|
24
|
+
//# sourceMappingURL=run-attach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-attach.d.ts","sourceRoot":"","sources":["../../src/agent/run-attach.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGjF,+FAA+F;AAC/F,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,QAAQ,CAAC;IAChB,aAAa,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAC9C,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,qBAAqB,CAAC;CAC/C;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,oBAAoB,EAC1B,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAsFjC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { loadProjectExtensions } from '../extensions/load-project-extensions.js';
|
|
2
|
+
import { identityDiffers, errorExtensionIdentityEntry } from '../extensions/extension-identity.js';
|
|
3
|
+
/** Terminal reason written when extension loading fails before a run has started executing. */
|
|
4
|
+
export const EXTENSIONS_LOAD_FAILED = 'extensions_load_failed';
|
|
5
|
+
/**
|
|
6
|
+
* Resolves everything `realm agent --run-id` needs before the run is claimed:
|
|
7
|
+
* the stored definition and the extension registry/manifest, with the v4 failure and
|
|
8
|
+
* re-attach semantics described above.
|
|
9
|
+
*/
|
|
10
|
+
export async function resolveRunAttach(runId, deps, opts) {
|
|
11
|
+
let run = await deps.store.get(runId);
|
|
12
|
+
if (run.terminal_state) {
|
|
13
|
+
if (run.terminal_reason === EXTENSIONS_LOAD_FAILED) {
|
|
14
|
+
// Pure retry: nothing executed pre-failure. Clear exactly this marker and proceed.
|
|
15
|
+
const { terminal_reason: _cleared, ...rest } = run;
|
|
16
|
+
await deps.store.update({ ...rest, terminal_state: false });
|
|
17
|
+
run = await deps.store.get(runId);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
// Same refusal (and message) the agent loop raises today — thrown BEFORE any
|
|
21
|
+
// extension code loads.
|
|
22
|
+
throw new Error(`Run ${runId} is already in terminal state: ${run.terminal_reason ?? run.run_phase}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const definition = await deps.workflowStore.get(run.workflow_id);
|
|
26
|
+
const loadExtensions = deps.loadExtensions ?? loadProjectExtensions;
|
|
27
|
+
try {
|
|
28
|
+
const { registry, manifest } = await loadExtensions(definition, opts?.overrideModule !== undefined ? { overrideModule: opts.overrideModule } : {});
|
|
29
|
+
// Drift evidence (issue #119): WARN immediately when the freshly loaded identity
|
|
30
|
+
// differs from the run's LAST recorded identity. Advisory only — never a gate, and
|
|
31
|
+
// NO pre-claim write on the success path (a pre-claim CAS bump would kill a live
|
|
32
|
+
// driver's in-flight step update). The append lands via the core lazy
|
|
33
|
+
// append-on-change site after this attacher claims a step.
|
|
34
|
+
const freshIdentity = registry.identity;
|
|
35
|
+
const history = run.extension_identity ?? [];
|
|
36
|
+
const lastIdentity = history[history.length - 1];
|
|
37
|
+
if (freshIdentity !== undefined &&
|
|
38
|
+
lastIdentity !== undefined &&
|
|
39
|
+
identityDiffers(lastIdentity, freshIdentity)) {
|
|
40
|
+
console.error(`[realm] WARN: extension code identity differs from this run's last recorded identity — ` +
|
|
41
|
+
`recorded tree_hash ${lastIdentity.tree.tree_hash || '(none)'} (captured ${lastIdentity.captured_at}), ` +
|
|
42
|
+
`current tree_hash ${freshIdentity.tree.tree_hash || '(none)'} (captured ${freshIdentity.captured_at}). ` +
|
|
43
|
+
`Advisory only — the run proceeds; the new identity is appended to the run's history at the next step.`);
|
|
44
|
+
}
|
|
45
|
+
return { definition, registry, manifest };
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
// Not-yet-started guard: mark only pre-execution runs; never mutate an in-flight or
|
|
49
|
+
// already-terminal run. Double failure (store write also fails) → stderr, error still
|
|
50
|
+
// propagates (exit nonzero) — same handling class as listen's spawn_failed.
|
|
51
|
+
// The failed load is itself drift evidence: the extensions_load_failed write carries
|
|
52
|
+
// an identity entry with `error` set, so the repair loop gets its before/after pair.
|
|
53
|
+
// When the run has begun executing nothing is mutated — no error entry either (the
|
|
54
|
+
// pair lands via the post-claim append on a successful re-attach); this asymmetry is
|
|
55
|
+
// deliberate.
|
|
56
|
+
try {
|
|
57
|
+
const fresh = await deps.store.get(runId);
|
|
58
|
+
if (!fresh.terminal_state &&
|
|
59
|
+
fresh.evidence.length === 0 &&
|
|
60
|
+
fresh.pending_gate === undefined) {
|
|
61
|
+
fresh.terminal_state = true;
|
|
62
|
+
fresh.terminal_reason = EXTENSIONS_LOAD_FAILED;
|
|
63
|
+
fresh.run_phase = 'failed';
|
|
64
|
+
fresh.extension_identity = [
|
|
65
|
+
...(fresh.extension_identity ?? []),
|
|
66
|
+
errorExtensionIdentityEntry(`extension load failed: ${err instanceof Error ? err.message : String(err)}`, opts?.overrideModule !== undefined ? { overrideActive: true } : {}),
|
|
67
|
+
];
|
|
68
|
+
await deps.store.update(fresh);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (writeErr) {
|
|
72
|
+
console.error(`Failed to mark run '${runId}' as ${EXTENSIONS_LOAD_FAILED}: ${writeErr instanceof Error ? writeErr.message : String(writeErr)}`);
|
|
73
|
+
}
|
|
74
|
+
throw err;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=run-attach.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-attach.js","sourceRoot":"","sources":["../../src/agent/run-attach.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/agent.d.ts
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import type { ExtensionRegistry, ExtensionManifest } from '@sensigo/realm';
|
|
3
|
+
/**
|
|
4
|
+
* Composes the registry an agent run executes with: CLONES the loader-returned registry
|
|
5
|
+
* (loader results are shared process-lifetime cache entries and must never be mutated),
|
|
6
|
+
* then applies the legacy env-gated built-ins tier — the legacy tier of the precedence
|
|
7
|
+
* chain (defaults < legacy env-gated < declared extensions < --extensions-module) — on
|
|
8
|
+
* the clone, skipping names claimed by an extensions module.
|
|
9
|
+
* Exported for the cache-decontamination regression test.
|
|
10
|
+
*/
|
|
11
|
+
export declare function composeAgentRegistry(loaded: {
|
|
12
|
+
registry: ExtensionRegistry;
|
|
13
|
+
manifest: ExtensionManifest;
|
|
14
|
+
}): ExtensionRegistry;
|
|
2
15
|
export declare const agentCommand: Command;
|
|
3
16
|
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAc3E;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,GAAG,iBAAiB,CA6BpB;AAED,eAAO,MAAM,YAAY,SA8OtB,CAAC"}
|
package/dist/commands/agent.js
CHANGED
|
@@ -3,11 +3,39 @@
|
|
|
3
3
|
import { Command } from 'commander';
|
|
4
4
|
import { join, resolve } from 'node:path';
|
|
5
5
|
import { pathToFileURL } from 'node:url';
|
|
6
|
-
import { loadWorkflowFromFile, JsonFileStore, JsonWorkflowStore,
|
|
6
|
+
import { loadWorkflowFromFile, JsonFileStore, JsonWorkflowStore, GitHubAdapter, SlackAdapter, } from '@sensigo/realm';
|
|
7
7
|
import { LlmProvider, resolveProvider } from '../agent/providers/llm-provider.js';
|
|
8
8
|
import { runAgent } from '../agent/run-agent.js';
|
|
9
|
+
import { resolveRunAttach } from '../agent/run-attach.js';
|
|
10
|
+
import { loadProjectExtensions } from '../extensions/load-project-extensions.js';
|
|
9
11
|
import { createSlackGateHandler } from '../agent/gate/slack-gate-notifier.js';
|
|
10
12
|
import { checkAdapterPrerequisites, formatPreflightError, checkSlackBidirectionalConfig, } from '../agent/preflight.js';
|
|
13
|
+
/**
|
|
14
|
+
* Composes the registry an agent run executes with: CLONES the loader-returned registry
|
|
15
|
+
* (loader results are shared process-lifetime cache entries and must never be mutated),
|
|
16
|
+
* then applies the legacy env-gated built-ins tier — the legacy tier of the precedence
|
|
17
|
+
* chain (defaults < legacy env-gated < declared extensions < --extensions-module) — on
|
|
18
|
+
* the clone, skipping names claimed by an extensions module.
|
|
19
|
+
* Exported for the cache-decontamination regression test.
|
|
20
|
+
*/
|
|
21
|
+
export function composeAgentRegistry(loaded) {
|
|
22
|
+
const registry = loaded.registry.clone();
|
|
23
|
+
const legacyFired = [];
|
|
24
|
+
if (process.env['GITHUB_TOKEN'] !== undefined && !loaded.manifest.adapters.includes('github')) {
|
|
25
|
+
legacyFired.push('github (GITHUB_TOKEN)');
|
|
26
|
+
registry.register('adapter', 'github', new GitHubAdapter('github', { auth: { token: process.env['GITHUB_TOKEN'] } }));
|
|
27
|
+
}
|
|
28
|
+
if (process.env['SLACK_WEBHOOK_URL'] !== undefined &&
|
|
29
|
+
!loaded.manifest.adapters.includes('slack')) {
|
|
30
|
+
legacyFired.push('slack (SLACK_WEBHOOK_URL)');
|
|
31
|
+
registry.register('adapter', 'slack', new SlackAdapter('slack', { webhook_url: process.env['SLACK_WEBHOOK_URL'] }));
|
|
32
|
+
}
|
|
33
|
+
if (legacyFired.length > 0)
|
|
34
|
+
console.warn(`Deprecated: env-gated adapter registration (${legacyFired.join(', ')}) will be removed in ` +
|
|
35
|
+
`v0.14.0 — declare these adapters in a project extensions module instead ` +
|
|
36
|
+
`(docs/reference/project-extensions.md).`);
|
|
37
|
+
return registry;
|
|
38
|
+
}
|
|
11
39
|
export const agentCommand = new Command('agent')
|
|
12
40
|
.description('Run a workflow autonomously using an LLM provider')
|
|
13
41
|
.option('--workflow <path>', 'Path to workflow directory or workflow.yaml file')
|
|
@@ -18,6 +46,7 @@ export const agentCommand = new Command('agent')
|
|
|
18
46
|
.option('--base-url <url>', 'Base URL for OpenAI-compatible endpoints (e.g. DeepSeek, Qwen, Groq)')
|
|
19
47
|
.option('--provider-module <path>', 'Path to a custom LlmProvider module (default export must be an instance extending LlmProvider)')
|
|
20
48
|
.option('--register', 'Persist the workflow definition to ~/.realm/workflows/ (same as realm workflow register)')
|
|
49
|
+
.option('--extensions-module <path>', "Extensions module that REPLACES the workflow's declared 'extensions' modules (repair/override)")
|
|
21
50
|
.action(async (opts) => {
|
|
22
51
|
if (!opts.workflow && !opts.runId) {
|
|
23
52
|
console.error('Error: one of --workflow or --run-id is required');
|
|
@@ -62,16 +91,14 @@ export const agentCommand = new Command('agent')
|
|
|
62
91
|
else {
|
|
63
92
|
provider = await resolveProvider(opts.provider, opts.model, opts.baseUrl);
|
|
64
93
|
}
|
|
65
|
-
const
|
|
66
|
-
if (process.env['GITHUB_TOKEN'] !== undefined)
|
|
67
|
-
registry.register('adapter', 'github', new GitHubAdapter('github', { auth: { token: process.env['GITHUB_TOKEN'] } }));
|
|
68
|
-
if (process.env['SLACK_WEBHOOK_URL'] !== undefined)
|
|
69
|
-
registry.register('adapter', 'slack', new SlackAdapter('slack', { webhook_url: process.env['SLACK_WEBHOOK_URL'] }));
|
|
94
|
+
const extensionOpts = opts.extensionsModule !== undefined ? { overrideModule: opts.extensionsModule } : {};
|
|
70
95
|
let result;
|
|
71
96
|
if (opts.runId !== undefined) {
|
|
72
97
|
// --run-id path: attach to existing run, load definition from store.
|
|
73
|
-
|
|
74
|
-
|
|
98
|
+
// resolveRunAttach loads project extensions BEFORE the run is claimed and carries
|
|
99
|
+
// the extensions_load_failed write / re-attach semantics.
|
|
100
|
+
const { definition, ...loaded } = await resolveRunAttach(opts.runId, { store, workflowStore }, extensionOpts);
|
|
101
|
+
const registry = composeAgentRegistry(loaded);
|
|
75
102
|
const hasSlack = process.env['SLACK_BOT_TOKEN'] !== undefined ||
|
|
76
103
|
process.env['SLACK_WEBHOOK_URL'] !== undefined;
|
|
77
104
|
const slackConfig = {
|
|
@@ -118,6 +145,9 @@ export const agentCommand = new Command('agent')
|
|
|
118
145
|
? inputPath
|
|
119
146
|
: join(inputPath, 'workflow.yaml');
|
|
120
147
|
const definition = loadWorkflowFromFile(filePath);
|
|
148
|
+
// Load project extensions BEFORE the run is created (fail-before-create).
|
|
149
|
+
const loaded = await loadProjectExtensions(definition, extensionOpts);
|
|
150
|
+
const registry = composeAgentRegistry(loaded);
|
|
121
151
|
// Fail fast if required adapter env vars are missing.
|
|
122
152
|
const preflightFindings = checkAdapterPrerequisites(definition);
|
|
123
153
|
if (preflightFindings.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,gFAAgF;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
/**
|
|
3
|
-
* Scaffolds a new workflow project at targetDir with
|
|
3
|
+
* Scaffolds a new workflow project at targetDir with five template files
|
|
4
|
+
* (workflow.yaml, schema.json, .env.example, README.md, registry.sample.js).
|
|
4
5
|
* Throws an error if targetDir already exists.
|
|
5
6
|
* @param name Workflow project name used in file contents.
|
|
6
7
|
* @param targetDir Directory to create (defaults to join(cwd, name) in the command action).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiHjF;AAED,eAAO,MAAM,WAAW,SAoBpB,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -4,7 +4,8 @@ import { join } from 'node:path';
|
|
|
4
4
|
import { existsSync } from 'node:fs';
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
/**
|
|
7
|
-
* Scaffolds a new workflow project at targetDir with
|
|
7
|
+
* Scaffolds a new workflow project at targetDir with five template files
|
|
8
|
+
* (workflow.yaml, schema.json, .env.example, README.md, registry.sample.js).
|
|
8
9
|
* Throws an error if targetDir already exists.
|
|
9
10
|
* @param name Workflow project name used in file contents.
|
|
10
11
|
* @param targetDir Directory to create (defaults to join(cwd, name) in the command action).
|
|
@@ -20,6 +21,8 @@ name: "${name}"
|
|
|
20
21
|
version: 1
|
|
21
22
|
initial_state: created
|
|
22
23
|
|
|
24
|
+
# extensions: ./registry.js — project extension modules (see docs/reference/project-extensions.md)
|
|
25
|
+
|
|
23
26
|
steps:
|
|
24
27
|
step_one:
|
|
25
28
|
description: "First step \u2014 replace with your own"
|
|
@@ -67,11 +70,48 @@ Add fixtures to \`fixtures/\` and run:
|
|
|
67
70
|
\`\`\`bash
|
|
68
71
|
realm workflow test ./ --fixtures ./fixtures/
|
|
69
72
|
\`\`\`
|
|
73
|
+
`;
|
|
74
|
+
// Project extensions sample: the documented declarative contract shape, fully commented
|
|
75
|
+
// out — nothing is registered by default. Activate by uncommenting and declaring
|
|
76
|
+
// `extensions: ./registry.js` in workflow.yaml (then re-register the workflow).
|
|
77
|
+
const registrySampleJs = `// registry.sample.js — project extension module template for ${name}.
|
|
78
|
+
// Docs: docs/reference/project-extensions.md (module contract, trust model, precedence).
|
|
79
|
+
//
|
|
80
|
+
// To use: rename to registry.js, fill in your extensions, then declare it in workflow.yaml:
|
|
81
|
+
// extensions: ./registry.js
|
|
82
|
+
// and re-register the workflow (realm workflow register ./).
|
|
83
|
+
//
|
|
84
|
+
// The default export is a declarative object — instances keyed by REGISTRATION NAME
|
|
85
|
+
// (the map key is the name your workflow YAML references).
|
|
86
|
+
|
|
87
|
+
export default {
|
|
88
|
+
// adapters: {
|
|
89
|
+
// my_service: {
|
|
90
|
+
// id: 'my_service',
|
|
91
|
+
// fetch: async (operation, params, config) => ({ status: 200, data: {} }),
|
|
92
|
+
// create: async (operation, params, config) => ({ status: 201, data: {} }),
|
|
93
|
+
// update: async (operation, params, config) => ({ status: 200, data: {} }),
|
|
94
|
+
// },
|
|
95
|
+
// },
|
|
96
|
+
// handlers: {
|
|
97
|
+
// my_handler: {
|
|
98
|
+
// id: 'my_handler',
|
|
99
|
+
// execute: async (inputs, context) => ({ data: { ok: true } }),
|
|
100
|
+
// },
|
|
101
|
+
// },
|
|
102
|
+
// processors: {
|
|
103
|
+
// my_processor: {
|
|
104
|
+
// id: 'my_processor',
|
|
105
|
+
// process: async (content, config) => content,
|
|
106
|
+
// },
|
|
107
|
+
// },
|
|
108
|
+
};
|
|
70
109
|
`;
|
|
71
110
|
await writeFile(join(targetDir, 'workflow.yaml'), workflowYaml, 'utf8');
|
|
72
111
|
await writeFile(join(targetDir, 'schema.json'), schemaJson + '\n', 'utf8');
|
|
73
112
|
await writeFile(join(targetDir, '.env.example'), envExample, 'utf8');
|
|
74
113
|
await writeFile(join(targetDir, 'README.md'), readmeMd, 'utf8');
|
|
114
|
+
await writeFile(join(targetDir, 'registry.sample.js'), registrySampleJs, 'utf8');
|
|
75
115
|
}
|
|
76
116
|
export const initCommand = new Command('init')
|
|
77
117
|
.argument('<name>', 'Workflow project name (becomes the directory name)')
|
|
@@ -86,6 +126,7 @@ export const initCommand = new Command('init')
|
|
|
86
126
|
console.log(' schema.json');
|
|
87
127
|
console.log(' .env.example');
|
|
88
128
|
console.log(' README.md');
|
|
129
|
+
console.log(' registry.sample.js');
|
|
89
130
|
console.log('');
|
|
90
131
|
console.log(`Next: realm workflow validate ./${name}/`);
|
|
91
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import type { RunStore, WorkflowRegistrar } from '@sensigo/realm';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare function inspectRun(runId: string, store: RunStore, workflowStore: WorkflowRegistrar, options?: {
|
|
11
11
|
verbose?: boolean;
|
|
12
|
+
checkDrift?: boolean;
|
|
12
13
|
}): Promise<string>;
|
|
13
14
|
export declare const inspectCommand: Command;
|
|
14
15
|
//# sourceMappingURL=inspect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EACV,QAAQ,EAER,iBAAiB,EAIlB,MAAM,gBAAgB,CAAC;AAqIxB;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,QAAQ,EACf,aAAa,EAAE,iBAAiB,EAChC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACpD,OAAO,CAAC,MAAM,CAAC,CA6MjB;AAED,eAAO,MAAM,cAAc,SAsBvB,CAAC"}
|
package/dist/commands/inspect.js
CHANGED
|
@@ -1,6 +1,84 @@
|
|
|
1
1
|
// inspect command — displays the full evidence chain and diagnostics for a run.
|
|
2
|
+
//
|
|
3
|
+
// Read-only invariant: this command must never gain the capability to execute project
|
|
4
|
+
// code. The drift-evidence rendering and --check-drift recomputation below therefore use
|
|
5
|
+
// ONLY the pure fingerprint module (extension-identity.ts — fs reads + sha256, no dynamic
|
|
6
|
+
// import, no createRequire), never the extensions loader.
|
|
2
7
|
import chalk from 'chalk';
|
|
3
8
|
import { Command } from 'commander';
|
|
9
|
+
import { recomputeIdentity } from '../extensions/extension-identity.js';
|
|
10
|
+
/**
|
|
11
|
+
* Renders the run's extension-code identity history (drift evidence, issue #119) plus,
|
|
12
|
+
* with `checkDrift`, a pure-fs recomputation of the LAST entry against current disk state
|
|
13
|
+
* under the entry's RECORDED rules — no code loading, ever.
|
|
14
|
+
*/
|
|
15
|
+
function renderExtensionIdentity(history, checkDrift, trustRoot) {
|
|
16
|
+
const lines = [];
|
|
17
|
+
lines.push('');
|
|
18
|
+
lines.push(`Extension Identity (${history.length} ${history.length === 1 ? 'entry' : 'entries'}):`);
|
|
19
|
+
history.forEach((entry, idx) => {
|
|
20
|
+
const flags = [
|
|
21
|
+
entry.override_active === true ? chalk.yellow('[override]') : '',
|
|
22
|
+
entry.error !== undefined ? chalk.red('[error]') : '',
|
|
23
|
+
]
|
|
24
|
+
.filter((f) => f !== '')
|
|
25
|
+
.join(' ');
|
|
26
|
+
lines.push(` ${idx + 1}. captured ${entry.captured_at}${entry.pid !== undefined ? ` (pid ${entry.pid})` : ''}${flags ? ` ${flags}` : ''}`);
|
|
27
|
+
if (entry.error !== undefined) {
|
|
28
|
+
lines.push(chalk.red(` error: ${entry.error}`));
|
|
29
|
+
}
|
|
30
|
+
for (const mod of entry.modules) {
|
|
31
|
+
lines.push(` module: ${mod.declared} -> ${mod.resolved} (${mod.format})`);
|
|
32
|
+
lines.push(` entry_hash ${mod.entry_hash}`);
|
|
33
|
+
}
|
|
34
|
+
lines.push(` tree: ${entry.tree.file_count} files, ${entry.tree.total_bytes} bytes${entry.tree.truncated ? ', TRUNCATED' : ''}`);
|
|
35
|
+
lines.push(` tree_hash ${entry.tree.tree_hash || '(none)'}`);
|
|
36
|
+
if (entry.signals !== undefined) {
|
|
37
|
+
const sig = [];
|
|
38
|
+
if (entry.signals.package_version !== undefined)
|
|
39
|
+
sig.push(`package_version ${entry.signals.package_version}`);
|
|
40
|
+
if (entry.signals.git_head !== undefined)
|
|
41
|
+
sig.push(`git_head ${entry.signals.git_head}`);
|
|
42
|
+
lines.push(` signals: ${sig.join(', ')}`);
|
|
43
|
+
}
|
|
44
|
+
lines.push(chalk.dim(` coverage (${entry.coverage}): covers files under ${entry.tree.roots.join(', ') || '(none)'} matching ${entry.tree.rules}; imports outside these roots, node_modules, and runtime dynamic imports are NOT covered.`));
|
|
45
|
+
});
|
|
46
|
+
if (checkDrift) {
|
|
47
|
+
lines.push('');
|
|
48
|
+
lines.push('Drift check (pure recompute of the last entry under its recorded rules):');
|
|
49
|
+
const last = history[history.length - 1];
|
|
50
|
+
if (last.error !== undefined) {
|
|
51
|
+
lines.push(chalk.yellow(' last entry records a load/capture error — nothing to compare against current disk state.'));
|
|
52
|
+
return lines;
|
|
53
|
+
}
|
|
54
|
+
const result = recomputeIdentity(last, trustRoot !== undefined ? { trustRoot } : {});
|
|
55
|
+
if (!result.comparable) {
|
|
56
|
+
lines.push(chalk.yellow(` ${result.reason}`));
|
|
57
|
+
return lines;
|
|
58
|
+
}
|
|
59
|
+
for (const mod of result.modules) {
|
|
60
|
+
if (mod.current_hash === undefined) {
|
|
61
|
+
lines.push(chalk.red(` module ${mod.resolved}: MISSING (unreadable on current disk)`));
|
|
62
|
+
}
|
|
63
|
+
else if (mod.current_hash === mod.recorded_hash) {
|
|
64
|
+
lines.push(chalk.green(` module ${mod.resolved}: same`));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
lines.push(chalk.yellow(` module ${mod.resolved}: DIFFERS (recorded ${mod.recorded_hash}, current ${mod.current_hash})`));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (result.tree.current_hash === result.tree.recorded_hash) {
|
|
71
|
+
lines.push(chalk.green(' tree: same'));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
lines.push(chalk.yellow(` tree: DIFFERS (recorded ${result.tree.recorded_hash || '(none)'}, current ${result.tree.current_hash}${result.tree.current_truncated ? ', current truncated' : ''})`));
|
|
75
|
+
}
|
|
76
|
+
if (result.signals !== undefined || last.signals !== undefined) {
|
|
77
|
+
lines.push(chalk.dim(` signals (informational): recorded ${JSON.stringify(last.signals ?? {})}, current ${JSON.stringify(result.signals ?? {})}`));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return lines;
|
|
81
|
+
}
|
|
4
82
|
/** Truncates a JSON-serialised summary to a readable single line. */
|
|
5
83
|
function formatSummary(value, maxLength = 120) {
|
|
6
84
|
const raw = JSON.stringify(value);
|
|
@@ -39,9 +117,11 @@ export async function inspectRun(runId, store, workflowStore, options) {
|
|
|
39
117
|
// Try to load workflow definition; gracefully handle missing definition.
|
|
40
118
|
let workflowLabel;
|
|
41
119
|
let definitionMissing = false;
|
|
120
|
+
let trustRoot;
|
|
42
121
|
try {
|
|
43
122
|
const def = await workflowStore.get(run.workflow_id);
|
|
44
123
|
workflowLabel = `${def.id} v${def.version}`;
|
|
124
|
+
trustRoot = def.trust_root;
|
|
45
125
|
}
|
|
46
126
|
catch {
|
|
47
127
|
workflowLabel = run.workflow_id;
|
|
@@ -115,6 +195,14 @@ export async function inspectRun(runId, store, workflowStore, options) {
|
|
|
115
195
|
lines.push(` top_events: ${topEvents.join(', ')}`);
|
|
116
196
|
}
|
|
117
197
|
}
|
|
198
|
+
// Drift evidence (issue #119): render the extension-identity history when present.
|
|
199
|
+
if (run.extension_identity !== undefined && run.extension_identity.length > 0) {
|
|
200
|
+
lines.push(...renderExtensionIdentity(run.extension_identity, options?.checkDrift === true, trustRoot));
|
|
201
|
+
}
|
|
202
|
+
else if (options?.checkDrift === true) {
|
|
203
|
+
lines.push('');
|
|
204
|
+
lines.push('Drift check: no extension identity recorded for this run.');
|
|
205
|
+
}
|
|
118
206
|
lines.push('');
|
|
119
207
|
lines.push(`Evidence (${stepOrder.length} steps):`);
|
|
120
208
|
stepOrder.forEach((stepId, idx) => {
|
|
@@ -208,12 +296,16 @@ export const inspectCommand = new Command('inspect')
|
|
|
208
296
|
.argument('<run-id>', 'ID of the run to inspect')
|
|
209
297
|
.description('Display the full evidence chain and diagnostics for a run')
|
|
210
298
|
.option('--verbose', 'Show full tool call args and results')
|
|
299
|
+
.option('--check-drift', 'Recompute the last recorded extension identity against current disk state (pure hashing — never loads code)')
|
|
211
300
|
.action(async (runId, cmdOpts) => {
|
|
212
301
|
const { JsonFileStore, JsonWorkflowStore } = await import('@sensigo/realm');
|
|
213
302
|
const store = new JsonFileStore();
|
|
214
303
|
const workflowStore = new JsonWorkflowStore();
|
|
215
304
|
try {
|
|
216
|
-
const output = await inspectRun(runId, store, workflowStore,
|
|
305
|
+
const output = await inspectRun(runId, store, workflowStore, {
|
|
306
|
+
...(cmdOpts.verbose === true ? { verbose: true } : {}),
|
|
307
|
+
...(cmdOpts.checkDrift === true ? { checkDrift: true } : {}),
|
|
308
|
+
});
|
|
217
309
|
console.log(output);
|
|
218
310
|
}
|
|
219
311
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,0FAA0F;AAC1F,0DAA0D;AAC1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,OAAiC,EACjC,UAAmB,EACnB,SAA6B;IAE7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,uBAAuB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,CACxF,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG;YACZ,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;YAChE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;SACtD;aACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;aACvB,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,KAAK,CAAC,IAAI,CACR,KAAK,GAAG,GAAG,CAAC,cAAc,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChI,CAAC;QACF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,OAAO,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9E,KAAK,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,IAAI,CACR,cAAc,KAAK,CAAC,IAAI,CAAC,UAAU,WAAW,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CACzH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;gBAC7C,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzF,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,GAAG,CACP,kBAAkB,KAAK,CAAC,QAAQ,yBAAyB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,aAAa,KAAK,CAAC,IAAI,CAAC,KAAK,2FAA2F,CACzN,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,MAAM,CACV,4FAA4F,CAC7F,CACF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,QAAQ,wCAAwC,CAAC,CAAC,CAAC;YAC1F,CAAC;iBAAM,IAAI,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC;gBAClD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,QAAQ,QAAQ,CAAC,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,MAAM,CACV,YAAY,GAAG,CAAC,QAAQ,uBAAuB,GAAG,CAAC,aAAa,aAAa,GAAG,CAAC,YAAY,GAAG,CACjG,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,MAAM,CACV,6BAA6B,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,QAAQ,aAAa,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG,CACxK,CACF,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/D,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,GAAG,CACP,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAC7H,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qEAAqE;AACrE,SAAS,aAAa,CAAC,KAAc,EAAE,SAAS,GAAG,GAAG;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,GAAG,CAAC;IACxC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,kFAAkF;AAClF,SAAS,iBAAiB,CAAC,IAAqB;IAC9C,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,oBAAoB,SAAS,CAAC;IACtD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,GAAG,MAAM,qBAAqB,CAAC;IACxC,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB;SACrC,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAC7F;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,GAAG,MAAM,qBAAqB,QAAQ,EAAE,CAAC;AAClD,CAAC;AAED,mDAAmD;AACnD,SAAS,WAAW,CAAC,MAAc;IACjC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,KAAe,EACf,aAAgC,EAChC,OAAqD;IAErD,MAAM,GAAG,GAAc,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE9C,yEAAyE;IACzE,IAAI,aAAqB,CAAC;IAC1B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,SAA6B,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrD,aAAa,GAAG,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5C,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC;QAChC,iBAAiB,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,yBAAyB;IACzB,IAAI,UAAkB,CAAC;IACvB,IAAI,GAAG,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QAClC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,SAAS,UAAU,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QACvE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,aAAa,aAAa,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAEzC,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC/E,CAAC;IAED,0EAA0E;IAC1E,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,yEAAyE;IACzE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3F,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC;QAC7C,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,cAAc,IAAI,CAAC,CAAC,EACxD,CAAC,CACF,CAAC;QACF,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,iBAAiB,IAAI,CAAC,CAAC,EAC3D,CAAC,CACF,CAAC;QACF,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;QAE1F,gFAAgF;QAChF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACrC,IAAI,KAAK,CAAC,KAAK,KAAK,iBAAiB;oBAAE,SAAS;gBAChD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;aACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC;QAElD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,8BAA8B,cAAc,EAAE,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,8BAA8B,oBAAoB,EAAE,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,6BAA6B,kBAAkB,EAAE,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,6BAA6B,qBAAqB,EAAE,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,6BAA6B,cAAc,EAAE,CAAC,CAAC;QAC1D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,6BAA6B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,IAAI,GAAG,CAAC,kBAAkB,KAAK,SAAS,IAAI,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9E,KAAK,CAAC,IAAI,CACR,GAAG,uBAAuB,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,EAAE,UAAU,KAAK,IAAI,EAAE,SAAS,CAAC,CAC5F,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,MAAM,UAAU,CAAC,CAAC;IAEpD,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QACzC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;QACnF,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;QAEnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,IAAI,WAAW,EAAE,CAAC;YAChB,6DAA6D;YAC7D,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;gBACzB,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvE,KAAK,CAAC,IAAI,CACR,iBAAiB,EAAE,GAAG,CAAC,IAAI,aAAa,MAAM,aAAa,MAAM,IAAI,CAAC,WAAW,QAAQ,SAAS,EAAE,CACrG,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,sDAAsD;YACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,gBAAgB,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,kBAAkB,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,gBAAgB,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACrE,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,KAAK,CAAC,MAAM,wBAAwB,CAAC,CAAC;gBAC1E,IAAI,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC;oBACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC;oBACjC,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,MAAM,CACV,2BAA2B,CAAC,CAAC,iBAAiB,IAAI,SAAS,MAAM,CAAC,CAAC,cAAc,YAAY,CAAC,CAAC,iBAAiB,aAAa,CAC9H,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACvB,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,YAAY,GAChB,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,KAAK,CAAC,IAAI,CACR,KAAK,GAAG,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,GAAG,SAAS,IAAI,aAAa,MAAM,IAAI,CAAC,WAAW,QAAQ,SAAS,EAAE,CACxH,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC7E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACjD,CAAC;gBACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;oBACpC,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;gBACtD,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,kBAAkB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,gBAAgB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAChE,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBACvC,KAAK,CAAC,IAAI,CAAC,kBAAkB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBACtE,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,gBAAgB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACjE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC7B,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,wBAAwB,CAAC,CAAC;oBACtE,IAAI,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC;wBAClC,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;wBAC7B,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,MAAM,CACV,2BAA2B,CAAC,CAAC,iBAAiB,IAAI,SAAS,MAAM,CAAC,CAAC,cAAc,YAAY,CAAC,CAAC,iBAAiB,aAAa,CAC9H,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBAClC,gCAAgC;gBAClC,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;oBAC3D,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACjC,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzD,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC,CAAC;wBACnF,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;4BACrB,KAAK,CAAC,IAAI,CAAC,oBAAoB,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BACzD,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;4BACvE,KAAK,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;wBAC9C,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACnC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACjD,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;KAChD,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,WAAW,EAAE,sCAAsC,CAAC;KAC3D,MAAM,CACL,eAAe,EACf,6GAA6G,CAC9G;KACA,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAoD,EAAE,EAAE;IACpF,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAClC,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE;YAC3D,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { type Server, type IncomingMessage, type ServerResponse } from 'node:htt
|
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import type { WorkflowDefinition, WebhookTrigger, TriggerFilter, RunStore, WorkflowRegistrar } from '@sensigo/realm';
|
|
4
4
|
import { type DedupStore } from '../lib/dedup-store.js';
|
|
5
|
+
import { loadProjectExtensions } from '../extensions/load-project-extensions.js';
|
|
5
6
|
export interface Logger {
|
|
6
7
|
debug(msg: string, data?: unknown): void;
|
|
7
8
|
info(msg: string, data?: unknown): void;
|
|
@@ -66,6 +67,16 @@ export declare function buildRouteTable(inputs: Array<{
|
|
|
66
67
|
env: Record<string, string | undefined>;
|
|
67
68
|
logger: Logger;
|
|
68
69
|
}): Map<string, WorkflowEntry>;
|
|
70
|
+
/**
|
|
71
|
+
* Startup preparation for the routed workflows (fail-fast — any error must abort startup):
|
|
72
|
+
* - registers each routed workflow ONCE (the per-webhook `workflowStore.register` was removed:
|
|
73
|
+
* it silently reverted fresher registrations; restart listen after re-registering);
|
|
74
|
+
* - loads each workflow's project extension modules. NOTE: the modules are imported in the
|
|
75
|
+
* LISTEN PARENT process here — top-level side effects run in the parent (the cost of
|
|
76
|
+
* fail-fast). Children re-resolve at spawn via `realm agent --run-id`; their failure branch
|
|
77
|
+
* writes terminal_reason 'extensions_load_failed' on the run.
|
|
78
|
+
*/
|
|
79
|
+
export declare function prepareListenWorkflows(routes: Map<string, WorkflowEntry>, deps: Pick<ListenDeps, 'workflowStore' | 'logger'>, loadExtensions?: typeof loadProjectExtensions): Promise<void>;
|
|
69
80
|
export interface ListenOptions {
|
|
70
81
|
port: number;
|
|
71
82
|
host: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen.d.ts","sourceRoot":"","sources":["../../src/commands/listen.ts"],"names":[],"mappings":"AAYA,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EAGb,QAAQ,EACR,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAAsC,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"listen.d.ts","sourceRoot":"","sources":["../../src/commands/listen.ts"],"names":[],"mappings":"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"}
|