@soleri/core 2.1.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brain/brain.d.ts +10 -1
- package/dist/brain/brain.d.ts.map +1 -1
- package/dist/brain/brain.js +116 -13
- package/dist/brain/brain.js.map +1 -1
- package/dist/brain/intelligence.d.ts +36 -1
- package/dist/brain/intelligence.d.ts.map +1 -1
- package/dist/brain/intelligence.js +119 -14
- package/dist/brain/intelligence.js.map +1 -1
- package/dist/brain/types.d.ts +34 -2
- package/dist/brain/types.d.ts.map +1 -1
- package/dist/cognee/client.d.ts +3 -0
- package/dist/cognee/client.d.ts.map +1 -1
- package/dist/cognee/client.js +17 -0
- package/dist/cognee/client.js.map +1 -1
- package/dist/cognee/sync-manager.d.ts +94 -0
- package/dist/cognee/sync-manager.d.ts.map +1 -0
- package/dist/cognee/sync-manager.js +293 -0
- package/dist/cognee/sync-manager.js.map +1 -0
- package/dist/control/identity-manager.d.ts +22 -0
- package/dist/control/identity-manager.d.ts.map +1 -0
- package/dist/control/identity-manager.js +233 -0
- package/dist/control/identity-manager.js.map +1 -0
- package/dist/control/intent-router.d.ts +32 -0
- package/dist/control/intent-router.d.ts.map +1 -0
- package/dist/control/intent-router.js +242 -0
- package/dist/control/intent-router.js.map +1 -0
- package/dist/control/types.d.ts +68 -0
- package/dist/control/types.d.ts.map +1 -0
- package/dist/control/types.js +9 -0
- package/dist/control/types.js.map +1 -0
- package/dist/curator/curator.d.ts +37 -1
- package/dist/curator/curator.d.ts.map +1 -1
- package/dist/curator/curator.js +199 -1
- package/dist/curator/curator.js.map +1 -1
- package/dist/errors/classify.d.ts +13 -0
- package/dist/errors/classify.d.ts.map +1 -0
- package/dist/errors/classify.js +97 -0
- package/dist/errors/classify.js.map +1 -0
- package/dist/errors/index.d.ts +6 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +4 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/retry.d.ts +40 -0
- package/dist/errors/retry.d.ts.map +1 -0
- package/dist/errors/retry.js +97 -0
- package/dist/errors/retry.js.map +1 -0
- package/dist/errors/types.d.ts +48 -0
- package/dist/errors/types.d.ts.map +1 -0
- package/dist/errors/types.js +59 -0
- package/dist/errors/types.js.map +1 -0
- package/dist/facades/types.d.ts +1 -1
- package/dist/governance/governance.d.ts +42 -0
- package/dist/governance/governance.d.ts.map +1 -0
- package/dist/governance/governance.js +488 -0
- package/dist/governance/governance.js.map +1 -0
- package/dist/governance/index.d.ts +3 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +2 -0
- package/dist/governance/index.js.map +1 -0
- package/dist/governance/types.d.ts +102 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/governance/types.js +3 -0
- package/dist/governance/types.js.map +1 -0
- package/dist/index.d.ts +52 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -1
- package/dist/index.js.map +1 -1
- package/dist/intake/content-classifier.d.ts +14 -0
- package/dist/intake/content-classifier.d.ts.map +1 -0
- package/dist/intake/content-classifier.js +125 -0
- package/dist/intake/content-classifier.js.map +1 -0
- package/dist/intake/dedup-gate.d.ts +17 -0
- package/dist/intake/dedup-gate.d.ts.map +1 -0
- package/dist/intake/dedup-gate.js +66 -0
- package/dist/intake/dedup-gate.js.map +1 -0
- package/dist/intake/intake-pipeline.d.ts +63 -0
- package/dist/intake/intake-pipeline.d.ts.map +1 -0
- package/dist/intake/intake-pipeline.js +373 -0
- package/dist/intake/intake-pipeline.js.map +1 -0
- package/dist/intake/types.d.ts +65 -0
- package/dist/intake/types.d.ts.map +1 -0
- package/dist/intake/types.js +3 -0
- package/dist/intake/types.js.map +1 -0
- package/dist/intelligence/loader.js +1 -1
- package/dist/intelligence/loader.js.map +1 -1
- package/dist/intelligence/types.d.ts +3 -1
- package/dist/intelligence/types.d.ts.map +1 -1
- package/dist/logging/logger.d.ts +37 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +145 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/logging/types.d.ts +19 -0
- package/dist/logging/types.d.ts.map +1 -0
- package/dist/logging/types.js +2 -0
- package/dist/logging/types.js.map +1 -0
- package/dist/loop/loop-manager.d.ts +100 -0
- package/dist/loop/loop-manager.d.ts.map +1 -0
- package/dist/loop/loop-manager.js +379 -0
- package/dist/loop/loop-manager.js.map +1 -0
- package/dist/loop/types.d.ts +103 -0
- package/dist/loop/types.d.ts.map +1 -0
- package/dist/loop/types.js +11 -0
- package/dist/loop/types.js.map +1 -0
- package/dist/persistence/index.d.ts +3 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +2 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/sqlite-provider.d.ts +25 -0
- package/dist/persistence/sqlite-provider.d.ts.map +1 -0
- package/dist/persistence/sqlite-provider.js +59 -0
- package/dist/persistence/sqlite-provider.js.map +1 -0
- package/dist/persistence/types.d.ts +36 -0
- package/dist/persistence/types.d.ts.map +1 -0
- package/dist/persistence/types.js +8 -0
- package/dist/persistence/types.js.map +1 -0
- package/dist/planning/gap-analysis.d.ts +72 -0
- package/dist/planning/gap-analysis.d.ts.map +1 -0
- package/dist/planning/gap-analysis.js +442 -0
- package/dist/planning/gap-analysis.js.map +1 -0
- package/dist/planning/gap-types.d.ts +29 -0
- package/dist/planning/gap-types.d.ts.map +1 -0
- package/dist/planning/gap-types.js +28 -0
- package/dist/planning/gap-types.js.map +1 -0
- package/dist/planning/planner.d.ts +421 -4
- package/dist/planning/planner.d.ts.map +1 -1
- package/dist/planning/planner.js +949 -21
- package/dist/planning/planner.js.map +1 -1
- package/dist/playbooks/generic/brainstorming.d.ts +9 -0
- package/dist/playbooks/generic/brainstorming.d.ts.map +1 -0
- package/dist/playbooks/generic/brainstorming.js +105 -0
- package/dist/playbooks/generic/brainstorming.js.map +1 -0
- package/dist/playbooks/generic/code-review.d.ts +11 -0
- package/dist/playbooks/generic/code-review.d.ts.map +1 -0
- package/dist/playbooks/generic/code-review.js +176 -0
- package/dist/playbooks/generic/code-review.js.map +1 -0
- package/dist/playbooks/generic/subagent-execution.d.ts +9 -0
- package/dist/playbooks/generic/subagent-execution.d.ts.map +1 -0
- package/dist/playbooks/generic/subagent-execution.js +68 -0
- package/dist/playbooks/generic/subagent-execution.js.map +1 -0
- package/dist/playbooks/generic/systematic-debugging.d.ts +9 -0
- package/dist/playbooks/generic/systematic-debugging.d.ts.map +1 -0
- package/dist/playbooks/generic/systematic-debugging.js +87 -0
- package/dist/playbooks/generic/systematic-debugging.js.map +1 -0
- package/dist/playbooks/generic/tdd.d.ts +9 -0
- package/dist/playbooks/generic/tdd.d.ts.map +1 -0
- package/dist/playbooks/generic/tdd.js +70 -0
- package/dist/playbooks/generic/tdd.js.map +1 -0
- package/dist/playbooks/generic/verification.d.ts +9 -0
- package/dist/playbooks/generic/verification.d.ts.map +1 -0
- package/dist/playbooks/generic/verification.js +74 -0
- package/dist/playbooks/generic/verification.js.map +1 -0
- package/dist/playbooks/index.d.ts +4 -0
- package/dist/playbooks/index.d.ts.map +1 -0
- package/dist/playbooks/index.js +5 -0
- package/dist/playbooks/index.js.map +1 -0
- package/dist/playbooks/playbook-registry.d.ts +42 -0
- package/dist/playbooks/playbook-registry.d.ts.map +1 -0
- package/dist/playbooks/playbook-registry.js +227 -0
- package/dist/playbooks/playbook-registry.js.map +1 -0
- package/dist/playbooks/playbook-seeder.d.ts +47 -0
- package/dist/playbooks/playbook-seeder.d.ts.map +1 -0
- package/dist/playbooks/playbook-seeder.js +104 -0
- package/dist/playbooks/playbook-seeder.js.map +1 -0
- package/dist/playbooks/playbook-types.d.ts +132 -0
- package/dist/playbooks/playbook-types.d.ts.map +1 -0
- package/dist/playbooks/playbook-types.js +12 -0
- package/dist/playbooks/playbook-types.js.map +1 -0
- package/dist/project/project-registry.d.ts +79 -0
- package/dist/project/project-registry.d.ts.map +1 -0
- package/dist/project/project-registry.js +274 -0
- package/dist/project/project-registry.js.map +1 -0
- package/dist/project/types.d.ts +28 -0
- package/dist/project/types.d.ts.map +1 -0
- package/dist/project/types.js +5 -0
- package/dist/project/types.js.map +1 -0
- package/dist/prompts/index.d.ts +4 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +3 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/parser.d.ts +17 -0
- package/dist/prompts/parser.d.ts.map +1 -0
- package/dist/prompts/parser.js +47 -0
- package/dist/prompts/parser.js.map +1 -0
- package/dist/prompts/template-manager.d.ts +25 -0
- package/dist/prompts/template-manager.d.ts.map +1 -0
- package/dist/prompts/template-manager.js +71 -0
- package/dist/prompts/template-manager.js.map +1 -0
- package/dist/prompts/types.d.ts +26 -0
- package/dist/prompts/types.d.ts.map +1 -0
- package/dist/prompts/types.js +5 -0
- package/dist/prompts/types.js.map +1 -0
- package/dist/runtime/admin-extra-ops.d.ts +15 -0
- package/dist/runtime/admin-extra-ops.d.ts.map +1 -0
- package/dist/runtime/admin-extra-ops.js +595 -0
- package/dist/runtime/admin-extra-ops.js.map +1 -0
- package/dist/runtime/admin-ops.d.ts +15 -0
- package/dist/runtime/admin-ops.d.ts.map +1 -0
- package/dist/runtime/admin-ops.js +329 -0
- package/dist/runtime/admin-ops.js.map +1 -0
- package/dist/runtime/capture-ops.d.ts +15 -0
- package/dist/runtime/capture-ops.d.ts.map +1 -0
- package/dist/runtime/capture-ops.js +363 -0
- package/dist/runtime/capture-ops.js.map +1 -0
- package/dist/runtime/cognee-sync-ops.d.ts +12 -0
- package/dist/runtime/cognee-sync-ops.d.ts.map +1 -0
- package/dist/runtime/cognee-sync-ops.js +55 -0
- package/dist/runtime/cognee-sync-ops.js.map +1 -0
- package/dist/runtime/core-ops.d.ts +9 -3
- package/dist/runtime/core-ops.d.ts.map +1 -1
- package/dist/runtime/core-ops.js +693 -10
- package/dist/runtime/core-ops.js.map +1 -1
- package/dist/runtime/curator-extra-ops.d.ts +9 -0
- package/dist/runtime/curator-extra-ops.d.ts.map +1 -0
- package/dist/runtime/curator-extra-ops.js +71 -0
- package/dist/runtime/curator-extra-ops.js.map +1 -0
- package/dist/runtime/domain-ops.d.ts.map +1 -1
- package/dist/runtime/domain-ops.js +61 -15
- package/dist/runtime/domain-ops.js.map +1 -1
- package/dist/runtime/grading-ops.d.ts +14 -0
- package/dist/runtime/grading-ops.d.ts.map +1 -0
- package/dist/runtime/grading-ops.js +105 -0
- package/dist/runtime/grading-ops.js.map +1 -0
- package/dist/runtime/intake-ops.d.ts +14 -0
- package/dist/runtime/intake-ops.d.ts.map +1 -0
- package/dist/runtime/intake-ops.js +110 -0
- package/dist/runtime/intake-ops.js.map +1 -0
- package/dist/runtime/loop-ops.d.ts +14 -0
- package/dist/runtime/loop-ops.d.ts.map +1 -0
- package/dist/runtime/loop-ops.js +251 -0
- package/dist/runtime/loop-ops.js.map +1 -0
- package/dist/runtime/memory-cross-project-ops.d.ts +12 -0
- package/dist/runtime/memory-cross-project-ops.d.ts.map +1 -0
- package/dist/runtime/memory-cross-project-ops.js +165 -0
- package/dist/runtime/memory-cross-project-ops.js.map +1 -0
- package/dist/runtime/memory-extra-ops.d.ts +13 -0
- package/dist/runtime/memory-extra-ops.d.ts.map +1 -0
- package/dist/runtime/memory-extra-ops.js +173 -0
- package/dist/runtime/memory-extra-ops.js.map +1 -0
- package/dist/runtime/orchestrate-ops.d.ts +17 -0
- package/dist/runtime/orchestrate-ops.d.ts.map +1 -0
- package/dist/runtime/orchestrate-ops.js +246 -0
- package/dist/runtime/orchestrate-ops.js.map +1 -0
- package/dist/runtime/planning-extra-ops.d.ts +25 -0
- package/dist/runtime/planning-extra-ops.d.ts.map +1 -0
- package/dist/runtime/planning-extra-ops.js +663 -0
- package/dist/runtime/planning-extra-ops.js.map +1 -0
- package/dist/runtime/playbook-ops.d.ts +14 -0
- package/dist/runtime/playbook-ops.d.ts.map +1 -0
- package/dist/runtime/playbook-ops.js +141 -0
- package/dist/runtime/playbook-ops.js.map +1 -0
- package/dist/runtime/project-ops.d.ts +15 -0
- package/dist/runtime/project-ops.d.ts.map +1 -0
- package/dist/runtime/project-ops.js +186 -0
- package/dist/runtime/project-ops.js.map +1 -0
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +65 -3
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/types.d.ts +29 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/vault-extra-ops.d.ts +10 -0
- package/dist/runtime/vault-extra-ops.d.ts.map +1 -0
- package/dist/runtime/vault-extra-ops.js +536 -0
- package/dist/runtime/vault-extra-ops.js.map +1 -0
- package/dist/telemetry/telemetry.d.ts +48 -0
- package/dist/telemetry/telemetry.d.ts.map +1 -0
- package/dist/telemetry/telemetry.js +87 -0
- package/dist/telemetry/telemetry.js.map +1 -0
- package/dist/vault/playbook.d.ts +34 -0
- package/dist/vault/playbook.d.ts.map +1 -0
- package/dist/vault/playbook.js +60 -0
- package/dist/vault/playbook.js.map +1 -0
- package/dist/vault/vault.d.ts +97 -4
- package/dist/vault/vault.d.ts.map +1 -1
- package/dist/vault/vault.js +424 -65
- package/dist/vault/vault.js.map +1 -1
- package/package.json +7 -3
- package/src/__tests__/admin-extra-ops.test.ts +467 -0
- package/src/__tests__/admin-ops.test.ts +271 -0
- package/src/__tests__/brain-intelligence.test.ts +205 -0
- package/src/__tests__/brain.test.ts +134 -3
- package/src/__tests__/capture-ops.test.ts +509 -0
- package/src/__tests__/cognee-integration.test.ts +80 -0
- package/src/__tests__/cognee-sync-manager.test.ts +103 -0
- package/src/__tests__/core-ops.test.ts +292 -2
- package/src/__tests__/curator-extra-ops.test.ts +381 -0
- package/src/__tests__/domain-ops.test.ts +66 -0
- package/src/__tests__/errors.test.ts +388 -0
- package/src/__tests__/governance.test.ts +522 -0
- package/src/__tests__/grading-ops.test.ts +361 -0
- package/src/__tests__/identity-manager.test.ts +243 -0
- package/src/__tests__/intake-pipeline.test.ts +162 -0
- package/src/__tests__/intent-router.test.ts +222 -0
- package/src/__tests__/logger.test.ts +200 -0
- package/src/__tests__/loop-ops.test.ts +469 -0
- package/src/__tests__/memory-cross-project-ops.test.ts +248 -0
- package/src/__tests__/memory-extra-ops.test.ts +352 -0
- package/src/__tests__/orchestrate-ops.test.ts +289 -0
- package/src/__tests__/persistence.test.ts +225 -0
- package/src/__tests__/planner.test.ts +416 -7
- package/src/__tests__/planning-extra-ops.test.ts +706 -0
- package/src/__tests__/playbook-registry.test.ts +326 -0
- package/src/__tests__/playbook-seeder.test.ts +163 -0
- package/src/__tests__/playbook.test.ts +389 -0
- package/src/__tests__/project-ops.test.ts +381 -0
- package/src/__tests__/template-manager.test.ts +222 -0
- package/src/__tests__/vault-extra-ops.test.ts +482 -0
- package/src/brain/brain.ts +185 -16
- package/src/brain/intelligence.ts +179 -10
- package/src/brain/types.ts +40 -2
- package/src/cognee/client.ts +18 -0
- package/src/cognee/sync-manager.ts +389 -0
- package/src/control/identity-manager.ts +354 -0
- package/src/control/intent-router.ts +326 -0
- package/src/control/types.ts +102 -0
- package/src/curator/curator.ts +295 -1
- package/src/errors/classify.ts +102 -0
- package/src/errors/index.ts +5 -0
- package/src/errors/retry.ts +132 -0
- package/src/errors/types.ts +81 -0
- package/src/governance/governance.ts +698 -0
- package/src/governance/index.ts +18 -0
- package/src/governance/types.ts +111 -0
- package/src/index.ts +213 -2
- package/src/intake/content-classifier.ts +146 -0
- package/src/intake/dedup-gate.ts +92 -0
- package/src/intake/intake-pipeline.ts +503 -0
- package/src/intake/types.ts +69 -0
- package/src/intelligence/loader.ts +1 -1
- package/src/intelligence/types.ts +3 -1
- package/src/logging/logger.ts +154 -0
- package/src/logging/types.ts +21 -0
- package/src/loop/loop-manager.ts +448 -0
- package/src/loop/types.ts +115 -0
- package/src/persistence/index.ts +7 -0
- package/src/persistence/sqlite-provider.ts +62 -0
- package/src/persistence/types.ts +44 -0
- package/src/planning/gap-analysis.ts +775 -0
- package/src/planning/gap-types.ts +61 -0
- package/src/planning/planner.ts +1273 -24
- package/src/playbooks/generic/brainstorming.ts +110 -0
- package/src/playbooks/generic/code-review.ts +181 -0
- package/src/playbooks/generic/subagent-execution.ts +74 -0
- package/src/playbooks/generic/systematic-debugging.ts +92 -0
- package/src/playbooks/generic/tdd.ts +75 -0
- package/src/playbooks/generic/verification.ts +79 -0
- package/src/playbooks/index.ts +27 -0
- package/src/playbooks/playbook-registry.ts +284 -0
- package/src/playbooks/playbook-seeder.ts +119 -0
- package/src/playbooks/playbook-types.ts +162 -0
- package/src/project/project-registry.ts +370 -0
- package/src/project/types.ts +31 -0
- package/src/prompts/index.ts +3 -0
- package/src/prompts/parser.ts +59 -0
- package/src/prompts/template-manager.ts +77 -0
- package/src/prompts/types.ts +28 -0
- package/src/runtime/admin-extra-ops.ts +652 -0
- package/src/runtime/admin-ops.ts +340 -0
- package/src/runtime/capture-ops.ts +404 -0
- package/src/runtime/cognee-sync-ops.ts +63 -0
- package/src/runtime/core-ops.ts +787 -9
- package/src/runtime/curator-extra-ops.ts +85 -0
- package/src/runtime/domain-ops.ts +67 -15
- package/src/runtime/grading-ops.ts +130 -0
- package/src/runtime/intake-ops.ts +126 -0
- package/src/runtime/loop-ops.ts +277 -0
- package/src/runtime/memory-cross-project-ops.ts +191 -0
- package/src/runtime/memory-extra-ops.ts +186 -0
- package/src/runtime/orchestrate-ops.ts +278 -0
- package/src/runtime/planning-extra-ops.ts +718 -0
- package/src/runtime/playbook-ops.ts +169 -0
- package/src/runtime/project-ops.ts +202 -0
- package/src/runtime/runtime.ts +77 -3
- package/src/runtime/types.ts +29 -0
- package/src/runtime/vault-extra-ops.ts +606 -0
- package/src/telemetry/telemetry.ts +118 -0
- package/src/vault/playbook.ts +87 -0
- package/src/vault/vault.ts +575 -98
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestration operations — compose planning + brain + vault into high-level workflows.
|
|
3
|
+
*
|
|
4
|
+
* These ops are convenience wrappers that sequence multiple module calls:
|
|
5
|
+
* - orchestrate_plan: brain-informed plan creation
|
|
6
|
+
* - orchestrate_execute: start plan + brain session together
|
|
7
|
+
* - orchestrate_complete: finish plan + brain session + extract knowledge
|
|
8
|
+
* - orchestrate_status: combined status across all modules
|
|
9
|
+
* - orchestrate_quick_capture: one-call knowledge capture without full planning
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import type { OpDefinition } from '../facades/types.js';
|
|
14
|
+
import type { AgentRuntime } from './types.js';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Create the 5 orchestration operations for an agent runtime.
|
|
18
|
+
*/
|
|
19
|
+
export function createOrchestrateOps(runtime: AgentRuntime): OpDefinition[] {
|
|
20
|
+
const { planner, brainIntelligence, vault } = runtime;
|
|
21
|
+
|
|
22
|
+
return [
|
|
23
|
+
// ─── orchestrate_plan ─────────────────────────────────────────
|
|
24
|
+
{
|
|
25
|
+
name: 'orchestrate_plan',
|
|
26
|
+
description:
|
|
27
|
+
'Create a brain-informed plan with recommendations from pattern strengths. ' +
|
|
28
|
+
'Fetches relevant brain recommendations for the domain/task, then creates a plan ' +
|
|
29
|
+
'with those recommendations injected as decisions.',
|
|
30
|
+
auth: 'write',
|
|
31
|
+
schema: z.object({
|
|
32
|
+
objective: z.string().describe('What the plan aims to achieve'),
|
|
33
|
+
scope: z.string().describe('Boundaries of the work'),
|
|
34
|
+
domain: z
|
|
35
|
+
.string()
|
|
36
|
+
.optional()
|
|
37
|
+
.describe('Domain for brain recommendations (e.g. "component", "styling")'),
|
|
38
|
+
tasks: z
|
|
39
|
+
.array(z.object({ title: z.string(), description: z.string() }))
|
|
40
|
+
.optional()
|
|
41
|
+
.describe('Optional pre-defined tasks'),
|
|
42
|
+
}),
|
|
43
|
+
handler: async (params) => {
|
|
44
|
+
const objective = params.objective as string;
|
|
45
|
+
const scope = params.scope as string;
|
|
46
|
+
const domain = params.domain as string | undefined;
|
|
47
|
+
const tasks = (params.tasks as Array<{ title: string; description: string }>) ?? [];
|
|
48
|
+
|
|
49
|
+
// Get brain recommendations — graceful degradation if no data
|
|
50
|
+
let recommendations: Array<{ pattern: string; strength: number }> = [];
|
|
51
|
+
try {
|
|
52
|
+
const raw = brainIntelligence.recommend({
|
|
53
|
+
domain,
|
|
54
|
+
task: objective,
|
|
55
|
+
limit: 5,
|
|
56
|
+
});
|
|
57
|
+
recommendations = raw.map((r) => ({
|
|
58
|
+
pattern: r.pattern,
|
|
59
|
+
strength: r.strength,
|
|
60
|
+
}));
|
|
61
|
+
} catch {
|
|
62
|
+
// Brain has no data yet — proceed without recommendations
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Build decisions from recommendations
|
|
66
|
+
const decisions = recommendations.map(
|
|
67
|
+
(r) => `Brain pattern: ${r.pattern} (strength: ${r.strength.toFixed(1)})`,
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
// Create plan with recommendations as context
|
|
71
|
+
const plan = planner.create({
|
|
72
|
+
objective,
|
|
73
|
+
scope,
|
|
74
|
+
decisions,
|
|
75
|
+
tasks,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
return { plan, recommendations };
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
// ─── orchestrate_execute ──────────────────────────────────────
|
|
83
|
+
{
|
|
84
|
+
name: 'orchestrate_execute',
|
|
85
|
+
description:
|
|
86
|
+
'Start plan execution and open a brain session to track the work. ' +
|
|
87
|
+
'The plan must be in "approved" status. Returns both the updated plan and session ID.',
|
|
88
|
+
auth: 'write',
|
|
89
|
+
schema: z.object({
|
|
90
|
+
planId: z.string().describe('ID of the approved plan to start executing'),
|
|
91
|
+
domain: z.string().optional().describe('Domain for brain session tracking'),
|
|
92
|
+
context: z.string().optional().describe('Additional context for the brain session'),
|
|
93
|
+
}),
|
|
94
|
+
handler: async (params) => {
|
|
95
|
+
const planId = params.planId as string;
|
|
96
|
+
const domain = params.domain as string | undefined;
|
|
97
|
+
const context = params.context as string | undefined;
|
|
98
|
+
|
|
99
|
+
// Start plan execution
|
|
100
|
+
const plan = planner.startExecution(planId);
|
|
101
|
+
|
|
102
|
+
// Start brain session linked to this plan
|
|
103
|
+
const session = brainIntelligence.lifecycle({
|
|
104
|
+
action: 'start',
|
|
105
|
+
domain,
|
|
106
|
+
context,
|
|
107
|
+
planId,
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
return { plan, session };
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
// ─── orchestrate_complete ─────────────────────────────────────
|
|
115
|
+
{
|
|
116
|
+
name: 'orchestrate_complete',
|
|
117
|
+
description:
|
|
118
|
+
'Complete plan execution, end brain session, and extract knowledge. ' +
|
|
119
|
+
'Performs three steps: marks plan completed, ends the brain session with outcome, ' +
|
|
120
|
+
'and runs knowledge extraction on the session.',
|
|
121
|
+
auth: 'write',
|
|
122
|
+
schema: z.object({
|
|
123
|
+
planId: z.string().describe('ID of the executing plan to complete'),
|
|
124
|
+
sessionId: z.string().describe('ID of the brain session to end'),
|
|
125
|
+
outcome: z
|
|
126
|
+
.enum(['completed', 'abandoned', 'partial'])
|
|
127
|
+
.optional()
|
|
128
|
+
.default('completed')
|
|
129
|
+
.describe('Plan outcome'),
|
|
130
|
+
toolsUsed: z.array(z.string()).optional().describe('Tools used during execution'),
|
|
131
|
+
filesModified: z.array(z.string()).optional().describe('Files modified during execution'),
|
|
132
|
+
}),
|
|
133
|
+
handler: async (params) => {
|
|
134
|
+
const planId = params.planId as string;
|
|
135
|
+
const sessionId = params.sessionId as string;
|
|
136
|
+
const outcome = (params.outcome as string) ?? 'completed';
|
|
137
|
+
const toolsUsed = (params.toolsUsed as string[]) ?? [];
|
|
138
|
+
const filesModified = (params.filesModified as string[]) ?? [];
|
|
139
|
+
|
|
140
|
+
// Complete the plan
|
|
141
|
+
const plan = planner.complete(planId);
|
|
142
|
+
|
|
143
|
+
// End brain session with outcome
|
|
144
|
+
const session = brainIntelligence.lifecycle({
|
|
145
|
+
action: 'end',
|
|
146
|
+
sessionId,
|
|
147
|
+
planId,
|
|
148
|
+
planOutcome: outcome,
|
|
149
|
+
toolsUsed,
|
|
150
|
+
filesModified,
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
// Extract knowledge from the session — graceful if nothing to extract
|
|
154
|
+
let extraction = null;
|
|
155
|
+
try {
|
|
156
|
+
extraction = brainIntelligence.extractKnowledge(sessionId);
|
|
157
|
+
} catch {
|
|
158
|
+
// Session may not have enough signal for extraction — that's OK
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return { plan, session, extraction };
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
// ─── orchestrate_status ───────────────────────────────────────
|
|
166
|
+
{
|
|
167
|
+
name: 'orchestrate_status',
|
|
168
|
+
description:
|
|
169
|
+
'Get combined orchestration status: active plans, brain session context, ' +
|
|
170
|
+
'vault stats, and recent brain recommendations.',
|
|
171
|
+
auth: 'read',
|
|
172
|
+
schema: z.object({
|
|
173
|
+
domain: z.string().optional().describe('Filter recommendations by domain'),
|
|
174
|
+
sessionLimit: z
|
|
175
|
+
.number()
|
|
176
|
+
.optional()
|
|
177
|
+
.describe('Number of recent sessions to include (default 5)'),
|
|
178
|
+
}),
|
|
179
|
+
handler: async (params) => {
|
|
180
|
+
const domain = params.domain as string | undefined;
|
|
181
|
+
const sessionLimit = (params.sessionLimit as number) ?? 5;
|
|
182
|
+
|
|
183
|
+
// Active plans
|
|
184
|
+
const activePlans = planner.getActive();
|
|
185
|
+
|
|
186
|
+
// Brain session context
|
|
187
|
+
const sessionContext = brainIntelligence.getSessionContext(sessionLimit);
|
|
188
|
+
|
|
189
|
+
// Vault stats
|
|
190
|
+
const vaultStats = vault.stats();
|
|
191
|
+
|
|
192
|
+
// Recent recommendations — graceful degradation
|
|
193
|
+
let recommendations: Array<{ pattern: string; strength: number }> = [];
|
|
194
|
+
try {
|
|
195
|
+
const raw = brainIntelligence.recommend({
|
|
196
|
+
domain,
|
|
197
|
+
limit: 5,
|
|
198
|
+
});
|
|
199
|
+
recommendations = raw.map((r) => ({
|
|
200
|
+
pattern: r.pattern,
|
|
201
|
+
strength: r.strength,
|
|
202
|
+
}));
|
|
203
|
+
} catch {
|
|
204
|
+
// No recommendations available
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Brain intelligence stats
|
|
208
|
+
const brainStats = brainIntelligence.getStats();
|
|
209
|
+
|
|
210
|
+
return {
|
|
211
|
+
activePlans,
|
|
212
|
+
sessionContext,
|
|
213
|
+
vaultStats,
|
|
214
|
+
recommendations,
|
|
215
|
+
brainStats,
|
|
216
|
+
};
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
// ─── orchestrate_quick_capture ────────────────────────────────
|
|
221
|
+
{
|
|
222
|
+
name: 'orchestrate_quick_capture',
|
|
223
|
+
description:
|
|
224
|
+
'Capture knowledge from a completed task without full plan lifecycle. ' +
|
|
225
|
+
'Creates a brain session, records the context, ends it, and extracts knowledge — all in one call.',
|
|
226
|
+
auth: 'write',
|
|
227
|
+
schema: z.object({
|
|
228
|
+
domain: z.string().describe('Knowledge domain (e.g. "component", "accessibility")'),
|
|
229
|
+
context: z.string().describe('What was done — summary of the task'),
|
|
230
|
+
toolsUsed: z.array(z.string()).optional().describe('Tools used during the task'),
|
|
231
|
+
filesModified: z.array(z.string()).optional().describe('Files modified during the task'),
|
|
232
|
+
outcome: z
|
|
233
|
+
.enum(['completed', 'abandoned', 'partial'])
|
|
234
|
+
.optional()
|
|
235
|
+
.default('completed')
|
|
236
|
+
.describe('Task outcome'),
|
|
237
|
+
}),
|
|
238
|
+
handler: async (params) => {
|
|
239
|
+
const domain = params.domain as string;
|
|
240
|
+
const context = params.context as string;
|
|
241
|
+
const toolsUsed = (params.toolsUsed as string[]) ?? [];
|
|
242
|
+
const filesModified = (params.filesModified as string[]) ?? [];
|
|
243
|
+
const outcome = (params.outcome as string) ?? 'completed';
|
|
244
|
+
|
|
245
|
+
// Start session
|
|
246
|
+
const startedSession = brainIntelligence.lifecycle({
|
|
247
|
+
action: 'start',
|
|
248
|
+
domain,
|
|
249
|
+
context,
|
|
250
|
+
toolsUsed,
|
|
251
|
+
filesModified,
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
// End session immediately with outcome
|
|
255
|
+
const endedSession = brainIntelligence.lifecycle({
|
|
256
|
+
action: 'end',
|
|
257
|
+
sessionId: startedSession.id,
|
|
258
|
+
toolsUsed,
|
|
259
|
+
filesModified,
|
|
260
|
+
planOutcome: outcome,
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
// Extract knowledge — graceful if nothing to extract
|
|
264
|
+
let extraction = null;
|
|
265
|
+
try {
|
|
266
|
+
extraction = brainIntelligence.extractKnowledge(startedSession.id);
|
|
267
|
+
} catch {
|
|
268
|
+
// Not enough signal — that's fine
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
return {
|
|
272
|
+
session: endedSession,
|
|
273
|
+
extraction,
|
|
274
|
+
};
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
];
|
|
278
|
+
}
|