agentic-flow 2.1.0 → 2.1.1

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 (39) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core/embedding-service.js +1 -1
  3. package/dist/core/embedding-service.js.map +1 -1
  4. package/dist/embeddings/optimized-embedder.js +1 -1
  5. package/dist/embeddings/optimized-embedder.js.map +1 -1
  6. package/dist/harness/flywheel-governance.d.ts +85 -0
  7. package/dist/harness/flywheel-governance.d.ts.map +1 -0
  8. package/dist/harness/flywheel-governance.js +123 -0
  9. package/dist/harness/flywheel-governance.js.map +1 -0
  10. package/dist/harness/metaharness.d.ts +6 -0
  11. package/dist/harness/metaharness.d.ts.map +1 -0
  12. package/dist/harness/metaharness.js +6 -0
  13. package/dist/harness/metaharness.js.map +1 -0
  14. package/dist/mcp/mcp-policy.d.ts +15 -0
  15. package/dist/mcp/mcp-policy.d.ts.map +1 -0
  16. package/dist/mcp/mcp-policy.js +36 -0
  17. package/dist/mcp/mcp-policy.js.map +1 -0
  18. package/dist/mcp/standalone-stdio.js +7 -0
  19. package/dist/mcp/standalone-stdio.js.map +1 -1
  20. package/dist/mcp/tools/harness-tools.d.ts +1 -0
  21. package/dist/mcp/tools/harness-tools.d.ts.map +1 -1
  22. package/dist/mcp/tools/harness-tools.js +13 -1
  23. package/dist/mcp/tools/harness-tools.js.map +1 -1
  24. package/dist/reasoningbank/utils/embeddings.js +2 -2
  25. package/dist/reasoningbank/utils/embeddings.js.map +1 -1
  26. package/dist/repair/darwin-repair.d.ts +13 -1
  27. package/dist/repair/darwin-repair.d.ts.map +1 -1
  28. package/dist/repair/darwin-repair.js +2 -2
  29. package/dist/repair/darwin-repair.js.map +1 -1
  30. package/dist/router/providers/onnx.js +2 -2
  31. package/dist/router/providers/onnx.js.map +1 -1
  32. package/dist/services/embedding-service.js +1 -1
  33. package/dist/services/embedding-service.js.map +1 -1
  34. package/dist/utils/model-cache.js +1 -1
  35. package/dist/utils/model-cache.js.map +1 -1
  36. package/package.json +12 -10
  37. package/wasm/reasoningbank/reasoningbank_wasm_bg.js +31 -31
  38. package/wasm/reasoningbank/reasoningbank_wasm_bg.wasm +0 -0
  39. package/wasm/reasoningbank/reasoningbank_wasm_bg.wasm.d.ts +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flywheel-governance.js","sourceRoot":"","sources":["../../src/harness/flywheel-governance.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Trusted evaluation/promotion boundary (ADR-077).\n * Candidate jobs create evidence; only a trusted signer plus an atomic CAS can promote.\n */\nimport { createHash, sign as cryptoSign, verify as cryptoVerify } from 'node:crypto';\nimport { evaluateMetaHarnessPromotion } from './metaharness.js';\n\nexport interface BenchmarkAnchor {\n version: 1;\n project: string;\n corpusHash: string;\n embeddingSpaceHash: string;\n indexTopologyHash: string;\n evaluatorHash: string;\n}\nexport interface PromotionMetrics {\n primary: number;\n noopRate: number;\n costPerWin: number;\n regressed?: boolean;\n}\nexport interface EvaluationReceipt {\n version: 1;\n experimentRevision: string;\n candidateCommit: string;\n candidateHash: string;\n baselineGeneration: string;\n anchor: BenchmarkAnchor;\n anchorHash: string;\n gateFingerprint: string;\n baseline: PromotionMetrics;\n candidate: PromotionMetrics;\n anchorMetric?: { baseline: number; candidate: number };\n createdAt: string;\n}\nexport interface PromotionProposal {\n version: 1;\n receipt: EvaluationReceipt;\n receiptHash: string;\n promote: boolean;\n reasons: string[];\n}\nexport interface PromotionAuthorization {\n version: 1;\n receiptHash: string;\n candidateCommit: string;\n expiresAt: string;\n signer: string;\n signature: string;\n publicKey: string;\n}\nexport interface AtomicPromotionStore {\n compareAndSwap(expectedGeneration: string, candidateHash: string, evidenceHash: string):\n Promise<{ promoted: boolean; generation: string }>;\n}\nexport interface PromotionRecord {\n version: 1;\n receiptHash: string;\n candidateCommit: string;\n candidateHash: string;\n previousGeneration: string;\n generation: string;\n signer: string;\n promotedAt: string;\n}\n\nfunction canonical(value: unknown): string {\n if (Array.isArray(value)) return `[${value.map(canonical).join(',')}]`;\n if (value && typeof value === 'object') {\n const object = value as Record<string, unknown>;\n return `{${Object.keys(object).sort().map((key) => `${JSON.stringify(key)}:${canonical(object[key])}`).join(',')}}`;\n }\n return JSON.stringify(value);\n}\nexport function governanceHash(value: unknown): string {\n return createHash('sha256').update(canonical(value)).digest('hex');\n}\nfunction assertDigest(name: string, digest: string): void {\n if (!/^[a-f0-9]{64}$/.test(digest)) throw new TypeError(`${name} must be a lowercase sha256 digest`);\n}\nexport function createBenchmarkAnchor(input: Omit<BenchmarkAnchor, 'version'>): BenchmarkAnchor {\n for (const field of ['corpusHash', 'embeddingSpaceHash', 'indexTopologyHash', 'evaluatorHash'] as const) {\n assertDigest(field, input[field]);\n }\n if (!input.project.trim()) throw new TypeError('project is required');\n return { version: 1, ...input };\n}\nexport function createEvaluationReceipt(input: Omit<EvaluationReceipt, 'version' | 'anchorHash'>): EvaluationReceipt {\n assertDigest('candidateHash', input.candidateHash);\n assertDigest('gateFingerprint', input.gateFingerprint);\n if (!input.experimentRevision.trim() || !input.candidateCommit.trim() || !input.baselineGeneration.trim()) {\n throw new TypeError('experimentRevision, candidateCommit, and baselineGeneration are required');\n }\n if (!Number.isFinite(Date.parse(input.createdAt))) throw new TypeError('createdAt must be an ISO timestamp');\n return { version: 1, ...input, anchorHash: governanceHash(input.anchor) };\n}\nexport async function evaluateCandidate(receipt: EvaluationReceipt): Promise<PromotionProposal> {\n if (receipt.anchorHash !== governanceHash(receipt.anchor)) throw new Error('benchmark anchor hash mismatch');\n const decision = await evaluateMetaHarnessPromotion({\n baseline: receipt.baseline,\n candidate: receipt.candidate,\n ...(receipt.anchorMetric ? { anchor: receipt.anchorMetric } : {}),\n });\n return {\n version: 1,\n receipt,\n receiptHash: governanceHash(receipt),\n promote: decision.promote,\n reasons: [...decision.reasons],\n };\n}\nfunction authorizationPayload(auth: Omit<PromotionAuthorization, 'signature' | 'publicKey'>): string {\n return canonical(auth);\n}\nexport function authorizePromotion(\n proposal: PromotionProposal,\n signer: string,\n expiresAt: string,\n privateKey: string,\n publicKey: string,\n): PromotionAuthorization {\n if (!proposal.promote) throw new Error('cannot authorize a rejected or inconclusive proposal');\n const unsigned = {\n version: 1 as const,\n receiptHash: proposal.receiptHash,\n candidateCommit: proposal.receipt.candidateCommit,\n expiresAt,\n signer,\n };\n const signature = cryptoSign(null, Buffer.from(authorizationPayload(unsigned)), privateKey).toString('base64');\n return { ...unsigned, signature, publicKey };\n}\nexport function verifyPromotionAuthorization(\n proposal: PromotionProposal,\n authorization: PromotionAuthorization,\n now = new Date(),\n): boolean {\n const expiry = Date.parse(authorization.expiresAt);\n if (!proposal.promote || authorization.receiptHash !== proposal.receiptHash ||\n authorization.candidateCommit !== proposal.receipt.candidateCommit ||\n !Number.isFinite(expiry) || expiry <= now.getTime()) return false;\n const { signature, publicKey, ...unsigned } = authorization;\n try {\n return cryptoVerify(null, Buffer.from(authorizationPayload(unsigned)), publicKey, Buffer.from(signature, 'base64'));\n } catch {\n return false;\n }\n}\nexport async function promoteCandidate(\n proposal: PromotionProposal,\n authorization: PromotionAuthorization,\n store: AtomicPromotionStore,\n options: { now?: Date; trustedPublicKeys: ReadonlySet<string> },\n): Promise<PromotionRecord> {\n const now = options.now ?? new Date();\n if (!options.trustedPublicKeys.has(authorization.publicKey)) throw new Error('untrusted promotion signer');\n if (!verifyPromotionAuthorization(proposal, authorization, now)) throw new Error('invalid promotion authorization');\n if (proposal.receiptHash !== governanceHash(proposal.receipt)) throw new Error('evaluation receipt hash mismatch');\n const result = await store.compareAndSwap(\n proposal.receipt.baselineGeneration,\n proposal.receipt.candidateHash,\n proposal.receiptHash,\n );\n if (!result.promoted) throw new Error('promotion race: baseline generation changed');\n return {\n version: 1,\n receiptHash: proposal.receiptHash,\n candidateCommit: proposal.receipt.candidateCommit,\n candidateHash: proposal.receipt.candidateHash,\n previousGeneration: proposal.receipt.baselineGeneration,\n generation: result.generation,\n signer: authorization.signer,\n promotedAt: now.toISOString(),\n };\n}\nexport function verifyGovernanceReplay(\n bundle: { proposal: PromotionProposal; authorization: PromotionAuthorization; promotion?: PromotionRecord },\n options: { now?: Date; trustedPublicKeys: ReadonlySet<string> },\n): { valid: boolean; reasons: string[] } {\n const reasons: string[] = [];\n if (bundle.proposal.receiptHash !== governanceHash(bundle.proposal.receipt)) reasons.push('receipt hash mismatch');\n if (!options.trustedPublicKeys.has(bundle.authorization.publicKey)) reasons.push('untrusted signer');\n if (!verifyPromotionAuthorization(bundle.proposal, bundle.authorization, options.now)) reasons.push('invalid authorization');\n if (bundle.promotion && (bundle.promotion.receiptHash !== bundle.proposal.receiptHash ||\n bundle.promotion.candidateHash !== bundle.proposal.receipt.candidateHash)) {\n reasons.push('promotion lineage mismatch');\n }\n return { valid: reasons.length === 0, reasons };\n}\n"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The single lazy integration boundary for ruvector's pinned MetaHarness stack.
3
+ * Ordinary agentic-flow imports do not initialize research infrastructure.
4
+ */
5
+ export { METAHARNESS_VERSIONS, assertMetaHarnessSafePayload, evaluateMetaHarnessPromotion, getMetaHarnessCapabilities, runMetaHarnessDarwin, runMetaHarnessFlywheel, scanMetaHarnessRewardHacks, verifyMetaHarnessReplay, } from 'ruvector';
6
+ //# sourceMappingURL=metaharness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metaharness.d.ts","sourceRoot":"","sources":["../../src/harness/metaharness.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The single lazy integration boundary for ruvector's pinned MetaHarness stack.
3
+ * Ordinary agentic-flow imports do not initialize research infrastructure.
4
+ */
5
+ export { METAHARNESS_VERSIONS, assertMetaHarnessSafePayload, evaluateMetaHarnessPromotion, getMetaHarnessCapabilities, runMetaHarnessDarwin, runMetaHarnessFlywheel, scanMetaHarnessRewardHacks, verifyMetaHarnessReplay, } from 'ruvector';
6
+ //# sourceMappingURL=metaharness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metaharness.js","sourceRoot":"","sources":["../../src/harness/metaharness.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,UAAU,CAAC","sourcesContent":["/**\n * The single lazy integration boundary for ruvector's pinned MetaHarness stack.\n * Ordinary agentic-flow imports do not initialize research infrastructure.\n */\nexport {\n METAHARNESS_VERSIONS,\n assertMetaHarnessSafePayload,\n evaluateMetaHarnessPromotion,\n getMetaHarnessCapabilities,\n runMetaHarnessDarwin,\n runMetaHarnessFlywheel,\n scanMetaHarnessRewardHacks,\n verifyMetaHarnessReplay,\n} from 'ruvector';\n"]}
@@ -0,0 +1,15 @@
1
+ export type McpProfile = 'readonly' | 'retrieval' | 'learning' | 'admin';
2
+ export declare function parseMcpProfile(value: string | undefined): McpProfile;
3
+ export declare function isMcpToolAllowed(name: string, options: {
4
+ profile: McpProfile;
5
+ allowDarwinExecution?: boolean;
6
+ }): boolean;
7
+ export declare function installMcpPolicy<T extends {
8
+ addTool: (tool: {
9
+ name: string;
10
+ }) => unknown;
11
+ }>(server: T, options: {
12
+ profile: McpProfile;
13
+ allowDarwinExecution?: boolean;
14
+ }): T;
15
+ //# sourceMappingURL=mcp-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-policy.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-policy.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;AAYzE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAMrE;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/D,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAA;CAAE,EACzF,MAAM,EAAE,CAAC,EACT,OAAO,EAAE;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/D,CAAC,CAOH"}
@@ -0,0 +1,36 @@
1
+ const READONLY = [
2
+ /^agentic_flow_(list|list_all|agent_info|check_conflicts)/,
3
+ /^agentdb_(stats|pattern_search|pattern_stats)$/,
4
+ /^harness_(capabilities|manifest|verify)$/,
5
+ /parse_markdown$/,
6
+ /_(stats|get_profile|list_profiles|benchmark)$/,
7
+ ];
8
+ const RETRIEVAL = [...READONLY, /search$/, /context$/];
9
+ const LEARNING = [...RETRIEVAL, /^agentic_flow_agent$/, /^agentdb_pattern_store$/, /^sona_/];
10
+ export function parseMcpProfile(value) {
11
+ const profile = value ?? 'readonly';
12
+ if (!['readonly', 'retrieval', 'learning', 'admin'].includes(profile)) {
13
+ throw new Error(`invalid MCP profile: ${profile}`);
14
+ }
15
+ return profile;
16
+ }
17
+ export function isMcpToolAllowed(name, options) {
18
+ if (name === 'harness_repair') {
19
+ return options.profile === 'admin' && options.allowDarwinExecution === true;
20
+ }
21
+ if (options.profile === 'admin')
22
+ return true;
23
+ const rules = options.profile === 'learning' ? LEARNING :
24
+ options.profile === 'retrieval' ? RETRIEVAL : READONLY;
25
+ return rules.some((rule) => rule.test(name));
26
+ }
27
+ export function installMcpPolicy(server, options) {
28
+ const addTool = server.addTool.bind(server);
29
+ server.addTool = ((tool) => {
30
+ if (isMcpToolAllowed(tool.name, options))
31
+ return addTool(tool);
32
+ return undefined;
33
+ });
34
+ return server;
35
+ }
36
+ //# sourceMappingURL=mcp-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-policy.js","sourceRoot":"","sources":["../../src/mcp/mcp-policy.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG;IACf,0DAA0D;IAC1D,gDAAgD;IAChD,0CAA0C;IAC1C,iBAAiB;IACjB,+CAA+C;CAChD,CAAC;AACF,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,QAAQ,CAAC,CAAC;AAE7F,MAAM,UAAU,eAAe,CAAC,KAAyB;IACvD,MAAM,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC;IACpC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,OAAqB,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAAgE;IAEhE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,oBAAoB,KAAK,IAAI,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAS,EACT,OAAgE;IAEhE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,IAAsB,EAAE,EAAE;QAC3C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC,CAAiB,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["export type McpProfile = 'readonly' | 'retrieval' | 'learning' | 'admin';\n\nconst READONLY = [\n /^agentic_flow_(list|list_all|agent_info|check_conflicts)/,\n /^agentdb_(stats|pattern_search|pattern_stats)$/,\n /^harness_(capabilities|manifest|verify)$/,\n /parse_markdown$/,\n /_(stats|get_profile|list_profiles|benchmark)$/,\n];\nconst RETRIEVAL = [...READONLY, /search$/, /context$/];\nconst LEARNING = [...RETRIEVAL, /^agentic_flow_agent$/, /^agentdb_pattern_store$/, /^sona_/];\n\nexport function parseMcpProfile(value: string | undefined): McpProfile {\n const profile = value ?? 'readonly';\n if (!['readonly', 'retrieval', 'learning', 'admin'].includes(profile)) {\n throw new Error(`invalid MCP profile: ${profile}`);\n }\n return profile as McpProfile;\n}\n\nexport function isMcpToolAllowed(\n name: string,\n options: { profile: McpProfile; allowDarwinExecution?: boolean },\n): boolean {\n if (name === 'harness_repair') {\n return options.profile === 'admin' && options.allowDarwinExecution === true;\n }\n if (options.profile === 'admin') return true;\n const rules = options.profile === 'learning' ? LEARNING :\n options.profile === 'retrieval' ? RETRIEVAL : READONLY;\n return rules.some((rule) => rule.test(name));\n}\n\nexport function installMcpPolicy<T extends { addTool: (tool: { name: string }) => unknown }>(\n server: T,\n options: { profile: McpProfile; allowDarwinExecution?: boolean },\n): T {\n const addTool = server.addTool.bind(server);\n server.addTool = ((tool: { name: string }) => {\n if (isMcpToolAllowed(tool.name, options)) return addTool(tool);\n return undefined;\n }) as T['addTool'];\n return server;\n}\n"]}
@@ -5,6 +5,7 @@ import { FastMCP } from 'fastmcp';
5
5
  import { z } from 'zod';
6
6
  import { execFileSync } from 'child_process';
7
7
  import { registerHarnessTools } from './tools/harness-tools.js';
8
+ import { installMcpPolicy, parseMcpProfile } from './mcp-policy.js';
8
9
  // Security: All shell-outs use execFileSync with argv arrays (shell: false) to
9
10
  // prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce
10
11
  // execSync with template-string interpolation here — every prior occurrence in
@@ -28,6 +29,12 @@ const server = new FastMCP({
28
29
  name: 'agentic-flow',
29
30
  version: '1.0.8'
30
31
  });
32
+ const mcpProfile = parseMcpProfile(process.env.AGENTIC_FLOW_MCP_PROFILE);
33
+ installMcpPolicy(server, {
34
+ profile: mcpProfile,
35
+ allowDarwinExecution: process.env.AGENTIC_FLOW_MCP_ENABLE_DARWIN === 'true',
36
+ });
37
+ console.error(`🔐 MCP capability profile: ${mcpProfile}`);
31
38
  // ADR-075: harness evolution/repair + provenance tools (harness_repair,
32
39
  // harness_manifest, harness_verify).
33
40
  registerHarnessTools(server);
@@ -1 +1 @@
1
- {"version":3,"file":"standalone-stdio.js","sourceRoot":"","sources":["../../src/mcp/standalone-stdio.ts"],"names":[],"mappings":";AACA,+HAA+H;AAC/H,6FAA6F;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,+EAA+E;AAC/E,gFAAgF;AAChF,+EAA+E;AAC/E,wEAAwE;AACxE,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC;AAEhD,wDAAwD;AACxD,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,gDAAgD;IAChD,IAAI,OAAO,CAAC,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC;QAC5D,uCAAuC;QACvC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IACD,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAChE,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAEvD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC;IACzB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,wEAAwE;AACxE,qCAAqC;AACrC,oBAAoB,CAAC,MAA+D,CAAC,CAAC;AAEtF,+BAA+B;AAC/B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,wJAAwJ;IACrK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8GAA8G,CAAC;QAC1I,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAEtE,yBAAyB;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4JAA4J,CAAC;QACnM,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wPAAwP,CAAC;QAE7U,oBAAoB;QACpB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;QACpI,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;QAEtI,iBAAiB;QACjB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC7G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6HAA6H,CAAC;QACxL,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;QAE3H,0BAA0B;QAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6FAA6F,CAAC;QAExI,iBAAiB;QACjB,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wGAAwG,CAAC;QAChL,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAE/F,oBAAoB;QACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;QACrH,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,uEAAuE,CAAC;KACtI,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EACd,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,OAAO,EACP,OAAO,EACP,YAAY,EACb,EAAE,EAAE;QACH,IAAI,CAAC;YACH,sEAAsE;YACtE,kEAAkE;YAClE,MAAM,IAAI,GAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEnF,mBAAmB;YACnB,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACvC,IAAI,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAEhD,6BAA6B;YAC7B,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/B,IAAI,eAAe;gBAAE,GAAG,CAAC,iBAAiB,GAAG,eAAe,CAAC;YAC7D,IAAI,gBAAgB;gBAAE,GAAG,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;YAEhE,iBAAiB;YACjB,IAAI,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,IAAI,WAAW,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YAC/E,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAE5D,cAAc;YACd,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YAEpD,SAAS;YACT,IAAI,YAAY;gBAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACtD,IAAI,OAAO;gBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEpC,YAAY;YACZ,IAAI,YAAY;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEvC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;gBACvC,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,OAAO,IAAI,MAAM;gBAC1B,GAAG;aACJ,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,KAAK,EAAE,KAAK,IAAI,SAAS;gBACzB,QAAQ,EAAE,QAAQ,IAAI,WAAW;gBACjC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,wCAAwC;IACrD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE;gBACtE,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBAC1B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,4BAA4B;AAC5B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,2JAA2J;IACxK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;QAChG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QAC5E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QAClG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,yDAAyD,CAAC;QACrH,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;KACrI,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;QACtE,IAAI,CAAC;YACH,MAAM,IAAI,GAAa;gBACrB,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ;gBAC1C,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,WAAW;gBAC5B,UAAU,EAAE,YAAY;aACzB,CAAC;YACF,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACzE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAErE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;gBACvC,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,kCAAkC;aAChD,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,QAAQ,EAAE,QAAQ,IAAI,QAAQ;gBAC9B,OAAO,EAAE,4BAA4B;gBACrC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,4CAA4C;AAC5C,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,6IAA6I;IAC1J,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,mFAAmF,CAAC;QAC3K,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qFAAqF,CAAC;KAC5K,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,CAAC,EAAE;gBAClG,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAG,YAAY,IAAI,YAAY,KAAK,KAAK;oBACrD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC;oBACtD,CAAC,CAAC,MAAM,CAAC;gBAEX,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,QAAQ,CAAC,MAAM;oBACtB,YAAY,EAAE,YAAY,IAAI,KAAK;oBACnC,MAAM,EAAE,QAAQ;iBACjB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,YAAY,IAAI,KAAK;gBACnC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,yHAAyH;IACtI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACjE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;gBACnF,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,kCAAkC;AAClC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,sIAAsI;IACnJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;gBAClF,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,iCAAiC;AACjC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,gKAAgK;IAC7K,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,gIAAgI,CAAC;QAC/O,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;KAC9G,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAEjG,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5C,CAAC;YAED,2DAA2D;YAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,kDAAkD;YAEvE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;gBACxB,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,QAAQ,EAAE,QAAQ,IAAI,UAAU;gBAChC,QAAQ;gBACR,cAAc,EAAE,yEAAyE;gBACzF,IAAI,EAAE,8FAA8F;aACrG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,2CAA2C;AAC3C,iDAAiD;AACjD,2CAA2C;AAE3C,2CAA2C;AAC3C,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,mMAAmM;IAChN,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAClE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QACjG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC;QACrH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;KACrH,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACxE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,oBAAoB;YACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,mBAAmB,eAAe,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAE/D,kCAAkC;YAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnD,MAAM,OAAO,GAA8B;oBACzC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;oBACtD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;oBACxC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;iBAC/C,CAAC;gBACF,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YAC1C,CAAC;YAED,8FAA8F;YAC9F,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;gBACpG,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC9D,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK,CAAE,sDAAsD;aACvE,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAElC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC/C,6CAA6C;gBAC7C,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAEjD,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,eAAe;oBACvB,QAAQ,EAAE,eAAe;oBACzB,WAAW,EAAE,YAAY;oBACzB,UAAU,EAAE,MAAM,CAAC,OAAO;oBAC1B,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;oBACtD,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,OAAO,EAAE,yBAAyB,eAAe,KAAK,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;iBAC/H,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAE/D,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,sBAAsB;oBAC9B,QAAQ,EAAE,eAAe;oBACzB,UAAU,EAAE,iBAAiB,GAAG,GAAG;oBACnC,iBAAiB,EAAE,IAAI;oBACvB,OAAO,EAAE,wCAAwC,iBAAiB,2CAA2C;oBAC7G,UAAU,EAAE,yDAAyD,eAAe,KAAK,YAAY,oBAAoB,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,oBAAoB,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM;oBAC5M,YAAY,EAAE;wBACZ,IAAI,EAAE,oBAAoB;wBAC1B,KAAK,EAAE,OAAO;wBACd,IAAI,EAAE,sBAAsB,eAAe,sBAAsB,YAAY,uBAAuB,YAAY,qBAAqB,SAAS,EAAE;wBAChJ,MAAM,EAAE,0CAA0C,iBAAiB,gHAAgH;qBACpL;iBACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,mCAAmC;AACnC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,oHAAoH;IACjI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACtB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;SACjE,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACvC,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;oBACtD,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;oBAChD,CAAC,CAAC,EAAE,CAAC;gBAEP,kBAAkB;gBAClB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACxD,MAAM,OAAO,GAA8B;wBACzC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;wBACtD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;wBACxC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;qBAC/C,CAAC;oBACF,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBAC1C,CAAC;gBAED,aAAa;gBACb,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;oBACpG,GAAG,aAAa;oBAChB,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;oBAC3B,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC;gBAE/B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC/C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,MAAM,CAAC,OAAO;wBAC1B,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;qBACvD,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,OAAO,EAAE,KAAK;wBACd,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;wBACtD,MAAM,EAAE,gBAAgB;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAEzD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,UAAU;gBACV,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU;gBACjC,gBAAgB,EAAE,YAAY;gBAC9B,cAAc,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxD,OAAO;gBACP,gBAAgB,EAAE,kBAAkB,YAAY,2BAA2B,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;aAChK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,mDAAmD;AACnD,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,0JAA0J;IACvK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;KAC/G,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,6BAA6B;YAC7B,MAAM,KAAK,GAAG,0EAA0E,CAAC;YACzF,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC;YAEV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;gBAC7D,KAAK,CAAC,IAAI,CAAC;oBACT,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE;oBAChC,YAAY,EAAE,WAAW,CAAC,IAAI,EAAE;oBAChC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;oBAC3B,QAAQ,EAAE,QAAQ,IAAI,SAAS;iBAChC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,mHAAmH,CAAC,CAAC;YACvI,CAAC;YAED,mCAAmC;YACnC,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;oBACtD,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;oBAChD,CAAC,CAAC,EAAE,CAAC;gBAEP,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACxD,MAAM,OAAO,GAA8B;wBACzC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;wBACtD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;wBACxC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;qBAC/C,CAAC;oBACF,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBAC1C,CAAC;gBAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;oBACpG,GAAG,aAAa;oBAChB,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;oBAC3B,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC;gBAE/B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC/C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,WAAW,EAAE,IAAI,CAAC,YAAY;wBAC9B,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,MAAM,CAAC,OAAO;qBAC3B,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,eAAe;wBAC1B,OAAO,EAAE,KAAK;wBACd,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;qBACvD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAEzD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,KAAK,CAAC,MAAM;gBAC1B,UAAU;gBACV,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU;gBACjC,gBAAgB,EAAE,YAAY;gBAC9B,OAAO;aACR,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,2CAA2C;AAC3C,yCAAyC;AACzC,2CAA2C;AAE3C,gCAAgC;AAChC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,oHAAoH;IACjI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;gBAC7D,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBAC1B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;gBACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,gCAAgC;AAChC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uIAAuI;IACpJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACpE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC7F,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACtE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACvE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KACxE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;QACtG,IAAI,CAAC;YACH,MAAM,OAAO,GAAa;gBACxB,SAAS,EAAE,WAAW,EAAE,OAAO;gBAC/B,SAAS;gBACT,IAAI;gBACJ,MAAM,CAAC,QAAQ,EAAE;gBACjB,OAAO,CAAC,QAAQ,EAAE;aACnB,CAAC;YAEF,IAAI,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChE,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;gBAC1C,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,SAAS;gBACT,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,MAAM;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,8CAA8C;gBACvD,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,kCAAkC;AAClC,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,oJAAoJ;IACjK,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QAC5E,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAC1F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC7F,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACnF,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KAC9F,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;QACrE,IAAI,CAAC;YACH,MAAM,OAAO,GAAa,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE1F,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChE,IAAI,YAAY;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBAC3C,IAAI,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEtD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;gBAC1C,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,CAAC,EAAE,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE;oBACP,SAAS;oBACT,aAAa,EAAE,aAAa,IAAI,KAAK;oBACrC,YAAY,EAAE,YAAY,IAAI,KAAK;iBACpC;gBACD,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtB,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,sCAAsC;aACnE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,+HAA+H;IAC5I,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACxD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KAClG,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACrG,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,gBAAgB,EAAE,CAAC,IAAI,CAAC;gBACxB,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtB,OAAO,EAAE,mDAAmD;aAC7D,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,0BAA0B;AAC1B,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,mHAAmH;IAChI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;KAChH,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,2EAA2E;oBACpF,OAAO,EAAE,6FAA6F;iBACvG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;YAED,oFAAoF;YACpF,wEAAwE;YACxE,MAAM,IAAI,GAAG;gBACX,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,aAAa;gBACxB,OAAO,EAAE,kCAAkC;gBAC3C,IAAI,EAAE,wGAAwG;gBAC9G,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE;oBACT,+CAA+C;oBAC/C,sDAAsD;oBACtD,2DAA2D;iBAC5D;aACF,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;AACvF,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAC5E,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACjE,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACtE,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACvE,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAClE,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;AACxE,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;AAC3E,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;AAC3E,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC1E,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC1E,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACjE,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;AAC9E,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;AAC9E,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACvE,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACrE,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAEhD,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACjD,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\n/* eslint-disable @typescript-eslint/no-explicit-any -- pre-existing catch(error: any) handlers; outside scope of CWE-78 fix */\n// Standalone agentic-flow MCP server - runs directly via stdio without spawning subprocesses\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\nimport { registerHarnessTools } from './tools/harness-tools.js';\n\n// Security: All shell-outs use execFileSync with argv arrays (shell: false) to\n// prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce\n// execSync with template-string interpolation here — every prior occurrence in\n// this file was an injection sink reachable through MCP tool arguments.\nconst NPX_EXEC_OPTS = { shell: false as const };\n\n// Suppress FastMCP internal warnings for cleaner output\nconst originalConsoleWarn = console.warn;\nconsole.warn = (...args: any[]) => {\n const message = args.join(' ');\n // Filter out FastMCP client capability warnings\n if (message.includes('could not infer client capabilities')) {\n // Replace with friendly status message\n console.error('⏳ Waiting for MCP client connection...');\n return;\n }\n originalConsoleWarn.apply(console, args);\n};\n\nconsole.error('🚀 Starting Agentic-Flow MCP Server (stdio)...');\nconsole.error('📦 Local agentic-flow tools available');\n\nconst server = new FastMCP({\n name: 'agentic-flow',\n version: '1.0.8'\n});\n\n// ADR-075: harness evolution/repair + provenance tools (harness_repair,\n// harness_manifest, harness_verify).\nregisterHarnessTools(server as unknown as Parameters<typeof registerHarnessTools>[0]);\n\n// Tool: Run agentic-flow agent\nserver.addTool({\n name: 'agentic_flow_agent',\n description: 'Execute an agentic-flow agent with a specific task. Supports multiple providers (Anthropic, OpenRouter, ONNX) and comprehensive configuration options.',\n parameters: z.object({\n agent: z.string().describe('Agent type (coder, researcher, analyst, etc.) - Use agentic_flow_list_agents to see all 66+ available agents'),\n task: z.string().describe('Task description for the agent to execute'),\n\n // Provider Configuration\n model: z.string().optional().describe('Model to use (e.g., \"claude-sonnet-4-5-20250929\" for Anthropic, \"meta-llama/llama-3.1-8b-instruct\" for OpenRouter, or \"Xenova/gpt2\" for ONNX local models)'),\n provider: z.enum(['anthropic', 'openrouter', 'onnx', 'gemini']).optional().describe('LLM provider: \"anthropic\" (default, highest quality, requires ANTHROPIC_API_KEY), \"gemini\" (free tier, requires GOOGLE_GEMINI_API_KEY), \"openrouter\" (99% cost savings, requires OPENROUTER_API_KEY), \"onnx\" (free local inference, no API key needed)'),\n\n // API Configuration\n anthropicApiKey: z.string().optional().describe('Anthropic API key (sk-ant-...) - overrides ANTHROPIC_API_KEY environment variable'),\n openrouterApiKey: z.string().optional().describe('OpenRouter API key (sk-or-...) - overrides OPENROUTER_API_KEY environment variable'),\n\n // Agent Behavior\n stream: z.boolean().optional().default(false).describe('Enable streaming output (real-time response chunks)'),\n temperature: z.number().min(0).max(1).optional().describe('Sampling temperature (0.0-1.0): lower = more focused/deterministic, higher = more creative/random. Default varies by agent.'),\n maxTokens: z.number().positive().optional().describe('Maximum tokens in response (default: 4096). Controls output length.'),\n\n // Directory Configuration\n agentsDir: z.string().optional().describe('Custom agents directory path (default: .claude/agents) - for using custom agent definitions'),\n\n // Output Options\n outputFormat: z.enum(['text', 'json', 'markdown']).optional().describe('Output format: \"text\" (default, human-readable), \"json\" (structured data), \"markdown\" (formatted docs)'),\n verbose: z.boolean().optional().default(false).describe('Enable verbose logging for debugging'),\n\n // Execution Control\n timeout: z.number().positive().optional().describe('Execution timeout in milliseconds (default: 300000 = 5 minutes)'),\n retryOnError: z.boolean().optional().default(false).describe('Automatically retry on transient errors (rate limits, network issues)')\n }),\n execute: async ({\n agent,\n task,\n model,\n provider,\n anthropicApiKey,\n openrouterApiKey,\n stream,\n temperature,\n maxTokens,\n agentsDir,\n outputFormat,\n verbose,\n timeout,\n retryOnError\n }) => {\n try {\n // Build argv (NOT a shell string) — every user-supplied value stays a\n // separate argv element and cannot be reinterpreted by the shell.\n const args: string[] = ['--yes', 'agentic-flow', '--agent', agent, '--task', task];\n\n // Provider & Model\n if (model) args.push('--model', model);\n if (provider) args.push('--provider', provider);\n\n // API Keys (set as env vars)\n const env = { ...process.env };\n if (anthropicApiKey) env.ANTHROPIC_API_KEY = anthropicApiKey;\n if (openrouterApiKey) env.OPENROUTER_API_KEY = openrouterApiKey;\n\n // Agent Behavior\n if (stream) args.push('--stream');\n if (temperature !== undefined) args.push('--temperature', String(temperature));\n if (maxTokens) args.push('--max-tokens', String(maxTokens));\n\n // Directories\n if (agentsDir) args.push('--agents-dir', agentsDir);\n\n // Output\n if (outputFormat) args.push('--output', outputFormat);\n if (verbose) args.push('--verbose');\n\n // Execution\n if (retryOnError) args.push('--retry');\n\n const result = execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: timeout || 300000,\n env\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n model: model || 'default',\n provider: provider || 'anthropic',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to execute agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List available agents\nserver.addTool({\n name: 'agentic_flow_list_agents',\n description: 'List all available agentic-flow agents',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', '--list'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agents: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Create custom agent\nserver.addTool({\n name: 'agentic_flow_create_agent',\n description: 'Create a new custom agent in .claude/agents directory. Supports conflict detection and will warn if agent already exists in package or local directories.',\n parameters: z.object({\n name: z.string().describe('Agent name (will be converted to kebab-case, e.g., my-custom-agent)'),\n description: z.string().describe('Agent description (what this agent does)'),\n systemPrompt: z.string().describe('System prompt that defines the agent behavior and personality'),\n category: z.string().optional().default('custom').describe('Category/folder to organize the agent (default: custom)'),\n tools: z.array(z.string()).optional().describe('Optional list of tools this agent can use (e.g., [\"web-search\", \"code-execution\"])')\n }),\n execute: async ({ name, description, systemPrompt, category, tools }) => {\n try {\n const args: string[] = [\n '--yes', 'agentic-flow', 'agent', 'create',\n '--name', name,\n '--description', description,\n '--prompt', systemPrompt\n ];\n if (category && category !== 'custom') args.push('--category', category);\n if (tools && tools.length > 0) args.push('--tools', tools.join(','));\n\n const result = execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 60000,\n input: 'y\\n' // Auto-confirm if conflict exists\n });\n\n return JSON.stringify({\n success: true,\n name,\n category: category || 'custom',\n message: 'Agent created successfully',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to create agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List agents with source information\nserver.addTool({\n name: 'agentic_flow_list_all_agents',\n description: 'List all available agents including both package agents and custom local agents. Shows source (package or local) and handles deduplication.',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary').describe('Output format: summary (brief list), detailed (full info), json (structured data)'),\n filterSource: z.enum(['all', 'package', 'local']).optional().default('all').describe('Filter by source: all, package (npm distribution), or local (custom .claude/agents)')\n }),\n execute: async ({ format, filterSource }) => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'list', format || 'summary'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n if (format === 'json') {\n const agents = JSON.parse(result);\n const filtered = filterSource && filterSource !== 'all'\n ? agents.filter((a: any) => a.source === filterSource)\n : agents;\n\n return JSON.stringify({\n success: true,\n count: filtered.length,\n filterSource: filterSource || 'all',\n agents: filtered\n }, null, 2);\n }\n\n return JSON.stringify({\n success: true,\n filterSource: filterSource || 'all',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Get agent information\nserver.addTool({\n name: 'agentic_flow_agent_info',\n description: 'Get detailed information about a specific agent including its source, description, category, and system prompt preview.',\n parameters: z.object({\n name: z.string().describe('Agent name to get information about')\n }),\n execute: async ({ name }) => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'info', name], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agent: name,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get agent info: ${error.message}`);\n }\n }\n});\n\n// Tool: Check for agent conflicts\nserver.addTool({\n name: 'agentic_flow_check_conflicts',\n description: 'Check for conflicts between package agents and local custom agents. Identifies agents with the same relative path in both locations.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'conflicts'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to check conflicts: ${error.message}`);\n }\n }\n});\n\n// Tool: Optimize model selection\nserver.addTool({\n name: 'agentic_flow_optimize_model',\n description: 'Automatically select the optimal model for an agent and task based on priorities (quality, cost, speed, privacy). Returns model recommendation with reasoning.',\n parameters: z.object({\n agent: z.string().describe('Agent type (e.g., coder, researcher, reviewer)'),\n task: z.string().describe('Task description'),\n priority: z.enum(['quality', 'balanced', 'cost', 'speed', 'privacy']).optional().default('balanced').describe('Optimization priority: quality (best results), balanced (cost/quality), cost (cheapest), speed (fastest), privacy (local only)'),\n max_cost: z.number().positive().optional().describe('Maximum cost per task in dollars (optional budget cap)')\n }),\n execute: async ({ agent, task, priority, max_cost }) => {\n try {\n const args: string[] = ['--yes', 'agentic-flow', '--agent', agent, '--task', task, '--optimize'];\n\n if (priority && priority !== 'balanced') {\n args.push('--priority', priority);\n }\n\n if (max_cost) {\n args.push('--max-cost', String(max_cost));\n }\n\n // Add dry-run to just get recommendation without execution\n args.push('--help'); // This will show the optimization without running\n\n execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n priority: priority || 'balanced',\n max_cost,\n recommendation: 'Model optimization available - use --optimize flag with agent execution',\n note: 'To apply optimization, use agentic_flow_agent tool with optimize_model parameter set to true'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to optimize model: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// Agent Booster Tools (352x faster code editing)\n// ========================================\n\n// Tool: Apply code edit with Agent Booster\nserver.addTool({\n name: 'agent_booster_edit_file',\n description: 'Ultra-fast code editing (352x faster than cloud APIs, $0 cost). Apply precise code edits using Agent Booster\\'s local WASM engine. Use \"// ... existing code ...\" markers for unchanged sections.',\n parameters: z.object({\n target_filepath: z.string().describe('Path of the file to modify'),\n instructions: z.string().describe('First-person instruction (e.g., \"I will add error handling\")'),\n code_edit: z.string().describe('Precise code lines to edit, using \"// ... existing code ...\" for unchanged sections'),\n language: z.string().optional().describe('Programming language (auto-detected from file extension if not provided)')\n }),\n execute: async ({ target_filepath, instructions, code_edit, language }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Read current file\n if (!fs.existsSync(target_filepath)) {\n throw new Error(`File not found: ${target_filepath}`);\n }\n\n const originalCode = fs.readFileSync(target_filepath, 'utf-8');\n\n // Detect language if not provided\n if (!language) {\n const ext = path.extname(target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit using agent-booster@0.2.2 CLI (automatically installs from npm if not available)\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000 // Allow time for npx to download package on first run\n });\n\n const parsed = JSON.parse(result);\n\n if (parsed.success && parsed.confidence >= 0.7) {\n // High confidence - use Agent Booster result\n fs.writeFileSync(target_filepath, parsed.output);\n\n return JSON.stringify({\n success: true,\n method: 'agent_booster',\n filepath: target_filepath,\n instruction: instructions,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n strategy: parsed.strategy,\n message: `✅ Successfully edited ${target_filepath} (${parsed.latency}ms, ${(parsed.confidence * 100).toFixed(1)}% confidence)`\n }, null, 2);\n } else {\n // Low confidence - fall back to LLM for complex edits\n const confidencePercent = (parsed.confidence * 100).toFixed(1);\n\n return JSON.stringify({\n success: false,\n method: 'agent_booster_failed',\n filepath: target_filepath,\n confidence: confidencePercent + '%',\n fallback_required: true,\n message: `⚠️ Agent Booster confidence too low (${confidencePercent}%). Falling back to LLM for complex edit.`,\n suggestion: `Use agentic_flow_agent with task: \"Apply this edit to ${target_filepath}: ${instructions}. Original code: ${originalCode.substring(0, 500)}... Target edit: ${code_edit.substring(0, 500)}...\"`,\n llm_fallback: {\n tool: 'agentic_flow_agent',\n agent: 'coder',\n task: `Apply code edit to ${target_filepath}:\\n\\nInstructions: ${instructions}\\n\\nOriginal code:\\n${originalCode}\\n\\nTarget edit:\\n${code_edit}`,\n reason: `Agent Booster pattern matching failed (${confidencePercent}% confidence). This edit requires LLM reasoning for: structural changes, complex logic, or vague instructions.`\n }\n }, null, 2);\n }\n } catch (error: any) {\n throw new Error(`Failed to edit file: ${error.message}`);\n }\n }\n});\n\n// Tool: Batch apply multiple edits\nserver.addTool({\n name: 'agent_booster_batch_edit',\n description: 'Apply multiple code edits in a single operation (ultra-fast batch processing). Perfect for multi-file refactoring.',\n parameters: z.object({\n edits: z.array(z.object({\n target_filepath: z.string().describe('File path'),\n instructions: z.string().describe('First-person instruction'),\n code_edit: z.string().describe('Code edit with markers'),\n language: z.string().optional().describe('Programming language')\n })).describe('Array of edit requests')\n }),\n execute: async ({ edits }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n // Detect language\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n success: true,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n reason: 'Low confidence'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n total: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n avg_latency_ms: (totalLatency / edits.length).toFixed(1),\n results,\n performance_note: `Agent Booster: ${totalLatency}ms total vs Morph LLM: ~${edits.length * 352}ms (${((edits.length * 352) / totalLatency).toFixed(1)}x faster)`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Batch edit failed: ${error.message}`);\n }\n }\n});\n\n// Tool: Parse markdown code blocks and apply edits\nserver.addTool({\n name: 'agent_booster_parse_markdown',\n description: 'Parse markdown code blocks with filepath= and instruction= metadata, then apply all edits. Compatible with LLM-generated multi-file refactoring outputs.',\n parameters: z.object({\n markdown: z.string().describe('Markdown text containing code blocks with filepath= and instruction= metadata')\n }),\n execute: async ({ markdown }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Parse markdown code blocks\n const regex = /```(?:(\\w+))?\\s*filepath=([^\\s]+)\\s+instruction=([^\\n]+)\\n([\\s\\S]*?)```/g;\n const edits = [];\n let match;\n\n while ((match = regex.exec(markdown)) !== null) {\n const [, language, filepath, instruction, code_edit] = match;\n edits.push({\n target_filepath: filepath.trim(),\n instructions: instruction.trim(),\n code_edit: code_edit.trim(),\n language: language || undefined\n });\n }\n\n if (edits.length === 0) {\n throw new Error('No code blocks found in markdown. Expected format: ```language filepath=path instruction=description\\\\ncode\\\\n```');\n }\n\n // Apply all edits using batch tool\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n instruction: edit.instructions,\n success: true,\n latency_ms: parsed.latency\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n parsed_edits: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n results\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to parse and apply markdown edits: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// AgentDB Vector Database Tools (Core 5)\n// ========================================\n\n// Tool: Get database statistics\nserver.addTool({\n name: 'agentdb_stats',\n description: 'Enhanced database statistics including table counts, memory usage, and performance metrics for all AgentDB tables.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['agentdb', 'db', 'stats'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n stats: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get database stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Store reasoning pattern\nserver.addTool({\n name: 'agentdb_pattern_store',\n description: 'Store a reasoning pattern in ReasoningBank for future retrieval and learning. Patterns capture successful problem-solving approaches.',\n parameters: z.object({\n sessionId: z.string().describe('Session identifier for the pattern'),\n task: z.string().describe('Task description that was solved'),\n reward: z.number().min(0).max(1).describe('Success metric (0-1, where 1 is perfect success)'),\n success: z.boolean().describe('Whether the task was completed successfully'),\n critique: z.string().optional().describe('Self-reflection or critique of the approach'),\n input: z.string().optional().describe('Input or context for the task'),\n output: z.string().optional().describe('Output or solution generated'),\n latencyMs: z.number().optional().describe('Time taken in milliseconds'),\n tokensUsed: z.number().optional().describe('Number of tokens consumed')\n }),\n execute: async ({ sessionId, task, reward, success, critique, input, output, latencyMs, tokensUsed }) => {\n try {\n const cliArgs: string[] = [\n 'agentdb', 'reflexion', 'store',\n sessionId,\n task,\n reward.toString(),\n success.toString()\n ];\n\n if (critique) cliArgs.push(critique);\n if (input) cliArgs.push(input);\n if (output) cliArgs.push(output);\n if (latencyMs !== undefined) cliArgs.push(latencyMs.toString());\n if (tokensUsed !== undefined) cliArgs.push(tokensUsed.toString());\n\n const result = execFileSync('npx', cliArgs, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n sessionId,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n reward,\n stored: true,\n message: 'Pattern stored successfully in ReasoningBank',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to store pattern: ${error.message}`);\n }\n }\n});\n\n// Tool: Search reasoning patterns\nserver.addTool({\n name: 'agentdb_pattern_search',\n description: 'Search for similar reasoning patterns in ReasoningBank by task description. Retrieves past successful approaches to guide current problem-solving.',\n parameters: z.object({\n task: z.string().describe('Task description to search for similar patterns'),\n k: z.number().optional().default(5).describe('Number of results to retrieve (default: 5)'),\n minReward: z.number().optional().describe('Minimum reward threshold (0-1) to filter results'),\n onlySuccesses: z.boolean().optional().describe('Only retrieve successful episodes'),\n onlyFailures: z.boolean().optional().describe('Only retrieve failed episodes (for learning)')\n }),\n execute: async ({ task, k, minReward, onlySuccesses, onlyFailures }) => {\n try {\n const cliArgs: string[] = ['agentdb', 'reflexion', 'retrieve', task, (k || 5).toString()];\n\n if (minReward !== undefined) cliArgs.push(minReward.toString());\n if (onlyFailures) cliArgs.push('true', 'false');\n else if (onlySuccesses) cliArgs.push('false', 'true');\n\n const result = execFileSync('npx', cliArgs, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n query: task,\n k: k || 5,\n filters: {\n minReward,\n onlySuccesses: onlySuccesses || false,\n onlyFailures: onlyFailures || false\n },\n results: result.trim(),\n message: `Retrieved ${k || 5} similar patterns from ReasoningBank`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search patterns: ${error.message}`);\n }\n }\n});\n\n// Tool: Get pattern statistics\nserver.addTool({\n name: 'agentdb_pattern_stats',\n description: 'Get aggregated statistics and critique summary for patterns related to a specific task. Provides insights from past attempts.',\n parameters: z.object({\n task: z.string().describe('Task description to analyze'),\n k: z.number().optional().default(5).describe('Number of recent patterns to analyze (default: 5)')\n }),\n execute: async ({ task, k }) => {\n try {\n const result = execFileSync('npx', ['agentdb', 'reflexion', 'critique-summary', task, String(k || 5)], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n task,\n analyzedPatterns: k || 5,\n summary: result.trim(),\n message: 'Pattern statistics and critique summary generated'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get pattern stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Clear query cache\nserver.addTool({\n name: 'agentdb_clear_cache',\n description: 'Clear the AgentDB query cache to free memory or force fresh queries. Useful after bulk updates or when debugging.',\n parameters: z.object({\n confirm: z.boolean().optional().default(false).describe('Confirmation to clear cache (set to true to proceed)')\n }),\n execute: async ({ confirm }) => {\n try {\n if (!confirm) {\n return JSON.stringify({\n success: false,\n message: 'Cache clear operation requires confirmation. Set confirm=true to proceed.',\n warning: 'Clearing cache will remove all cached query results and may temporarily impact performance.'\n }, null, 2);\n }\n\n // Since there's no direct CLI command for cache clearing, we'll provide information\n // In a real implementation, this would call a cache management function\n const info = {\n success: true,\n operation: 'cache_clear',\n message: 'Query cache cleared successfully',\n note: 'AgentDB uses in-memory cache for query optimization. Cache will rebuild automatically on next queries.',\n timestamp: new Date().toISOString(),\n nextSteps: [\n 'First queries after cache clear may be slower',\n 'Cache will warm up with frequently accessed patterns',\n 'Consider running agentdb_stats to verify memory reduction'\n ]\n };\n\n return JSON.stringify(info, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to clear cache: ${error.message}`);\n }\n }\n});\n\nconsole.error('✅ Registered 15 tools (7 agentic-flow + 3 agent-booster + 5 agentdb):');\nconsole.error(' • agentic_flow_agent (execute agent with 13 parameters)');\nconsole.error(' • agentic_flow_list_agents (list 66+ agents)');\nconsole.error(' • agentic_flow_create_agent (create custom agent)');\nconsole.error(' • agentic_flow_list_all_agents (list with sources)');\nconsole.error(' • agentic_flow_agent_info (get agent details)');\nconsole.error(' • agentic_flow_check_conflicts (conflict detection)');\nconsole.error(' • agentic_flow_optimize_model (auto-select best model)');\nconsole.error(' • agent_booster_edit_file (352x faster code editing) ⚡');\nconsole.error(' • agent_booster_batch_edit (multi-file refactoring) ⚡');\nconsole.error(' • agent_booster_parse_markdown (LLM output parsing) ⚡');\nconsole.error(' • agentdb_stats (database statistics) 🧠 NEW');\nconsole.error(' • agentdb_pattern_store (store reasoning patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_search (search similar patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_stats (pattern analytics) 🧠 NEW');\nconsole.error(' • agentdb_clear_cache (clear query cache) 🧠 NEW');\nconsole.error('🔌 Starting stdio transport...');\n\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ Agentic-Flow MCP server running on stdio');\n console.error('💡 Ready for MCP client connections (e.g., Claude Desktop)');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
1
+ {"version":3,"file":"standalone-stdio.js","sourceRoot":"","sources":["../../src/mcp/standalone-stdio.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/* eslint-disable @typescript-eslint/no-explicit-any -- pre-existing catch(error: any) handlers; outside scope of CWE-78 fix */\n// Standalone agentic-flow MCP server - runs directly via stdio without spawning subprocesses\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\nimport { registerHarnessTools } from './tools/harness-tools.js';\nimport { installMcpPolicy, parseMcpProfile } from './mcp-policy.js';\n\n// Security: All shell-outs use execFileSync with argv arrays (shell: false) to\n// prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce\n// execSync with template-string interpolation here — every prior occurrence in\n// this file was an injection sink reachable through MCP tool arguments.\nconst NPX_EXEC_OPTS = { shell: false as const };\n\n// Suppress FastMCP internal warnings for cleaner output\nconst originalConsoleWarn = console.warn;\nconsole.warn = (...args: any[]) => {\n const message = args.join(' ');\n // Filter out FastMCP client capability warnings\n if (message.includes('could not infer client capabilities')) {\n // Replace with friendly status message\n console.error('⏳ Waiting for MCP client connection...');\n return;\n }\n originalConsoleWarn.apply(console, args);\n};\n\nconsole.error('🚀 Starting Agentic-Flow MCP Server (stdio)...');\nconsole.error('📦 Local agentic-flow tools available');\n\nconst server = new FastMCP({\n name: 'agentic-flow',\n version: '1.0.8'\n});\n\nconst mcpProfile = parseMcpProfile(process.env.AGENTIC_FLOW_MCP_PROFILE);\ninstallMcpPolicy(server as any, {\n profile: mcpProfile,\n allowDarwinExecution: process.env.AGENTIC_FLOW_MCP_ENABLE_DARWIN === 'true',\n});\nconsole.error(`🔐 MCP capability profile: ${mcpProfile}`);\n\n// ADR-075: harness evolution/repair + provenance tools (harness_repair,\n// harness_manifest, harness_verify).\nregisterHarnessTools(server as unknown as Parameters<typeof registerHarnessTools>[0]);\n\n// Tool: Run agentic-flow agent\nserver.addTool({\n name: 'agentic_flow_agent',\n description: 'Execute an agentic-flow agent with a specific task. Supports multiple providers (Anthropic, OpenRouter, ONNX) and comprehensive configuration options.',\n parameters: z.object({\n agent: z.string().describe('Agent type (coder, researcher, analyst, etc.) - Use agentic_flow_list_agents to see all 66+ available agents'),\n task: z.string().describe('Task description for the agent to execute'),\n\n // Provider Configuration\n model: z.string().optional().describe('Model to use (e.g., \"claude-sonnet-4-5-20250929\" for Anthropic, \"meta-llama/llama-3.1-8b-instruct\" for OpenRouter, or \"Xenova/gpt2\" for ONNX local models)'),\n provider: z.enum(['anthropic', 'openrouter', 'onnx', 'gemini']).optional().describe('LLM provider: \"anthropic\" (default, highest quality, requires ANTHROPIC_API_KEY), \"gemini\" (free tier, requires GOOGLE_GEMINI_API_KEY), \"openrouter\" (99% cost savings, requires OPENROUTER_API_KEY), \"onnx\" (free local inference, no API key needed)'),\n\n // API Configuration\n anthropicApiKey: z.string().optional().describe('Anthropic API key (sk-ant-...) - overrides ANTHROPIC_API_KEY environment variable'),\n openrouterApiKey: z.string().optional().describe('OpenRouter API key (sk-or-...) - overrides OPENROUTER_API_KEY environment variable'),\n\n // Agent Behavior\n stream: z.boolean().optional().default(false).describe('Enable streaming output (real-time response chunks)'),\n temperature: z.number().min(0).max(1).optional().describe('Sampling temperature (0.0-1.0): lower = more focused/deterministic, higher = more creative/random. Default varies by agent.'),\n maxTokens: z.number().positive().optional().describe('Maximum tokens in response (default: 4096). Controls output length.'),\n\n // Directory Configuration\n agentsDir: z.string().optional().describe('Custom agents directory path (default: .claude/agents) - for using custom agent definitions'),\n\n // Output Options\n outputFormat: z.enum(['text', 'json', 'markdown']).optional().describe('Output format: \"text\" (default, human-readable), \"json\" (structured data), \"markdown\" (formatted docs)'),\n verbose: z.boolean().optional().default(false).describe('Enable verbose logging for debugging'),\n\n // Execution Control\n timeout: z.number().positive().optional().describe('Execution timeout in milliseconds (default: 300000 = 5 minutes)'),\n retryOnError: z.boolean().optional().default(false).describe('Automatically retry on transient errors (rate limits, network issues)')\n }),\n execute: async ({\n agent,\n task,\n model,\n provider,\n anthropicApiKey,\n openrouterApiKey,\n stream,\n temperature,\n maxTokens,\n agentsDir,\n outputFormat,\n verbose,\n timeout,\n retryOnError\n }) => {\n try {\n // Build argv (NOT a shell string) — every user-supplied value stays a\n // separate argv element and cannot be reinterpreted by the shell.\n const args: string[] = ['--yes', 'agentic-flow', '--agent', agent, '--task', task];\n\n // Provider & Model\n if (model) args.push('--model', model);\n if (provider) args.push('--provider', provider);\n\n // API Keys (set as env vars)\n const env = { ...process.env };\n if (anthropicApiKey) env.ANTHROPIC_API_KEY = anthropicApiKey;\n if (openrouterApiKey) env.OPENROUTER_API_KEY = openrouterApiKey;\n\n // Agent Behavior\n if (stream) args.push('--stream');\n if (temperature !== undefined) args.push('--temperature', String(temperature));\n if (maxTokens) args.push('--max-tokens', String(maxTokens));\n\n // Directories\n if (agentsDir) args.push('--agents-dir', agentsDir);\n\n // Output\n if (outputFormat) args.push('--output', outputFormat);\n if (verbose) args.push('--verbose');\n\n // Execution\n if (retryOnError) args.push('--retry');\n\n const result = execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: timeout || 300000,\n env\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n model: model || 'default',\n provider: provider || 'anthropic',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to execute agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List available agents\nserver.addTool({\n name: 'agentic_flow_list_agents',\n description: 'List all available agentic-flow agents',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', '--list'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agents: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Create custom agent\nserver.addTool({\n name: 'agentic_flow_create_agent',\n description: 'Create a new custom agent in .claude/agents directory. Supports conflict detection and will warn if agent already exists in package or local directories.',\n parameters: z.object({\n name: z.string().describe('Agent name (will be converted to kebab-case, e.g., my-custom-agent)'),\n description: z.string().describe('Agent description (what this agent does)'),\n systemPrompt: z.string().describe('System prompt that defines the agent behavior and personality'),\n category: z.string().optional().default('custom').describe('Category/folder to organize the agent (default: custom)'),\n tools: z.array(z.string()).optional().describe('Optional list of tools this agent can use (e.g., [\"web-search\", \"code-execution\"])')\n }),\n execute: async ({ name, description, systemPrompt, category, tools }) => {\n try {\n const args: string[] = [\n '--yes', 'agentic-flow', 'agent', 'create',\n '--name', name,\n '--description', description,\n '--prompt', systemPrompt\n ];\n if (category && category !== 'custom') args.push('--category', category);\n if (tools && tools.length > 0) args.push('--tools', tools.join(','));\n\n const result = execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 60000,\n input: 'y\\n' // Auto-confirm if conflict exists\n });\n\n return JSON.stringify({\n success: true,\n name,\n category: category || 'custom',\n message: 'Agent created successfully',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to create agent: ${error.message}`);\n }\n }\n});\n\n// Tool: List agents with source information\nserver.addTool({\n name: 'agentic_flow_list_all_agents',\n description: 'List all available agents including both package agents and custom local agents. Shows source (package or local) and handles deduplication.',\n parameters: z.object({\n format: z.enum(['summary', 'detailed', 'json']).optional().default('summary').describe('Output format: summary (brief list), detailed (full info), json (structured data)'),\n filterSource: z.enum(['all', 'package', 'local']).optional().default('all').describe('Filter by source: all, package (npm distribution), or local (custom .claude/agents)')\n }),\n execute: async ({ format, filterSource }) => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'list', format || 'summary'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n if (format === 'json') {\n const agents = JSON.parse(result);\n const filtered = filterSource && filterSource !== 'all'\n ? agents.filter((a: any) => a.source === filterSource)\n : agents;\n\n return JSON.stringify({\n success: true,\n count: filtered.length,\n filterSource: filterSource || 'all',\n agents: filtered\n }, null, 2);\n }\n\n return JSON.stringify({\n success: true,\n filterSource: filterSource || 'all',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to list agents: ${error.message}`);\n }\n }\n});\n\n// Tool: Get agent information\nserver.addTool({\n name: 'agentic_flow_agent_info',\n description: 'Get detailed information about a specific agent including its source, description, category, and system prompt preview.',\n parameters: z.object({\n name: z.string().describe('Agent name to get information about')\n }),\n execute: async ({ name }) => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'info', name], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n agent: name,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get agent info: ${error.message}`);\n }\n }\n});\n\n// Tool: Check for agent conflicts\nserver.addTool({\n name: 'agentic_flow_check_conflicts',\n description: 'Check for conflicts between package agents and local custom agents. Identifies agents with the same relative path in both locations.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['--yes', 'agentic-flow', 'agent', 'conflicts'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to check conflicts: ${error.message}`);\n }\n }\n});\n\n// Tool: Optimize model selection\nserver.addTool({\n name: 'agentic_flow_optimize_model',\n description: 'Automatically select the optimal model for an agent and task based on priorities (quality, cost, speed, privacy). Returns model recommendation with reasoning.',\n parameters: z.object({\n agent: z.string().describe('Agent type (e.g., coder, researcher, reviewer)'),\n task: z.string().describe('Task description'),\n priority: z.enum(['quality', 'balanced', 'cost', 'speed', 'privacy']).optional().default('balanced').describe('Optimization priority: quality (best results), balanced (cost/quality), cost (cheapest), speed (fastest), privacy (local only)'),\n max_cost: z.number().positive().optional().describe('Maximum cost per task in dollars (optional budget cap)')\n }),\n execute: async ({ agent, task, priority, max_cost }) => {\n try {\n const args: string[] = ['--yes', 'agentic-flow', '--agent', agent, '--task', task, '--optimize'];\n\n if (priority && priority !== 'balanced') {\n args.push('--priority', priority);\n }\n\n if (max_cost) {\n args.push('--max-cost', String(max_cost));\n }\n\n // Add dry-run to just get recommendation without execution\n args.push('--help'); // This will show the optimization without running\n\n execFileSync('npx', args, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n agent,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n priority: priority || 'balanced',\n max_cost,\n recommendation: 'Model optimization available - use --optimize flag with agent execution',\n note: 'To apply optimization, use agentic_flow_agent tool with optimize_model parameter set to true'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to optimize model: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// Agent Booster Tools (352x faster code editing)\n// ========================================\n\n// Tool: Apply code edit with Agent Booster\nserver.addTool({\n name: 'agent_booster_edit_file',\n description: 'Ultra-fast code editing (352x faster than cloud APIs, $0 cost). Apply precise code edits using Agent Booster\\'s local WASM engine. Use \"// ... existing code ...\" markers for unchanged sections.',\n parameters: z.object({\n target_filepath: z.string().describe('Path of the file to modify'),\n instructions: z.string().describe('First-person instruction (e.g., \"I will add error handling\")'),\n code_edit: z.string().describe('Precise code lines to edit, using \"// ... existing code ...\" for unchanged sections'),\n language: z.string().optional().describe('Programming language (auto-detected from file extension if not provided)')\n }),\n execute: async ({ target_filepath, instructions, code_edit, language }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Read current file\n if (!fs.existsSync(target_filepath)) {\n throw new Error(`File not found: ${target_filepath}`);\n }\n\n const originalCode = fs.readFileSync(target_filepath, 'utf-8');\n\n // Detect language if not provided\n if (!language) {\n const ext = path.extname(target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit using agent-booster@0.2.2 CLI (automatically installs from npm if not available)\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000 // Allow time for npx to download package on first run\n });\n\n const parsed = JSON.parse(result);\n\n if (parsed.success && parsed.confidence >= 0.7) {\n // High confidence - use Agent Booster result\n fs.writeFileSync(target_filepath, parsed.output);\n\n return JSON.stringify({\n success: true,\n method: 'agent_booster',\n filepath: target_filepath,\n instruction: instructions,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n strategy: parsed.strategy,\n message: `✅ Successfully edited ${target_filepath} (${parsed.latency}ms, ${(parsed.confidence * 100).toFixed(1)}% confidence)`\n }, null, 2);\n } else {\n // Low confidence - fall back to LLM for complex edits\n const confidencePercent = (parsed.confidence * 100).toFixed(1);\n\n return JSON.stringify({\n success: false,\n method: 'agent_booster_failed',\n filepath: target_filepath,\n confidence: confidencePercent + '%',\n fallback_required: true,\n message: `⚠️ Agent Booster confidence too low (${confidencePercent}%). Falling back to LLM for complex edit.`,\n suggestion: `Use agentic_flow_agent with task: \"Apply this edit to ${target_filepath}: ${instructions}. Original code: ${originalCode.substring(0, 500)}... Target edit: ${code_edit.substring(0, 500)}...\"`,\n llm_fallback: {\n tool: 'agentic_flow_agent',\n agent: 'coder',\n task: `Apply code edit to ${target_filepath}:\\n\\nInstructions: ${instructions}\\n\\nOriginal code:\\n${originalCode}\\n\\nTarget edit:\\n${code_edit}`,\n reason: `Agent Booster pattern matching failed (${confidencePercent}% confidence). This edit requires LLM reasoning for: structural changes, complex logic, or vague instructions.`\n }\n }, null, 2);\n }\n } catch (error: any) {\n throw new Error(`Failed to edit file: ${error.message}`);\n }\n }\n});\n\n// Tool: Batch apply multiple edits\nserver.addTool({\n name: 'agent_booster_batch_edit',\n description: 'Apply multiple code edits in a single operation (ultra-fast batch processing). Perfect for multi-file refactoring.',\n parameters: z.object({\n edits: z.array(z.object({\n target_filepath: z.string().describe('File path'),\n instructions: z.string().describe('First-person instruction'),\n code_edit: z.string().describe('Code edit with markers'),\n language: z.string().optional().describe('Programming language')\n })).describe('Array of edit requests')\n }),\n execute: async ({ edits }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n // Detect language\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n // Apply edit\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n success: true,\n latency_ms: parsed.latency,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%',\n reason: 'Low confidence'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n total: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n avg_latency_ms: (totalLatency / edits.length).toFixed(1),\n results,\n performance_note: `Agent Booster: ${totalLatency}ms total vs Morph LLM: ~${edits.length * 352}ms (${((edits.length * 352) / totalLatency).toFixed(1)}x faster)`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Batch edit failed: ${error.message}`);\n }\n }\n});\n\n// Tool: Parse markdown code blocks and apply edits\nserver.addTool({\n name: 'agent_booster_parse_markdown',\n description: 'Parse markdown code blocks with filepath= and instruction= metadata, then apply all edits. Compatible with LLM-generated multi-file refactoring outputs.',\n parameters: z.object({\n markdown: z.string().describe('Markdown text containing code blocks with filepath= and instruction= metadata')\n }),\n execute: async ({ markdown }) => {\n try {\n const fs = await import('fs');\n const path = await import('path');\n\n // Parse markdown code blocks\n const regex = /```(?:(\\w+))?\\s*filepath=([^\\s]+)\\s+instruction=([^\\n]+)\\n([\\s\\S]*?)```/g;\n const edits = [];\n let match;\n\n while ((match = regex.exec(markdown)) !== null) {\n const [, language, filepath, instruction, code_edit] = match;\n edits.push({\n target_filepath: filepath.trim(),\n instructions: instruction.trim(),\n code_edit: code_edit.trim(),\n language: language || undefined\n });\n }\n\n if (edits.length === 0) {\n throw new Error('No code blocks found in markdown. Expected format: ```language filepath=path instruction=description\\\\ncode\\\\n```');\n }\n\n // Apply all edits using batch tool\n const results = [];\n let totalLatency = 0;\n\n for (const edit of edits) {\n const originalCode = fs.existsSync(edit.target_filepath)\n ? fs.readFileSync(edit.target_filepath, 'utf-8')\n : '';\n\n let language = edit.language;\n if (!language) {\n const ext = path.extname(edit.target_filepath).slice(1);\n const langMap: { [key: string]: string } = {\n 'ts': 'typescript', 'js': 'javascript', 'py': 'python',\n 'rs': 'rust', 'go': 'go', 'java': 'java',\n 'c': 'c', 'cpp': 'cpp', 'h': 'c', 'hpp': 'cpp'\n };\n language = langMap[ext] || 'javascript';\n }\n\n const result = execFileSync('npx', ['--yes', 'agent-booster@0.2.2', 'apply', '--language', language], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n input: JSON.stringify({ code: originalCode, edit: edit.code_edit }),\n maxBuffer: 10 * 1024 * 1024,\n timeout: 5000\n });\n\n const parsed = JSON.parse(result);\n totalLatency += parsed.latency;\n\n if (parsed.success && parsed.confidence >= 0.7) {\n fs.writeFileSync(edit.target_filepath, parsed.output);\n results.push({\n file: edit.target_filepath,\n instruction: edit.instructions,\n success: true,\n latency_ms: parsed.latency\n });\n } else {\n results.push({\n file: edit.target_filepath,\n success: false,\n confidence: (parsed.confidence * 100).toFixed(1) + '%'\n });\n }\n }\n\n const successful = results.filter(r => r.success).length;\n\n return JSON.stringify({\n success: true,\n parsed_edits: edits.length,\n successful,\n failed: edits.length - successful,\n total_latency_ms: totalLatency,\n results\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to parse and apply markdown edits: ${error.message}`);\n }\n }\n});\n\n// ========================================\n// AgentDB Vector Database Tools (Core 5)\n// ========================================\n\n// Tool: Get database statistics\nserver.addTool({\n name: 'agentdb_stats',\n description: 'Enhanced database statistics including table counts, memory usage, and performance metrics for all AgentDB tables.',\n parameters: z.object({}),\n execute: async () => {\n try {\n const result = execFileSync('npx', ['agentdb', 'db', 'stats'], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 5 * 1024 * 1024,\n timeout: 10000\n });\n\n return JSON.stringify({\n success: true,\n stats: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get database stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Store reasoning pattern\nserver.addTool({\n name: 'agentdb_pattern_store',\n description: 'Store a reasoning pattern in ReasoningBank for future retrieval and learning. Patterns capture successful problem-solving approaches.',\n parameters: z.object({\n sessionId: z.string().describe('Session identifier for the pattern'),\n task: z.string().describe('Task description that was solved'),\n reward: z.number().min(0).max(1).describe('Success metric (0-1, where 1 is perfect success)'),\n success: z.boolean().describe('Whether the task was completed successfully'),\n critique: z.string().optional().describe('Self-reflection or critique of the approach'),\n input: z.string().optional().describe('Input or context for the task'),\n output: z.string().optional().describe('Output or solution generated'),\n latencyMs: z.number().optional().describe('Time taken in milliseconds'),\n tokensUsed: z.number().optional().describe('Number of tokens consumed')\n }),\n execute: async ({ sessionId, task, reward, success, critique, input, output, latencyMs, tokensUsed }) => {\n try {\n const cliArgs: string[] = [\n 'agentdb', 'reflexion', 'store',\n sessionId,\n task,\n reward.toString(),\n success.toString()\n ];\n\n if (critique) cliArgs.push(critique);\n if (input) cliArgs.push(input);\n if (output) cliArgs.push(output);\n if (latencyMs !== undefined) cliArgs.push(latencyMs.toString());\n if (tokensUsed !== undefined) cliArgs.push(tokensUsed.toString());\n\n const result = execFileSync('npx', cliArgs, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n sessionId,\n task: task.substring(0, 100) + (task.length > 100 ? '...' : ''),\n reward,\n stored: true,\n message: 'Pattern stored successfully in ReasoningBank',\n output: result.trim()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to store pattern: ${error.message}`);\n }\n }\n});\n\n// Tool: Search reasoning patterns\nserver.addTool({\n name: 'agentdb_pattern_search',\n description: 'Search for similar reasoning patterns in ReasoningBank by task description. Retrieves past successful approaches to guide current problem-solving.',\n parameters: z.object({\n task: z.string().describe('Task description to search for similar patterns'),\n k: z.number().optional().default(5).describe('Number of results to retrieve (default: 5)'),\n minReward: z.number().optional().describe('Minimum reward threshold (0-1) to filter results'),\n onlySuccesses: z.boolean().optional().describe('Only retrieve successful episodes'),\n onlyFailures: z.boolean().optional().describe('Only retrieve failed episodes (for learning)')\n }),\n execute: async ({ task, k, minReward, onlySuccesses, onlyFailures }) => {\n try {\n const cliArgs: string[] = ['agentdb', 'reflexion', 'retrieve', task, (k || 5).toString()];\n\n if (minReward !== undefined) cliArgs.push(minReward.toString());\n if (onlyFailures) cliArgs.push('true', 'false');\n else if (onlySuccesses) cliArgs.push('false', 'true');\n\n const result = execFileSync('npx', cliArgs, {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n query: task,\n k: k || 5,\n filters: {\n minReward,\n onlySuccesses: onlySuccesses || false,\n onlyFailures: onlyFailures || false\n },\n results: result.trim(),\n message: `Retrieved ${k || 5} similar patterns from ReasoningBank`\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search patterns: ${error.message}`);\n }\n }\n});\n\n// Tool: Get pattern statistics\nserver.addTool({\n name: 'agentdb_pattern_stats',\n description: 'Get aggregated statistics and critique summary for patterns related to a specific task. Provides insights from past attempts.',\n parameters: z.object({\n task: z.string().describe('Task description to analyze'),\n k: z.number().optional().default(5).describe('Number of recent patterns to analyze (default: 5)')\n }),\n execute: async ({ task, k }) => {\n try {\n const result = execFileSync('npx', ['agentdb', 'reflexion', 'critique-summary', task, String(k || 5)], {\n ...NPX_EXEC_OPTS,\n encoding: 'utf-8',\n maxBuffer: 10 * 1024 * 1024,\n timeout: 30000\n });\n\n return JSON.stringify({\n success: true,\n task,\n analyzedPatterns: k || 5,\n summary: result.trim(),\n message: 'Pattern statistics and critique summary generated'\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to get pattern stats: ${error.message}`);\n }\n }\n});\n\n// Tool: Clear query cache\nserver.addTool({\n name: 'agentdb_clear_cache',\n description: 'Clear the AgentDB query cache to free memory or force fresh queries. Useful after bulk updates or when debugging.',\n parameters: z.object({\n confirm: z.boolean().optional().default(false).describe('Confirmation to clear cache (set to true to proceed)')\n }),\n execute: async ({ confirm }) => {\n try {\n if (!confirm) {\n return JSON.stringify({\n success: false,\n message: 'Cache clear operation requires confirmation. Set confirm=true to proceed.',\n warning: 'Clearing cache will remove all cached query results and may temporarily impact performance.'\n }, null, 2);\n }\n\n // Since there's no direct CLI command for cache clearing, we'll provide information\n // In a real implementation, this would call a cache management function\n const info = {\n success: true,\n operation: 'cache_clear',\n message: 'Query cache cleared successfully',\n note: 'AgentDB uses in-memory cache for query optimization. Cache will rebuild automatically on next queries.',\n timestamp: new Date().toISOString(),\n nextSteps: [\n 'First queries after cache clear may be slower',\n 'Cache will warm up with frequently accessed patterns',\n 'Consider running agentdb_stats to verify memory reduction'\n ]\n };\n\n return JSON.stringify(info, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to clear cache: ${error.message}`);\n }\n }\n});\n\nconsole.error('✅ Registered 15 tools (7 agentic-flow + 3 agent-booster + 5 agentdb):');\nconsole.error(' • agentic_flow_agent (execute agent with 13 parameters)');\nconsole.error(' • agentic_flow_list_agents (list 66+ agents)');\nconsole.error(' • agentic_flow_create_agent (create custom agent)');\nconsole.error(' • agentic_flow_list_all_agents (list with sources)');\nconsole.error(' • agentic_flow_agent_info (get agent details)');\nconsole.error(' • agentic_flow_check_conflicts (conflict detection)');\nconsole.error(' • agentic_flow_optimize_model (auto-select best model)');\nconsole.error(' • agent_booster_edit_file (352x faster code editing) ⚡');\nconsole.error(' • agent_booster_batch_edit (multi-file refactoring) ⚡');\nconsole.error(' • agent_booster_parse_markdown (LLM output parsing) ⚡');\nconsole.error(' • agentdb_stats (database statistics) 🧠 NEW');\nconsole.error(' • agentdb_pattern_store (store reasoning patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_search (search similar patterns) 🧠 NEW');\nconsole.error(' • agentdb_pattern_stats (pattern analytics) 🧠 NEW');\nconsole.error(' • agentdb_clear_cache (clear query cache) 🧠 NEW');\nconsole.error('🔌 Starting stdio transport...');\n\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ Agentic-Flow MCP server running on stdio');\n console.error('💡 Ready for MCP client connections (e.g., Claude Desktop)');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
@@ -20,6 +20,7 @@ export interface HarnessTool {
20
20
  export declare const harnessRepairTool: HarnessTool;
21
21
  export declare const harnessManifestTool: HarnessTool;
22
22
  export declare const harnessVerifyTool: HarnessTool;
23
+ export declare const harnessCapabilitiesTool: HarnessTool;
23
24
  export declare const HARNESS_TOOLS: readonly HarnessTool[];
24
25
  /** Register all harness tools on a FastMCP-compatible server. */
25
26
  export declare function registerHarnessTools(server: {
@@ -1 +1 @@
1
- {"version":3,"file":"harness-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/harness-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C;AAaD,eAAO,MAAM,iBAAiB,EAAE,WA6B/B,CAAC;AAOF,eAAO,MAAM,mBAAmB,EAAE,WASjC,CAAC;AAgBF,eAAO,MAAM,iBAAiB,EAAE,WAS/B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAAgE,CAAC;AAEjH,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;CAAE,GAAG,IAAI,CAE3F"}
1
+ {"version":3,"file":"harness-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/harness-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C;AAaD,eAAO,MAAM,iBAAiB,EAAE,WA6B/B,CAAC;AAOF,eAAO,MAAM,mBAAmB,EAAE,WASjC,CAAC;AAgBF,eAAO,MAAM,iBAAiB,EAAE,WAS/B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,WAKrC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAK/C,CAAC;AAEF,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;CAAE,GAAG,IAAI,CAE3F"}
@@ -12,6 +12,7 @@
12
12
  import { z } from 'zod';
13
13
  import { repair } from '../../repair/darwin-repair.js';
14
14
  import { buildManifest, verifySignedManifest } from '../../harness/provenance.js';
15
+ import { getMetaHarnessCapabilities } from '../../harness/metaharness.js';
15
16
  const repairParams = z.object({
16
17
  repoRoot: z.string().describe('Path to the repo to evolve/repair'),
17
18
  generations: z.number().int().positive().optional().describe('Generations to run (default 3)'),
@@ -81,7 +82,18 @@ export const harnessVerifyTool = {
81
82
  return JSON.stringify(verifySignedManifest(a.signed), null, 2);
82
83
  },
83
84
  };
84
- export const HARNESS_TOOLS = [harnessRepairTool, harnessManifestTool, harnessVerifyTool];
85
+ export const harnessCapabilitiesTool = {
86
+ name: 'harness_capabilities',
87
+ description: 'Report the pinned ruvector MetaHarness capabilities and whether each lazy runtime is available.',
88
+ parameters: z.object({}),
89
+ execute: async () => JSON.stringify(await getMetaHarnessCapabilities(), null, 2),
90
+ };
91
+ export const HARNESS_TOOLS = [
92
+ harnessCapabilitiesTool,
93
+ harnessRepairTool,
94
+ harnessManifestTool,
95
+ harnessVerifyTool,
96
+ ];
85
97
  /** Register all harness tools on a FastMCP-compatible server. */
86
98
  export function registerHarnessTools(server) {
87
99
  for (const tool of HARNESS_TOOLS)
@@ -1 +1 @@
1
- {"version":3,"file":"harness-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/harness-tools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Harness MCP tools (ADR-075, Track A): expose Darwin harness evolution/repair\n * and provenance over MCP, mirroring the orchestration-side `metaharness_*` tools\n * already present in claude-flow.\n *\n * Each tool validates its own args with its zod schema (so `execute` can be\n * unit-tested by calling it with a plain object), and returns a JSON string —\n * the FastMCP content convention used elsewhere in this server.\n *\n * @see docs/adr/ADR-075-metaharness-harness-evolution-and-provenance.md\n */\n\nimport { z } from 'zod';\nimport { repair } from '../../repair/darwin-repair.js';\nimport { buildManifest, verifySignedManifest, type SignedManifest } from '../../harness/provenance.js';\n\n/** Minimal FastMCP-compatible tool descriptor (subset we use + test). */\nexport interface HarnessTool {\n name: string;\n description: string;\n parameters: z.ZodTypeAny;\n execute: (args: unknown) => Promise<string>;\n}\n\nconst repairParams = z.object({\n repoRoot: z.string().describe('Path to the repo to evolve/repair'),\n generations: z.number().int().positive().optional().describe('Generations to run (default 3)'),\n children: z.number().int().positive().optional().describe('Children per parent per generation (default 4)'),\n seed: z.number().int().optional().describe('Deterministic seed (default 0)'),\n sandboxMode: z\n .enum(['real', 'mock', 'agent'])\n .optional()\n .describe(\"Evaluation substrate: 'real' (test-driven, default), 'mock' (deterministic/Docker-free), 'agent'\"),\n});\n\nexport const harnessRepairTool: HarnessTool = {\n name: 'harness_repair',\n description:\n 'Evolve/repair a repo with Darwin Mode (ADR-074): freeze the model, evolve the harness; keep only variants that measurably improve under a frozen scorer + safety gate. Default sandbox \"real\" gates on the repo tests; \"mock\" is deterministic and Docker-free.',\n parameters: repairParams,\n execute: async (raw: unknown): Promise<string> => {\n const a = repairParams.parse(raw);\n const res = await repair({\n repoRoot: a.repoRoot,\n generations: a.generations,\n childrenPerGeneration: a.children,\n seed: a.seed,\n sandboxMode: a.sandboxMode,\n });\n return JSON.stringify(\n {\n improved: res.improved,\n winnerId: res.winnerId,\n winnerLineage: res.winnerLineage,\n baselineScore: res.baselineScore,\n winnerScore: res.winnerScore,\n deltaOverBaseline: res.deltaOverBaseline,\n generations: res.generations,\n variantsEvaluated: res.variantsEvaluated,\n },\n null,\n 2,\n );\n },\n};\n\nconst manifestParams = z.object({\n files: z.array(z.string()).min(1).describe('Files to include in the provenance manifest'),\n createdAt: z.string().optional().describe('Optional ISO timestamp to embed in the manifest'),\n});\n\nexport const harnessManifestTool: HarnessTool = {\n name: 'harness_manifest',\n description:\n 'Build a provenance manifest (sha256 per file) over harness/agent config files (ADR-075). Sign it locally with the agentic-flow/harness provenance API to produce an Ed25519 witness.',\n parameters: manifestParams,\n execute: async (raw: unknown): Promise<string> => {\n const a = manifestParams.parse(raw);\n return JSON.stringify(buildManifest(a.files, { createdAt: a.createdAt }), null, 2);\n },\n};\n\nconst signedManifestSchema = z.object({\n manifest: z.object({\n version: z.literal(1),\n createdAt: z.string().optional(),\n entries: z.array(z.object({ path: z.string(), sha256: z.string() })),\n }),\n signature: z.string(),\n publicKey: z.string(),\n});\n\nconst verifyParams = z.object({\n signed: signedManifestSchema.describe('A signed manifest bundle { manifest, signature, publicKey }'),\n});\n\nexport const harnessVerifyTool: HarnessTool = {\n name: 'harness_verify',\n description:\n 'Verify a signed harness manifest (Ed25519) and report on-disk drift vs the signed digests (ADR-075). Returns { signatureValid, filesIntact, drift }.',\n parameters: verifyParams,\n execute: async (raw: unknown): Promise<string> => {\n const a = verifyParams.parse(raw);\n return JSON.stringify(verifySignedManifest(a.signed as SignedManifest), null, 2);\n },\n};\n\nexport const HARNESS_TOOLS: readonly HarnessTool[] = [harnessRepairTool, harnessManifestTool, harnessVerifyTool];\n\n/** Register all harness tools on a FastMCP-compatible server. */\nexport function registerHarnessTools(server: { addTool: (tool: HarnessTool) => void }): void {\n for (const tool of HARNESS_TOOLS) server.addTool(tool);\n}\n"]}
1
+ {"version":3,"file":"harness-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/harness-tools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Harness MCP tools (ADR-075, Track A): expose Darwin harness evolution/repair\n * and provenance over MCP, mirroring the orchestration-side `metaharness_*` tools\n * already present in claude-flow.\n *\n * Each tool validates its own args with its zod schema (so `execute` can be\n * unit-tested by calling it with a plain object), and returns a JSON string —\n * the FastMCP content convention used elsewhere in this server.\n *\n * @see docs/adr/ADR-075-metaharness-harness-evolution-and-provenance.md\n */\n\nimport { z } from 'zod';\nimport { repair } from '../../repair/darwin-repair.js';\nimport { buildManifest, verifySignedManifest, type SignedManifest } from '../../harness/provenance.js';\nimport { getMetaHarnessCapabilities } from '../../harness/metaharness.js';\n\n/** Minimal FastMCP-compatible tool descriptor (subset we use + test). */\nexport interface HarnessTool {\n name: string;\n description: string;\n parameters: z.ZodTypeAny;\n execute: (args: unknown) => Promise<string>;\n}\n\nconst repairParams = z.object({\n repoRoot: z.string().describe('Path to the repo to evolve/repair'),\n generations: z.number().int().positive().optional().describe('Generations to run (default 3)'),\n children: z.number().int().positive().optional().describe('Children per parent per generation (default 4)'),\n seed: z.number().int().optional().describe('Deterministic seed (default 0)'),\n sandboxMode: z\n .enum(['real', 'mock', 'agent'])\n .optional()\n .describe(\"Evaluation substrate: 'real' (test-driven, default), 'mock' (deterministic/Docker-free), 'agent'\"),\n});\n\nexport const harnessRepairTool: HarnessTool = {\n name: 'harness_repair',\n description:\n 'Evolve/repair a repo with Darwin Mode (ADR-074): freeze the model, evolve the harness; keep only variants that measurably improve under a frozen scorer + safety gate. Default sandbox \"real\" gates on the repo tests; \"mock\" is deterministic and Docker-free.',\n parameters: repairParams,\n execute: async (raw: unknown): Promise<string> => {\n const a = repairParams.parse(raw);\n const res = await repair({\n repoRoot: a.repoRoot,\n generations: a.generations,\n childrenPerGeneration: a.children,\n seed: a.seed,\n sandboxMode: a.sandboxMode,\n });\n return JSON.stringify(\n {\n improved: res.improved,\n winnerId: res.winnerId,\n winnerLineage: res.winnerLineage,\n baselineScore: res.baselineScore,\n winnerScore: res.winnerScore,\n deltaOverBaseline: res.deltaOverBaseline,\n generations: res.generations,\n variantsEvaluated: res.variantsEvaluated,\n },\n null,\n 2,\n );\n },\n};\n\nconst manifestParams = z.object({\n files: z.array(z.string()).min(1).describe('Files to include in the provenance manifest'),\n createdAt: z.string().optional().describe('Optional ISO timestamp to embed in the manifest'),\n});\n\nexport const harnessManifestTool: HarnessTool = {\n name: 'harness_manifest',\n description:\n 'Build a provenance manifest (sha256 per file) over harness/agent config files (ADR-075). Sign it locally with the agentic-flow/harness provenance API to produce an Ed25519 witness.',\n parameters: manifestParams,\n execute: async (raw: unknown): Promise<string> => {\n const a = manifestParams.parse(raw);\n return JSON.stringify(buildManifest(a.files, { createdAt: a.createdAt }), null, 2);\n },\n};\n\nconst signedManifestSchema = z.object({\n manifest: z.object({\n version: z.literal(1),\n createdAt: z.string().optional(),\n entries: z.array(z.object({ path: z.string(), sha256: z.string() })),\n }),\n signature: z.string(),\n publicKey: z.string(),\n});\n\nconst verifyParams = z.object({\n signed: signedManifestSchema.describe('A signed manifest bundle { manifest, signature, publicKey }'),\n});\n\nexport const harnessVerifyTool: HarnessTool = {\n name: 'harness_verify',\n description:\n 'Verify a signed harness manifest (Ed25519) and report on-disk drift vs the signed digests (ADR-075). Returns { signatureValid, filesIntact, drift }.',\n parameters: verifyParams,\n execute: async (raw: unknown): Promise<string> => {\n const a = verifyParams.parse(raw);\n return JSON.stringify(verifySignedManifest(a.signed as SignedManifest), null, 2);\n },\n};\n\nexport const harnessCapabilitiesTool: HarnessTool = {\n name: 'harness_capabilities',\n description: 'Report the pinned ruvector MetaHarness capabilities and whether each lazy runtime is available.',\n parameters: z.object({}),\n execute: async (): Promise<string> => JSON.stringify(await getMetaHarnessCapabilities(), null, 2),\n};\n\nexport const HARNESS_TOOLS: readonly HarnessTool[] = [\n harnessCapabilitiesTool,\n harnessRepairTool,\n harnessManifestTool,\n harnessVerifyTool,\n];\n\n/** Register all harness tools on a FastMCP-compatible server. */\nexport function registerHarnessTools(server: { addTool: (tool: HarnessTool) => void }): void {\n for (const tool of HARNESS_TOOLS) server.addTool(tool);\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  * Embedding generation for semantic similarity
3
3
  * Uses local transformers.js - no API key required!
4
4
  */
5
- import { pipeline, env } from '@xenova/transformers';
5
+ import { pipeline, env } from '@huggingface/transformers';
6
6
  import { loadConfig } from './config.js';
7
7
  // Configure transformers.js to use WASM backend only (avoid ONNX runtime issues)
8
8
  // The native ONNX runtime causes "DefaultLogger not registered" errors in Node.js
@@ -40,7 +40,7 @@ async function initializeEmbeddings() {
40
40
  console.log('[Embeddings] Initializing local embedding model (Xenova/all-MiniLM-L6-v2)...');
41
41
  console.log('[Embeddings] First run will download ~23MB model...');
42
42
  try {
43
- embeddingPipeline = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', { quantized: true } // Smaller, faster
43
+ embeddingPipeline = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', { dtype: 'q8' } // Transformers.js v3 quantized dtype
44
44
  );
45
45
  console.log('[Embeddings] Local model ready! (384 dimensions)');
46
46
  }