swarm-engine 1.1.0 → 1.3.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/CLAUDE.md +1 -1
- package/README.md +102 -25
- package/agents/accessibility-reviewer.md +2 -0
- package/agents/api-contract-reviewer.md +2 -0
- package/agents/concurrency-reviewer.md +2 -0
- package/agents/data-integrity-reviewer.md +1 -0
- package/agents/debugger.md +2 -0
- package/agents/dependency-reviewer.md +2 -0
- package/agents/devils-advocate.md +1 -0
- package/agents/documentation-reviewer.md +2 -0
- package/agents/documenter.md +13 -0
- package/agents/error-handling-reviewer.md +2 -0
- package/agents/grounding.md +3 -2
- package/agents/guardian.md +3 -0
- package/agents/implementer.md +2 -0
- package/agents/integrator.md +3 -0
- package/agents/judge.md +2 -0
- package/agents/librarian.md +4 -1
- package/agents/orchestrator.md +3 -0
- package/agents/performance-reviewer.md +2 -0
- package/agents/planner.md +2 -0
- package/agents/refactorer.md +3 -0
- package/agents/reviewer.md +1 -0
- package/agents/security-reviewer.md +1 -0
- package/agents/sentinel.md +3 -0
- package/agents/tester.md +2 -0
- package/agents/testing-reviewer.md +2 -0
- package/commands/diff-review.md +27 -15
- package/commands/discover.md +102 -0
- package/commands/dynamic.md +136 -0
- package/commands/fix-pr.md +30 -24
- package/commands/postmortem.md +106 -0
- package/commands/red-team.md +41 -26
- package/commands/research.md +22 -1
- package/commands/review-cycle.md +38 -20
- package/commands/spike.md +108 -0
- package/commands/swarm.md +68 -60
- package/commands/tdd.md +44 -24
- package/dist/cli/commands/acp.d.ts.map +1 -1
- package/dist/cli/commands/acp.js +12 -2
- package/dist/cli/commands/acp.js.map +1 -1
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +16 -13
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/completions.d.ts.map +1 -1
- package/dist/cli/commands/completions.js +21 -9
- package/dist/cli/commands/completions.js.map +1 -1
- package/dist/cli/commands/compound.d.ts.map +1 -1
- package/dist/cli/commands/compound.js +1 -2
- package/dist/cli/commands/compound.js.map +1 -1
- package/dist/cli/commands/configure.d.ts.map +1 -1
- package/dist/cli/commands/configure.js +24 -8
- package/dist/cli/commands/configure.js.map +1 -1
- package/dist/cli/commands/convert.d.ts +1 -1
- package/dist/cli/commands/convert.d.ts.map +1 -1
- package/dist/cli/commands/convert.js +22 -48
- package/dist/cli/commands/convert.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +1 -3
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +17 -7
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +1 -1
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/learn.js +6 -6
- package/dist/cli/commands/learn.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +1 -2
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/memory.d.ts.map +1 -1
- package/dist/cli/commands/memory.js +1 -2
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/cli/commands/orchestrate.d.ts.map +1 -1
- package/dist/cli/commands/orchestrate.js +20 -7
- package/dist/cli/commands/orchestrate.js.map +1 -1
- package/dist/cli/commands/plan.d.ts.map +1 -1
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +8 -5
- package/dist/cli/commands/plugin.js.map +1 -1
- package/dist/cli/commands/resume.js +1 -1
- package/dist/cli/commands/resume.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +20 -6
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/share.d.ts.map +1 -1
- package/dist/cli/commands/share.js +6 -1
- package/dist/cli/commands/share.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +15 -7
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/template.d.ts.map +1 -1
- package/dist/cli/commands/template.js +14 -6
- package/dist/cli/commands/template.js.map +1 -1
- package/dist/cli/commands/vault.d.ts.map +1 -1
- package/dist/cli/commands/vault.js +14 -9
- package/dist/cli/commands/vault.js.map +1 -1
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +2 -2
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/commands/watch.js +1 -1
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/cli/index.js +14 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/core/checkpoint.js +1 -1
- package/dist/core/checkpoint.js.map +1 -1
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js +9 -3
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js +31 -8
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/permissions.d.ts.map +1 -1
- package/dist/core/permissions.js +21 -10
- package/dist/core/permissions.js.map +1 -1
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js +10 -6
- package/dist/core/registry.js.map +1 -1
- package/dist/core/snapshots.d.ts.map +1 -1
- package/dist/core/snapshots.js +17 -5
- package/dist/core/snapshots.js.map +1 -1
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.d.ts +68 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -4
- package/dist/index.js.map +1 -1
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +39 -24
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/schema.d.ts +1 -0
- package/dist/memory/schema.d.ts.map +1 -1
- package/dist/memory/schema.js +20 -19
- package/dist/memory/schema.js.map +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js.map +1 -1
- package/dist/runtime/acp.d.ts.map +1 -1
- package/dist/runtime/acp.js +71 -41
- package/dist/runtime/acp.js.map +1 -1
- package/dist/runtime/adaptive.d.ts.map +1 -1
- package/dist/runtime/adaptive.js +30 -31
- package/dist/runtime/adaptive.js.map +1 -1
- package/dist/runtime/agent-runner.d.ts +52 -0
- package/dist/runtime/agent-runner.d.ts.map +1 -0
- package/dist/runtime/agent-runner.js +156 -0
- package/dist/runtime/agent-runner.js.map +1 -0
- package/dist/runtime/autonomy.d.ts +1 -0
- package/dist/runtime/autonomy.d.ts.map +1 -1
- package/dist/runtime/autonomy.js +37 -19
- package/dist/runtime/autonomy.js.map +1 -1
- package/dist/runtime/backends/claude.d.ts.map +1 -1
- package/dist/runtime/backends/claude.js +2 -2
- package/dist/runtime/backends/claude.js.map +1 -1
- package/dist/runtime/backends/codex.d.ts.map +1 -1
- package/dist/runtime/backends/codex.js +8 -11
- package/dist/runtime/backends/codex.js.map +1 -1
- package/dist/runtime/backends/gemini.d.ts.map +1 -1
- package/dist/runtime/backends/gemini.js +11 -7
- package/dist/runtime/backends/gemini.js.map +1 -1
- package/dist/runtime/backends/index.js +1 -1
- package/dist/runtime/backends/index.js.map +1 -1
- package/dist/runtime/backends/mock.d.ts.map +1 -1
- package/dist/runtime/backends/mock.js +1 -1
- package/dist/runtime/backends/mock.js.map +1 -1
- package/dist/runtime/backends/vercel-ai.d.ts.map +1 -1
- package/dist/runtime/backends/vercel-ai.js +41 -9
- package/dist/runtime/backends/vercel-ai.js.map +1 -1
- package/dist/runtime/cache-optimizer.d.ts.map +1 -1
- package/dist/runtime/cache-optimizer.js +3 -9
- package/dist/runtime/cache-optimizer.js.map +1 -1
- package/dist/runtime/cascade.d.ts.map +1 -1
- package/dist/runtime/cascade.js +34 -7
- package/dist/runtime/cascade.js.map +1 -1
- package/dist/runtime/chunker.d.ts.map +1 -1
- package/dist/runtime/chunker.js +12 -6
- package/dist/runtime/chunker.js.map +1 -1
- package/dist/runtime/compounder.d.ts +1 -1
- package/dist/runtime/compounder.d.ts.map +1 -1
- package/dist/runtime/compounder.js +30 -11
- package/dist/runtime/compounder.js.map +1 -1
- package/dist/runtime/cost-model.d.ts.map +1 -1
- package/dist/runtime/cost-model.js +1 -1
- package/dist/runtime/cost-model.js.map +1 -1
- package/dist/runtime/database.d.ts +16 -0
- package/dist/runtime/database.d.ts.map +1 -0
- package/dist/runtime/database.js +39 -0
- package/dist/runtime/database.js.map +1 -0
- package/dist/runtime/distiller.d.ts.map +1 -1
- package/dist/runtime/distiller.js +6 -3
- package/dist/runtime/distiller.js.map +1 -1
- package/dist/runtime/engine.d.ts +7 -9
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +129 -394
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/executor.d.ts +1 -2
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +45 -14
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/heuristics.d.ts +1 -0
- package/dist/runtime/heuristics.d.ts.map +1 -1
- package/dist/runtime/heuristics.js +44 -22
- package/dist/runtime/heuristics.js.map +1 -1
- package/dist/runtime/learning-engine.d.ts +51 -0
- package/dist/runtime/learning-engine.d.ts.map +1 -0
- package/dist/runtime/learning-engine.js +209 -0
- package/dist/runtime/learning-engine.js.map +1 -0
- package/dist/runtime/living-spec.js +3 -3
- package/dist/runtime/living-spec.js.map +1 -1
- package/dist/runtime/lsp.d.ts.map +1 -1
- package/dist/runtime/lsp.js +41 -14
- package/dist/runtime/lsp.js.map +1 -1
- package/dist/runtime/mcp.d.ts.map +1 -1
- package/dist/runtime/mcp.js +56 -19
- package/dist/runtime/mcp.js.map +1 -1
- package/dist/runtime/model-router.d.ts +1 -0
- package/dist/runtime/model-router.d.ts.map +1 -1
- package/dist/runtime/model-router.js +37 -21
- package/dist/runtime/model-router.js.map +1 -1
- package/dist/runtime/panes.d.ts.map +1 -1
- package/dist/runtime/panes.js +50 -49
- package/dist/runtime/panes.js.map +1 -1
- package/dist/runtime/plan-search.js +2 -2
- package/dist/runtime/plan-search.js.map +1 -1
- package/dist/runtime/plugins.d.ts +1 -1
- package/dist/runtime/plugins.d.ts.map +1 -1
- package/dist/runtime/plugins.js +63 -47
- package/dist/runtime/plugins.js.map +1 -1
- package/dist/runtime/reflexion.d.ts.map +1 -1
- package/dist/runtime/reflexion.js +4 -8
- package/dist/runtime/reflexion.js.map +1 -1
- package/dist/runtime/review-schema.d.ts.map +1 -1
- package/dist/runtime/review-schema.js +12 -12
- package/dist/runtime/review-schema.js.map +1 -1
- package/dist/runtime/rewriter.d.ts.map +1 -1
- package/dist/runtime/rewriter.js +29 -9
- package/dist/runtime/rewriter.js.map +1 -1
- package/dist/runtime/sharing.d.ts +1 -1
- package/dist/runtime/sharing.d.ts.map +1 -1
- package/dist/runtime/sharing.js +55 -27
- package/dist/runtime/sharing.js.map +1 -1
- package/dist/runtime/stats.d.ts +1 -0
- package/dist/runtime/stats.d.ts.map +1 -1
- package/dist/runtime/stats.js +40 -24
- package/dist/runtime/stats.js.map +1 -1
- package/dist/runtime/templates.d.ts.map +1 -1
- package/dist/runtime/templates.js +2 -2
- package/dist/runtime/templates.js.map +1 -1
- package/dist/runtime/traces.d.ts +1 -0
- package/dist/runtime/traces.d.ts.map +1 -1
- package/dist/runtime/traces.js +50 -28
- package/dist/runtime/traces.js.map +1 -1
- package/dist/runtime/verifier.d.ts.map +1 -1
- package/dist/runtime/verifier.js +12 -6
- package/dist/runtime/verifier.js.map +1 -1
- package/dist/runtime/worktree.d.ts.map +1 -1
- package/dist/runtime/worktree.js +35 -18
- package/dist/runtime/worktree.js.map +1 -1
- package/dist/tui/dashboard.d.ts.map +1 -1
- package/dist/tui/dashboard.js +20 -16
- package/dist/tui/dashboard.js.map +1 -1
- package/dist/tui/progress.d.ts +2 -0
- package/dist/tui/progress.d.ts.map +1 -1
- package/dist/tui/progress.js +105 -33
- package/dist/tui/progress.js.map +1 -1
- package/dist/tui/renderer.d.ts.map +1 -1
- package/dist/tui/renderer.js.map +1 -1
- package/dist/utils/compact-format.js +1 -1
- package/dist/utils/compact-format.js.map +1 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +19 -5
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +3 -7
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +6 -2
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/project-config.d.ts +18 -0
- package/dist/utils/project-config.d.ts.map +1 -1
- package/dist/utils/project-config.js +14 -6
- package/dist/utils/project-config.js.map +1 -1
- package/dist/utils/schemas.d.ts.map +1 -1
- package/dist/utils/schemas.js +12 -12
- package/dist/utils/schemas.js.map +1 -1
- package/dist/utils/terminal.d.ts.map +1 -1
- package/dist/utils/terminal.js +18 -7
- package/dist/utils/terminal.js.map +1 -1
- package/dist/utils/tiers.d.ts.map +1 -1
- package/dist/utils/tiers.js +14 -6
- package/dist/utils/tiers.js.map +1 -1
- package/package.json +14 -3
- package/skills/swarm-output-style/SKILL.md +114 -46
package/dist/memory/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/schema.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
2
|
/**
|
|
3
3
|
* Initialize the memory database with all tables.
|
|
4
|
+
* Tables are prefixed with `memory_` to avoid conflicts in the shared swarm.db.
|
|
4
5
|
*/
|
|
5
6
|
export declare function initializeSchema(db: Database.Database): void;
|
|
6
7
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAyE5D"}
|
package/dist/memory/schema.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Initialize the memory database with all tables.
|
|
3
|
+
* Tables are prefixed with `memory_` to avoid conflicts in the shared swarm.db.
|
|
3
4
|
*/
|
|
4
5
|
export function initializeSchema(db) {
|
|
5
6
|
db.pragma('journal_mode = WAL');
|
|
@@ -7,7 +8,7 @@ export function initializeSchema(db) {
|
|
|
7
8
|
db.pragma('foreign_keys = ON');
|
|
8
9
|
// Knowledge entries (replaces vault .md files)
|
|
9
10
|
db.exec(`
|
|
10
|
-
CREATE TABLE IF NOT EXISTS
|
|
11
|
+
CREATE TABLE IF NOT EXISTS memory_entries (
|
|
11
12
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
12
13
|
type TEXT NOT NULL CHECK(type IN ('decision', 'pattern', 'learning', 'context', 'outcome')),
|
|
13
14
|
title TEXT NOT NULL,
|
|
@@ -16,56 +17,56 @@ export function initializeSchema(db) {
|
|
|
16
17
|
repo TEXT,
|
|
17
18
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
18
19
|
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
19
|
-
superseded_by INTEGER REFERENCES
|
|
20
|
+
superseded_by INTEGER REFERENCES memory_entries(id),
|
|
20
21
|
source TEXT
|
|
21
22
|
)
|
|
22
23
|
`);
|
|
23
24
|
// Full-text search index
|
|
24
25
|
db.exec(`
|
|
25
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS
|
|
26
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS memory_entries_fts USING fts5(
|
|
26
27
|
title, content, tags,
|
|
27
|
-
content='
|
|
28
|
+
content='memory_entries',
|
|
28
29
|
content_rowid='id'
|
|
29
30
|
)
|
|
30
31
|
`);
|
|
31
32
|
// Keep FTS in sync via triggers
|
|
32
33
|
db.exec(`
|
|
33
|
-
CREATE TRIGGER IF NOT EXISTS
|
|
34
|
-
INSERT INTO
|
|
34
|
+
CREATE TRIGGER IF NOT EXISTS memory_entries_ai AFTER INSERT ON memory_entries BEGIN
|
|
35
|
+
INSERT INTO memory_entries_fts(rowid, title, content, tags)
|
|
35
36
|
VALUES (new.id, new.title, new.content, new.tags);
|
|
36
37
|
END
|
|
37
38
|
`);
|
|
38
39
|
db.exec(`
|
|
39
|
-
CREATE TRIGGER IF NOT EXISTS
|
|
40
|
-
INSERT INTO
|
|
40
|
+
CREATE TRIGGER IF NOT EXISTS memory_entries_ad AFTER DELETE ON memory_entries BEGIN
|
|
41
|
+
INSERT INTO memory_entries_fts(memory_entries_fts, rowid, title, content, tags)
|
|
41
42
|
VALUES ('delete', old.id, old.title, old.content, old.tags);
|
|
42
43
|
END
|
|
43
44
|
`);
|
|
44
45
|
db.exec(`
|
|
45
|
-
CREATE TRIGGER IF NOT EXISTS
|
|
46
|
-
INSERT INTO
|
|
46
|
+
CREATE TRIGGER IF NOT EXISTS memory_entries_au AFTER UPDATE ON memory_entries BEGIN
|
|
47
|
+
INSERT INTO memory_entries_fts(memory_entries_fts, rowid, title, content, tags)
|
|
47
48
|
VALUES ('delete', old.id, old.title, old.content, old.tags);
|
|
48
|
-
INSERT INTO
|
|
49
|
+
INSERT INTO memory_entries_fts(rowid, title, content, tags)
|
|
49
50
|
VALUES (new.id, new.title, new.content, new.tags);
|
|
50
51
|
END
|
|
51
52
|
`);
|
|
52
53
|
// Relations between entries (graph edges)
|
|
53
54
|
db.exec(`
|
|
54
|
-
CREATE TABLE IF NOT EXISTS
|
|
55
|
+
CREATE TABLE IF NOT EXISTS memory_relations (
|
|
55
56
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
56
|
-
from_id INTEGER NOT NULL REFERENCES
|
|
57
|
-
to_id INTEGER NOT NULL REFERENCES
|
|
57
|
+
from_id INTEGER NOT NULL REFERENCES memory_entries(id) ON DELETE CASCADE,
|
|
58
|
+
to_id INTEGER NOT NULL REFERENCES memory_entries(id) ON DELETE CASCADE,
|
|
58
59
|
relation_type TEXT NOT NULL,
|
|
59
60
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
60
61
|
)
|
|
61
62
|
`);
|
|
62
63
|
// Indexes
|
|
63
64
|
db.exec(`
|
|
64
|
-
CREATE INDEX IF NOT EXISTS
|
|
65
|
-
CREATE INDEX IF NOT EXISTS
|
|
66
|
-
CREATE INDEX IF NOT EXISTS
|
|
67
|
-
CREATE INDEX IF NOT EXISTS
|
|
68
|
-
CREATE INDEX IF NOT EXISTS
|
|
65
|
+
CREATE INDEX IF NOT EXISTS idx_memory_entries_type ON memory_entries(type);
|
|
66
|
+
CREATE INDEX IF NOT EXISTS idx_memory_entries_repo ON memory_entries(repo);
|
|
67
|
+
CREATE INDEX IF NOT EXISTS idx_memory_entries_updated ON memory_entries(updated_at);
|
|
68
|
+
CREATE INDEX IF NOT EXISTS idx_memory_relations_from ON memory_relations(from_id);
|
|
69
|
+
CREATE INDEX IF NOT EXISTS idx_memory_relations_to ON memory_relations(to_id);
|
|
69
70
|
`);
|
|
70
71
|
}
|
|
71
72
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAqB;IACpD,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,+CAA+C;IAC/C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;GAaP,CAAC,CAAC;IAEH,yBAAyB;IACzB,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IAEH,gCAAgC;IAChC,EAAE,CAAC,IAAI,CAAC;;;;;GAKP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;GAKP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;GAOP,CAAC,CAAC;IAEH,0CAA0C;IAC1C,EAAE,CAAC,IAAI,CAAC;;;;;;;;GAQP,CAAC,CAAC;IAEH,UAAU;IACV,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAwCtD"}
|
package/dist/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACrF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE5C,qBAAqB;IACrB,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QACjE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,kBAAkB;IAClB,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACrF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE5C,qBAAqB;IACrB,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QACjE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,kBAAkB;IAClB,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAC9B,IAAI,CAAC,SAAS,CACZ;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,yDAAyD;QACtE,MAAM,EAAE,eAAe;KACxB,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IAEF,0CAA0C;IAC1C,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAEpC,iCAAiC;IACjC,eAAe,CAAC,SAAS,CAAC,CAAC;IAE3B,yBAAyB;IACzB,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACtF,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAChE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAW;IACzC,+CAA+C;IAC/C,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDH,CACE,CAAC;IAEF,iBAAiB;IACjB,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCH,CACE,CAAC;IAEF,mBAAmB;IACnB,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EACxB;;;;;;;;;;CAUH,CACE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,EACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCH,CACE,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/runtime/acp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,UAAU;
|
|
1
|
+
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/runtime/acp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1C,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,gBAAgB;IASlC,IAAI,KAAK,IAAI,MAAM,CAElB;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAMb,MAAM;IA4FpB,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,IAAI;CAuBb"}
|
package/dist/runtime/acp.js
CHANGED
|
@@ -19,20 +19,27 @@ export class ACPServer {
|
|
|
19
19
|
this.engine = opts.engine ?? null;
|
|
20
20
|
this.authToken = randomBytes(32).toString('hex');
|
|
21
21
|
}
|
|
22
|
-
get token() {
|
|
22
|
+
get token() {
|
|
23
|
+
return this.authToken;
|
|
24
|
+
}
|
|
23
25
|
async start() {
|
|
24
|
-
const port = this.opts.port ?? 3100
|
|
26
|
+
const port = this.opts.port ?? 3100;
|
|
27
|
+
const host = this.opts.host ?? '127.0.0.1';
|
|
25
28
|
this.server = createServer((req, res) => this.handle(req, res));
|
|
26
|
-
return new Promise(
|
|
29
|
+
return new Promise((resolve) => {
|
|
27
30
|
this.server.listen(port, host, () => {
|
|
28
31
|
this.log.info(`ACP on http://${host}:${port}`);
|
|
29
32
|
this.log.info(`ACP auth token: ${this.authToken.slice(0, 8)}...`);
|
|
30
33
|
console.log(` Auth token: ${this.authToken.slice(0, 8)}...`);
|
|
31
|
-
|
|
34
|
+
resolve();
|
|
32
35
|
});
|
|
33
36
|
});
|
|
34
37
|
}
|
|
35
|
-
async stop() {
|
|
38
|
+
async stop() {
|
|
39
|
+
return new Promise((resolve) => {
|
|
40
|
+
this.server ? this.server.close(() => resolve()) : resolve();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
36
43
|
async handle(req, res) {
|
|
37
44
|
const path = new URL(req.url ?? '/', `http://${req.headers.host}`).pathname;
|
|
38
45
|
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3100');
|
|
@@ -55,53 +62,71 @@ export class ACPServer {
|
|
|
55
62
|
if (req.method === 'GET' && path === '/health')
|
|
56
63
|
this.json(res, 200, { status: 'ok', version: '1.0.0' });
|
|
57
64
|
else if (req.method === 'GET' && path === '/agents')
|
|
58
|
-
this.json(res, 200, {
|
|
65
|
+
this.json(res, 200, {
|
|
66
|
+
agents: this.registry
|
|
67
|
+
.getAllConfigs()
|
|
68
|
+
.map((a) => ({ name: a.name, description: a.description, model: a.model })),
|
|
69
|
+
});
|
|
59
70
|
else if (req.method === 'POST' && path === '/sessions') {
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
if (
|
|
63
|
-
|
|
64
|
-
this.sessions.set(
|
|
65
|
-
this.json(res, 201, { id:
|
|
71
|
+
const body = (await this.body(req));
|
|
72
|
+
const session = { id: randomUUID(), status: 'active', messages: [], createdAt: new Date() };
|
|
73
|
+
if (body.prompt)
|
|
74
|
+
session.messages.push({ role: 'user', content: body.prompt, timestamp: new Date() });
|
|
75
|
+
this.sessions.set(session.id, session);
|
|
76
|
+
this.json(res, 201, { id: session.id, status: session.status });
|
|
66
77
|
}
|
|
67
78
|
else if (req.method === 'GET' && path.match(/^\/sessions\/[\w-]+$/)) {
|
|
68
|
-
const
|
|
69
|
-
|
|
79
|
+
const session = this.sessions.get(path.split('/')[2]);
|
|
80
|
+
session
|
|
81
|
+
? this.json(res, 200, { id: session.id, status: session.status, messages: session.messages })
|
|
82
|
+
: this.json(res, 404, { error: 'Not found' });
|
|
70
83
|
}
|
|
71
84
|
else if (req.method === 'POST' && path.match(/^\/sessions\/[\w-]+\/messages$/)) {
|
|
72
|
-
const
|
|
73
|
-
if (!
|
|
85
|
+
const session = this.sessions.get(path.split('/')[2]);
|
|
86
|
+
if (!session) {
|
|
74
87
|
this.json(res, 404, { error: 'Not found' });
|
|
75
88
|
return;
|
|
76
89
|
}
|
|
77
|
-
const
|
|
78
|
-
const content =
|
|
79
|
-
|
|
90
|
+
const body = (await this.body(req));
|
|
91
|
+
const content = body.content;
|
|
92
|
+
session.messages.push({ role: 'user', content, timestamp: new Date() });
|
|
80
93
|
// Execute via engine if available
|
|
81
94
|
if (this.engine) {
|
|
82
95
|
try {
|
|
83
96
|
const result = await this.engine.runPattern('research', content, { costBudget: 1.0 });
|
|
84
97
|
const output = result.phases
|
|
85
|
-
.flatMap(
|
|
86
|
-
.map(
|
|
98
|
+
.flatMap((phase) => phase.agents)
|
|
99
|
+
.map((agent) => agent.result?.output ?? '')
|
|
87
100
|
.filter(Boolean)
|
|
88
101
|
.join('\n\n');
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
102
|
+
const reply = {
|
|
103
|
+
role: 'assistant',
|
|
104
|
+
content: output || `Orchestration ${result.status}`,
|
|
105
|
+
timestamp: new Date(),
|
|
106
|
+
};
|
|
107
|
+
session.messages.push(reply);
|
|
108
|
+
this.json(res, 200, { role: 'assistant', content: reply.content, sessionId: session.id });
|
|
92
109
|
return;
|
|
93
110
|
}
|
|
94
111
|
catch (error) {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
112
|
+
const reply = {
|
|
113
|
+
role: 'assistant',
|
|
114
|
+
content: `Error: ${error instanceof Error ? error.message : String(error)}`,
|
|
115
|
+
timestamp: new Date(),
|
|
116
|
+
};
|
|
117
|
+
session.messages.push(reply);
|
|
118
|
+
this.json(res, 200, { role: 'assistant', content: reply.content });
|
|
98
119
|
return;
|
|
99
120
|
}
|
|
100
121
|
}
|
|
101
122
|
// Fallback if no engine
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
123
|
+
const reply = {
|
|
124
|
+
role: 'assistant',
|
|
125
|
+
content: `[No engine configured — message received: "${content.slice(0, 100)}"]`,
|
|
126
|
+
timestamp: new Date(),
|
|
127
|
+
};
|
|
128
|
+
session.messages.push(reply);
|
|
129
|
+
this.json(res, 200, { role: 'assistant', content: reply.content });
|
|
105
130
|
}
|
|
106
131
|
else
|
|
107
132
|
this.json(res, 404, { error: 'Not found' });
|
|
@@ -110,27 +135,32 @@ export class ACPServer {
|
|
|
110
135
|
this.json(res, 500, { error: 'Internal error' });
|
|
111
136
|
}
|
|
112
137
|
}
|
|
113
|
-
json(res, code, data) {
|
|
138
|
+
json(res, code, data) {
|
|
139
|
+
res.writeHead(code, { 'Content-Type': 'application/json' });
|
|
140
|
+
res.end(JSON.stringify(data));
|
|
141
|
+
}
|
|
114
142
|
body(req) {
|
|
115
143
|
return new Promise((resolve, reject) => {
|
|
116
|
-
let
|
|
144
|
+
let raw = '';
|
|
117
145
|
let size = 0;
|
|
118
146
|
const MAX_BODY = 1024 * 1024; // 1MB
|
|
119
|
-
req.on('data', (
|
|
120
|
-
size +=
|
|
147
|
+
req.on('data', (chunk) => {
|
|
148
|
+
size += chunk.length;
|
|
121
149
|
if (size > MAX_BODY) {
|
|
122
150
|
req.destroy();
|
|
123
151
|
reject(new Error('Body too large'));
|
|
124
152
|
return;
|
|
125
153
|
}
|
|
126
|
-
|
|
154
|
+
raw += chunk;
|
|
155
|
+
});
|
|
156
|
+
req.on('end', () => {
|
|
157
|
+
try {
|
|
158
|
+
resolve(raw ? JSON.parse(raw) : {});
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
reject(new Error('Bad JSON'));
|
|
162
|
+
}
|
|
127
163
|
});
|
|
128
|
-
req.on('end', () => { try {
|
|
129
|
-
resolve(b ? JSON.parse(b) : {});
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
132
|
-
reject(new Error('Bad JSON'));
|
|
133
|
-
} });
|
|
134
164
|
});
|
|
135
165
|
}
|
|
136
166
|
}
|
package/dist/runtime/acp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../src/runtime/acp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmC,MAAM,MAAM,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../src/runtime/acp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../../src/runtime/adaptive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAEtG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAoB;gBAE1B,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU;IAKnD;;OAEG;IACH,OAAO,CAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,GAAG,cAAc,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../../src/runtime/adaptive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAEtG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAoB;gBAE1B,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU;IAKnD;;OAEG;IACH,OAAO,CAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,GAAG,cAAc,GAAG,IAAI;IA4InG;;OAEG;IACH,KAAK,CAAC,aAAa,EAAE,qBAAqB,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IAqB7E;;;;OAIG;IACH,eAAe,CAAC,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI;IA+BxG,OAAO,CAAC,aAAa;CAwCtB"}
|
package/dist/runtime/adaptive.js
CHANGED
|
@@ -17,12 +17,12 @@ export class AdaptiveReplanner {
|
|
|
17
17
|
};
|
|
18
18
|
let adapted = false;
|
|
19
19
|
// Rule 1: High confidence + small output → task is simple
|
|
20
|
-
const allHighConfidence = completedPhase.agents.every(a => a.result?.confidence === 'high');
|
|
20
|
+
const allHighConfidence = completedPhase.agents.every((a) => a.result?.confidence === 'high');
|
|
21
21
|
const totalOutput = completedPhase.agents.reduce((sum, a) => sum + (a.result?.output.length ?? 0), 0);
|
|
22
22
|
const isSmallOutput = totalOutput < 2000; // ~500 tokens
|
|
23
|
-
if (allHighConfidence && isSmallOutput && completedPhase.config.
|
|
23
|
+
if (allHighConfidence && isSmallOutput && completedPhase.config.kind === 'research') {
|
|
24
24
|
// Simple task — downgrade remaining models and skip devil's advocate
|
|
25
|
-
const remaining = orchestration.phases.filter(p => p.status === 'pending');
|
|
25
|
+
const remaining = orchestration.phases.filter((p) => p.status === 'pending');
|
|
26
26
|
for (const phase of remaining) {
|
|
27
27
|
for (const agent of phase.config.agents) {
|
|
28
28
|
if (getTier(agent) === 'expensive') {
|
|
@@ -31,19 +31,20 @@ export class AdaptiveReplanner {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
// Skip challenge/devil's advocate phases
|
|
34
|
-
if (phase.config.
|
|
34
|
+
if (phase.config.kind === 'challenge') {
|
|
35
35
|
adaptations.skipPhases.push(phase.config.name);
|
|
36
36
|
adapted = true;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
if (adapted)
|
|
40
|
-
adaptations.reason =
|
|
40
|
+
adaptations.reason =
|
|
41
|
+
'Simple task detected (high confidence, small output) — downgrading models and skipping adversarial phases';
|
|
41
42
|
}
|
|
42
43
|
// Rule 2: Low confidence or blockers → task is complex, upgrade
|
|
43
|
-
const anyLowConfidence = completedPhase.agents.some(a => a.result?.confidence === 'low');
|
|
44
|
-
const hasBlockers = completedPhase.agents.some(a => (a.result?.blockers.length ?? 0) > 0);
|
|
44
|
+
const anyLowConfidence = completedPhase.agents.some((a) => a.result?.confidence === 'low');
|
|
45
|
+
const hasBlockers = completedPhase.agents.some((a) => (a.result?.blockers.length ?? 0) > 0);
|
|
45
46
|
if ((anyLowConfidence || hasBlockers) && !adapted) {
|
|
46
|
-
const remaining = orchestration.phases.filter(p => p.status === 'pending');
|
|
47
|
+
const remaining = orchestration.phases.filter((p) => p.status === 'pending');
|
|
47
48
|
for (const phase of remaining) {
|
|
48
49
|
for (const agent of phase.config.agents) {
|
|
49
50
|
if (getTier(agent) === 'mid' || getTier(agent) === 'cheap') {
|
|
@@ -58,13 +59,13 @@ export class AdaptiveReplanner {
|
|
|
58
59
|
// Rule 3: Budget overrun — downgrade remaining
|
|
59
60
|
if (!adapted && orchestration.config.costBudget) {
|
|
60
61
|
const spent = orchestration.phases
|
|
61
|
-
.filter(p => p.status === 'completed')
|
|
62
|
+
.filter((p) => p.status === 'completed')
|
|
62
63
|
.reduce((sum, p) => sum + p.usage.costUsd, 0);
|
|
63
64
|
const budgetRemaining = orchestration.config.costBudget - spent;
|
|
64
|
-
const phasesRemaining = orchestration.phases.filter(p => p.status === 'pending').length;
|
|
65
|
-
if (phasesRemaining > 0 && budgetRemaining <
|
|
65
|
+
const phasesRemaining = orchestration.phases.filter((p) => p.status === 'pending').length;
|
|
66
|
+
if (phasesRemaining > 0 && budgetRemaining < orchestration.config.costBudget * 0.3) {
|
|
66
67
|
// Less than 30% budget remaining — downgrade everything
|
|
67
|
-
const remaining = orchestration.phases.filter(p => p.status === 'pending');
|
|
68
|
+
const remaining = orchestration.phases.filter((p) => p.status === 'pending');
|
|
68
69
|
for (const phase of remaining) {
|
|
69
70
|
for (const agent of phase.config.agents) {
|
|
70
71
|
if (getTier(agent) === 'expensive') {
|
|
@@ -80,14 +81,14 @@ export class AdaptiveReplanner {
|
|
|
80
81
|
// Rule 4: Trajectory length anomaly — token usage exceeds historical average
|
|
81
82
|
if (!adapted && this.traceStore) {
|
|
82
83
|
const similar = this.traceStore.findSimilar(orchestration.config.description, 3);
|
|
83
|
-
const successfulTraces = similar.filter(t => t.status === 'completed');
|
|
84
|
+
const successfulTraces = similar.filter((t) => t.status === 'completed');
|
|
84
85
|
if (successfulTraces.length >= 2) {
|
|
85
86
|
const avgTokens = successfulTraces.reduce((s, t) => s + t.totalTokens, 0) / successfulTraces.length;
|
|
86
87
|
const currentTokens = orchestration.phases
|
|
87
|
-
.filter(p => p.status === 'completed')
|
|
88
|
+
.filter((p) => p.status === 'completed')
|
|
88
89
|
.reduce((s, p) => s + p.usage.totalTokens, 0);
|
|
89
90
|
if (currentTokens > avgTokens * 2) {
|
|
90
|
-
const remaining = orchestration.phases.filter(p => p.status === 'pending');
|
|
91
|
+
const remaining = orchestration.phases.filter((p) => p.status === 'pending');
|
|
91
92
|
for (const phase of remaining) {
|
|
92
93
|
for (const agent of phase.config.agents) {
|
|
93
94
|
if (getTier(agent) === 'expensive') {
|
|
@@ -103,16 +104,16 @@ export class AdaptiveReplanner {
|
|
|
103
104
|
}
|
|
104
105
|
// Rule 5: Confidence degradation across phases — sharp drop triggers upgrade
|
|
105
106
|
if (!adapted) {
|
|
106
|
-
const completedPhases = orchestration.phases.filter(p => p.status === 'completed');
|
|
107
|
+
const completedPhases = orchestration.phases.filter((p) => p.status === 'completed');
|
|
107
108
|
if (completedPhases.length >= 2) {
|
|
108
|
-
const confidences = completedPhases.map(p => {
|
|
109
|
-
const agentConfidences = p.agents.map(a => a.result?.confidence ?? 'medium');
|
|
109
|
+
const confidences = completedPhases.map((p) => {
|
|
110
|
+
const agentConfidences = p.agents.map((a) => a.result?.confidence ?? 'medium');
|
|
110
111
|
return agentConfidences.includes('low') ? 'low' : agentConfidences.includes('medium') ? 'medium' : 'high';
|
|
111
112
|
});
|
|
112
113
|
const last = confidences[confidences.length - 1];
|
|
113
114
|
const prev = confidences[confidences.length - 2];
|
|
114
115
|
if (prev === 'high' && last === 'low') {
|
|
115
|
-
const remaining = orchestration.phases.filter(p => p.status === 'pending');
|
|
116
|
+
const remaining = orchestration.phases.filter((p) => p.status === 'pending');
|
|
116
117
|
for (const phase of remaining) {
|
|
117
118
|
for (const agent of phase.config.agents) {
|
|
118
119
|
if (getTier(agent) !== 'expensive') {
|
|
@@ -140,7 +141,7 @@ export class AdaptiveReplanner {
|
|
|
140
141
|
apply(orchestration, adaptation) {
|
|
141
142
|
// Skip phases
|
|
142
143
|
for (const phaseName of adaptation.skipPhases) {
|
|
143
|
-
const phase = orchestration.phases.find(p => p.config.name === phaseName);
|
|
144
|
+
const phase = orchestration.phases.find((p) => p.config.name === phaseName);
|
|
144
145
|
if (phase && phase.status === 'pending') {
|
|
145
146
|
phase.status = 'skipped';
|
|
146
147
|
}
|
|
@@ -166,7 +167,7 @@ export class AdaptiveReplanner {
|
|
|
166
167
|
const agents = pendingPhase.agents;
|
|
167
168
|
if (agents.length <= 1)
|
|
168
169
|
return null;
|
|
169
|
-
const completedPhases = orchestration.phases.filter(p => p.status === 'completed');
|
|
170
|
+
const completedPhases = orchestration.phases.filter((p) => p.status === 'completed');
|
|
170
171
|
if (completedPhases.length === 0)
|
|
171
172
|
return null;
|
|
172
173
|
const agentsToSkip = [];
|
|
@@ -194,33 +195,31 @@ export class AdaptiveReplanner {
|
|
|
194
195
|
}
|
|
195
196
|
isAgentNeeded(agent, completedPhases, currentPhase) {
|
|
196
197
|
// Rule 1: If phase is "review" and research found nothing complex, drop extra reviewers
|
|
197
|
-
if (currentPhase.
|
|
198
|
+
if (currentPhase.kind === 'review' && completedPhases.length > 0) {
|
|
198
199
|
const lastPhase = completedPhases[completedPhases.length - 1];
|
|
199
|
-
const allHigh = lastPhase.agents.every(a => a.result?.confidence === 'high');
|
|
200
|
-
const smallOutput = lastPhase.agents.every(a => (a.result?.output?.length ?? 0) < 2000);
|
|
200
|
+
const allHigh = lastPhase.agents.every((a) => a.result?.confidence === 'high');
|
|
201
|
+
const smallOutput = lastPhase.agents.every((a) => (a.result?.output?.length ?? 0) < 2000);
|
|
201
202
|
if (allHigh && smallOutput) {
|
|
202
|
-
const reviewers = currentPhase.agents.filter(a => a.type.includes('review'));
|
|
203
|
+
const reviewers = currentPhase.agents.filter((a) => a.type.includes('review'));
|
|
203
204
|
if (reviewers.length > 1 && reviewers.indexOf(agent) > 0) {
|
|
204
205
|
return false;
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
208
|
}
|
|
208
209
|
// Rule 2: If a specialized reviewer's domain isn't relevant to the changes
|
|
209
|
-
const filesTouched = completedPhases
|
|
210
|
-
.flatMap(p => p.agents)
|
|
211
|
-
.flatMap(a => a.result?.filesTouched ?? []);
|
|
210
|
+
const filesTouched = completedPhases.flatMap((p) => p.agents).flatMap((a) => a.result?.filesTouched ?? []);
|
|
212
211
|
if (agent.type === 'accessibility-reviewer') {
|
|
213
|
-
const hasFrontend = filesTouched.some(f => f.endsWith('.tsx') || f.endsWith('.jsx') || f.endsWith('.html') || f.endsWith('.css'));
|
|
212
|
+
const hasFrontend = filesTouched.some((f) => f.endsWith('.tsx') || f.endsWith('.jsx') || f.endsWith('.html') || f.endsWith('.css'));
|
|
214
213
|
if (!hasFrontend)
|
|
215
214
|
return false;
|
|
216
215
|
}
|
|
217
216
|
if (agent.type === 'data-integrity-reviewer') {
|
|
218
|
-
const hasData = filesTouched.some(f => f.includes('migration') || f.includes('schema') || f.includes('model'));
|
|
217
|
+
const hasData = filesTouched.some((f) => f.includes('migration') || f.includes('schema') || f.includes('model'));
|
|
219
218
|
if (!hasData)
|
|
220
219
|
return false;
|
|
221
220
|
}
|
|
222
221
|
if (agent.type === 'dependency-reviewer') {
|
|
223
|
-
const hasDeps = filesTouched.some(f => f.includes('package.json') || f.includes('Cargo.toml') || f.includes('go.mod') || f.includes('requirements'));
|
|
222
|
+
const hasDeps = filesTouched.some((f) => f.includes('package.json') || f.includes('Cargo.toml') || f.includes('go.mod') || f.includes('requirements'));
|
|
224
223
|
if (!hasDeps)
|
|
225
224
|
return false;
|
|
226
225
|
}
|