@vinaes/succ 1.3.19
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/LICENSE +87 -0
- package/README.md +588 -0
- package/agents/succ-checkpoint-manager.md +51 -0
- package/agents/succ-code-reviewer.md +181 -0
- package/agents/succ-context-optimizer.md +83 -0
- package/agents/succ-debug.md +224 -0
- package/agents/succ-decision-auditor.md +74 -0
- package/agents/succ-deep-search.md +41 -0
- package/agents/succ-diff-reviewer.md +123 -0
- package/agents/succ-explore.md +83 -0
- package/agents/succ-general.md +109 -0
- package/agents/succ-knowledge-indexer.md +45 -0
- package/agents/succ-knowledge-mapper.md +61 -0
- package/agents/succ-memory-curator.md +43 -0
- package/agents/succ-memory-health-monitor.md +55 -0
- package/agents/succ-pattern-detective.md +62 -0
- package/agents/succ-plan.md +172 -0
- package/agents/succ-quality-improvement-coach.md +63 -0
- package/agents/succ-readiness-improver.md +62 -0
- package/agents/succ-session-handoff-orchestrator.md +54 -0
- package/agents/succ-session-reviewer.md +46 -0
- package/agents/succ-style-tracker.md +73 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +749 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agents-md.d.ts +16 -0
- package/dist/commands/agents-md.d.ts.map +1 -0
- package/dist/commands/agents-md.js +33 -0
- package/dist/commands/agents-md.js.map +1 -0
- package/dist/commands/analyze-agents.d.ts +20 -0
- package/dist/commands/analyze-agents.d.ts.map +1 -0
- package/dist/commands/analyze-agents.js +305 -0
- package/dist/commands/analyze-agents.js.map +1 -0
- package/dist/commands/analyze-helpers.d.ts +22 -0
- package/dist/commands/analyze-helpers.d.ts.map +1 -0
- package/dist/commands/analyze-helpers.js +38 -0
- package/dist/commands/analyze-helpers.js.map +1 -0
- package/dist/commands/analyze-profile.d.ts +53 -0
- package/dist/commands/analyze-profile.d.ts.map +1 -0
- package/dist/commands/analyze-profile.js +638 -0
- package/dist/commands/analyze-profile.js.map +1 -0
- package/dist/commands/analyze-recursive.d.ts +20 -0
- package/dist/commands/analyze-recursive.d.ts.map +1 -0
- package/dist/commands/analyze-recursive.js +326 -0
- package/dist/commands/analyze-recursive.js.map +1 -0
- package/dist/commands/analyze-utils.d.ts +83 -0
- package/dist/commands/analyze-utils.d.ts.map +1 -0
- package/dist/commands/analyze-utils.js +541 -0
- package/dist/commands/analyze-utils.js.map +1 -0
- package/dist/commands/analyze.d.ts +15 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +265 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/backfill.d.ts +22 -0
- package/dist/commands/backfill.d.ts.map +1 -0
- package/dist/commands/backfill.js +62 -0
- package/dist/commands/backfill.js.map +1 -0
- package/dist/commands/benchmark-quality.d.ts +18 -0
- package/dist/commands/benchmark-quality.d.ts.map +1 -0
- package/dist/commands/benchmark-quality.js +316 -0
- package/dist/commands/benchmark-quality.js.map +1 -0
- package/dist/commands/benchmark-sqlite-vec.d.ts +12 -0
- package/dist/commands/benchmark-sqlite-vec.d.ts.map +1 -0
- package/dist/commands/benchmark-sqlite-vec.js +281 -0
- package/dist/commands/benchmark-sqlite-vec.js.map +1 -0
- package/dist/commands/benchmark.d.ts +57 -0
- package/dist/commands/benchmark.d.ts.map +1 -0
- package/dist/commands/benchmark.js +682 -0
- package/dist/commands/benchmark.js.map +1 -0
- package/dist/commands/chat.d.ts +14 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +84 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/checkpoint.d.ts +27 -0
- package/dist/commands/checkpoint.d.ts.map +1 -0
- package/dist/commands/checkpoint.js +181 -0
- package/dist/commands/checkpoint.js.map +1 -0
- package/dist/commands/clear.d.ts +9 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +31 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/config.d.ts +26 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +247 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/consolidate.d.ts +21 -0
- package/dist/commands/consolidate.d.ts.map +1 -0
- package/dist/commands/consolidate.js +117 -0
- package/dist/commands/consolidate.js.map +1 -0
- package/dist/commands/daemon.d.ts +48 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +218 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/embedding.d.ts +26 -0
- package/dist/commands/embedding.d.ts.map +1 -0
- package/dist/commands/embedding.js +168 -0
- package/dist/commands/embedding.js.map +1 -0
- package/dist/commands/graph.d.ts +20 -0
- package/dist/commands/graph.d.ts.map +1 -0
- package/dist/commands/graph.js +128 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/index-code.d.ts +23 -0
- package/dist/commands/index-code.d.ts.map +1 -0
- package/dist/commands/index-code.js +218 -0
- package/dist/commands/index-code.js.map +1 -0
- package/dist/commands/index.d.ts +23 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +217 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init-templates.d.ts +21 -0
- package/dist/commands/init-templates.d.ts.map +1 -0
- package/dist/commands/init-templates.js +487 -0
- package/dist/commands/init-templates.js.map +1 -0
- package/dist/commands/init.d.ts +10 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +865 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/memories.d.ts +47 -0
- package/dist/commands/memories.d.ts.map +1 -0
- package/dist/commands/memories.js +597 -0
- package/dist/commands/memories.js.map +1 -0
- package/dist/commands/migrate.d.ts +19 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +154 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/prd.d.ts +46 -0
- package/dist/commands/prd.d.ts.map +1 -0
- package/dist/commands/prd.js +378 -0
- package/dist/commands/prd.js.map +1 -0
- package/dist/commands/precompute-context.d.ts +11 -0
- package/dist/commands/precompute-context.d.ts.map +1 -0
- package/dist/commands/precompute-context.js +12 -0
- package/dist/commands/precompute-context.js.map +1 -0
- package/dist/commands/progress.d.ts +16 -0
- package/dist/commands/progress.d.ts.map +1 -0
- package/dist/commands/progress.js +38 -0
- package/dist/commands/progress.js.map +1 -0
- package/dist/commands/reindex.d.ts +17 -0
- package/dist/commands/reindex.d.ts.map +1 -0
- package/dist/commands/reindex.js +83 -0
- package/dist/commands/reindex.js.map +1 -0
- package/dist/commands/retention.d.ts +19 -0
- package/dist/commands/retention.d.ts.map +1 -0
- package/dist/commands/retention.js +162 -0
- package/dist/commands/retention.js.map +1 -0
- package/dist/commands/score.d.ts +10 -0
- package/dist/commands/score.d.ts.map +1 -0
- package/dist/commands/score.js +28 -0
- package/dist/commands/score.js.map +1 -0
- package/dist/commands/search.d.ts +7 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +89 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/session-summary.d.ts +15 -0
- package/dist/commands/session-summary.d.ts.map +1 -0
- package/dist/commands/session-summary.js +16 -0
- package/dist/commands/session-summary.js.map +1 -0
- package/dist/commands/setup.d.ts +6 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +222 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/soul.d.ts +9 -0
- package/dist/commands/soul.d.ts.map +1 -0
- package/dist/commands/soul.js +256 -0
- package/dist/commands/soul.js.map +1 -0
- package/dist/commands/stats.d.ts +18 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +138 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +145 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/train-bpe.d.ts +8 -0
- package/dist/commands/train-bpe.d.ts.map +1 -0
- package/dist/commands/train-bpe.js +35 -0
- package/dist/commands/train-bpe.js.map +1 -0
- package/dist/commands/watch.d.ts +22 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +171 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/daemon/analyzer.d.ts +54 -0
- package/dist/daemon/analyzer.d.ts.map +1 -0
- package/dist/daemon/analyzer.js +362 -0
- package/dist/daemon/analyzer.js.map +1 -0
- package/dist/daemon/client.d.ts +87 -0
- package/dist/daemon/client.d.ts.map +1 -0
- package/dist/daemon/client.js +356 -0
- package/dist/daemon/client.js.map +1 -0
- package/dist/daemon/index.d.ts +12 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +12 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/service.d.ts +51 -0
- package/dist/daemon/service.d.ts.map +1 -0
- package/dist/daemon/service.js +1203 -0
- package/dist/daemon/service.js.map +1 -0
- package/dist/daemon/session-processor.d.ts +85 -0
- package/dist/daemon/session-processor.d.ts.map +1 -0
- package/dist/daemon/session-processor.js +571 -0
- package/dist/daemon/session-processor.js.map +1 -0
- package/dist/daemon/sessions.d.ts +62 -0
- package/dist/daemon/sessions.d.ts.map +1 -0
- package/dist/daemon/sessions.js +192 -0
- package/dist/daemon/sessions.js.map +1 -0
- package/dist/daemon/watcher.d.ts +52 -0
- package/dist/daemon/watcher.d.ts.map +1 -0
- package/dist/daemon/watcher.js +363 -0
- package/dist/daemon/watcher.js.map +1 -0
- package/dist/lib/agents-md-generator.d.ts +33 -0
- package/dist/lib/agents-md-generator.d.ts.map +1 -0
- package/dist/lib/agents-md-generator.js +156 -0
- package/dist/lib/agents-md-generator.js.map +1 -0
- package/dist/lib/ai-readiness.d.ts +132 -0
- package/dist/lib/ai-readiness.d.ts.map +1 -0
- package/dist/lib/ai-readiness.js +702 -0
- package/dist/lib/ai-readiness.js.map +1 -0
- package/dist/lib/analyze-state.d.ts +34 -0
- package/dist/lib/analyze-state.d.ts.map +1 -0
- package/dist/lib/analyze-state.js +106 -0
- package/dist/lib/analyze-state.js.map +1 -0
- package/dist/lib/benchmark.d.ts +250 -0
- package/dist/lib/benchmark.d.ts.map +1 -0
- package/dist/lib/benchmark.js +778 -0
- package/dist/lib/benchmark.js.map +1 -0
- package/dist/lib/bm25.d.ts +114 -0
- package/dist/lib/bm25.d.ts.map +1 -0
- package/dist/lib/bm25.js +727 -0
- package/dist/lib/bm25.js.map +1 -0
- package/dist/lib/bpe.d.ts +70 -0
- package/dist/lib/bpe.d.ts.map +1 -0
- package/dist/lib/bpe.js +270 -0
- package/dist/lib/bpe.js.map +1 -0
- package/dist/lib/checkpoint.d.ts +124 -0
- package/dist/lib/checkpoint.d.ts.map +1 -0
- package/dist/lib/checkpoint.js +321 -0
- package/dist/lib/checkpoint.js.map +1 -0
- package/dist/lib/chunker.d.ts +47 -0
- package/dist/lib/chunker.d.ts.map +1 -0
- package/dist/lib/chunker.js +358 -0
- package/dist/lib/chunker.js.map +1 -0
- package/dist/lib/claude-ws-transport.d.ts +76 -0
- package/dist/lib/claude-ws-transport.d.ts.map +1 -0
- package/dist/lib/claude-ws-transport.js +487 -0
- package/dist/lib/claude-ws-transport.js.map +1 -0
- package/dist/lib/compact-briefing.d.ts +22 -0
- package/dist/lib/compact-briefing.d.ts.map +1 -0
- package/dist/lib/compact-briefing.js +180 -0
- package/dist/lib/compact-briefing.js.map +1 -0
- package/dist/lib/config-defaults.d.ts +41 -0
- package/dist/lib/config-defaults.d.ts.map +1 -0
- package/dist/lib/config-defaults.js +99 -0
- package/dist/lib/config-defaults.js.map +1 -0
- package/dist/lib/config-display.d.ts +16 -0
- package/dist/lib/config-display.d.ts.map +1 -0
- package/dist/lib/config-display.js +408 -0
- package/dist/lib/config-display.js.map +1 -0
- package/dist/lib/config-types.d.ts +601 -0
- package/dist/lib/config-types.d.ts.map +1 -0
- package/dist/lib/config-types.js +7 -0
- package/dist/lib/config-types.js.map +1 -0
- package/dist/lib/config-validation.d.ts +19 -0
- package/dist/lib/config-validation.d.ts.map +1 -0
- package/dist/lib/config-validation.js +136 -0
- package/dist/lib/config-validation.js.map +1 -0
- package/dist/lib/config.d.ts +143 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +689 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/consolidate.d.ts +115 -0
- package/dist/lib/consolidate.d.ts.map +1 -0
- package/dist/lib/consolidate.js +600 -0
- package/dist/lib/consolidate.js.map +1 -0
- package/dist/lib/db/bm25-indexes.d.ts +58 -0
- package/dist/lib/db/bm25-indexes.d.ts.map +1 -0
- package/dist/lib/db/bm25-indexes.js +333 -0
- package/dist/lib/db/bm25-indexes.js.map +1 -0
- package/dist/lib/db/bpe.d.ts +18 -0
- package/dist/lib/db/bpe.d.ts.map +1 -0
- package/dist/lib/db/bpe.js +44 -0
- package/dist/lib/db/bpe.js.map +1 -0
- package/dist/lib/db/connection.d.ts +47 -0
- package/dist/lib/db/connection.d.ts.map +1 -0
- package/dist/lib/db/connection.js +114 -0
- package/dist/lib/db/connection.js.map +1 -0
- package/dist/lib/db/documents.d.ts +58 -0
- package/dist/lib/db/documents.d.ts.map +1 -0
- package/dist/lib/db/documents.js +374 -0
- package/dist/lib/db/documents.js.map +1 -0
- package/dist/lib/db/file-hash.d.ts +26 -0
- package/dist/lib/db/file-hash.d.ts.map +1 -0
- package/dist/lib/db/file-hash.js +56 -0
- package/dist/lib/db/file-hash.js.map +1 -0
- package/dist/lib/db/global-memories.d.ts +62 -0
- package/dist/lib/db/global-memories.d.ts.map +1 -0
- package/dist/lib/db/global-memories.js +173 -0
- package/dist/lib/db/global-memories.js.map +1 -0
- package/dist/lib/db/graph.d.ts +163 -0
- package/dist/lib/db/graph.d.ts.map +1 -0
- package/dist/lib/db/graph.js +488 -0
- package/dist/lib/db/graph.js.map +1 -0
- package/dist/lib/db/helpers.d.ts +13 -0
- package/dist/lib/db/helpers.d.ts.map +1 -0
- package/dist/lib/db/helpers.js +21 -0
- package/dist/lib/db/helpers.js.map +1 -0
- package/dist/lib/db/hybrid-search.d.ts +64 -0
- package/dist/lib/db/hybrid-search.d.ts.map +1 -0
- package/dist/lib/db/hybrid-search.js +549 -0
- package/dist/lib/db/hybrid-search.js.map +1 -0
- package/dist/lib/db/index.d.ts +23 -0
- package/dist/lib/db/index.d.ts.map +1 -0
- package/dist/lib/db/index.js +23 -0
- package/dist/lib/db/index.js.map +1 -0
- package/dist/lib/db/memories.d.ts +174 -0
- package/dist/lib/db/memories.d.ts.map +1 -0
- package/dist/lib/db/memories.js +866 -0
- package/dist/lib/db/memories.js.map +1 -0
- package/dist/lib/db/retention.d.ts +64 -0
- package/dist/lib/db/retention.d.ts.map +1 -0
- package/dist/lib/db/retention.js +115 -0
- package/dist/lib/db/retention.js.map +1 -0
- package/dist/lib/db/schema.d.ts +29 -0
- package/dist/lib/db/schema.d.ts.map +1 -0
- package/dist/lib/db/schema.js +832 -0
- package/dist/lib/db/schema.js.map +1 -0
- package/dist/lib/db/skills.d.ts +65 -0
- package/dist/lib/db/skills.d.ts.map +1 -0
- package/dist/lib/db/skills.js +119 -0
- package/dist/lib/db/skills.js.map +1 -0
- package/dist/lib/db/token-frequency.d.ts +34 -0
- package/dist/lib/db/token-frequency.d.ts.map +1 -0
- package/dist/lib/db/token-frequency.js +92 -0
- package/dist/lib/db/token-frequency.js.map +1 -0
- package/dist/lib/db/token-stats.d.ts +43 -0
- package/dist/lib/db/token-stats.d.ts.map +1 -0
- package/dist/lib/db/token-stats.js +59 -0
- package/dist/lib/db/token-stats.js.map +1 -0
- package/dist/lib/db/types.d.ts +57 -0
- package/dist/lib/db/types.d.ts.map +1 -0
- package/dist/lib/db/types.js +5 -0
- package/dist/lib/db/types.js.map +1 -0
- package/dist/lib/db/web-search-history.d.ts +22 -0
- package/dist/lib/db/web-search-history.d.ts.map +1 -0
- package/dist/lib/db/web-search-history.js +107 -0
- package/dist/lib/db/web-search-history.js.map +1 -0
- package/dist/lib/debug/state.d.ts +17 -0
- package/dist/lib/debug/state.d.ts.map +1 -0
- package/dist/lib/debug/state.js +131 -0
- package/dist/lib/debug/state.js.map +1 -0
- package/dist/lib/debug/types.d.ts +74 -0
- package/dist/lib/debug/types.d.ts.map +1 -0
- package/dist/lib/debug/types.js +85 -0
- package/dist/lib/debug/types.js.map +1 -0
- package/dist/lib/embedding-pool.d.ts +37 -0
- package/dist/lib/embedding-pool.d.ts.map +1 -0
- package/dist/lib/embedding-pool.js +159 -0
- package/dist/lib/embedding-pool.js.map +1 -0
- package/dist/lib/embedding-worker.d.ts +7 -0
- package/dist/lib/embedding-worker.d.ts.map +1 -0
- package/dist/lib/embedding-worker.js +49 -0
- package/dist/lib/embedding-worker.js.map +1 -0
- package/dist/lib/embeddings.d.ts +54 -0
- package/dist/lib/embeddings.d.ts.map +1 -0
- package/dist/lib/embeddings.js +437 -0
- package/dist/lib/embeddings.js.map +1 -0
- package/dist/lib/errors.d.ts +40 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +66 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/fault-logger.d.ts +35 -0
- package/dist/lib/fault-logger.d.ts.map +1 -0
- package/dist/lib/fault-logger.js +182 -0
- package/dist/lib/fault-logger.js.map +1 -0
- package/dist/lib/graph/centrality.d.ts +34 -0
- package/dist/lib/graph/centrality.d.ts.map +1 -0
- package/dist/lib/graph/centrality.js +76 -0
- package/dist/lib/graph/centrality.js.map +1 -0
- package/dist/lib/graph/cleanup.d.ts +36 -0
- package/dist/lib/graph/cleanup.d.ts.map +1 -0
- package/dist/lib/graph/cleanup.js +96 -0
- package/dist/lib/graph/cleanup.js.map +1 -0
- package/dist/lib/graph/community-detection.d.ts +61 -0
- package/dist/lib/graph/community-detection.d.ts.map +1 -0
- package/dist/lib/graph/community-detection.js +218 -0
- package/dist/lib/graph/community-detection.js.map +1 -0
- package/dist/lib/graph/contextual-proximity.d.ts +41 -0
- package/dist/lib/graph/contextual-proximity.d.ts.map +1 -0
- package/dist/lib/graph/contextual-proximity.js +125 -0
- package/dist/lib/graph/contextual-proximity.js.map +1 -0
- package/dist/lib/graph/llm-relations.d.ts +54 -0
- package/dist/lib/graph/llm-relations.d.ts.map +1 -0
- package/dist/lib/graph/llm-relations.js +265 -0
- package/dist/lib/graph/llm-relations.js.map +1 -0
- package/dist/lib/graph-export.d.ts +13 -0
- package/dist/lib/graph-export.d.ts.map +1 -0
- package/dist/lib/graph-export.js +637 -0
- package/dist/lib/graph-export.js.map +1 -0
- package/dist/lib/graph-scheduler.d.ts +7 -0
- package/dist/lib/graph-scheduler.d.ts.map +1 -0
- package/dist/lib/graph-scheduler.js +21 -0
- package/dist/lib/graph-scheduler.js.map +1 -0
- package/dist/lib/indexer.d.ts +36 -0
- package/dist/lib/indexer.d.ts.map +1 -0
- package/dist/lib/indexer.js +226 -0
- package/dist/lib/indexer.js.map +1 -0
- package/dist/lib/learning-delta.d.ts +35 -0
- package/dist/lib/learning-delta.d.ts.map +1 -0
- package/dist/lib/learning-delta.js +53 -0
- package/dist/lib/learning-delta.js.map +1 -0
- package/dist/lib/llm.d.ts +118 -0
- package/dist/lib/llm.d.ts.map +1 -0
- package/dist/lib/llm.js +439 -0
- package/dist/lib/llm.js.map +1 -0
- package/dist/lib/lock.d.ts +27 -0
- package/dist/lib/lock.d.ts.map +1 -0
- package/dist/lib/lock.js +143 -0
- package/dist/lib/lock.js.map +1 -0
- package/dist/lib/md-fetch.d.ts +61 -0
- package/dist/lib/md-fetch.d.ts.map +1 -0
- package/dist/lib/md-fetch.js +141 -0
- package/dist/lib/md-fetch.js.map +1 -0
- package/dist/lib/mmr.d.ts +29 -0
- package/dist/lib/mmr.d.ts.map +1 -0
- package/dist/lib/mmr.js +89 -0
- package/dist/lib/mmr.js.map +1 -0
- package/dist/lib/onboarding/ai-chat.d.ts +11 -0
- package/dist/lib/onboarding/ai-chat.d.ts.map +1 -0
- package/dist/lib/onboarding/ai-chat.js +85 -0
- package/dist/lib/onboarding/ai-chat.js.map +1 -0
- package/dist/lib/onboarding/index.d.ts +7 -0
- package/dist/lib/onboarding/index.d.ts.map +1 -0
- package/dist/lib/onboarding/index.js +7 -0
- package/dist/lib/onboarding/index.js.map +1 -0
- package/dist/lib/onboarding/wizard.d.ts +11 -0
- package/dist/lib/onboarding/wizard.d.ts.map +1 -0
- package/dist/lib/onboarding/wizard.js +104 -0
- package/dist/lib/onboarding/wizard.js.map +1 -0
- package/dist/lib/ort-provider.d.ts +27 -0
- package/dist/lib/ort-provider.d.ts.map +1 -0
- package/dist/lib/ort-provider.js +83 -0
- package/dist/lib/ort-provider.js.map +1 -0
- package/dist/lib/ort-session.d.ts +32 -0
- package/dist/lib/ort-session.d.ts.map +1 -0
- package/dist/lib/ort-session.js +227 -0
- package/dist/lib/ort-session.js.map +1 -0
- package/dist/lib/patterns.d.ts +43 -0
- package/dist/lib/patterns.d.ts.map +1 -0
- package/dist/lib/patterns.js +395 -0
- package/dist/lib/patterns.js.map +1 -0
- package/dist/lib/prd/codebase-context.d.ts +27 -0
- package/dist/lib/prd/codebase-context.d.ts.map +1 -0
- package/dist/lib/prd/codebase-context.js +420 -0
- package/dist/lib/prd/codebase-context.js.map +1 -0
- package/dist/lib/prd/context.d.ts +24 -0
- package/dist/lib/prd/context.d.ts.map +1 -0
- package/dist/lib/prd/context.js +68 -0
- package/dist/lib/prd/context.js.map +1 -0
- package/dist/lib/prd/executor.d.ts +52 -0
- package/dist/lib/prd/executor.d.ts.map +1 -0
- package/dist/lib/prd/executor.js +154 -0
- package/dist/lib/prd/executor.js.map +1 -0
- package/dist/lib/prd/export.d.ts +40 -0
- package/dist/lib/prd/export.d.ts.map +1 -0
- package/dist/lib/prd/export.js +511 -0
- package/dist/lib/prd/export.js.map +1 -0
- package/dist/lib/prd/gates.d.ts +30 -0
- package/dist/lib/prd/gates.d.ts.map +1 -0
- package/dist/lib/prd/gates.js +100 -0
- package/dist/lib/prd/gates.js.map +1 -0
- package/dist/lib/prd/generate.d.ts +56 -0
- package/dist/lib/prd/generate.d.ts.map +1 -0
- package/dist/lib/prd/generate.js +357 -0
- package/dist/lib/prd/generate.js.map +1 -0
- package/dist/lib/prd/parse.d.ts +21 -0
- package/dist/lib/prd/parse.d.ts.map +1 -0
- package/dist/lib/prd/parse.js +270 -0
- package/dist/lib/prd/parse.js.map +1 -0
- package/dist/lib/prd/prompt-builder.d.ts +18 -0
- package/dist/lib/prd/prompt-builder.d.ts.map +1 -0
- package/dist/lib/prd/prompt-builder.js +61 -0
- package/dist/lib/prd/prompt-builder.js.map +1 -0
- package/dist/lib/prd/runner.d.ts +54 -0
- package/dist/lib/prd/runner.d.ts.map +1 -0
- package/dist/lib/prd/runner.js +563 -0
- package/dist/lib/prd/runner.js.map +1 -0
- package/dist/lib/prd/scheduler.d.ts +27 -0
- package/dist/lib/prd/scheduler.d.ts.map +1 -0
- package/dist/lib/prd/scheduler.js +113 -0
- package/dist/lib/prd/scheduler.js.map +1 -0
- package/dist/lib/prd/state.d.ts +77 -0
- package/dist/lib/prd/state.d.ts.map +1 -0
- package/dist/lib/prd/state.js +253 -0
- package/dist/lib/prd/state.js.map +1 -0
- package/dist/lib/prd/team-runner.d.ts +48 -0
- package/dist/lib/prd/team-runner.d.ts.map +1 -0
- package/dist/lib/prd/team-runner.js +261 -0
- package/dist/lib/prd/team-runner.js.map +1 -0
- package/dist/lib/prd/types.d.ts +169 -0
- package/dist/lib/prd/types.d.ts.map +1 -0
- package/dist/lib/prd/types.js +143 -0
- package/dist/lib/prd/types.js.map +1 -0
- package/dist/lib/prd/worktree.d.ts +54 -0
- package/dist/lib/prd/worktree.d.ts.map +1 -0
- package/dist/lib/prd/worktree.js +255 -0
- package/dist/lib/prd/worktree.js.map +1 -0
- package/dist/lib/precompute-context.d.ts +48 -0
- package/dist/lib/precompute-context.d.ts.map +1 -0
- package/dist/lib/precompute-context.js +265 -0
- package/dist/lib/precompute-context.js.map +1 -0
- package/dist/lib/pricing.d.ts +60 -0
- package/dist/lib/pricing.d.ts.map +1 -0
- package/dist/lib/pricing.js +258 -0
- package/dist/lib/pricing.js.map +1 -0
- package/dist/lib/process-registry.d.ts +30 -0
- package/dist/lib/process-registry.d.ts.map +1 -0
- package/dist/lib/process-registry.js +92 -0
- package/dist/lib/process-registry.js.map +1 -0
- package/dist/lib/progress-log.d.ts +44 -0
- package/dist/lib/progress-log.d.ts.map +1 -0
- package/dist/lib/progress-log.js +58 -0
- package/dist/lib/progress-log.js.map +1 -0
- package/dist/lib/public-api.d.ts +56 -0
- package/dist/lib/public-api.d.ts.map +1 -0
- package/dist/lib/public-api.js +63 -0
- package/dist/lib/public-api.js.map +1 -0
- package/dist/lib/quality.d.ts +66 -0
- package/dist/lib/quality.d.ts.map +1 -0
- package/dist/lib/quality.js +486 -0
- package/dist/lib/quality.js.map +1 -0
- package/dist/lib/query-expansion.d.ts +16 -0
- package/dist/lib/query-expansion.d.ts.map +1 -0
- package/dist/lib/query-expansion.js +53 -0
- package/dist/lib/query-expansion.js.map +1 -0
- package/dist/lib/readiness.d.ts +35 -0
- package/dist/lib/readiness.d.ts.map +1 -0
- package/dist/lib/readiness.js +142 -0
- package/dist/lib/readiness.js.map +1 -0
- package/dist/lib/reference-embeddings.d.ts +39 -0
- package/dist/lib/reference-embeddings.d.ts.map +1 -0
- package/dist/lib/reference-embeddings.js +95 -0
- package/dist/lib/reference-embeddings.js.map +1 -0
- package/dist/lib/reflection-synthesizer.d.ts +27 -0
- package/dist/lib/reflection-synthesizer.d.ts.map +1 -0
- package/dist/lib/reflection-synthesizer.js +149 -0
- package/dist/lib/reflection-synthesizer.js.map +1 -0
- package/dist/lib/retention.d.ts +105 -0
- package/dist/lib/retention.d.ts.map +1 -0
- package/dist/lib/retention.js +246 -0
- package/dist/lib/retention.js.map +1 -0
- package/dist/lib/sensitive-filter.d.ts +34 -0
- package/dist/lib/sensitive-filter.d.ts.map +1 -0
- package/dist/lib/sensitive-filter.js +344 -0
- package/dist/lib/sensitive-filter.js.map +1 -0
- package/dist/lib/session-observations.d.ts +59 -0
- package/dist/lib/session-observations.d.ts.map +1 -0
- package/dist/lib/session-observations.js +128 -0
- package/dist/lib/session-observations.js.map +1 -0
- package/dist/lib/session-summary.d.ts +65 -0
- package/dist/lib/session-summary.d.ts.map +1 -0
- package/dist/lib/session-summary.js +344 -0
- package/dist/lib/session-summary.js.map +1 -0
- package/dist/lib/similarity-worker.d.ts +7 -0
- package/dist/lib/similarity-worker.d.ts.map +1 -0
- package/dist/lib/similarity-worker.js +36 -0
- package/dist/lib/similarity-worker.js.map +1 -0
- package/dist/lib/skills.d.ts +78 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +439 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/skyll-client.d.ts +59 -0
- package/dist/lib/skyll-client.d.ts.map +1 -0
- package/dist/lib/skyll-client.js +257 -0
- package/dist/lib/skyll-client.js.map +1 -0
- package/dist/lib/storage/backends/interface.d.ts +383 -0
- package/dist/lib/storage/backends/interface.d.ts.map +1 -0
- package/dist/lib/storage/backends/interface.js +12 -0
- package/dist/lib/storage/backends/interface.js.map +1 -0
- package/dist/lib/storage/backends/postgresql.d.ts +454 -0
- package/dist/lib/storage/backends/postgresql.d.ts.map +1 -0
- package/dist/lib/storage/backends/postgresql.js +2528 -0
- package/dist/lib/storage/backends/postgresql.js.map +1 -0
- package/dist/lib/storage/benchmark.d.ts +16 -0
- package/dist/lib/storage/benchmark.d.ts.map +1 -0
- package/dist/lib/storage/benchmark.js +219 -0
- package/dist/lib/storage/benchmark.js.map +1 -0
- package/dist/lib/storage/dispatcher-export.d.ts +108 -0
- package/dist/lib/storage/dispatcher-export.d.ts.map +1 -0
- package/dist/lib/storage/dispatcher-export.js +593 -0
- package/dist/lib/storage/dispatcher-export.js.map +1 -0
- package/dist/lib/storage/dispatcher.d.ts +468 -0
- package/dist/lib/storage/dispatcher.d.ts.map +1 -0
- package/dist/lib/storage/dispatcher.js +1926 -0
- package/dist/lib/storage/dispatcher.js.map +1 -0
- package/dist/lib/storage/index.d.ts +481 -0
- package/dist/lib/storage/index.d.ts.map +1 -0
- package/dist/lib/storage/index.js +727 -0
- package/dist/lib/storage/index.js.map +1 -0
- package/dist/lib/storage/migration/export-import.d.ts +133 -0
- package/dist/lib/storage/migration/export-import.d.ts.map +1 -0
- package/dist/lib/storage/migration/export-import.js +264 -0
- package/dist/lib/storage/migration/export-import.js.map +1 -0
- package/dist/lib/storage/types.d.ts +313 -0
- package/dist/lib/storage/types.d.ts.map +1 -0
- package/dist/lib/storage/types.js +30 -0
- package/dist/lib/storage/types.js.map +1 -0
- package/dist/lib/storage/vector/interface.d.ts +89 -0
- package/dist/lib/storage/vector/interface.d.ts.map +1 -0
- package/dist/lib/storage/vector/interface.js +10 -0
- package/dist/lib/storage/vector/interface.js.map +1 -0
- package/dist/lib/storage/vector/qdrant.d.ts +221 -0
- package/dist/lib/storage/vector/qdrant.d.ts.map +1 -0
- package/dist/lib/storage/vector/qdrant.js +880 -0
- package/dist/lib/storage/vector/qdrant.js.map +1 -0
- package/dist/lib/supersession.d.ts +26 -0
- package/dist/lib/supersession.d.ts.map +1 -0
- package/dist/lib/supersession.js +97 -0
- package/dist/lib/supersession.js.map +1 -0
- package/dist/lib/temporal.d.ts +140 -0
- package/dist/lib/temporal.d.ts.map +1 -0
- package/dist/lib/temporal.js +303 -0
- package/dist/lib/temporal.js.map +1 -0
- package/dist/lib/token-budget.d.ts +79 -0
- package/dist/lib/token-budget.d.ts.map +1 -0
- package/dist/lib/token-budget.js +146 -0
- package/dist/lib/token-budget.js.map +1 -0
- package/dist/lib/token-counter.d.ts +27 -0
- package/dist/lib/token-counter.d.ts.map +1 -0
- package/dist/lib/token-counter.js +52 -0
- package/dist/lib/token-counter.js.map +1 -0
- package/dist/lib/tree-sitter/chunker-ts.d.ts +24 -0
- package/dist/lib/tree-sitter/chunker-ts.d.ts.map +1 -0
- package/dist/lib/tree-sitter/chunker-ts.js +206 -0
- package/dist/lib/tree-sitter/chunker-ts.js.map +1 -0
- package/dist/lib/tree-sitter/extractor.d.ts +43 -0
- package/dist/lib/tree-sitter/extractor.d.ts.map +1 -0
- package/dist/lib/tree-sitter/extractor.js +297 -0
- package/dist/lib/tree-sitter/extractor.js.map +1 -0
- package/dist/lib/tree-sitter/index.d.ts +13 -0
- package/dist/lib/tree-sitter/index.d.ts.map +1 -0
- package/dist/lib/tree-sitter/index.js +14 -0
- package/dist/lib/tree-sitter/index.js.map +1 -0
- package/dist/lib/tree-sitter/parser.d.ts +70 -0
- package/dist/lib/tree-sitter/parser.d.ts.map +1 -0
- package/dist/lib/tree-sitter/parser.js +354 -0
- package/dist/lib/tree-sitter/parser.js.map +1 -0
- package/dist/lib/tree-sitter/public.d.ts +28 -0
- package/dist/lib/tree-sitter/public.d.ts.map +1 -0
- package/dist/lib/tree-sitter/public.js +50 -0
- package/dist/lib/tree-sitter/public.js.map +1 -0
- package/dist/lib/tree-sitter/queries.d.ts +28 -0
- package/dist/lib/tree-sitter/queries.d.ts.map +1 -0
- package/dist/lib/tree-sitter/queries.js +383 -0
- package/dist/lib/tree-sitter/queries.js.map +1 -0
- package/dist/lib/tree-sitter/types.d.ts +69 -0
- package/dist/lib/tree-sitter/types.d.ts.map +1 -0
- package/dist/lib/tree-sitter/types.js +131 -0
- package/dist/lib/tree-sitter/types.js.map +1 -0
- package/dist/lib/working-memory-pipeline.d.ts +118 -0
- package/dist/lib/working-memory-pipeline.d.ts.map +1 -0
- package/dist/lib/working-memory-pipeline.js +344 -0
- package/dist/lib/working-memory-pipeline.js.map +1 -0
- package/dist/mcp/helpers.d.ts +44 -0
- package/dist/mcp/helpers.d.ts.map +1 -0
- package/dist/mcp/helpers.js +244 -0
- package/dist/mcp/helpers.js.map +1 -0
- package/dist/mcp/index.d.ts +10 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +15 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/resources.d.ts +12 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +136 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +22 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +131 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/config.d.ts +10 -0
- package/dist/mcp/tools/config.d.ts.map +1 -0
- package/dist/mcp/tools/config.js +236 -0
- package/dist/mcp/tools/config.js.map +1 -0
- package/dist/mcp/tools/dead-end.d.ts +9 -0
- package/dist/mcp/tools/dead-end.d.ts.map +1 -0
- package/dist/mcp/tools/dead-end.js +137 -0
- package/dist/mcp/tools/dead-end.js.map +1 -0
- package/dist/mcp/tools/debug.d.ts +9 -0
- package/dist/mcp/tools/debug.d.ts.map +1 -0
- package/dist/mcp/tools/debug.js +387 -0
- package/dist/mcp/tools/debug.js.map +1 -0
- package/dist/mcp/tools/graph.d.ts +9 -0
- package/dist/mcp/tools/graph.d.ts.map +1 -0
- package/dist/mcp/tools/graph.js +337 -0
- package/dist/mcp/tools/graph.js.map +1 -0
- package/dist/mcp/tools/indexing.d.ts +12 -0
- package/dist/mcp/tools/indexing.d.ts.map +1 -0
- package/dist/mcp/tools/indexing.js +289 -0
- package/dist/mcp/tools/indexing.js.map +1 -0
- package/dist/mcp/tools/memory.d.ts +14 -0
- package/dist/mcp/tools/memory.d.ts.map +1 -0
- package/dist/mcp/tools/memory.js +1170 -0
- package/dist/mcp/tools/memory.js.map +1 -0
- package/dist/mcp/tools/prd.d.ts +12 -0
- package/dist/mcp/tools/prd.d.ts.map +1 -0
- package/dist/mcp/tools/prd.js +276 -0
- package/dist/mcp/tools/prd.js.map +1 -0
- package/dist/mcp/tools/search.d.ts +9 -0
- package/dist/mcp/tools/search.d.ts.map +1 -0
- package/dist/mcp/tools/search.js +279 -0
- package/dist/mcp/tools/search.js.map +1 -0
- package/dist/mcp/tools/status.d.ts +10 -0
- package/dist/mcp/tools/status.d.ts.map +1 -0
- package/dist/mcp/tools/status.js +296 -0
- package/dist/mcp/tools/status.js.map +1 -0
- package/dist/mcp/tools/web-fetch.d.ts +10 -0
- package/dist/mcp/tools/web-fetch.d.ts.map +1 -0
- package/dist/mcp/tools/web-fetch.js +107 -0
- package/dist/mcp/tools/web-fetch.js.map +1 -0
- package/dist/mcp/tools/web-search.d.ts +14 -0
- package/dist/mcp/tools/web-search.d.ts.map +1 -0
- package/dist/mcp/tools/web-search.js +427 -0
- package/dist/mcp/tools/web-search.js.map +1 -0
- package/dist/mcp/types.d.ts +16 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +5 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp-server.d.ts +9 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +9 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/prompts/analyze.d.ts +21 -0
- package/dist/prompts/analyze.d.ts.map +1 -0
- package/dist/prompts/analyze.js +27 -0
- package/dist/prompts/analyze.js.map +1 -0
- package/dist/prompts/briefing.d.ts +27 -0
- package/dist/prompts/briefing.d.ts.map +1 -0
- package/dist/prompts/briefing.js +123 -0
- package/dist/prompts/briefing.js.map +1 -0
- package/dist/prompts/chat.d.ts +8 -0
- package/dist/prompts/chat.d.ts.map +1 -0
- package/dist/prompts/chat.js +39 -0
- package/dist/prompts/chat.js.map +1 -0
- package/dist/prompts/daemon.d.ts +16 -0
- package/dist/prompts/daemon.d.ts.map +1 -0
- package/dist/prompts/daemon.js +46 -0
- package/dist/prompts/daemon.js.map +1 -0
- package/dist/prompts/extraction.d.ts +13 -0
- package/dist/prompts/extraction.d.ts.map +1 -0
- package/dist/prompts/extraction.js +93 -0
- package/dist/prompts/extraction.js.map +1 -0
- package/dist/prompts/index.d.ts +17 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +27 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/memory.d.ts +11 -0
- package/dist/prompts/memory.d.ts.map +1 -0
- package/dist/prompts/memory.js +23 -0
- package/dist/prompts/memory.js.map +1 -0
- package/dist/prompts/onboarding.d.ts +16 -0
- package/dist/prompts/onboarding.d.ts.map +1 -0
- package/dist/prompts/onboarding.js +183 -0
- package/dist/prompts/onboarding.js.map +1 -0
- package/dist/prompts/prd.d.ts +12 -0
- package/dist/prompts/prd.d.ts.map +1 -0
- package/dist/prompts/prd.js +211 -0
- package/dist/prompts/prd.js.map +1 -0
- package/dist/prompts/quality.d.ts +11 -0
- package/dist/prompts/quality.d.ts.map +1 -0
- package/dist/prompts/quality.js +11 -0
- package/dist/prompts/quality.js.map +1 -0
- package/dist/prompts/skills.d.ts +16 -0
- package/dist/prompts/skills.d.ts.map +1 -0
- package/dist/prompts/skills.js +30 -0
- package/dist/prompts/skills.js.map +1 -0
- package/hooks/succ-post-tool.cjs +227 -0
- package/hooks/succ-pre-tool.cjs +312 -0
- package/hooks/succ-session-end.cjs +85 -0
- package/hooks/succ-session-start.cjs +618 -0
- package/hooks/succ-stop-reflection.cjs +87 -0
- package/hooks/succ-user-prompt.cjs +220 -0
- package/package.json +128 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Threshold for switching to recursive analysis (chars) */
|
|
2
|
+
export declare const RECURSIVE_ANALYSIS_THRESHOLD = 10000;
|
|
3
|
+
/** Max chars per batch for chunk analysis */
|
|
4
|
+
export declare const CHUNK_BATCH_SIZE = 8000;
|
|
5
|
+
/** Max concurrent chunk analysis calls */
|
|
6
|
+
export declare const CHUNK_ANALYSIS_CONCURRENCY = 3;
|
|
7
|
+
export interface AnalyzeFileOptions {
|
|
8
|
+
mode?: 'claude' | 'api';
|
|
9
|
+
}
|
|
10
|
+
export interface AnalyzeFileResult {
|
|
11
|
+
success: boolean;
|
|
12
|
+
outputPath?: string;
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Recursive analysis for large files: chunk → analyze → synthesize
|
|
17
|
+
*/
|
|
18
|
+
export declare function analyzeFileRecursive(fileContent: string, absolutePath: string, relativePath: string, fileName: string, ext: string, projectName: string, projectContext: string, wikilinksSection: string, mode: 'claude' | 'api'): Promise<string>;
|
|
19
|
+
export declare function analyzeFile(filePath: string, options?: AnalyzeFileOptions): Promise<AnalyzeFileResult>;
|
|
20
|
+
//# sourceMappingURL=analyze-recursive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-recursive.d.ts","sourceRoot":"","sources":["../../src/commands/analyze-recursive.ts"],"names":[],"mappings":"AAQA,4DAA4D;AAC5D,eAAO,MAAM,4BAA4B,QAAS,CAAC;AACnD,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AACtC,0CAA0C;AAC1C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+DD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,QAAQ,GAAG,KAAK,GACrB,OAAO,CAAC,MAAM,CAAC,CA4IjB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAuJ5B"}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { getLLMTaskConfig, getProjectRoot, getSuccDir } from '../lib/config.js';
|
|
4
|
+
import { NetworkError, ValidationError } from '../lib/errors.js';
|
|
5
|
+
import { formatSymbolMap, batchChunks } from './analyze-helpers.js';
|
|
6
|
+
import { cleanMarkdownOutput } from './analyze-utils.js';
|
|
7
|
+
import { gatherMinimalContext, getExistingBrainDocs } from './analyze-profile.js';
|
|
8
|
+
/** Threshold for switching to recursive analysis (chars) */
|
|
9
|
+
export const RECURSIVE_ANALYSIS_THRESHOLD = 10_000;
|
|
10
|
+
/** Max chars per batch for chunk analysis */
|
|
11
|
+
export const CHUNK_BATCH_SIZE = 8_000;
|
|
12
|
+
/** Max concurrent chunk analysis calls */
|
|
13
|
+
export const CHUNK_ANALYSIS_CONCURRENCY = 3;
|
|
14
|
+
/**
|
|
15
|
+
* Call the analyze LLM backend with a prompt (reuses analyzeFile's routing logic)
|
|
16
|
+
*/
|
|
17
|
+
async function callAnalyzeLLM(prompt, mode) {
|
|
18
|
+
if (mode === 'api') {
|
|
19
|
+
const cfg = getLLMTaskConfig('analyze');
|
|
20
|
+
const apiUrl = cfg.api_url;
|
|
21
|
+
const headers = {
|
|
22
|
+
'Content-Type': 'application/json',
|
|
23
|
+
};
|
|
24
|
+
if (cfg.api_key) {
|
|
25
|
+
headers['Authorization'] = `Bearer ${cfg.api_key}`;
|
|
26
|
+
}
|
|
27
|
+
if (apiUrl.includes('openrouter.ai')) {
|
|
28
|
+
headers['HTTP-Referer'] = 'https://succ.ai';
|
|
29
|
+
headers['X-Title'] = 'succ';
|
|
30
|
+
}
|
|
31
|
+
const completionUrl = apiUrl.endsWith('/v1')
|
|
32
|
+
? `${apiUrl}/chat/completions`
|
|
33
|
+
: apiUrl.endsWith('/v1/')
|
|
34
|
+
? `${apiUrl}chat/completions`
|
|
35
|
+
: apiUrl.endsWith('/')
|
|
36
|
+
? `${apiUrl}v1/chat/completions`
|
|
37
|
+
: `${apiUrl}/v1/chat/completions`;
|
|
38
|
+
const response = await fetch(completionUrl, {
|
|
39
|
+
method: 'POST',
|
|
40
|
+
headers,
|
|
41
|
+
body: JSON.stringify({
|
|
42
|
+
model: cfg.model,
|
|
43
|
+
messages: [
|
|
44
|
+
{
|
|
45
|
+
role: 'system',
|
|
46
|
+
content: 'You are an expert software documentation writer. Generate clear, concise documentation.',
|
|
47
|
+
},
|
|
48
|
+
{ role: 'user', content: prompt },
|
|
49
|
+
],
|
|
50
|
+
temperature: cfg.temperature ?? 0.3,
|
|
51
|
+
max_tokens: cfg.max_tokens ?? 4096,
|
|
52
|
+
stream: false,
|
|
53
|
+
}),
|
|
54
|
+
});
|
|
55
|
+
if (!response.ok) {
|
|
56
|
+
const error = await response.text();
|
|
57
|
+
throw new NetworkError(`API error: ${response.status} - ${error}`, response.status);
|
|
58
|
+
}
|
|
59
|
+
const data = (await response.json());
|
|
60
|
+
return data.choices?.[0]?.message?.content || null;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const { spawnClaudeCLI } = await import('../lib/llm.js');
|
|
64
|
+
return (await spawnClaudeCLI(prompt, { tools: '', model: 'haiku', timeout: 120000 })) || null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Recursive analysis for large files: chunk → analyze → synthesize
|
|
69
|
+
*/
|
|
70
|
+
export async function analyzeFileRecursive(fileContent, absolutePath, relativePath, fileName, ext, projectName, projectContext, wikilinksSection, mode) {
|
|
71
|
+
// Step 0: Extract symbol map via tree-sitter (fast, no LLM)
|
|
72
|
+
let symbolMap = '(tree-sitter unavailable)';
|
|
73
|
+
try {
|
|
74
|
+
const { extractSymbolsFromFile } = await import('../lib/tree-sitter/public.js');
|
|
75
|
+
const { symbols } = await extractSymbolsFromFile(absolutePath);
|
|
76
|
+
symbolMap = formatSymbolMap(symbols);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// tree-sitter unavailable — continue without symbol map
|
|
80
|
+
}
|
|
81
|
+
// Step 1: AST-aware chunking (tree-sitter with regex fallback)
|
|
82
|
+
const { chunkCodeAsync } = await import('../lib/chunker.js');
|
|
83
|
+
const chunks = await chunkCodeAsync(fileContent, absolutePath);
|
|
84
|
+
if (chunks.length === 0) {
|
|
85
|
+
throw new ValidationError('No chunks produced from file');
|
|
86
|
+
}
|
|
87
|
+
// Step 2: Batch chunks to fit LLM context
|
|
88
|
+
const batches = batchChunks(chunks, CHUNK_BATCH_SIZE);
|
|
89
|
+
const totalLines = fileContent.split('\n').length;
|
|
90
|
+
// Step 3: Analyze each batch (sequential with concurrency limit)
|
|
91
|
+
const chunkAnalyses = [];
|
|
92
|
+
const pending = [];
|
|
93
|
+
let activeCount = 0;
|
|
94
|
+
for (let i = 0; i < batches.length; i++) {
|
|
95
|
+
const batch = batches[i];
|
|
96
|
+
const batchContent = batch.map((c) => c.content).join('\n\n');
|
|
97
|
+
const startLine = batch[0].startLine;
|
|
98
|
+
const endLine = batch[batch.length - 1].endLine;
|
|
99
|
+
const chunkPrompt = `You are analyzing section ${i + 1}/${batches.length} of ${fileName} (${totalLines} lines total).
|
|
100
|
+
|
|
101
|
+
File symbol map (all definitions in this file):
|
|
102
|
+
${symbolMap}
|
|
103
|
+
|
|
104
|
+
Project context: ${projectContext}
|
|
105
|
+
|
|
106
|
+
Analyze this code section (lines ${startLine}-${endLine}) and extract:
|
|
107
|
+
1. What each function/class/interface does (purpose, key logic)
|
|
108
|
+
2. External dependencies imported
|
|
109
|
+
3. Internal dependencies (calls to other project modules)
|
|
110
|
+
4. Key patterns or algorithms
|
|
111
|
+
5. Notable complexity or edge cases
|
|
112
|
+
|
|
113
|
+
Code section:
|
|
114
|
+
\`\`\`${ext.slice(1) || 'text'}
|
|
115
|
+
${batchContent}
|
|
116
|
+
\`\`\`
|
|
117
|
+
|
|
118
|
+
Respond with a concise analysis. No frontmatter, no markdown headers, just facts.`;
|
|
119
|
+
// Simple concurrency: wait if at limit
|
|
120
|
+
while (activeCount >= CHUNK_ANALYSIS_CONCURRENCY) {
|
|
121
|
+
await Promise.race(pending);
|
|
122
|
+
}
|
|
123
|
+
const idx = i;
|
|
124
|
+
activeCount++;
|
|
125
|
+
const p = callAnalyzeLLM(chunkPrompt, mode)
|
|
126
|
+
.then((result) => {
|
|
127
|
+
chunkAnalyses[idx] = result || '(no analysis returned)';
|
|
128
|
+
})
|
|
129
|
+
.catch((err) => {
|
|
130
|
+
chunkAnalyses[idx] = `(analysis failed: ${err.message})`;
|
|
131
|
+
})
|
|
132
|
+
.finally(() => {
|
|
133
|
+
activeCount--;
|
|
134
|
+
pending.splice(pending.indexOf(p), 1);
|
|
135
|
+
});
|
|
136
|
+
pending.push(p);
|
|
137
|
+
}
|
|
138
|
+
// Wait for remaining
|
|
139
|
+
await Promise.all(pending);
|
|
140
|
+
// Step 4: Synthesize into unified document
|
|
141
|
+
const analysisJoined = chunkAnalyses
|
|
142
|
+
.map((a, i) => `### Section ${i + 1}/${batches.length}\n${a}`)
|
|
143
|
+
.join('\n\n');
|
|
144
|
+
const synthesisPrompt = `Create a unified documentation file for ${fileName} (${totalLines} lines).
|
|
145
|
+
|
|
146
|
+
## Project Context
|
|
147
|
+
${projectContext}
|
|
148
|
+
${wikilinksSection}
|
|
149
|
+
|
|
150
|
+
## File Symbol Map
|
|
151
|
+
${symbolMap}
|
|
152
|
+
|
|
153
|
+
## Section Analyses
|
|
154
|
+
${analysisJoined}
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
Synthesize these section analyses into a single documentation file:
|
|
159
|
+
|
|
160
|
+
1. YAML frontmatter (MUST be first):
|
|
161
|
+
---
|
|
162
|
+
description: "Brief description of this file's purpose"
|
|
163
|
+
project: ${projectName}
|
|
164
|
+
type: file-analysis
|
|
165
|
+
relevance: medium
|
|
166
|
+
file: ${relativePath}
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
2. Document structure:
|
|
170
|
+
# ${fileName}
|
|
171
|
+
|
|
172
|
+
**Parent:** [[Files]]
|
|
173
|
+
**Path:** \`${relativePath}\`
|
|
174
|
+
|
|
175
|
+
## Purpose
|
|
176
|
+
What this file does and why it exists.
|
|
177
|
+
|
|
178
|
+
## Key Components
|
|
179
|
+
Main functions, classes, exports with brief descriptions.
|
|
180
|
+
|
|
181
|
+
## Dependencies
|
|
182
|
+
What it imports/requires. Use [[wikilinks]] ONLY for documents in "Existing Documentation".
|
|
183
|
+
|
|
184
|
+
## Usage
|
|
185
|
+
How this file is used in the project.
|
|
186
|
+
|
|
187
|
+
CRITICAL FORMATTING RULES:
|
|
188
|
+
- Your response MUST start with exactly \`---\` on the first line
|
|
189
|
+
- NO text before the frontmatter
|
|
190
|
+
- **Parent:** must be [[Files]]
|
|
191
|
+
- ONLY use [[wikilinks]] for documents that exist in the "Existing Documentation" list
|
|
192
|
+
- If a related file doesn't have documentation yet, mention it as plain text`;
|
|
193
|
+
const synthesized = await callAnalyzeLLM(synthesisPrompt, mode);
|
|
194
|
+
if (!synthesized) {
|
|
195
|
+
throw new NetworkError('Synthesis LLM call returned no content');
|
|
196
|
+
}
|
|
197
|
+
return synthesized;
|
|
198
|
+
}
|
|
199
|
+
export async function analyzeFile(filePath, options = {}) {
|
|
200
|
+
const projectRoot = getProjectRoot();
|
|
201
|
+
const succDir = getSuccDir();
|
|
202
|
+
const brainDir = path.join(succDir, 'brain');
|
|
203
|
+
// Determine mode
|
|
204
|
+
const analyzeCfg = getLLMTaskConfig('analyze');
|
|
205
|
+
const mode = options.mode || analyzeCfg.mode;
|
|
206
|
+
// Check file exists
|
|
207
|
+
const absolutePath = path.isAbsolute(filePath) ? filePath : path.join(projectRoot, filePath);
|
|
208
|
+
if (!fs.existsSync(absolutePath)) {
|
|
209
|
+
return { success: false, error: `File not found: ${absolutePath}` };
|
|
210
|
+
}
|
|
211
|
+
// Read file content
|
|
212
|
+
const fileContent = fs.readFileSync(absolutePath, 'utf-8');
|
|
213
|
+
const fileName = path.basename(filePath);
|
|
214
|
+
const relativePath = path.relative(projectRoot, absolutePath);
|
|
215
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
216
|
+
// Determine output path in brain vault
|
|
217
|
+
const projectName = path.basename(projectRoot);
|
|
218
|
+
const outputDir = path.join(brainDir, 'project', 'files');
|
|
219
|
+
const outputPath = path.join(outputDir, `${fileName}.md`);
|
|
220
|
+
// Ensure output directory exists
|
|
221
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
222
|
+
// Ensure Files.md MOC exists
|
|
223
|
+
const filesMocPath = path.join(brainDir, 'project', 'files', 'Files.md');
|
|
224
|
+
if (!fs.existsSync(filesMocPath)) {
|
|
225
|
+
const filesMocContent = `---
|
|
226
|
+
description: "Source code file documentation"
|
|
227
|
+
project: ${projectName}
|
|
228
|
+
type: index
|
|
229
|
+
relevance: high
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
# Files
|
|
233
|
+
|
|
234
|
+
**Parent:** [[${projectName}]]
|
|
235
|
+
|
|
236
|
+
Map of documented source files. Each file analysis includes purpose, key components, dependencies, and usage.
|
|
237
|
+
|
|
238
|
+
## Documented Files
|
|
239
|
+
|
|
240
|
+
_Files are automatically added here when analyzed._
|
|
241
|
+
`;
|
|
242
|
+
fs.writeFileSync(filesMocPath, filesMocContent);
|
|
243
|
+
}
|
|
244
|
+
// Gather minimal project context
|
|
245
|
+
const projectContext = gatherMinimalContext(projectRoot);
|
|
246
|
+
// Get existing brain docs for wikilink suggestions
|
|
247
|
+
const existingDocs = getExistingBrainDocs(brainDir);
|
|
248
|
+
const wikilinksSection = existingDocs.length > 0
|
|
249
|
+
? `\n## Existing Documentation (use these for [[wikilinks]]):\n${existingDocs.slice(0, 50).join(', ')}\n`
|
|
250
|
+
: '';
|
|
251
|
+
try {
|
|
252
|
+
let content = null;
|
|
253
|
+
if (fileContent.length > RECURSIVE_ANALYSIS_THRESHOLD) {
|
|
254
|
+
// Large file: recursive chunk-analyze-synthesize
|
|
255
|
+
content = await analyzeFileRecursive(fileContent, absolutePath, relativePath, fileName, ext, projectName, projectContext, wikilinksSection, mode);
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
// Small file: single-pass analysis (original behavior)
|
|
259
|
+
const prompt = `Analyze this source file and create documentation.
|
|
260
|
+
|
|
261
|
+
## Project Context
|
|
262
|
+
${projectContext}
|
|
263
|
+
${wikilinksSection}
|
|
264
|
+
## File to Analyze
|
|
265
|
+
File: ${relativePath}
|
|
266
|
+
Extension: ${ext}
|
|
267
|
+
|
|
268
|
+
Content:
|
|
269
|
+
\`\`\`${ext.slice(1) || 'text'}
|
|
270
|
+
${fileContent}
|
|
271
|
+
\`\`\`
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
Create a documentation file following these rules:
|
|
276
|
+
|
|
277
|
+
1. YAML frontmatter (MUST be first):
|
|
278
|
+
---
|
|
279
|
+
description: "Brief description of this file's purpose"
|
|
280
|
+
project: ${projectName}
|
|
281
|
+
type: file-analysis
|
|
282
|
+
relevance: medium
|
|
283
|
+
file: ${relativePath}
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
2. Document structure:
|
|
287
|
+
# ${fileName}
|
|
288
|
+
|
|
289
|
+
**Parent:** [[Files]]
|
|
290
|
+
**Path:** \`${relativePath}\`
|
|
291
|
+
|
|
292
|
+
## Purpose
|
|
293
|
+
What this file does and why it exists.
|
|
294
|
+
|
|
295
|
+
## Key Components
|
|
296
|
+
Main functions, classes, exports with brief descriptions.
|
|
297
|
+
|
|
298
|
+
## Dependencies
|
|
299
|
+
What it imports/requires. Use [[wikilinks]] ONLY for documents listed in "Existing Documentation" section above.
|
|
300
|
+
|
|
301
|
+
## Usage
|
|
302
|
+
How this file is used in the project. Reference related files with [[wikilinks]] ONLY if they exist in the documentation list.
|
|
303
|
+
|
|
304
|
+
CRITICAL FORMATTING RULES:
|
|
305
|
+
- Your response MUST start with exactly \`---\` on the first line
|
|
306
|
+
- NO text before the frontmatter (no "Let me...", "Here is...", "Based on...")
|
|
307
|
+
- The first 3 characters of your output must be the three dashes
|
|
308
|
+
- **Parent:** must be [[Files]] (not [[lib]] or folder names)
|
|
309
|
+
- ONLY use [[wikilinks]] for documents that exist in the "Existing Documentation" list
|
|
310
|
+
- If a related file doesn't have documentation yet, just mention it as plain text (no brackets)`;
|
|
311
|
+
content = await callAnalyzeLLM(prompt, mode);
|
|
312
|
+
}
|
|
313
|
+
if (!content) {
|
|
314
|
+
return { success: false, error: 'No content returned from LLM' };
|
|
315
|
+
}
|
|
316
|
+
// Clean output (remove preamble, code fences)
|
|
317
|
+
const cleanedContent = cleanMarkdownOutput(content);
|
|
318
|
+
// Write output
|
|
319
|
+
fs.writeFileSync(outputPath, cleanedContent);
|
|
320
|
+
return { success: true, outputPath };
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
return { success: false, error: error.message };
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=analyze-recursive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-recursive.js","sourceRoot":"","sources":["../../src/commands/analyze-recursive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { Agent } from './analyze-agents.js';
|
|
2
|
+
import type { ProfileItem } from './analyze-profile.js';
|
|
3
|
+
export interface AgentTiming {
|
|
4
|
+
name: string;
|
|
5
|
+
durationMs: number;
|
|
6
|
+
success: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface MultiPassOptions {
|
|
9
|
+
type: 'systems' | 'features';
|
|
10
|
+
projectName: string;
|
|
11
|
+
items: ProfileItem[];
|
|
12
|
+
callLLM: (prompt: string, context: string) => Promise<string>;
|
|
13
|
+
concurrency: number;
|
|
14
|
+
broadContext: string;
|
|
15
|
+
projectRoot: string;
|
|
16
|
+
onProgress: (completed: number, total: number, current: string) => void;
|
|
17
|
+
}
|
|
18
|
+
export interface MultiPassResult {
|
|
19
|
+
succeeded: Array<{
|
|
20
|
+
name: string;
|
|
21
|
+
content: string;
|
|
22
|
+
}>;
|
|
23
|
+
failed: Array<{
|
|
24
|
+
name: string;
|
|
25
|
+
error: string;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Sanitize a profile item name into a safe filename.
|
|
30
|
+
* Replaces /\:*?"<>| with dashes, collapses runs, trims.
|
|
31
|
+
*/
|
|
32
|
+
export declare function sanitizeFilename(name: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Programmatic MOC (Map of Content) for Systems Overview or Features Overview.
|
|
35
|
+
* No LLM call — deterministic, zero-cost.
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildMocContent(type: 'systems' | 'features', projectName: string, items: Array<{
|
|
38
|
+
name: string;
|
|
39
|
+
description: string;
|
|
40
|
+
keyFile: string;
|
|
41
|
+
}>): string;
|
|
42
|
+
/**
|
|
43
|
+
* Build a focused LLM prompt for ONE system or feature.
|
|
44
|
+
* Each item gets its own API call with full token budget.
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildItemPrompt(type: 'systems' | 'features', projectName: string, item: ProfileItem): string;
|
|
47
|
+
/**
|
|
48
|
+
* Targeted context for one system/feature: broad header + keyFile + siblings.
|
|
49
|
+
*/
|
|
50
|
+
export declare function gatherItemContext(projectRoot: string, item: ProfileItem, broadHeader: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* Run multi-pass: individual API calls per system/feature with concurrency control.
|
|
53
|
+
*/
|
|
54
|
+
export declare function runMultiPassItems(opts: MultiPassOptions): Promise<MultiPassResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Clean markdown output by removing code fences and preamble text that LLMs sometimes add
|
|
57
|
+
*/
|
|
58
|
+
export declare function cleanMarkdownOutput(content: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Parse multi-file output from agents that create multiple files
|
|
61
|
+
* Format: ===FILE: filename.md===\ncontent\n===FILE: next.md===
|
|
62
|
+
*/
|
|
63
|
+
export declare function parseMultiFileOutput(content: string, baseDir: string): Array<{
|
|
64
|
+
path: string;
|
|
65
|
+
content: string;
|
|
66
|
+
}>;
|
|
67
|
+
/**
|
|
68
|
+
* Clean old sub-files from a directory before writing new multi-file output.
|
|
69
|
+
* Prevents duplicates when different models produce different filenames.
|
|
70
|
+
* Keeps the overview file (agent's main outputPath) and non-analyze files.
|
|
71
|
+
*/
|
|
72
|
+
export declare function cleanAgentSubfiles(outputDir: string, overviewPath: string): void;
|
|
73
|
+
/**
|
|
74
|
+
* Write agent output, handling multi-file outputs
|
|
75
|
+
* Note: File writes are atomic (fs.writeFileSync), but we use lock
|
|
76
|
+
* to prevent daemon from writing while CLI might be reading
|
|
77
|
+
*/
|
|
78
|
+
export declare function writeAgentOutput(agent: Agent, content: string): Promise<void>;
|
|
79
|
+
export declare function formatDuration(ms: number): string;
|
|
80
|
+
export declare function printTimingSummary(timings: AgentTiming[], totalMs: number): void;
|
|
81
|
+
export declare function ensureBrainStructure(brainDir: string, projectRoot: string): Promise<void>;
|
|
82
|
+
export declare function generateIndexFiles(brainDir: string, projectName: string): Promise<void>;
|
|
83
|
+
//# sourceMappingURL=analyze-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-utils.d.ts","sourceRoot":"","sources":["../../src/commands/analyze-utils.ts"],"names":[],"mappings":"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"}
|