cognitive-core 0.2.1 → 0.2.2
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/atlas.d.ts +10 -0
- package/dist/atlas.d.ts.map +1 -1
- package/dist/atlas.js +65 -0
- package/dist/atlas.js.map +1 -1
- package/dist/learning/pipeline.d.ts +4 -31
- package/dist/learning/pipeline.d.ts.map +1 -1
- package/dist/learning/pipeline.js +12 -64
- package/dist/learning/pipeline.js.map +1 -1
- package/dist/memory/curated-loader.d.ts +21 -4
- package/dist/memory/curated-loader.d.ts.map +1 -1
- package/dist/memory/curated-loader.js +53 -16
- package/dist/memory/curated-loader.js.map +1 -1
- package/dist/memory/index.d.ts +2 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +3 -1
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/playbook.d.ts +6 -0
- package/dist/memory/playbook.d.ts.map +1 -1
- package/dist/memory/playbook.js +15 -0
- package/dist/memory/playbook.js.map +1 -1
- package/dist/memory/source-resolver.d.ts +120 -0
- package/dist/memory/source-resolver.d.ts.map +1 -0
- package/dist/memory/source-resolver.js +300 -0
- package/dist/memory/source-resolver.js.map +1 -0
- package/dist/types/config.d.ts +141 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +40 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/workspace/types.d.ts +12 -54
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/types.js.map +1 -1
- package/package.json +2 -2
- package/playbooks/compound-engineering/adversarial-review.json +51 -0
- package/playbooks/compound-engineering/agent-native-architecture.json +59 -0
- package/playbooks/compound-engineering/agent-native-review.json +54 -0
- package/playbooks/compound-engineering/api-contract-review.json +52 -0
- package/playbooks/compound-engineering/brainstorm-requirements.json +55 -0
- package/playbooks/compound-engineering/bug-reproduction.json +62 -0
- package/playbooks/compound-engineering/confidence-calibration.json +49 -0
- package/playbooks/compound-engineering/correctness-review.json +49 -0
- package/playbooks/compound-engineering/data-migration-safety.json +59 -0
- package/playbooks/compound-engineering/deployment-verification.json +63 -0
- package/playbooks/compound-engineering/error-recovery-patterns.json +53 -0
- package/playbooks/compound-engineering/implementation-planning.json +64 -0
- package/playbooks/compound-engineering/issue-pattern-analysis.json +53 -0
- package/playbooks/compound-engineering/knowledge-compounding.json +63 -0
- package/playbooks/compound-engineering/learnings-research.json +54 -0
- package/playbooks/compound-engineering/maintainability-review.json +49 -0
- package/playbooks/compound-engineering/performance-review.json +54 -0
- package/playbooks/compound-engineering/plan-adversarial-review.json +56 -0
- package/playbooks/compound-engineering/plan-feasibility-review.json +56 -0
- package/playbooks/compound-engineering/project-standards-review.json +52 -0
- package/playbooks/compound-engineering/reliability-review.json +53 -0
- package/playbooks/compound-engineering/review-orchestration.json +64 -0
- package/playbooks/compound-engineering/security-review.json +54 -0
- package/playbooks/compound-engineering/systematic-execution.json +64 -0
- package/playbooks/compound-engineering/testing-review.json +50 -0
- package/src/atlas.ts +96 -0
- package/src/memory/curated-loader.ts +69 -16
- package/src/memory/index.ts +16 -0
- package/src/memory/playbook.ts +19 -0
- package/src/memory/source-resolver.ts +422 -0
- package/src/types/config.ts +46 -0
- package/src/types/index.ts +4 -0
- package/src/workspace/types.ts +22 -78
- package/tests/integration/curated-sources-e2e.test.ts +502 -0
- package/tests/memory/compound-engineering-seed.test.ts +338 -0
- package/tests/memory/curated-loader-extended.test.ts +225 -0
- package/tests/memory/playbook-quality-validation.test.ts +430 -0
- package/tests/memory/source-resolver.test.ts +700 -0
- package/.claude/settings.local.json +0 -11
- package/dist/learning/llm-extractor.d.ts +0 -88
- package/dist/learning/llm-extractor.d.ts.map +0 -1
- package/dist/learning/llm-extractor.js +0 -372
- package/dist/learning/llm-extractor.js.map +0 -1
- package/dist/learning/loop-coordinator.d.ts +0 -61
- package/dist/learning/loop-coordinator.d.ts.map +0 -1
- package/dist/learning/loop-coordinator.js +0 -96
- package/dist/learning/loop-coordinator.js.map +0 -1
- package/references/agent-workspace/CLAUDE.md +0 -74
- package/references/agent-workspace/README.md +0 -587
- package/references/agent-workspace/media/banner.png +0 -0
- package/references/agent-workspace/package-lock.json +0 -2061
- package/references/agent-workspace/package.json +0 -54
- package/references/agent-workspace/src/handle.ts +0 -122
- package/references/agent-workspace/src/index.ts +0 -32
- package/references/agent-workspace/src/manager.ts +0 -102
- package/references/agent-workspace/src/readers/json.ts +0 -71
- package/references/agent-workspace/src/readers/markdown.ts +0 -37
- package/references/agent-workspace/src/readers/raw.ts +0 -27
- package/references/agent-workspace/src/types.ts +0 -68
- package/references/agent-workspace/src/validation.ts +0 -93
- package/references/agent-workspace/src/writers/json.ts +0 -17
- package/references/agent-workspace/src/writers/markdown.ts +0 -27
- package/references/agent-workspace/src/writers/raw.ts +0 -22
- package/references/agent-workspace/tests/errors.test.ts +0 -652
- package/references/agent-workspace/tests/handle.test.ts +0 -144
- package/references/agent-workspace/tests/manager.test.ts +0 -124
- package/references/agent-workspace/tests/readers.test.ts +0 -205
- package/references/agent-workspace/tests/validation.test.ts +0 -196
- package/references/agent-workspace/tests/writers.test.ts +0 -108
- package/references/agent-workspace/tsconfig.json +0 -20
- package/references/agent-workspace/tsup.config.ts +0 -9
- package/references/minimem/.claude/settings.json +0 -7
- package/references/minimem/.sudocode/issues.jsonl +0 -18
- package/references/minimem/.sudocode/specs.jsonl +0 -1
- package/references/minimem/CLAUDE.md +0 -310
- package/references/minimem/README.md +0 -556
- package/references/minimem/claude-plugin/.claude-plugin/plugin.json +0 -10
- package/references/minimem/claude-plugin/.mcp.json +0 -7
- package/references/minimem/claude-plugin/README.md +0 -158
- package/references/minimem/claude-plugin/commands/recall.md +0 -47
- package/references/minimem/claude-plugin/commands/remember.md +0 -41
- package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +0 -272
- package/references/minimem/claude-plugin/hooks/hooks.json +0 -27
- package/references/minimem/claude-plugin/hooks/session-end.sh +0 -86
- package/references/minimem/claude-plugin/hooks/session-start.sh +0 -85
- package/references/minimem/claude-plugin/skills/memory/SKILL.md +0 -108
- package/references/minimem/package-lock.json +0 -5373
- package/references/minimem/package.json +0 -60
- package/references/minimem/scripts/postbuild.js +0 -35
- package/references/minimem/src/__tests__/edge-cases.test.ts +0 -371
- package/references/minimem/src/__tests__/errors.test.ts +0 -265
- package/references/minimem/src/__tests__/helpers.ts +0 -199
- package/references/minimem/src/__tests__/internal.test.ts +0 -407
- package/references/minimem/src/__tests__/knowledge.test.ts +0 -287
- package/references/minimem/src/__tests__/minimem.integration.test.ts +0 -1127
- package/references/minimem/src/__tests__/session.test.ts +0 -190
- package/references/minimem/src/cli/__tests__/commands.test.ts +0 -759
- package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +0 -141
- package/references/minimem/src/cli/commands/append.ts +0 -76
- package/references/minimem/src/cli/commands/config.ts +0 -262
- package/references/minimem/src/cli/commands/conflicts.ts +0 -413
- package/references/minimem/src/cli/commands/daemon.ts +0 -169
- package/references/minimem/src/cli/commands/index.ts +0 -12
- package/references/minimem/src/cli/commands/init.ts +0 -88
- package/references/minimem/src/cli/commands/mcp.ts +0 -177
- package/references/minimem/src/cli/commands/push-pull.ts +0 -213
- package/references/minimem/src/cli/commands/search.ts +0 -158
- package/references/minimem/src/cli/commands/status.ts +0 -84
- package/references/minimem/src/cli/commands/sync-init.ts +0 -290
- package/references/minimem/src/cli/commands/sync.ts +0 -70
- package/references/minimem/src/cli/commands/upsert.ts +0 -197
- package/references/minimem/src/cli/config.ts +0 -584
- package/references/minimem/src/cli/index.ts +0 -264
- package/references/minimem/src/cli/shared.ts +0 -161
- package/references/minimem/src/cli/sync/__tests__/central.test.ts +0 -152
- package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +0 -209
- package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +0 -118
- package/references/minimem/src/cli/sync/__tests__/detection.test.ts +0 -207
- package/references/minimem/src/cli/sync/__tests__/integration.test.ts +0 -476
- package/references/minimem/src/cli/sync/__tests__/registry.test.ts +0 -363
- package/references/minimem/src/cli/sync/__tests__/state.test.ts +0 -255
- package/references/minimem/src/cli/sync/__tests__/validation.test.ts +0 -193
- package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +0 -178
- package/references/minimem/src/cli/sync/central.ts +0 -292
- package/references/minimem/src/cli/sync/conflicts.ts +0 -204
- package/references/minimem/src/cli/sync/daemon.ts +0 -407
- package/references/minimem/src/cli/sync/detection.ts +0 -138
- package/references/minimem/src/cli/sync/index.ts +0 -107
- package/references/minimem/src/cli/sync/operations.ts +0 -373
- package/references/minimem/src/cli/sync/registry.ts +0 -279
- package/references/minimem/src/cli/sync/state.ts +0 -355
- package/references/minimem/src/cli/sync/validation.ts +0 -206
- package/references/minimem/src/cli/sync/watcher.ts +0 -234
- package/references/minimem/src/cli/version.ts +0 -34
- package/references/minimem/src/core/index.ts +0 -9
- package/references/minimem/src/core/indexer.ts +0 -628
- package/references/minimem/src/core/searcher.ts +0 -221
- package/references/minimem/src/db/schema.ts +0 -183
- package/references/minimem/src/db/sqlite-vec.ts +0 -24
- package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +0 -431
- package/references/minimem/src/embeddings/batch-gemini.ts +0 -392
- package/references/minimem/src/embeddings/batch-openai.ts +0 -409
- package/references/minimem/src/embeddings/embeddings.ts +0 -434
- package/references/minimem/src/index.ts +0 -109
- package/references/minimem/src/internal.ts +0 -299
- package/references/minimem/src/minimem.ts +0 -1276
- package/references/minimem/src/search/__tests__/hybrid.test.ts +0 -247
- package/references/minimem/src/search/graph.ts +0 -234
- package/references/minimem/src/search/hybrid.ts +0 -151
- package/references/minimem/src/search/search.ts +0 -256
- package/references/minimem/src/server/__tests__/mcp.test.ts +0 -341
- package/references/minimem/src/server/__tests__/tools.test.ts +0 -364
- package/references/minimem/src/server/mcp.ts +0 -326
- package/references/minimem/src/server/tools.ts +0 -720
- package/references/minimem/src/session.ts +0 -460
- package/references/minimem/tsconfig.json +0 -19
- package/references/minimem/tsup.config.ts +0 -26
- package/references/minimem/vitest.config.ts +0 -24
- package/references/sessionlog/.husky/pre-commit +0 -1
- package/references/sessionlog/.lintstagedrc.json +0 -4
- package/references/sessionlog/.prettierignore +0 -4
- package/references/sessionlog/.prettierrc.json +0 -11
- package/references/sessionlog/LICENSE +0 -21
- package/references/sessionlog/README.md +0 -453
- package/references/sessionlog/eslint.config.js +0 -58
- package/references/sessionlog/package-lock.json +0 -3672
- package/references/sessionlog/package.json +0 -65
- package/references/sessionlog/src/__tests__/agent-hooks.test.ts +0 -570
- package/references/sessionlog/src/__tests__/agent-registry.test.ts +0 -127
- package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +0 -225
- package/references/sessionlog/src/__tests__/claude-generator.test.ts +0 -46
- package/references/sessionlog/src/__tests__/commit-msg.test.ts +0 -86
- package/references/sessionlog/src/__tests__/cursor-agent.test.ts +0 -224
- package/references/sessionlog/src/__tests__/e2e-live.test.ts +0 -890
- package/references/sessionlog/src/__tests__/event-log.test.ts +0 -183
- package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +0 -105
- package/references/sessionlog/src/__tests__/gemini-agent.test.ts +0 -375
- package/references/sessionlog/src/__tests__/git-hooks.test.ts +0 -78
- package/references/sessionlog/src/__tests__/hook-managers.test.ts +0 -121
- package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +0 -759
- package/references/sessionlog/src/__tests__/opencode-agent.test.ts +0 -338
- package/references/sessionlog/src/__tests__/redaction.test.ts +0 -136
- package/references/sessionlog/src/__tests__/session-repo.test.ts +0 -353
- package/references/sessionlog/src/__tests__/session-store.test.ts +0 -166
- package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +0 -466
- package/references/sessionlog/src/__tests__/skill-live.test.ts +0 -461
- package/references/sessionlog/src/__tests__/summarize.test.ts +0 -348
- package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +0 -610
- package/references/sessionlog/src/__tests__/task-plan-live.test.ts +0 -632
- package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +0 -121
- package/references/sessionlog/src/__tests__/types.test.ts +0 -166
- package/references/sessionlog/src/__tests__/utils.test.ts +0 -333
- package/references/sessionlog/src/__tests__/validation.test.ts +0 -103
- package/references/sessionlog/src/__tests__/worktree.test.ts +0 -57
- package/references/sessionlog/src/agent/agents/claude-code.ts +0 -1089
- package/references/sessionlog/src/agent/agents/cursor.ts +0 -361
- package/references/sessionlog/src/agent/agents/gemini-cli.ts +0 -632
- package/references/sessionlog/src/agent/agents/opencode.ts +0 -540
- package/references/sessionlog/src/agent/registry.ts +0 -143
- package/references/sessionlog/src/agent/session-types.ts +0 -113
- package/references/sessionlog/src/agent/types.ts +0 -220
- package/references/sessionlog/src/cli.ts +0 -597
- package/references/sessionlog/src/commands/clean.ts +0 -133
- package/references/sessionlog/src/commands/disable.ts +0 -84
- package/references/sessionlog/src/commands/doctor.ts +0 -145
- package/references/sessionlog/src/commands/enable.ts +0 -202
- package/references/sessionlog/src/commands/explain.ts +0 -261
- package/references/sessionlog/src/commands/reset.ts +0 -105
- package/references/sessionlog/src/commands/resume.ts +0 -180
- package/references/sessionlog/src/commands/rewind.ts +0 -195
- package/references/sessionlog/src/commands/setup-ccweb.ts +0 -275
- package/references/sessionlog/src/commands/status.ts +0 -172
- package/references/sessionlog/src/config.ts +0 -165
- package/references/sessionlog/src/events/event-log.ts +0 -126
- package/references/sessionlog/src/git-operations.ts +0 -558
- package/references/sessionlog/src/hooks/git-hooks.ts +0 -165
- package/references/sessionlog/src/hooks/lifecycle.ts +0 -391
- package/references/sessionlog/src/index.ts +0 -650
- package/references/sessionlog/src/security/redaction.ts +0 -283
- package/references/sessionlog/src/session/state-machine.ts +0 -452
- package/references/sessionlog/src/store/checkpoint-store.ts +0 -509
- package/references/sessionlog/src/store/native-store.ts +0 -173
- package/references/sessionlog/src/store/provider-types.ts +0 -99
- package/references/sessionlog/src/store/session-store.ts +0 -266
- package/references/sessionlog/src/strategy/attribution.ts +0 -296
- package/references/sessionlog/src/strategy/common.ts +0 -207
- package/references/sessionlog/src/strategy/content-overlap.ts +0 -228
- package/references/sessionlog/src/strategy/manual-commit.ts +0 -988
- package/references/sessionlog/src/strategy/types.ts +0 -279
- package/references/sessionlog/src/summarize/claude-generator.ts +0 -115
- package/references/sessionlog/src/summarize/summarize.ts +0 -432
- package/references/sessionlog/src/types.ts +0 -508
- package/references/sessionlog/src/utils/chunk-files.ts +0 -49
- package/references/sessionlog/src/utils/commit-message.ts +0 -65
- package/references/sessionlog/src/utils/detect-agent.ts +0 -36
- package/references/sessionlog/src/utils/hook-managers.ts +0 -125
- package/references/sessionlog/src/utils/ide-tags.ts +0 -32
- package/references/sessionlog/src/utils/paths.ts +0 -79
- package/references/sessionlog/src/utils/preview-rewind.ts +0 -80
- package/references/sessionlog/src/utils/rewind-conflict.ts +0 -121
- package/references/sessionlog/src/utils/shadow-branch.ts +0 -109
- package/references/sessionlog/src/utils/string-utils.ts +0 -46
- package/references/sessionlog/src/utils/todo-extract.ts +0 -188
- package/references/sessionlog/src/utils/trailers.ts +0 -187
- package/references/sessionlog/src/utils/transcript-parse.ts +0 -177
- package/references/sessionlog/src/utils/transcript-timestamp.ts +0 -59
- package/references/sessionlog/src/utils/tree-ops.ts +0 -219
- package/references/sessionlog/src/utils/tty.ts +0 -72
- package/references/sessionlog/src/utils/validation.ts +0 -65
- package/references/sessionlog/src/utils/worktree.ts +0 -58
- package/references/sessionlog/src/wire-types.ts +0 -59
- package/references/sessionlog/templates/setup-env.sh +0 -153
- package/references/sessionlog/tsconfig.json +0 -18
- package/references/sessionlog/vitest.config.ts +0 -12
- package/references/skill-tree/.claude/settings.json +0 -6
- package/references/skill-tree/.sudocode/issues.jsonl +0 -19
- package/references/skill-tree/.sudocode/specs.jsonl +0 -3
- package/references/skill-tree/CLAUDE.md +0 -126
- package/references/skill-tree/README.md +0 -372
- package/references/skill-tree/docs/GAPS_v1.md +0 -221
- package/references/skill-tree/docs/INTEGRATION_PLAN.md +0 -467
- package/references/skill-tree/docs/TODOS.md +0 -91
- package/references/skill-tree/docs/anthropic_skill_guide.md +0 -1364
- package/references/skill-tree/docs/design/federated-skill-trees.md +0 -524
- package/references/skill-tree/docs/design/multi-agent-sync.md +0 -759
- package/references/skill-tree/docs/scraper/BRAINSTORM.md +0 -583
- package/references/skill-tree/docs/scraper/POC_PLAN.md +0 -420
- package/references/skill-tree/docs/scraper/README.md +0 -170
- package/references/skill-tree/examples/basic-usage.ts +0 -164
- package/references/skill-tree/package-lock.json +0 -1852
- package/references/skill-tree/package.json +0 -66
- package/references/skill-tree/scraper/README.md +0 -123
- package/references/skill-tree/scraper/docs/DESIGN.md +0 -683
- package/references/skill-tree/scraper/docs/PLAN.md +0 -336
- package/references/skill-tree/scraper/drizzle.config.ts +0 -10
- package/references/skill-tree/scraper/package-lock.json +0 -6329
- package/references/skill-tree/scraper/package.json +0 -68
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +0 -7
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +0 -7
- package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +0 -27
- package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +0 -21
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +0 -54
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +0 -24
- package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +0 -93
- package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +0 -22
- package/references/skill-tree/scraper/tsup.config.ts +0 -14
- package/references/skill-tree/scraper/vitest.config.ts +0 -17
- package/references/skill-tree/scripts/convert-to-vitest.ts +0 -166
- package/references/skill-tree/skills/skill-writer/SKILL.md +0 -339
- package/references/skill-tree/skills/skill-writer/references/examples.md +0 -326
- package/references/skill-tree/skills/skill-writer/references/patterns.md +0 -210
- package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +0 -123
- package/references/skill-tree/test/run-all.ts +0 -106
- package/references/skill-tree/test/utils.ts +0 -128
- package/references/skill-tree/vitest.config.ts +0 -16
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLM-Based Playbook Extractor
|
|
3
|
-
*
|
|
4
|
-
* Uses language models to generate higher-quality playbooks
|
|
5
|
-
* from trajectories. Complements the pattern-based extractor
|
|
6
|
-
* with deeper semantic analysis.
|
|
7
|
-
*/
|
|
8
|
-
import type { Playbook, Trajectory, Refinement } from '../types/index.js';
|
|
9
|
-
import type { AnalysisResult } from './analyzer.js';
|
|
10
|
-
import type { LLMProvider } from '../agents/types.js';
|
|
11
|
-
/**
|
|
12
|
-
* Configuration for LLM-based extraction
|
|
13
|
-
*/
|
|
14
|
-
export interface LLMExtractorConfig {
|
|
15
|
-
/** Temperature for LLM calls (default: 0.2 for determinism) */
|
|
16
|
-
temperature: number;
|
|
17
|
-
/** Maximum tokens for response */
|
|
18
|
-
maxTokens: number;
|
|
19
|
-
/** Whether to extract from single trajectories (vs only batches) */
|
|
20
|
-
extractFromSingle: boolean;
|
|
21
|
-
/** Minimum complexity for LLM extraction */
|
|
22
|
-
minComplexity: number;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Result from LLM extraction
|
|
26
|
-
*/
|
|
27
|
-
export interface LLMExtractionResult {
|
|
28
|
-
playbooks: Playbook[];
|
|
29
|
-
refinements: Array<{
|
|
30
|
-
playbookId: string;
|
|
31
|
-
refinement: Refinement;
|
|
32
|
-
}>;
|
|
33
|
-
/** Raw LLM response for debugging */
|
|
34
|
-
rawResponse?: string;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* LLM-Based Playbook Extractor
|
|
38
|
-
*/
|
|
39
|
-
export declare class LLMPlaybookExtractor {
|
|
40
|
-
private provider;
|
|
41
|
-
private config;
|
|
42
|
-
constructor(provider: LLMProvider, config?: Partial<LLMExtractorConfig>);
|
|
43
|
-
/**
|
|
44
|
-
* Extract playbooks from trajectories using LLM
|
|
45
|
-
*/
|
|
46
|
-
extract(trajectories: Trajectory[], analyses: AnalysisResult[], existingPlaybooks?: Playbook[]): Promise<LLMExtractionResult>;
|
|
47
|
-
/**
|
|
48
|
-
* Extract a playbook from a single trajectory
|
|
49
|
-
*/
|
|
50
|
-
private extractFromSingleTrajectory;
|
|
51
|
-
/**
|
|
52
|
-
* Extract playbooks from a batch of trajectories
|
|
53
|
-
*/
|
|
54
|
-
private extractFromBatch;
|
|
55
|
-
/**
|
|
56
|
-
* Build prompt for single trajectory extraction
|
|
57
|
-
*/
|
|
58
|
-
private buildSingleExtractionPrompt;
|
|
59
|
-
/**
|
|
60
|
-
* Build prompt for batch extraction
|
|
61
|
-
*/
|
|
62
|
-
private buildBatchExtractionPrompt;
|
|
63
|
-
/**
|
|
64
|
-
* Parse LLM response into extraction result
|
|
65
|
-
*/
|
|
66
|
-
private parseExtractionResponse;
|
|
67
|
-
/**
|
|
68
|
-
* Create a Playbook from LLM-extracted data
|
|
69
|
-
*/
|
|
70
|
-
private createPlaybookFromLLMData;
|
|
71
|
-
/**
|
|
72
|
-
* Parse complexity string
|
|
73
|
-
*/
|
|
74
|
-
private parseComplexity;
|
|
75
|
-
/**
|
|
76
|
-
* Check if two playbooks are similar
|
|
77
|
-
*/
|
|
78
|
-
private isSimilarPlaybook;
|
|
79
|
-
/**
|
|
80
|
-
* Generate a refinement for an existing playbook based on a new trajectory
|
|
81
|
-
*/
|
|
82
|
-
generateRefinement(playbook: Playbook, trajectory: Trajectory, context: string): Promise<Refinement>;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Create an LLM-based playbook extractor
|
|
86
|
-
*/
|
|
87
|
-
export declare function createLLMExtractor(provider: LLMProvider, config?: Partial<LLMExtractorConfig>): LLMPlaybookExtractor;
|
|
88
|
-
//# sourceMappingURL=llm-extractor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-extractor.d.ts","sourceRoot":"","sources":["../../src/learning/llm-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;CACvB;AASD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,KAAK,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,UAAU,CAAC;KACxB,CAAC,CAAC;IACH,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAKvE;;OAEG;IACG,OAAO,CACX,YAAY,EAAE,UAAU,EAAE,EAC1B,QAAQ,EAAE,cAAc,EAAE,EAC1B,iBAAiB,GAAE,QAAQ,EAAO,GACjC,OAAO,CAAC,mBAAmB,CAAC;IAkE/B;;OAEG;YACW,2BAA2B;IAsBzC;;OAEG;YACW,gBAAgB;IAsB9B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAkEnC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAwDlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA+D/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAsCjC;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;CA0DvB;AAoBD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,WAAW,EACrB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,oBAAoB,CAEtB"}
|
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLM-Based Playbook Extractor
|
|
3
|
-
*
|
|
4
|
-
* Uses language models to generate higher-quality playbooks
|
|
5
|
-
* from trajectories. Complements the pattern-based extractor
|
|
6
|
-
* with deeper semantic analysis.
|
|
7
|
-
*/
|
|
8
|
-
import { createPlaybook } from '../types/index.js';
|
|
9
|
-
const DEFAULT_CONFIG = {
|
|
10
|
-
temperature: 0.2,
|
|
11
|
-
maxTokens: 2000,
|
|
12
|
-
extractFromSingle: true,
|
|
13
|
-
minComplexity: 3, // Minimum steps to warrant LLM extraction
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* LLM-Based Playbook Extractor
|
|
17
|
-
*/
|
|
18
|
-
export class LLMPlaybookExtractor {
|
|
19
|
-
provider;
|
|
20
|
-
config;
|
|
21
|
-
constructor(provider, config) {
|
|
22
|
-
this.provider = provider;
|
|
23
|
-
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Extract playbooks from trajectories using LLM
|
|
27
|
-
*/
|
|
28
|
-
async extract(trajectories, analyses, existingPlaybooks = []) {
|
|
29
|
-
// Filter to successful, complex enough trajectories
|
|
30
|
-
const candidates = trajectories.filter((t, i) => {
|
|
31
|
-
const analysis = analyses[i];
|
|
32
|
-
return (analysis?.success &&
|
|
33
|
-
analysis.abstractable &&
|
|
34
|
-
t.steps.length >= this.config.minComplexity);
|
|
35
|
-
});
|
|
36
|
-
if (candidates.length === 0) {
|
|
37
|
-
return { playbooks: [], refinements: [] };
|
|
38
|
-
}
|
|
39
|
-
// Extract playbooks from each candidate
|
|
40
|
-
const allResults = {
|
|
41
|
-
playbooks: [],
|
|
42
|
-
refinements: [],
|
|
43
|
-
};
|
|
44
|
-
// Process individually for better quality
|
|
45
|
-
if (this.config.extractFromSingle) {
|
|
46
|
-
for (let i = 0; i < candidates.length; i++) {
|
|
47
|
-
const trajectory = candidates[i];
|
|
48
|
-
const analysis = analyses.find((_, idx) => trajectories[idx] === trajectory);
|
|
49
|
-
if (!analysis)
|
|
50
|
-
continue;
|
|
51
|
-
const result = await this.extractFromSingleTrajectory(trajectory, analysis, existingPlaybooks);
|
|
52
|
-
allResults.playbooks.push(...result.playbooks);
|
|
53
|
-
allResults.refinements.push(...result.refinements);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// Also do batch extraction if we have multiple
|
|
57
|
-
if (candidates.length >= 2) {
|
|
58
|
-
const batchResult = await this.extractFromBatch(candidates, analyses.filter((_, i) => candidates.includes(trajectories[i])), existingPlaybooks);
|
|
59
|
-
// Merge with individual results (avoid duplicates)
|
|
60
|
-
for (const playbook of batchResult.playbooks) {
|
|
61
|
-
const isDuplicate = allResults.playbooks.some((p) => this.isSimilarPlaybook(p, playbook));
|
|
62
|
-
if (!isDuplicate) {
|
|
63
|
-
allResults.playbooks.push(playbook);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
allResults.refinements.push(...batchResult.refinements);
|
|
67
|
-
}
|
|
68
|
-
return allResults;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Extract a playbook from a single trajectory
|
|
72
|
-
*/
|
|
73
|
-
async extractFromSingleTrajectory(trajectory, analysis, existingPlaybooks) {
|
|
74
|
-
const prompt = this.buildSingleExtractionPrompt(trajectory, analysis, existingPlaybooks);
|
|
75
|
-
const response = await this.provider.complete([{ role: 'user', content: prompt }], {
|
|
76
|
-
temperature: this.config.temperature,
|
|
77
|
-
maxTokens: this.config.maxTokens,
|
|
78
|
-
});
|
|
79
|
-
return this.parseExtractionResponse(response, trajectory);
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Extract playbooks from a batch of trajectories
|
|
83
|
-
*/
|
|
84
|
-
async extractFromBatch(trajectories, analyses, existingPlaybooks) {
|
|
85
|
-
const prompt = this.buildBatchExtractionPrompt(trajectories, analyses, existingPlaybooks);
|
|
86
|
-
const response = await this.provider.complete([{ role: 'user', content: prompt }], {
|
|
87
|
-
temperature: this.config.temperature,
|
|
88
|
-
maxTokens: this.config.maxTokens * 2,
|
|
89
|
-
});
|
|
90
|
-
return this.parseExtractionResponse(response);
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Build prompt for single trajectory extraction
|
|
94
|
-
*/
|
|
95
|
-
buildSingleExtractionPrompt(trajectory, analysis, existingPlaybooks) {
|
|
96
|
-
const keyStepsDesc = analysis.keySteps
|
|
97
|
-
.map((idx) => {
|
|
98
|
-
const step = trajectory.steps[idx];
|
|
99
|
-
return step
|
|
100
|
-
? ` - Step ${idx + 1}: ${step.action}${step.thought ? ` (reasoning: ${step.thought})` : ''}`
|
|
101
|
-
: '';
|
|
102
|
-
})
|
|
103
|
-
.filter(Boolean)
|
|
104
|
-
.join('\n');
|
|
105
|
-
const existingPlaybookNames = existingPlaybooks
|
|
106
|
-
.map((p) => `- ${p.name}: ${p.guidance.strategy.slice(0, 100)}`)
|
|
107
|
-
.slice(0, 5)
|
|
108
|
-
.join('\n');
|
|
109
|
-
return `Analyze this successful problem-solving trajectory and extract a reusable playbook.
|
|
110
|
-
|
|
111
|
-
## Task
|
|
112
|
-
${trajectory.task.description}
|
|
113
|
-
Domain: ${trajectory.task.domain}
|
|
114
|
-
|
|
115
|
-
## Solution Steps
|
|
116
|
-
${trajectory.steps.map((s, i) => `${i + 1}. ${s.action}${s.observation ? `\n Observation: ${s.observation.slice(0, 100)}` : ''}`).join('\n')}
|
|
117
|
-
|
|
118
|
-
## Key Steps (most important for success)
|
|
119
|
-
${keyStepsDesc}
|
|
120
|
-
|
|
121
|
-
## Outcome
|
|
122
|
-
${trajectory.outcome.success ? 'SUCCESS' : 'FAILURE'}: ${trajectory.outcome.solution ?? trajectory.outcome.errorInfo ?? 'No details'}
|
|
123
|
-
|
|
124
|
-
${existingPlaybooks.length > 0 ? `## Existing Playbooks (avoid duplicates)
|
|
125
|
-
${existingPlaybookNames}` : ''}
|
|
126
|
-
|
|
127
|
-
## Instructions
|
|
128
|
-
Extract a reusable playbook that captures the essential approach. Focus on:
|
|
129
|
-
1. What situations trigger this approach
|
|
130
|
-
2. The core strategy/pattern used
|
|
131
|
-
3. Key tactical steps
|
|
132
|
-
4. Success/failure indicators
|
|
133
|
-
|
|
134
|
-
Respond in JSON format:
|
|
135
|
-
{
|
|
136
|
-
"playbook": {
|
|
137
|
-
"name": "kebab-case-name",
|
|
138
|
-
"situations": ["when X happens", "for Y type problems"],
|
|
139
|
-
"triggers": ["error messages", "signals that trigger this"],
|
|
140
|
-
"antiPatterns": ["when NOT to use this"],
|
|
141
|
-
"strategy": "High-level approach description",
|
|
142
|
-
"tactics": ["specific technique 1", "specific technique 2"],
|
|
143
|
-
"steps": ["step 1", "step 2", "step 3"],
|
|
144
|
-
"successIndicators": ["how to know it worked"],
|
|
145
|
-
"failureIndicators": ["how to know it failed"],
|
|
146
|
-
"complexity": "simple|moderate|complex",
|
|
147
|
-
"estimatedEffort": 5
|
|
148
|
-
},
|
|
149
|
-
"isRefinementOf": null
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
If this is better suited as a refinement to an existing playbook, set isRefinementOf to the playbook name and include only the refinement details.`;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Build prompt for batch extraction
|
|
156
|
-
*/
|
|
157
|
-
buildBatchExtractionPrompt(trajectories, analyses, existingPlaybooks) {
|
|
158
|
-
const trajectorySummaries = trajectories
|
|
159
|
-
.map((t, i) => {
|
|
160
|
-
const analysis = analyses[i];
|
|
161
|
-
const keySteps = analysis?.keySteps ?? [];
|
|
162
|
-
return `### Trajectory ${i + 1}
|
|
163
|
-
Task: ${t.task.description}
|
|
164
|
-
Domain: ${t.task.domain}
|
|
165
|
-
Steps: ${t.steps.length}
|
|
166
|
-
Key steps: ${keySteps.map((idx) => t.steps[idx]?.action ?? '').join(' → ')}
|
|
167
|
-
Outcome: ${t.outcome.success ? 'SUCCESS' : 'FAILURE'}`;
|
|
168
|
-
})
|
|
169
|
-
.join('\n\n');
|
|
170
|
-
const existingPlaybookNames = existingPlaybooks
|
|
171
|
-
.map((p) => `- ${p.name}`)
|
|
172
|
-
.slice(0, 10)
|
|
173
|
-
.join('\n');
|
|
174
|
-
return `Analyze these successful trajectories and identify common patterns that can be extracted as reusable playbooks.
|
|
175
|
-
|
|
176
|
-
## Trajectories
|
|
177
|
-
${trajectorySummaries}
|
|
178
|
-
|
|
179
|
-
${existingPlaybooks.length > 0 ? `## Existing Playbooks (avoid duplicates)
|
|
180
|
-
${existingPlaybookNames}` : ''}
|
|
181
|
-
|
|
182
|
-
## Instructions
|
|
183
|
-
Identify patterns that appear across multiple trajectories and extract them as playbooks.
|
|
184
|
-
Focus on generalizable approaches, not task-specific details.
|
|
185
|
-
|
|
186
|
-
Respond in JSON format:
|
|
187
|
-
{
|
|
188
|
-
"playbooks": [
|
|
189
|
-
{
|
|
190
|
-
"name": "kebab-case-name",
|
|
191
|
-
"situations": ["when X happens"],
|
|
192
|
-
"triggers": [],
|
|
193
|
-
"antiPatterns": [],
|
|
194
|
-
"strategy": "Description",
|
|
195
|
-
"tactics": ["technique 1"],
|
|
196
|
-
"steps": ["step 1", "step 2"],
|
|
197
|
-
"successIndicators": ["indicator"],
|
|
198
|
-
"failureIndicators": ["indicator"],
|
|
199
|
-
"complexity": "simple|moderate|complex",
|
|
200
|
-
"estimatedEffort": 5,
|
|
201
|
-
"sourceTrajectories": [1, 2]
|
|
202
|
-
}
|
|
203
|
-
]
|
|
204
|
-
}`;
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Parse LLM response into extraction result
|
|
208
|
-
*/
|
|
209
|
-
parseExtractionResponse(response, sourceTrajectory) {
|
|
210
|
-
const result = {
|
|
211
|
-
playbooks: [],
|
|
212
|
-
refinements: [],
|
|
213
|
-
rawResponse: response,
|
|
214
|
-
};
|
|
215
|
-
try {
|
|
216
|
-
// Extract JSON from response
|
|
217
|
-
const jsonMatch = response.match(/\{[\s\S]*\}/);
|
|
218
|
-
if (!jsonMatch) {
|
|
219
|
-
return result;
|
|
220
|
-
}
|
|
221
|
-
const parsed = JSON.parse(jsonMatch[0]);
|
|
222
|
-
// Handle single playbook response
|
|
223
|
-
if (parsed.playbook && !parsed.isRefinementOf) {
|
|
224
|
-
const playbook = this.createPlaybookFromLLMData(parsed.playbook, sourceTrajectory);
|
|
225
|
-
result.playbooks.push(playbook);
|
|
226
|
-
}
|
|
227
|
-
// Handle refinement response
|
|
228
|
-
if (parsed.playbook && parsed.isRefinementOf) {
|
|
229
|
-
result.refinements.push({
|
|
230
|
-
playbookId: parsed.isRefinementOf,
|
|
231
|
-
refinement: {
|
|
232
|
-
context: parsed.playbook.situations?.[0] ?? 'General refinement',
|
|
233
|
-
addition: parsed.playbook.strategy ?? '',
|
|
234
|
-
source: 'success',
|
|
235
|
-
addedAt: new Date(),
|
|
236
|
-
},
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
// Handle batch response
|
|
240
|
-
if (parsed.playbooks && Array.isArray(parsed.playbooks)) {
|
|
241
|
-
for (const pbData of parsed.playbooks) {
|
|
242
|
-
const playbook = this.createPlaybookFromLLMData(pbData);
|
|
243
|
-
result.playbooks.push(playbook);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
catch (error) {
|
|
248
|
-
// JSON parsing failed, return empty result
|
|
249
|
-
console.warn('Failed to parse LLM extraction response:', error instanceof Error ? error.message : error);
|
|
250
|
-
}
|
|
251
|
-
return result;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Create a Playbook from LLM-extracted data
|
|
255
|
-
*/
|
|
256
|
-
createPlaybookFromLLMData(data, sourceTrajectory) {
|
|
257
|
-
const domain = sourceTrajectory?.task.domain ?? 'general';
|
|
258
|
-
const sourceIds = sourceTrajectory ? [sourceTrajectory.id] : [];
|
|
259
|
-
return createPlaybook({
|
|
260
|
-
name: data.name ?? `llm-extracted-${Date.now()}`,
|
|
261
|
-
applicability: {
|
|
262
|
-
situations: data.situations ?? [],
|
|
263
|
-
triggers: data.triggers ?? [],
|
|
264
|
-
antiPatterns: data.antiPatterns ?? [],
|
|
265
|
-
domains: [domain],
|
|
266
|
-
},
|
|
267
|
-
guidance: {
|
|
268
|
-
strategy: data.strategy ?? '',
|
|
269
|
-
tactics: data.tactics ?? [],
|
|
270
|
-
steps: data.steps ?? [],
|
|
271
|
-
},
|
|
272
|
-
verification: {
|
|
273
|
-
successIndicators: data.successIndicators ?? [],
|
|
274
|
-
failureIndicators: data.failureIndicators ?? [],
|
|
275
|
-
},
|
|
276
|
-
evolution: {
|
|
277
|
-
version: '1.0.0',
|
|
278
|
-
createdFrom: sourceIds,
|
|
279
|
-
failures: [],
|
|
280
|
-
refinements: [],
|
|
281
|
-
successCount: 1,
|
|
282
|
-
failureCount: 0,
|
|
283
|
-
},
|
|
284
|
-
confidence: 0.6, // Start with moderate confidence for LLM-extracted
|
|
285
|
-
complexity: this.parseComplexity(data.complexity),
|
|
286
|
-
estimatedEffort: data.estimatedEffort ?? 5,
|
|
287
|
-
});
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Parse complexity string
|
|
291
|
-
*/
|
|
292
|
-
parseComplexity(complexity) {
|
|
293
|
-
const normalized = complexity?.toLowerCase();
|
|
294
|
-
if (normalized === 'simple')
|
|
295
|
-
return 'simple';
|
|
296
|
-
if (normalized === 'complex')
|
|
297
|
-
return 'complex';
|
|
298
|
-
return 'moderate';
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Check if two playbooks are similar
|
|
302
|
-
*/
|
|
303
|
-
isSimilarPlaybook(a, b) {
|
|
304
|
-
// Simple name-based check
|
|
305
|
-
if (a.name === b.name)
|
|
306
|
-
return true;
|
|
307
|
-
// Check situation overlap
|
|
308
|
-
const aSituations = new Set(a.applicability.situations);
|
|
309
|
-
const bSituations = b.applicability.situations;
|
|
310
|
-
const overlap = bSituations.filter((s) => aSituations.has(s)).length;
|
|
311
|
-
return overlap >= Math.min(aSituations.size, bSituations.length) * 0.8;
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Generate a refinement for an existing playbook based on a new trajectory
|
|
315
|
-
*/
|
|
316
|
-
async generateRefinement(playbook, trajectory, context) {
|
|
317
|
-
const prompt = `Given this existing playbook and a new trajectory, generate a refinement.
|
|
318
|
-
|
|
319
|
-
## Existing Playbook: ${playbook.name}
|
|
320
|
-
Strategy: ${playbook.guidance.strategy}
|
|
321
|
-
Steps: ${playbook.guidance.steps?.join(' → ') ?? 'None'}
|
|
322
|
-
|
|
323
|
-
## New Trajectory
|
|
324
|
-
Task: ${trajectory.task.description}
|
|
325
|
-
Steps taken: ${trajectory.steps.map((s) => s.action).join(' → ')}
|
|
326
|
-
Outcome: ${trajectory.outcome.success ? 'SUCCESS' : 'FAILURE'}
|
|
327
|
-
|
|
328
|
-
## Context
|
|
329
|
-
${context}
|
|
330
|
-
|
|
331
|
-
## Instructions
|
|
332
|
-
Generate a refinement that captures what's new or different in this trajectory.
|
|
333
|
-
|
|
334
|
-
Respond in JSON:
|
|
335
|
-
{
|
|
336
|
-
"context": "when/where this refinement applies",
|
|
337
|
-
"addition": "what to add/change in the approach"
|
|
338
|
-
}`;
|
|
339
|
-
const response = await this.provider.complete([{ role: 'user', content: prompt }], {
|
|
340
|
-
temperature: this.config.temperature,
|
|
341
|
-
maxTokens: 500,
|
|
342
|
-
});
|
|
343
|
-
try {
|
|
344
|
-
const jsonMatch = response.match(/\{[\s\S]*\}/);
|
|
345
|
-
if (jsonMatch) {
|
|
346
|
-
const parsed = JSON.parse(jsonMatch[0]);
|
|
347
|
-
return {
|
|
348
|
-
context: parsed.context ?? context,
|
|
349
|
-
addition: parsed.addition ?? '',
|
|
350
|
-
source: trajectory.outcome.success ? 'success' : 'failure',
|
|
351
|
-
addedAt: new Date(),
|
|
352
|
-
};
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
catch {
|
|
356
|
-
// Fall back to simple refinement
|
|
357
|
-
}
|
|
358
|
-
return {
|
|
359
|
-
context,
|
|
360
|
-
addition: `Additional approach from trajectory: ${trajectory.steps[0]?.action ?? ''}`,
|
|
361
|
-
source: trajectory.outcome.success ? 'success' : 'failure',
|
|
362
|
-
addedAt: new Date(),
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
/**
|
|
367
|
-
* Create an LLM-based playbook extractor
|
|
368
|
-
*/
|
|
369
|
-
export function createLLMExtractor(provider, config) {
|
|
370
|
-
return new LLMPlaybookExtractor(provider, config);
|
|
371
|
-
}
|
|
372
|
-
//# sourceMappingURL=llm-extractor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-extractor.js","sourceRoot":"","sources":["../../src/learning/llm-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LoopCoordinator — Coordinates instant (hot) and background (cold) learning
|
|
3
|
-
*
|
|
4
|
-
* Every trajectory flows through the InstantLoop immediately. The coordinator
|
|
5
|
-
* tracks a pending count and signals when the existing batch pipeline should
|
|
6
|
-
* run. It does NOT own the batch pipeline — Atlas does — but it provides the
|
|
7
|
-
* `shouldRunBatch()` check and accumulation count.
|
|
8
|
-
*/
|
|
9
|
-
import type { Trajectory } from '../types/index.js';
|
|
10
|
-
import type { SqlitePersistence } from '../persistence/index.js';
|
|
11
|
-
import { InstantLoop, type InstantLoopResult } from './instant-loop.js';
|
|
12
|
-
/**
|
|
13
|
-
* LoopCoordinator configuration
|
|
14
|
-
*/
|
|
15
|
-
export interface LoopCoordinatorConfig {
|
|
16
|
-
/** Trajectories needed before recommending a batch run (default: 10) */
|
|
17
|
-
batchThreshold?: number;
|
|
18
|
-
/** Log a warning if the instant loop exceeds this budget in ms (default: 200) */
|
|
19
|
-
maxInstantLatencyMs?: number;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* LoopCoordinator — hot + cold learning coordination
|
|
23
|
-
*/
|
|
24
|
-
export declare class LoopCoordinator {
|
|
25
|
-
private instantLoop;
|
|
26
|
-
private config;
|
|
27
|
-
private pendingCount;
|
|
28
|
-
private _onLatencyWarning;
|
|
29
|
-
private persistence?;
|
|
30
|
-
constructor(instantLoop: InstantLoop, config?: LoopCoordinatorConfig, persistence?: SqlitePersistence);
|
|
31
|
-
/**
|
|
32
|
-
* Called on every trajectory completion.
|
|
33
|
-
* Runs the instant loop and increments the pending batch count.
|
|
34
|
-
*/
|
|
35
|
-
onTrajectoryComplete(trajectory: Trajectory): Promise<InstantLoopResult>;
|
|
36
|
-
/**
|
|
37
|
-
* Check whether the batch pipeline should run.
|
|
38
|
-
*/
|
|
39
|
-
shouldRunBatch(): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Reset the pending count (called after a batch run completes).
|
|
42
|
-
*/
|
|
43
|
-
resetPendingCount(): void;
|
|
44
|
-
/**
|
|
45
|
-
* Load persisted pending count. Call after persistence is initialized.
|
|
46
|
-
*/
|
|
47
|
-
loadPersistedState(): void;
|
|
48
|
-
/**
|
|
49
|
-
* Get the current pending trajectory count.
|
|
50
|
-
*/
|
|
51
|
-
getPendingCount(): number;
|
|
52
|
-
/**
|
|
53
|
-
* Register a callback for latency budget warnings.
|
|
54
|
-
*/
|
|
55
|
-
onLatencyWarning(callback: (durationMs: number) => void): void;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Create a LoopCoordinator
|
|
59
|
-
*/
|
|
60
|
-
export declare function createLoopCoordinator(instantLoop: InstantLoop, config?: LoopCoordinatorConfig, persistence?: SqlitePersistence): LoopCoordinator;
|
|
61
|
-
//# sourceMappingURL=loop-coordinator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loop-coordinator.d.ts","sourceRoot":"","sources":["../../src/learning/loop-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,WAAW,CAAC,CAAoB;gBAGtC,WAAW,EAAE,WAAW,EACxB,MAAM,CAAC,EAAE,qBAAqB,EAC9B,WAAW,CAAC,EAAE,iBAAiB;IAkBjC;;;OAGG;IACG,oBAAoB,CACxB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,iBAAiB,CAAC;IAkB7B;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAQzB;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAS1B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;CAG/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,CAAC,EAAE,qBAAqB,EAC9B,WAAW,CAAC,EAAE,iBAAiB,GAC9B,eAAe,CAEjB"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LoopCoordinator — Coordinates instant (hot) and background (cold) learning
|
|
3
|
-
*
|
|
4
|
-
* Every trajectory flows through the InstantLoop immediately. The coordinator
|
|
5
|
-
* tracks a pending count and signals when the existing batch pipeline should
|
|
6
|
-
* run. It does NOT own the batch pipeline — Atlas does — but it provides the
|
|
7
|
-
* `shouldRunBatch()` check and accumulation count.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* LoopCoordinator — hot + cold learning coordination
|
|
11
|
-
*/
|
|
12
|
-
export class LoopCoordinator {
|
|
13
|
-
instantLoop;
|
|
14
|
-
config;
|
|
15
|
-
pendingCount = 0;
|
|
16
|
-
_onLatencyWarning = null;
|
|
17
|
-
persistence;
|
|
18
|
-
constructor(instantLoop, config, persistence) {
|
|
19
|
-
this.instantLoop = instantLoop;
|
|
20
|
-
this.config = {
|
|
21
|
-
batchThreshold: config?.batchThreshold ?? 10,
|
|
22
|
-
maxInstantLatencyMs: config?.maxInstantLatencyMs ?? 200,
|
|
23
|
-
};
|
|
24
|
-
this.persistence = persistence;
|
|
25
|
-
// Load persisted pending count
|
|
26
|
-
if (persistence?.isInitialized) {
|
|
27
|
-
const saved = persistence.getSystemState('loop_coordinator');
|
|
28
|
-
if (saved) {
|
|
29
|
-
this.pendingCount = saved.pendingCount;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Called on every trajectory completion.
|
|
35
|
-
* Runs the instant loop and increments the pending batch count.
|
|
36
|
-
*/
|
|
37
|
-
async onTrajectoryComplete(trajectory) {
|
|
38
|
-
const result = await this.instantLoop.process(trajectory);
|
|
39
|
-
this.pendingCount++;
|
|
40
|
-
if (this.persistence) {
|
|
41
|
-
this.persistence.setSystemState('loop_coordinator', { pendingCount: this.pendingCount });
|
|
42
|
-
}
|
|
43
|
-
// Warn if instant loop exceeded latency budget
|
|
44
|
-
if (result.durationMs > this.config.maxInstantLatencyMs) {
|
|
45
|
-
if (this._onLatencyWarning) {
|
|
46
|
-
this._onLatencyWarning(result.durationMs);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return result;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Check whether the batch pipeline should run.
|
|
53
|
-
*/
|
|
54
|
-
shouldRunBatch() {
|
|
55
|
-
return this.pendingCount >= this.config.batchThreshold;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Reset the pending count (called after a batch run completes).
|
|
59
|
-
*/
|
|
60
|
-
resetPendingCount() {
|
|
61
|
-
this.pendingCount = 0;
|
|
62
|
-
if (this.persistence) {
|
|
63
|
-
this.persistence.setSystemState('loop_coordinator', { pendingCount: 0 });
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Load persisted pending count. Call after persistence is initialized.
|
|
68
|
-
*/
|
|
69
|
-
loadPersistedState() {
|
|
70
|
-
if (this.persistence?.isInitialized) {
|
|
71
|
-
const saved = this.persistence.getSystemState('loop_coordinator');
|
|
72
|
-
if (saved) {
|
|
73
|
-
this.pendingCount = saved.pendingCount;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Get the current pending trajectory count.
|
|
79
|
-
*/
|
|
80
|
-
getPendingCount() {
|
|
81
|
-
return this.pendingCount;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Register a callback for latency budget warnings.
|
|
85
|
-
*/
|
|
86
|
-
onLatencyWarning(callback) {
|
|
87
|
-
this._onLatencyWarning = callback;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Create a LoopCoordinator
|
|
92
|
-
*/
|
|
93
|
-
export function createLoopCoordinator(instantLoop, config, persistence) {
|
|
94
|
-
return new LoopCoordinator(instantLoop, config, persistence);
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=loop-coordinator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loop-coordinator.js","sourceRoot":"","sources":["../../src/learning/loop-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,WAAW,CAAc;IACzB,MAAM,CAAkC;IACxC,YAAY,GAAG,CAAC,CAAC;IACjB,iBAAiB,GAA0C,IAAI,CAAC;IAChE,WAAW,CAAqB;IAExC,YACE,WAAwB,EACxB,MAA8B,EAC9B,WAA+B;QAE/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG;YACZ,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,EAAE;YAC5C,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,IAAI,GAAG;SACxD,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,+BAA+B;QAC/B,IAAI,WAAW,EAAE,aAAa,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAA2B,kBAAkB,CAAC,CAAC;YACvF,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CACxB,UAAsB;QAEtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,+CAA+C;QAC/C,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAEtB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAA2B,kBAAkB,CAAC,CAAC;YAC5F,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAsC;QACrD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACpC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAwB,EACxB,MAA8B,EAC9B,WAA+B;IAE/B,OAAO,IAAI,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC/D,CAAC"}
|