@soleri/core 2.4.0 → 2.6.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 +7 -0
- package/dist/brain/brain.d.ts.map +1 -1
- package/dist/brain/brain.js +56 -9
- package/dist/brain/brain.js.map +1 -1
- package/dist/brain/intelligence.d.ts +1 -0
- package/dist/brain/intelligence.d.ts.map +1 -1
- package/dist/brain/intelligence.js +164 -148
- package/dist/brain/intelligence.js.map +1 -1
- package/dist/brain/types.d.ts +2 -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 +3 -1
- package/dist/control/identity-manager.d.ts.map +1 -1
- package/dist/control/identity-manager.js +49 -51
- package/dist/control/identity-manager.js.map +1 -1
- package/dist/control/intent-router.d.ts +1 -0
- package/dist/control/intent-router.d.ts.map +1 -1
- package/dist/control/intent-router.js +32 -32
- package/dist/control/intent-router.js.map +1 -1
- package/dist/curator/curator.d.ts +9 -1
- package/dist/curator/curator.d.ts.map +1 -1
- package/dist/curator/curator.js +104 -92
- 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/governance/governance.d.ts +1 -0
- package/dist/governance/governance.d.ts.map +1 -1
- package/dist/governance/governance.js +51 -68
- package/dist/governance/governance.js.map +1 -1
- package/dist/index.d.ts +26 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -3
- 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/loop/loop-manager.d.ts +58 -7
- package/dist/loop/loop-manager.d.ts.map +1 -1
- package/dist/loop/loop-manager.js +280 -6
- package/dist/loop/loop-manager.js.map +1 -1
- package/dist/loop/types.d.ts +69 -1
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/types.js +4 -1
- package/dist/loop/types.js.map +1 -1
- package/dist/persistence/index.d.ts +4 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +3 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/postgres-provider.d.ts +46 -0
- package/dist/persistence/postgres-provider.d.ts.map +1 -0
- package/dist/persistence/postgres-provider.js +115 -0
- package/dist/persistence/postgres-provider.js.map +1 -0
- package/dist/persistence/sqlite-provider.d.ts +28 -0
- package/dist/persistence/sqlite-provider.d.ts.map +1 -0
- package/dist/persistence/sqlite-provider.js +97 -0
- package/dist/persistence/sqlite-provider.js.map +1 -0
- package/dist/persistence/types.d.ts +58 -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 +47 -4
- package/dist/planning/gap-analysis.d.ts.map +1 -1
- package/dist/planning/gap-analysis.js +190 -13
- package/dist/planning/gap-analysis.js.map +1 -1
- package/dist/planning/gap-types.d.ts +1 -1
- package/dist/planning/gap-types.d.ts.map +1 -1
- package/dist/planning/gap-types.js.map +1 -1
- package/dist/planning/planner.d.ts +277 -9
- package/dist/planning/planner.d.ts.map +1 -1
- package/dist/planning/planner.js +611 -46
- 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 +4 -4
- package/dist/project/project-registry.d.ts.map +1 -1
- package/dist/project/project-registry.js +30 -57
- package/dist/project/project-registry.js.map +1 -1
- 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 +5 -3
- package/dist/runtime/admin-extra-ops.d.ts.map +1 -1
- package/dist/runtime/admin-extra-ops.js +348 -11
- package/dist/runtime/admin-extra-ops.js.map +1 -1
- package/dist/runtime/admin-ops.d.ts.map +1 -1
- package/dist/runtime/admin-ops.js +10 -3
- package/dist/runtime/admin-ops.js.map +1 -1
- package/dist/runtime/capture-ops.d.ts.map +1 -1
- package/dist/runtime/capture-ops.js +20 -2
- package/dist/runtime/capture-ops.js.map +1 -1
- 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 +8 -6
- package/dist/runtime/core-ops.d.ts.map +1 -1
- package/dist/runtime/core-ops.js +226 -9
- package/dist/runtime/core-ops.js.map +1 -1
- package/dist/runtime/curator-extra-ops.d.ts +2 -2
- package/dist/runtime/curator-extra-ops.d.ts.map +1 -1
- package/dist/runtime/curator-extra-ops.js +15 -3
- package/dist/runtime/curator-extra-ops.js.map +1 -1
- package/dist/runtime/domain-ops.js +2 -2
- package/dist/runtime/domain-ops.js.map +1 -1
- package/dist/runtime/grading-ops.d.ts.map +1 -1
- package/dist/runtime/grading-ops.js.map +1 -1
- 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 +5 -4
- package/dist/runtime/loop-ops.d.ts.map +1 -1
- package/dist/runtime/loop-ops.js +84 -12
- package/dist/runtime/loop-ops.js.map +1 -1
- package/dist/runtime/memory-cross-project-ops.d.ts.map +1 -1
- package/dist/runtime/memory-cross-project-ops.js.map +1 -1
- package/dist/runtime/memory-extra-ops.js +5 -5
- package/dist/runtime/memory-extra-ops.js.map +1 -1
- package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
- package/dist/runtime/orchestrate-ops.js +8 -2
- package/dist/runtime/orchestrate-ops.js.map +1 -1
- package/dist/runtime/planning-extra-ops.d.ts +13 -5
- package/dist/runtime/planning-extra-ops.d.ts.map +1 -1
- package/dist/runtime/planning-extra-ops.js +381 -18
- package/dist/runtime/planning-extra-ops.js.map +1 -1
- 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.map +1 -1
- package/dist/runtime/project-ops.js +7 -2
- package/dist/runtime/project-ops.js.map +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +28 -9
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/types.d.ts +8 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/vault-extra-ops.d.ts +4 -2
- package/dist/runtime/vault-extra-ops.d.ts.map +1 -1
- package/dist/runtime/vault-extra-ops.js +383 -4
- package/dist/runtime/vault-extra-ops.js.map +1 -1
- 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 +52 -32
- package/dist/vault/vault.d.ts.map +1 -1
- package/dist/vault/vault.js +300 -181
- package/dist/vault/vault.js.map +1 -1
- package/package.json +9 -3
- package/src/__tests__/admin-extra-ops.test.ts +62 -15
- package/src/__tests__/admin-ops.test.ts +2 -2
- package/src/__tests__/brain.test.ts +3 -3
- 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 +36 -4
- package/src/__tests__/curator-extra-ops.test.ts +24 -2
- package/src/__tests__/errors.test.ts +388 -0
- package/src/__tests__/grading-ops.test.ts +28 -7
- package/src/__tests__/intake-pipeline.test.ts +162 -0
- package/src/__tests__/loop-ops.test.ts +74 -3
- package/src/__tests__/memory-cross-project-ops.test.ts +3 -1
- package/src/__tests__/orchestrate-ops.test.ts +8 -3
- package/src/__tests__/persistence.test.ts +291 -0
- package/src/__tests__/planner.test.ts +99 -21
- package/src/__tests__/planning-extra-ops.test.ts +168 -10
- 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__/postgres-provider.test.ts +58 -0
- package/src/__tests__/project-ops.test.ts +18 -4
- package/src/__tests__/template-manager.test.ts +222 -0
- package/src/__tests__/vault-extra-ops.test.ts +82 -7
- package/src/__tests__/vault.test.ts +184 -0
- package/src/brain/brain.ts +71 -9
- package/src/brain/intelligence.ts +258 -307
- package/src/brain/types.ts +2 -2
- package/src/cognee/client.ts +18 -0
- package/src/cognee/sync-manager.ts +389 -0
- package/src/control/identity-manager.ts +77 -75
- package/src/control/intent-router.ts +55 -57
- package/src/curator/curator.ts +199 -139
- 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 +90 -107
- package/src/index.ts +116 -3
- 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/loop/loop-manager.ts +325 -7
- package/src/loop/types.ts +72 -1
- package/src/persistence/index.ts +9 -0
- package/src/persistence/postgres-provider.ts +157 -0
- package/src/persistence/sqlite-provider.ts +115 -0
- package/src/persistence/types.ts +74 -0
- package/src/planning/gap-analysis.ts +286 -17
- package/src/planning/gap-types.ts +4 -1
- package/src/planning/planner.ts +828 -55
- 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 +81 -74
- 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 +391 -13
- package/src/runtime/admin-ops.ts +17 -6
- package/src/runtime/capture-ops.ts +25 -6
- package/src/runtime/cognee-sync-ops.ts +63 -0
- package/src/runtime/core-ops.ts +258 -8
- package/src/runtime/curator-extra-ops.ts +17 -3
- package/src/runtime/domain-ops.ts +2 -2
- package/src/runtime/grading-ops.ts +11 -2
- package/src/runtime/intake-ops.ts +126 -0
- package/src/runtime/loop-ops.ts +96 -13
- package/src/runtime/memory-cross-project-ops.ts +1 -2
- package/src/runtime/memory-extra-ops.ts +5 -5
- package/src/runtime/orchestrate-ops.ts +8 -2
- package/src/runtime/planning-extra-ops.ts +414 -23
- package/src/runtime/playbook-ops.ts +169 -0
- package/src/runtime/project-ops.ts +9 -3
- package/src/runtime/runtime.ts +36 -10
- package/src/runtime/types.ts +8 -0
- package/src/runtime/vault-extra-ops.ts +425 -4
- package/src/vault/playbook.ts +87 -0
- package/src/vault/vault.ts +419 -235
package/src/runtime/loop-ops.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Loop operations —
|
|
2
|
+
* Loop operations — 9 ops for iterative validation loops.
|
|
3
3
|
*
|
|
4
|
-
* Ops: loop_start, loop_iterate,
|
|
5
|
-
* loop_history, loop_is_active, loop_complete
|
|
4
|
+
* Ops: loop_start, loop_iterate, loop_iterate_gate, loop_status,
|
|
5
|
+
* loop_cancel, loop_history, loop_is_active, loop_complete,
|
|
6
|
+
* loop_anomaly_check.
|
|
6
7
|
*/
|
|
7
8
|
|
|
8
9
|
import { z } from 'zod';
|
|
9
10
|
import type { OpDefinition } from '../facades/types.js';
|
|
10
11
|
import type { AgentRuntime } from './types.js';
|
|
11
|
-
import type { LoopMode } from '../loop/types.js';
|
|
12
|
+
import type { LoopMode, LoopKnowledge } from '../loop/types.js';
|
|
12
13
|
|
|
13
14
|
const loopModeSchema = z.enum([
|
|
14
15
|
'token-migration',
|
|
@@ -39,7 +40,7 @@ const DEFAULT_TARGET_SCORES: Partial<Record<LoopMode, number>> = {
|
|
|
39
40
|
};
|
|
40
41
|
|
|
41
42
|
/**
|
|
42
|
-
* Create the
|
|
43
|
+
* Create the 9 loop operations for an agent runtime.
|
|
43
44
|
*/
|
|
44
45
|
export function createLoopOps(runtime: AgentRuntime): OpDefinition[] {
|
|
45
46
|
const { loop } = runtime;
|
|
@@ -61,6 +62,22 @@ export function createLoopOps(runtime: AgentRuntime): OpDefinition[] {
|
|
|
61
62
|
.number()
|
|
62
63
|
.optional()
|
|
63
64
|
.describe('Target validation score (0-100). Defaults vary by mode.'),
|
|
65
|
+
targetGrade: z
|
|
66
|
+
.string()
|
|
67
|
+
.optional()
|
|
68
|
+
.describe('Target grade for plan-iteration mode (e.g., "A", "A+").'),
|
|
69
|
+
completionPromise: z
|
|
70
|
+
.string()
|
|
71
|
+
.optional()
|
|
72
|
+
.describe('Completion promise text — loop completes when this appears in output.'),
|
|
73
|
+
validationInstructions: z
|
|
74
|
+
.string()
|
|
75
|
+
.optional()
|
|
76
|
+
.describe('Validation instructions appended to the prompt each iteration.'),
|
|
77
|
+
intent: z
|
|
78
|
+
.string()
|
|
79
|
+
.optional()
|
|
80
|
+
.describe('Detected intent for brain session recording (e.g., "BUILD", "FIX").'),
|
|
64
81
|
}),
|
|
65
82
|
handler: async (params) => {
|
|
66
83
|
const mode = params.mode as LoopMode;
|
|
@@ -75,6 +92,10 @@ export function createLoopOps(runtime: AgentRuntime): OpDefinition[] {
|
|
|
75
92
|
prompt,
|
|
76
93
|
maxIterations,
|
|
77
94
|
targetScore,
|
|
95
|
+
targetGrade: params.targetGrade as string | undefined,
|
|
96
|
+
completionPromise: params.completionPromise as string | undefined,
|
|
97
|
+
validationInstructions: params.validationInstructions as string | undefined,
|
|
98
|
+
intent: params.intent as string | undefined,
|
|
78
99
|
});
|
|
79
100
|
|
|
80
101
|
return {
|
|
@@ -93,14 +114,8 @@ export function createLoopOps(runtime: AgentRuntime): OpDefinition[] {
|
|
|
93
114
|
auth: 'write',
|
|
94
115
|
schema: z.object({
|
|
95
116
|
passed: z.boolean().describe('Whether this iteration passed validation.'),
|
|
96
|
-
validationScore: z
|
|
97
|
-
|
|
98
|
-
.optional()
|
|
99
|
-
.describe('Numeric validation score (0-100).'),
|
|
100
|
-
validationResult: z
|
|
101
|
-
.string()
|
|
102
|
-
.optional()
|
|
103
|
-
.describe('Free-text validation result summary.'),
|
|
117
|
+
validationScore: z.number().optional().describe('Numeric validation score (0-100).'),
|
|
118
|
+
validationResult: z.string().optional().describe('Free-text validation result summary.'),
|
|
104
119
|
}),
|
|
105
120
|
handler: async (params) => {
|
|
106
121
|
const iteration = loop.iterate({
|
|
@@ -119,6 +134,37 @@ export function createLoopOps(runtime: AgentRuntime): OpDefinition[] {
|
|
|
119
134
|
};
|
|
120
135
|
},
|
|
121
136
|
},
|
|
137
|
+
{
|
|
138
|
+
name: 'loop_iterate_gate',
|
|
139
|
+
description:
|
|
140
|
+
'Gate-based loop iteration — accepts LLM output, scans for completion signals ' +
|
|
141
|
+
'(promise tags, heuristic detection), and returns allow/block decision. ' +
|
|
142
|
+
'Primary method for Stop hook integration.',
|
|
143
|
+
auth: 'write',
|
|
144
|
+
schema: z.object({
|
|
145
|
+
lastOutput: z.string().describe('The LLM response to scan for completion signals.'),
|
|
146
|
+
knowledge: z
|
|
147
|
+
.object({
|
|
148
|
+
items: z.array(z.string()).optional(),
|
|
149
|
+
patternsApplied: z.array(z.string()).optional(),
|
|
150
|
+
antiPatternsAvoided: z.array(z.string()).optional(),
|
|
151
|
+
})
|
|
152
|
+
.optional()
|
|
153
|
+
.describe('Knowledge items discovered during this iteration.'),
|
|
154
|
+
durationMs: z
|
|
155
|
+
.number()
|
|
156
|
+
.optional()
|
|
157
|
+
.describe('Duration of this iteration in milliseconds (for anomaly detection).'),
|
|
158
|
+
}),
|
|
159
|
+
handler: async (params) => {
|
|
160
|
+
const decision = loop.iterateWithGate(
|
|
161
|
+
params.lastOutput as string,
|
|
162
|
+
params.knowledge as LoopKnowledge | undefined,
|
|
163
|
+
params.durationMs as number | undefined,
|
|
164
|
+
);
|
|
165
|
+
return decision;
|
|
166
|
+
},
|
|
167
|
+
},
|
|
122
168
|
{
|
|
123
169
|
name: 'loop_status',
|
|
124
170
|
description: 'Get current loop status, config, and iteration history.',
|
|
@@ -190,5 +236,42 @@ export function createLoopOps(runtime: AgentRuntime): OpDefinition[] {
|
|
|
190
236
|
};
|
|
191
237
|
},
|
|
192
238
|
},
|
|
239
|
+
{
|
|
240
|
+
name: 'loop_anomaly_check',
|
|
241
|
+
description:
|
|
242
|
+
'Check active loop iterations for anomalous patterns — fast iterations with low scores, repeated failures, no-progress loops.',
|
|
243
|
+
auth: 'read',
|
|
244
|
+
handler: async () => {
|
|
245
|
+
const status = loop.getStatus();
|
|
246
|
+
if (!status) {
|
|
247
|
+
return { active: false, anomalies: [], summary: 'No active loop' };
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
const { detectAnomaly } = await import('../loop/loop-manager.js');
|
|
251
|
+
const anomalies: string[] = [];
|
|
252
|
+
|
|
253
|
+
for (const iter of status.iterations) {
|
|
254
|
+
const warning = detectAnomaly(iter, status.config.mode);
|
|
255
|
+
if (warning) anomalies.push(warning);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Check for repeated failures (3+ consecutive non-passing iterations)
|
|
259
|
+
const recent = status.iterations.slice(-3);
|
|
260
|
+
if (recent.length >= 3 && recent.every((i) => !i.passed)) {
|
|
261
|
+
anomalies.push(
|
|
262
|
+
`Warning: ${recent.length} consecutive failing iterations — consider cancelling or adjusting approach`,
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
return {
|
|
267
|
+
active: true,
|
|
268
|
+
loopId: status.id,
|
|
269
|
+
mode: status.config.mode,
|
|
270
|
+
totalIterations: status.iterations.length,
|
|
271
|
+
anomalies,
|
|
272
|
+
hasAnomalies: anomalies.length > 0,
|
|
273
|
+
};
|
|
274
|
+
},
|
|
275
|
+
},
|
|
193
276
|
];
|
|
194
277
|
}
|
|
@@ -183,8 +183,7 @@ export function createMemoryCrossProjectOps(runtime: AgentRuntime): OpDefinition
|
|
|
183
183
|
memories: weightedResults,
|
|
184
184
|
globalEntries,
|
|
185
185
|
linkedMemories: dedupedLinked,
|
|
186
|
-
totalResults:
|
|
187
|
-
weightedResults.length + globalEntries.length + dedupedLinked.length,
|
|
186
|
+
totalResults: weightedResults.length + globalEntries.length + dedupedLinked.length,
|
|
188
187
|
};
|
|
189
188
|
},
|
|
190
189
|
},
|
|
@@ -64,7 +64,10 @@ export function createMemoryExtraOps(runtime: AgentRuntime): OpDefinition[] {
|
|
|
64
64
|
auth: 'read',
|
|
65
65
|
schema: z.object({
|
|
66
66
|
projectPath: z.string().optional().describe('Filter to a specific project'),
|
|
67
|
-
type: z
|
|
67
|
+
type: z
|
|
68
|
+
.enum(['session', 'lesson', 'preference'])
|
|
69
|
+
.optional()
|
|
70
|
+
.describe('Filter by memory type'),
|
|
68
71
|
includeArchived: z
|
|
69
72
|
.boolean()
|
|
70
73
|
.optional()
|
|
@@ -126,10 +129,7 @@ export function createMemoryExtraOps(runtime: AgentRuntime): OpDefinition[] {
|
|
|
126
129
|
'Delete non-archived memories older than N days. Destructive — cannot be undone.',
|
|
127
130
|
auth: 'admin',
|
|
128
131
|
schema: z.object({
|
|
129
|
-
olderThanDays: z
|
|
130
|
-
.number()
|
|
131
|
-
.min(1)
|
|
132
|
-
.describe('Delete memories older than this many days'),
|
|
132
|
+
olderThanDays: z.number().min(1).describe('Delete memories older than this many days'),
|
|
133
133
|
}),
|
|
134
134
|
handler: async (params) => {
|
|
135
135
|
const days = params.olderThanDays as number;
|
|
@@ -31,7 +31,10 @@ export function createOrchestrateOps(runtime: AgentRuntime): OpDefinition[] {
|
|
|
31
31
|
schema: z.object({
|
|
32
32
|
objective: z.string().describe('What the plan aims to achieve'),
|
|
33
33
|
scope: z.string().describe('Boundaries of the work'),
|
|
34
|
-
domain: z
|
|
34
|
+
domain: z
|
|
35
|
+
.string()
|
|
36
|
+
.optional()
|
|
37
|
+
.describe('Domain for brain recommendations (e.g. "component", "styling")'),
|
|
35
38
|
tasks: z
|
|
36
39
|
.array(z.object({ title: z.string(), description: z.string() }))
|
|
37
40
|
.optional()
|
|
@@ -168,7 +171,10 @@ export function createOrchestrateOps(runtime: AgentRuntime): OpDefinition[] {
|
|
|
168
171
|
auth: 'read',
|
|
169
172
|
schema: z.object({
|
|
170
173
|
domain: z.string().optional().describe('Filter recommendations by domain'),
|
|
171
|
-
sessionLimit: z
|
|
174
|
+
sessionLimit: z
|
|
175
|
+
.number()
|
|
176
|
+
.optional()
|
|
177
|
+
.describe('Number of recent sessions to include (default 5)'),
|
|
172
178
|
}),
|
|
173
179
|
handler: async (params) => {
|
|
174
180
|
const domain = params.domain as string | undefined;
|