@ikarmic/forge-core 4.4.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +44 -21
- package/README.md +2 -2
- package/dist/agent/agent.d.ts +0 -1
- package/dist/agent/agent.js +84 -32
- package/dist/agent/architect.d.ts +3 -1
- package/dist/agent/architect.js +1 -1
- package/dist/agent/cache-hints.d.ts +0 -1
- package/dist/agent/cache-hints.js +0 -1
- package/dist/agent/cost-router.d.ts +0 -1
- package/dist/agent/cost-router.js +2 -1
- package/dist/agent/enhance-prompt.d.ts +7 -0
- package/dist/agent/enhance-prompt.js +30 -0
- package/dist/agent/index.d.ts +0 -1
- package/dist/agent/index.js +0 -1
- package/dist/agent/loop-guard.d.ts +21 -0
- package/dist/agent/loop-guard.js +41 -0
- package/dist/agent/prompts.d.ts +0 -1
- package/dist/agent/prompts.js +0 -1
- package/dist/agent/think-tags.d.ts +0 -1
- package/dist/agent/think-tags.js +0 -1
- package/dist/agent/verify.d.ts +0 -1
- package/dist/agent/verify.js +0 -1
- package/dist/ai-comments/index.d.ts +0 -1
- package/dist/ai-comments/index.js +0 -1
- package/dist/attachments.d.ts +46 -0
- package/dist/attachments.js +178 -0
- package/dist/browser/cdp.d.ts +0 -1
- package/dist/browser/cdp.js +0 -1
- package/dist/browser/chrome.d.ts +0 -1
- package/dist/browser/chrome.js +0 -1
- package/dist/browser/session.d.ts +0 -1
- package/dist/browser/session.js +0 -1
- package/dist/checkpoints/index.d.ts +0 -1
- package/dist/checkpoints/index.js +0 -1
- package/dist/checkpoints/store.d.ts +0 -1
- package/dist/checkpoints/store.js +0 -1
- package/dist/checkpoints/types.d.ts +0 -1
- package/dist/checkpoints/types.js +0 -1
- package/dist/code-index/builder.d.ts +0 -1
- package/dist/code-index/builder.js +4 -1
- package/dist/code-index/index-store.d.ts +0 -1
- package/dist/code-index/index-store.js +0 -1
- package/dist/code-index/parser.d.ts +0 -1
- package/dist/code-index/parser.js +0 -1
- package/dist/code-index/types.d.ts +0 -1
- package/dist/code-index/types.js +0 -1
- package/dist/commands/custom-commands.d.ts +24 -0
- package/dist/commands/custom-commands.js +98 -0
- package/dist/config-file.d.ts +4 -1
- package/dist/config-file.js +0 -1
- package/dist/config.d.ts +0 -1
- package/dist/config.js +0 -1
- package/dist/context/compaction.d.ts +0 -1
- package/dist/context/compaction.js +17 -3
- package/dist/context/mask.d.ts +0 -1
- package/dist/context/mask.js +1 -2
- package/dist/credentials/index.d.ts +0 -1
- package/dist/credentials/index.js +0 -1
- package/dist/credentials/types.d.ts +0 -1
- package/dist/credentials/types.js +0 -1
- package/dist/diff/index.d.ts +0 -1
- package/dist/diff/index.js +0 -1
- package/dist/diff/unified-diff.d.ts +0 -1
- package/dist/diff/unified-diff.js +42 -16
- package/dist/git/auto-commit.d.ts +1 -2
- package/dist/git/auto-commit.js +17 -5
- package/dist/git/index.d.ts +0 -1
- package/dist/git/index.js +0 -1
- package/dist/github/github-tools.d.ts +83 -0
- package/dist/github/github-tools.js +175 -0
- package/dist/hooks/agent-runner.d.ts +0 -1
- package/dist/hooks/agent-runner.js +0 -1
- package/dist/hooks/bus.d.ts +0 -1
- package/dist/hooks/bus.js +0 -1
- package/dist/hooks/config.d.ts +0 -1
- package/dist/hooks/config.js +0 -1
- package/dist/hooks/events.d.ts +0 -1
- package/dist/hooks/events.js +0 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.js +0 -1
- package/dist/hooks/loader.d.ts +0 -1
- package/dist/hooks/loader.js +0 -1
- package/dist/hooks/runner.d.ts +0 -1
- package/dist/hooks/runner.js +0 -1
- package/dist/hooks/watch-coalescer.d.ts +0 -1
- package/dist/hooks/watch-coalescer.js +0 -1
- package/dist/hooks/watch-ignore.d.ts +0 -1
- package/dist/hooks/watch-ignore.js +0 -1
- package/dist/hooks/watcher.d.ts +0 -1
- package/dist/hooks/watcher.js +0 -1
- package/dist/index.d.ts +21 -9
- package/dist/index.js +16 -5
- package/dist/lazy-model.d.ts +0 -1
- package/dist/lazy-model.js +0 -1
- package/dist/lint/auto-lint.d.ts +0 -1
- package/dist/lint/auto-lint.js +0 -1
- package/dist/lint/index.d.ts +0 -1
- package/dist/lint/index.js +0 -1
- package/dist/lsp/client.d.ts +0 -1
- package/dist/lsp/client.js +0 -1
- package/dist/lsp/diagnostics.d.ts +0 -1
- package/dist/lsp/diagnostics.js +0 -1
- package/dist/lsp/index.d.ts +0 -1
- package/dist/lsp/index.js +0 -1
- package/dist/mcp/catalog.d.ts +0 -1
- package/dist/mcp/catalog.js +0 -1
- package/dist/mcp/index.d.ts +0 -1
- package/dist/mcp/index.js +0 -1
- package/dist/mcp/json-schema-to-zod.d.ts +0 -1
- package/dist/mcp/json-schema-to-zod.js +0 -1
- package/dist/mcp/manager.d.ts +0 -1
- package/dist/mcp/manager.js +0 -1
- package/dist/mcp/marketplace-types.d.ts +0 -1
- package/dist/mcp/marketplace-types.js +0 -1
- package/dist/mcp/marketplace.d.ts +0 -1
- package/dist/mcp/marketplace.js +0 -1
- package/dist/mcp/mcp-client.d.ts +0 -1
- package/dist/mcp/mcp-client.js +0 -1
- package/dist/mcp/mcp-config.d.ts +0 -1
- package/dist/mcp/mcp-config.js +0 -1
- package/dist/mcp/registry.d.ts +0 -1
- package/dist/mcp/registry.js +0 -1
- package/dist/memory/memory-store.d.ts +57 -11
- package/dist/memory/memory-store.js +236 -70
- package/dist/memory/rank.d.ts +20 -0
- package/dist/memory/rank.js +64 -0
- package/dist/memory/stale.d.ts +18 -0
- package/dist/memory/stale.js +45 -0
- package/dist/model-alias.d.ts +0 -1
- package/dist/model-alias.js +0 -1
- package/dist/model-catalog.d.ts +0 -1
- package/dist/model-catalog.js +0 -1
- package/dist/model-list.d.ts +0 -1
- package/dist/model-list.js +0 -1
- package/dist/orchestrator/board-tools.d.ts +0 -1
- package/dist/orchestrator/board-tools.js +0 -1
- package/dist/orchestrator/board.d.ts +0 -1
- package/dist/orchestrator/board.js +0 -1
- package/dist/orchestrator/index.d.ts +0 -1
- package/dist/orchestrator/index.js +0 -1
- package/dist/orchestrator/orchestrator.d.ts +0 -1
- package/dist/orchestrator/orchestrator.js +0 -1
- package/dist/orchestrator/router.d.ts +0 -1
- package/dist/orchestrator/router.js +0 -1
- package/dist/orchestrator/specialists-registry.d.ts +0 -1
- package/dist/orchestrator/specialists-registry.js +0 -1
- package/dist/orchestrator/specialists.d.ts +0 -1
- package/dist/orchestrator/specialists.js +5 -6
- package/dist/orchestrator/types.d.ts +0 -1
- package/dist/orchestrator/types.js +0 -1
- package/dist/plugins/index.d.ts +0 -1
- package/dist/plugins/index.js +0 -1
- package/dist/plugins/install.d.ts +0 -1
- package/dist/plugins/install.js +0 -1
- package/dist/plugins/loader.d.ts +0 -1
- package/dist/plugins/loader.js +0 -1
- package/dist/policy/audit.d.ts +0 -1
- package/dist/policy/audit.js +0 -1
- package/dist/policy/policy.d.ts +0 -1
- package/dist/policy/policy.js +0 -1
- package/dist/policy/proxy.d.ts +0 -1
- package/dist/policy/proxy.js +0 -1
- package/dist/pricing.d.ts +0 -1
- package/dist/pricing.js +0 -1
- package/dist/providers.d.ts +0 -1
- package/dist/providers.js +0 -1
- package/dist/repomap/index.d.ts +0 -1
- package/dist/repomap/index.js +0 -1
- package/dist/repomap/repo-map.d.ts +0 -1
- package/dist/repomap/repo-map.js +0 -1
- package/dist/semantic/chunker.d.ts +0 -1
- package/dist/semantic/chunker.js +0 -1
- package/dist/semantic/embedder.d.ts +0 -1
- package/dist/semantic/embedder.js +0 -1
- package/dist/semantic/semantic-index.d.ts +0 -1
- package/dist/semantic/semantic-index.js +4 -1
- package/dist/semantic/vector-store.d.ts +0 -1
- package/dist/semantic/vector-store.js +0 -1
- package/dist/sessions/index.d.ts +2 -1
- package/dist/sessions/index.js +2 -1
- package/dist/sessions/prune.d.ts +23 -0
- package/dist/sessions/prune.js +35 -0
- package/dist/sessions/search.d.ts +22 -0
- package/dist/sessions/search.js +66 -0
- package/dist/sessions/session-export.d.ts +0 -1
- package/dist/sessions/session-export.js +0 -1
- package/dist/sessions/session-store.d.ts +0 -1
- package/dist/sessions/session-store.js +0 -1
- package/dist/sessions/watch.d.ts +0 -1
- package/dist/sessions/watch.js +0 -1
- package/dist/settings-export.d.ts +0 -1
- package/dist/settings-export.js +0 -1
- package/dist/skills/activator.d.ts +0 -1
- package/dist/skills/activator.js +0 -1
- package/dist/skills/index.d.ts +0 -1
- package/dist/skills/index.js +0 -1
- package/dist/skills/loader.d.ts +0 -1
- package/dist/skills/loader.js +0 -1
- package/dist/skills/marketplace-types.d.ts +0 -1
- package/dist/skills/marketplace-types.js +0 -1
- package/dist/skills/marketplace.d.ts +0 -1
- package/dist/skills/marketplace.js +0 -1
- package/dist/skills/parser.d.ts +0 -1
- package/dist/skills/parser.js +0 -1
- package/dist/skills/types.d.ts +0 -1
- package/dist/skills/types.js +0 -1
- package/dist/specs/generate.d.ts +0 -1
- package/dist/specs/generate.js +0 -1
- package/dist/specs/index.d.ts +2 -1
- package/dist/specs/index.js +1 -1
- package/dist/specs/store.d.ts +7 -1
- package/dist/specs/store.js +33 -1
- package/dist/specs/sync.d.ts +29 -0
- package/dist/specs/sync.js +155 -0
- package/dist/specs/tasks-parser.d.ts +0 -1
- package/dist/specs/tasks-parser.js +0 -1
- package/dist/specs/types.d.ts +2 -1
- package/dist/specs/types.js +0 -1
- package/dist/steering/glob.d.ts +0 -1
- package/dist/steering/glob.js +0 -1
- package/dist/steering/index.d.ts +0 -1
- package/dist/steering/index.js +0 -1
- package/dist/steering/loader.d.ts +0 -1
- package/dist/steering/loader.js +0 -1
- package/dist/steering/project-instructions.d.ts +0 -1
- package/dist/steering/project-instructions.js +0 -1
- package/dist/steering/select.d.ts +0 -1
- package/dist/steering/select.js +0 -1
- package/dist/steering/types.d.ts +0 -1
- package/dist/steering/types.js +0 -1
- package/dist/structured/index.d.ts +0 -1
- package/dist/structured/index.js +0 -1
- package/dist/structured/retry.d.ts +0 -1
- package/dist/structured/retry.js +0 -1
- package/dist/structured/schema.d.ts +0 -1
- package/dist/structured/schema.js +0 -1
- package/dist/tools/browser-tools.d.ts +0 -1
- package/dist/tools/browser-tools.js +0 -1
- package/dist/tools/codebase-search.d.ts +0 -1
- package/dist/tools/codebase-search.js +0 -1
- package/dist/tools/command-allow.d.ts +0 -1
- package/dist/tools/command-allow.js +0 -1
- package/dist/tools/edit-file.d.ts +0 -1
- package/dist/tools/edit-file.js +0 -1
- package/dist/tools/fetch-url.d.ts +0 -1
- package/dist/tools/fetch-url.js +0 -1
- package/dist/tools/find-references.d.ts +0 -1
- package/dist/tools/find-references.js +0 -1
- package/dist/tools/find-symbol.d.ts +0 -1
- package/dist/tools/find-symbol.js +0 -1
- package/dist/tools/ignore-rules.d.ts +15 -0
- package/dist/tools/ignore-rules.js +84 -0
- package/dist/tools/index.d.ts +3 -3
- package/dist/tools/index.js +5 -3
- package/dist/tools/list-files.d.ts +3 -1
- package/dist/tools/list-files.js +8 -1
- package/dist/tools/list-symbols.d.ts +0 -1
- package/dist/tools/list-symbols.js +0 -1
- package/dist/tools/memory.d.ts +34 -2
- package/dist/tools/memory.js +118 -26
- package/dist/tools/notebook.d.ts +69 -0
- package/dist/tools/notebook.js +163 -0
- package/dist/tools/policy.d.ts +0 -1
- package/dist/tools/policy.js +0 -1
- package/dist/tools/read-file.d.ts +8 -2
- package/dist/tools/read-file.js +19 -2
- package/dist/tools/read-image.d.ts +0 -1
- package/dist/tools/read-image.js +0 -1
- package/dist/tools/read-only.d.ts +0 -1
- package/dist/tools/read-only.js +0 -1
- package/dist/tools/redact.d.ts +0 -1
- package/dist/tools/redact.js +0 -1
- package/dist/tools/result-cache.d.ts +0 -1
- package/dist/tools/result-cache.js +0 -1
- package/dist/tools/run-command.d.ts +0 -1
- package/dist/tools/run-command.js +0 -1
- package/dist/tools/sandbox-loader.d.ts +0 -1
- package/dist/tools/sandbox-loader.js +0 -1
- package/dist/tools/search-files.d.ts +5 -3
- package/dist/tools/search-files.js +8 -1
- package/dist/tools/shared.d.ts +0 -1
- package/dist/tools/shared.js +0 -1
- package/dist/tools/sub-agent.d.ts +0 -1
- package/dist/tools/sub-agent.js +0 -1
- package/dist/tools/web-search.d.ts +55 -0
- package/dist/tools/web-search.js +131 -0
- package/dist/tools/write-file.d.ts +0 -1
- package/dist/tools/write-file.js +0 -1
- package/dist/types.d.ts +43 -2
- package/dist/types.js +0 -1
- package/dist/verify/detect.d.ts +0 -1
- package/dist/verify/detect.js +0 -1
- package/dist/verify/index.d.ts +0 -1
- package/dist/verify/index.js +0 -1
- package/dist/worktree/branch-ops.d.ts +0 -1
- package/dist/worktree/branch-ops.js +0 -1
- package/dist/worktree/index.d.ts +0 -1
- package/dist/worktree/index.js +0 -1
- package/dist/worktree/worktree.d.ts +0 -1
- package/dist/worktree/worktree.js +0 -1
- package/package.json +4 -2
- package/dist/agent/agent.d.ts.map +0 -1
- package/dist/agent/agent.js.map +0 -1
- package/dist/agent/architect.d.ts.map +0 -1
- package/dist/agent/architect.js.map +0 -1
- package/dist/agent/cache-hints.d.ts.map +0 -1
- package/dist/agent/cache-hints.js.map +0 -1
- package/dist/agent/cost-router.d.ts.map +0 -1
- package/dist/agent/cost-router.js.map +0 -1
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/prompts.d.ts.map +0 -1
- package/dist/agent/prompts.js.map +0 -1
- package/dist/agent/think-tags.d.ts.map +0 -1
- package/dist/agent/think-tags.js.map +0 -1
- package/dist/agent/verify.d.ts.map +0 -1
- package/dist/agent/verify.js.map +0 -1
- package/dist/ai-comments/index.d.ts.map +0 -1
- package/dist/ai-comments/index.js.map +0 -1
- package/dist/browser/cdp.d.ts.map +0 -1
- package/dist/browser/cdp.js.map +0 -1
- package/dist/browser/chrome.d.ts.map +0 -1
- package/dist/browser/chrome.js.map +0 -1
- package/dist/browser/session.d.ts.map +0 -1
- package/dist/browser/session.js.map +0 -1
- package/dist/checkpoints/index.d.ts.map +0 -1
- package/dist/checkpoints/index.js.map +0 -1
- package/dist/checkpoints/store.d.ts.map +0 -1
- package/dist/checkpoints/store.js.map +0 -1
- package/dist/checkpoints/types.d.ts.map +0 -1
- package/dist/checkpoints/types.js.map +0 -1
- package/dist/code-index/builder.d.ts.map +0 -1
- package/dist/code-index/builder.js.map +0 -1
- package/dist/code-index/index-store.d.ts.map +0 -1
- package/dist/code-index/index-store.js.map +0 -1
- package/dist/code-index/parser.d.ts.map +0 -1
- package/dist/code-index/parser.js.map +0 -1
- package/dist/code-index/types.d.ts.map +0 -1
- package/dist/code-index/types.js.map +0 -1
- package/dist/config-file.d.ts.map +0 -1
- package/dist/config-file.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/context/compaction.d.ts.map +0 -1
- package/dist/context/compaction.js.map +0 -1
- package/dist/context/mask.d.ts.map +0 -1
- package/dist/context/mask.js.map +0 -1
- package/dist/credentials/index.d.ts.map +0 -1
- package/dist/credentials/index.js.map +0 -1
- package/dist/credentials/types.d.ts.map +0 -1
- package/dist/credentials/types.js.map +0 -1
- package/dist/diff/index.d.ts.map +0 -1
- package/dist/diff/index.js.map +0 -1
- package/dist/diff/unified-diff.d.ts.map +0 -1
- package/dist/diff/unified-diff.js.map +0 -1
- package/dist/git/auto-commit.d.ts.map +0 -1
- package/dist/git/auto-commit.js.map +0 -1
- package/dist/git/index.d.ts.map +0 -1
- package/dist/git/index.js.map +0 -1
- package/dist/hooks/agent-runner.d.ts.map +0 -1
- package/dist/hooks/agent-runner.js.map +0 -1
- package/dist/hooks/bus.d.ts.map +0 -1
- package/dist/hooks/bus.js.map +0 -1
- package/dist/hooks/config.d.ts.map +0 -1
- package/dist/hooks/config.js.map +0 -1
- package/dist/hooks/events.d.ts.map +0 -1
- package/dist/hooks/events.js.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/loader.d.ts.map +0 -1
- package/dist/hooks/loader.js.map +0 -1
- package/dist/hooks/runner.d.ts.map +0 -1
- package/dist/hooks/runner.js.map +0 -1
- package/dist/hooks/watch-coalescer.d.ts.map +0 -1
- package/dist/hooks/watch-coalescer.js.map +0 -1
- package/dist/hooks/watch-ignore.d.ts.map +0 -1
- package/dist/hooks/watch-ignore.js.map +0 -1
- package/dist/hooks/watcher.d.ts.map +0 -1
- package/dist/hooks/watcher.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lazy-model.d.ts.map +0 -1
- package/dist/lazy-model.js.map +0 -1
- package/dist/lint/auto-lint.d.ts.map +0 -1
- package/dist/lint/auto-lint.js.map +0 -1
- package/dist/lint/index.d.ts.map +0 -1
- package/dist/lint/index.js.map +0 -1
- package/dist/lsp/client.d.ts.map +0 -1
- package/dist/lsp/client.js.map +0 -1
- package/dist/lsp/diagnostics.d.ts.map +0 -1
- package/dist/lsp/diagnostics.js.map +0 -1
- package/dist/lsp/index.d.ts.map +0 -1
- package/dist/lsp/index.js.map +0 -1
- package/dist/mcp/catalog.d.ts.map +0 -1
- package/dist/mcp/catalog.js.map +0 -1
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/json-schema-to-zod.d.ts.map +0 -1
- package/dist/mcp/json-schema-to-zod.js.map +0 -1
- package/dist/mcp/manager.d.ts.map +0 -1
- package/dist/mcp/manager.js.map +0 -1
- package/dist/mcp/marketplace-types.d.ts.map +0 -1
- package/dist/mcp/marketplace-types.js.map +0 -1
- package/dist/mcp/marketplace.d.ts.map +0 -1
- package/dist/mcp/marketplace.js.map +0 -1
- package/dist/mcp/mcp-client.d.ts.map +0 -1
- package/dist/mcp/mcp-client.js.map +0 -1
- package/dist/mcp/mcp-config.d.ts.map +0 -1
- package/dist/mcp/mcp-config.js.map +0 -1
- package/dist/mcp/registry.d.ts.map +0 -1
- package/dist/mcp/registry.js.map +0 -1
- package/dist/memory/memory-store.d.ts.map +0 -1
- package/dist/memory/memory-store.js.map +0 -1
- package/dist/model-alias.d.ts.map +0 -1
- package/dist/model-alias.js.map +0 -1
- package/dist/model-catalog.d.ts.map +0 -1
- package/dist/model-catalog.js.map +0 -1
- package/dist/model-list.d.ts.map +0 -1
- package/dist/model-list.js.map +0 -1
- package/dist/orchestrator/board-tools.d.ts.map +0 -1
- package/dist/orchestrator/board-tools.js.map +0 -1
- package/dist/orchestrator/board.d.ts.map +0 -1
- package/dist/orchestrator/board.js.map +0 -1
- package/dist/orchestrator/index.d.ts.map +0 -1
- package/dist/orchestrator/index.js.map +0 -1
- package/dist/orchestrator/orchestrator.d.ts.map +0 -1
- package/dist/orchestrator/orchestrator.js.map +0 -1
- package/dist/orchestrator/router.d.ts.map +0 -1
- package/dist/orchestrator/router.js.map +0 -1
- package/dist/orchestrator/specialists-registry.d.ts.map +0 -1
- package/dist/orchestrator/specialists-registry.js.map +0 -1
- package/dist/orchestrator/specialists.d.ts.map +0 -1
- package/dist/orchestrator/specialists.js.map +0 -1
- package/dist/orchestrator/types.d.ts.map +0 -1
- package/dist/orchestrator/types.js.map +0 -1
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/install.d.ts.map +0 -1
- package/dist/plugins/install.js.map +0 -1
- package/dist/plugins/loader.d.ts.map +0 -1
- package/dist/plugins/loader.js.map +0 -1
- package/dist/policy/audit.d.ts.map +0 -1
- package/dist/policy/audit.js.map +0 -1
- package/dist/policy/policy.d.ts.map +0 -1
- package/dist/policy/policy.js.map +0 -1
- package/dist/policy/proxy.d.ts.map +0 -1
- package/dist/policy/proxy.js.map +0 -1
- package/dist/pricing.d.ts.map +0 -1
- package/dist/pricing.js.map +0 -1
- package/dist/providers.d.ts.map +0 -1
- package/dist/providers.js.map +0 -1
- package/dist/repomap/index.d.ts.map +0 -1
- package/dist/repomap/index.js.map +0 -1
- package/dist/repomap/repo-map.d.ts.map +0 -1
- package/dist/repomap/repo-map.js.map +0 -1
- package/dist/semantic/chunker.d.ts.map +0 -1
- package/dist/semantic/chunker.js.map +0 -1
- package/dist/semantic/embedder.d.ts.map +0 -1
- package/dist/semantic/embedder.js.map +0 -1
- package/dist/semantic/semantic-index.d.ts.map +0 -1
- package/dist/semantic/semantic-index.js.map +0 -1
- package/dist/semantic/vector-store.d.ts.map +0 -1
- package/dist/semantic/vector-store.js.map +0 -1
- package/dist/sessions/index.d.ts.map +0 -1
- package/dist/sessions/index.js.map +0 -1
- package/dist/sessions/session-export.d.ts.map +0 -1
- package/dist/sessions/session-export.js.map +0 -1
- package/dist/sessions/session-store.d.ts.map +0 -1
- package/dist/sessions/session-store.js.map +0 -1
- package/dist/sessions/watch.d.ts.map +0 -1
- package/dist/sessions/watch.js.map +0 -1
- package/dist/settings-export.d.ts.map +0 -1
- package/dist/settings-export.js.map +0 -1
- package/dist/skills/activator.d.ts.map +0 -1
- package/dist/skills/activator.js.map +0 -1
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/loader.d.ts.map +0 -1
- package/dist/skills/loader.js.map +0 -1
- package/dist/skills/marketplace-types.d.ts.map +0 -1
- package/dist/skills/marketplace-types.js.map +0 -1
- package/dist/skills/marketplace.d.ts.map +0 -1
- package/dist/skills/marketplace.js.map +0 -1
- package/dist/skills/parser.d.ts.map +0 -1
- package/dist/skills/parser.js.map +0 -1
- package/dist/skills/types.d.ts.map +0 -1
- package/dist/skills/types.js.map +0 -1
- package/dist/specs/generate.d.ts.map +0 -1
- package/dist/specs/generate.js.map +0 -1
- package/dist/specs/index.d.ts.map +0 -1
- package/dist/specs/index.js.map +0 -1
- package/dist/specs/store.d.ts.map +0 -1
- package/dist/specs/store.js.map +0 -1
- package/dist/specs/tasks-parser.d.ts.map +0 -1
- package/dist/specs/tasks-parser.js.map +0 -1
- package/dist/specs/types.d.ts.map +0 -1
- package/dist/specs/types.js.map +0 -1
- package/dist/steering/glob.d.ts.map +0 -1
- package/dist/steering/glob.js.map +0 -1
- package/dist/steering/index.d.ts.map +0 -1
- package/dist/steering/index.js.map +0 -1
- package/dist/steering/loader.d.ts.map +0 -1
- package/dist/steering/loader.js.map +0 -1
- package/dist/steering/project-instructions.d.ts.map +0 -1
- package/dist/steering/project-instructions.js.map +0 -1
- package/dist/steering/select.d.ts.map +0 -1
- package/dist/steering/select.js.map +0 -1
- package/dist/steering/types.d.ts.map +0 -1
- package/dist/steering/types.js.map +0 -1
- package/dist/structured/index.d.ts.map +0 -1
- package/dist/structured/index.js.map +0 -1
- package/dist/structured/retry.d.ts.map +0 -1
- package/dist/structured/retry.js.map +0 -1
- package/dist/structured/schema.d.ts.map +0 -1
- package/dist/structured/schema.js.map +0 -1
- package/dist/tools/browser-tools.d.ts.map +0 -1
- package/dist/tools/browser-tools.js.map +0 -1
- package/dist/tools/codebase-search.d.ts.map +0 -1
- package/dist/tools/codebase-search.js.map +0 -1
- package/dist/tools/command-allow.d.ts.map +0 -1
- package/dist/tools/command-allow.js.map +0 -1
- package/dist/tools/edit-file.d.ts.map +0 -1
- package/dist/tools/edit-file.js.map +0 -1
- package/dist/tools/fetch-url.d.ts.map +0 -1
- package/dist/tools/fetch-url.js.map +0 -1
- package/dist/tools/find-references.d.ts.map +0 -1
- package/dist/tools/find-references.js.map +0 -1
- package/dist/tools/find-symbol.d.ts.map +0 -1
- package/dist/tools/find-symbol.js.map +0 -1
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/list-files.d.ts.map +0 -1
- package/dist/tools/list-files.js.map +0 -1
- package/dist/tools/list-symbols.d.ts.map +0 -1
- package/dist/tools/list-symbols.js.map +0 -1
- package/dist/tools/memory.d.ts.map +0 -1
- package/dist/tools/memory.js.map +0 -1
- package/dist/tools/policy.d.ts.map +0 -1
- package/dist/tools/policy.js.map +0 -1
- package/dist/tools/read-file.d.ts.map +0 -1
- package/dist/tools/read-file.js.map +0 -1
- package/dist/tools/read-image.d.ts.map +0 -1
- package/dist/tools/read-image.js.map +0 -1
- package/dist/tools/read-only.d.ts.map +0 -1
- package/dist/tools/read-only.js.map +0 -1
- package/dist/tools/redact.d.ts.map +0 -1
- package/dist/tools/redact.js.map +0 -1
- package/dist/tools/result-cache.d.ts.map +0 -1
- package/dist/tools/result-cache.js.map +0 -1
- package/dist/tools/run-command.d.ts.map +0 -1
- package/dist/tools/run-command.js.map +0 -1
- package/dist/tools/sandbox-loader.d.ts.map +0 -1
- package/dist/tools/sandbox-loader.js.map +0 -1
- package/dist/tools/search-files.d.ts.map +0 -1
- package/dist/tools/search-files.js.map +0 -1
- package/dist/tools/shared.d.ts.map +0 -1
- package/dist/tools/shared.js.map +0 -1
- package/dist/tools/sub-agent.d.ts.map +0 -1
- package/dist/tools/sub-agent.js.map +0 -1
- package/dist/tools/write-file.d.ts.map +0 -1
- package/dist/tools/write-file.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/verify/detect.d.ts.map +0 -1
- package/dist/verify/detect.js.map +0 -1
- package/dist/verify/index.d.ts.map +0 -1
- package/dist/verify/index.js.map +0 -1
- package/dist/worktree/branch-ops.d.ts.map +0 -1
- package/dist/worktree/branch-ops.js.map +0 -1
- package/dist/worktree/index.d.ts.map +0 -1
- package/dist/worktree/index.js.map +0 -1
- package/dist/worktree/worktree.d.ts.map +0 -1
- package/dist/worktree/worktree.js.map +0 -1
|
@@ -131,4 +131,3 @@ export declare function saveSpecialistsToConfig(entries: CustomSpecialistConfig[
|
|
|
131
131
|
* callers can use this without touching the registry.
|
|
132
132
|
*/
|
|
133
133
|
export declare function validateSpecialistConfig(input: CustomSpecialistConfig | SpecialistConfig, configDir?: string): SpecialistConfig;
|
|
134
|
-
//# sourceMappingURL=specialists-registry.d.ts.map
|
|
@@ -31,7 +31,7 @@ Strict rules:
|
|
|
31
31
|
|
|
32
32
|
Output format: plain markdown. The orchestrator will pass your plan to the CODE specialist.`,
|
|
33
33
|
allowedTools: ['read_file', 'list_files', 'search_files', 'run_command', 'memory_read'],
|
|
34
|
-
forbiddenTools: ['write_file', 'edit_file', 'sub_agent'],
|
|
34
|
+
forbiddenTools: ['write_file', 'edit_file', 'edit_notebook', 'sub_agent'],
|
|
35
35
|
maxIterations: 8,
|
|
36
36
|
auto: false,
|
|
37
37
|
},
|
|
@@ -48,7 +48,7 @@ Strict rules:
|
|
|
48
48
|
- Your final response MUST list the files you touched + a one-line summary per file.
|
|
49
49
|
|
|
50
50
|
Output format: plain markdown.`,
|
|
51
|
-
allowedTools: ['read_file', 'write_file', 'edit_file', 'list_files', 'search_files', 'run_command', 'memory_read', 'memory_write'],
|
|
51
|
+
allowedTools: ['read_file', 'write_file', 'edit_file', 'list_files', 'search_files', 'run_command', 'memory_read', 'memory_write', 'memory_forget'],
|
|
52
52
|
forbiddenTools: ['sub_agent'],
|
|
53
53
|
maxIterations: 20,
|
|
54
54
|
auto: true,
|
|
@@ -67,7 +67,7 @@ Strict rules:
|
|
|
67
67
|
|
|
68
68
|
Output format: plain markdown.`,
|
|
69
69
|
allowedTools: ['read_file', 'list_files', 'search_files', 'run_command', 'memory_read'],
|
|
70
|
-
forbiddenTools: ['write_file', 'edit_file', 'sub_agent'],
|
|
70
|
+
forbiddenTools: ['write_file', 'edit_file', 'edit_notebook', 'sub_agent'],
|
|
71
71
|
maxIterations: 15,
|
|
72
72
|
auto: false,
|
|
73
73
|
},
|
|
@@ -84,7 +84,7 @@ Strict rules:
|
|
|
84
84
|
|
|
85
85
|
Output format: plain markdown.`,
|
|
86
86
|
allowedTools: ['read_file', 'list_files', 'search_files', 'fetch_url', 'memory_read'],
|
|
87
|
-
forbiddenTools: ['write_file', 'edit_file', 'run_command', 'sub_agent'],
|
|
87
|
+
forbiddenTools: ['write_file', 'edit_file', 'edit_notebook', 'run_command', 'sub_agent'],
|
|
88
88
|
maxIterations: 5,
|
|
89
89
|
auto: false,
|
|
90
90
|
},
|
|
@@ -102,7 +102,7 @@ Strict rules:
|
|
|
102
102
|
|
|
103
103
|
Output format: plain markdown.`,
|
|
104
104
|
allowedTools: ['read_file', 'list_files', 'search_files', 'memory_read'],
|
|
105
|
-
forbiddenTools: ['write_file', 'edit_file', 'run_command', 'sub_agent'],
|
|
105
|
+
forbiddenTools: ['write_file', 'edit_file', 'edit_notebook', 'run_command', 'sub_agent'],
|
|
106
106
|
maxIterations: 6,
|
|
107
107
|
auto: false,
|
|
108
108
|
},
|
|
@@ -130,4 +130,3 @@ export function effectiveToolsFor(spec) {
|
|
|
130
130
|
const forbidden = new Set(spec.forbiddenTools);
|
|
131
131
|
return spec.allowedTools.filter((t) => !forbidden.has(t));
|
|
132
132
|
}
|
|
133
|
-
//# sourceMappingURL=specialists.js.map
|
package/dist/plugins/index.d.ts
CHANGED
|
@@ -2,4 +2,3 @@ export { discoverPlugins, findManifest, loadPlugin, loadPluginMcpServers, PLUGIN
|
|
|
2
2
|
export type { Plugin, PluginScope } from './loader.js';
|
|
3
3
|
export { installPlugin, removePlugin } from './install.js';
|
|
4
4
|
export type { InstallPluginOptions } from './install.js';
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/plugins/index.js
CHANGED
|
@@ -10,4 +10,3 @@ export interface InstallPluginOptions {
|
|
|
10
10
|
export declare function installPlugin(source: string, opts: InstallPluginOptions): Promise<Plugin>;
|
|
11
11
|
/** Removes an installed plugin; returns false when it was not installed. */
|
|
12
12
|
export declare function removePlugin(name: string, opts: Pick<InstallPluginOptions, 'scope' | 'cwd' | 'home'>): Promise<boolean>;
|
|
13
|
-
//# sourceMappingURL=install.d.ts.map
|
package/dist/plugins/install.js
CHANGED
package/dist/plugins/loader.d.ts
CHANGED
|
@@ -27,4 +27,3 @@ export declare function loadPlugin(root: string, scope: PluginScope): Promise<Pl
|
|
|
27
27
|
export declare function discoverPlugins(cwd: string, home?: string): Promise<Plugin[]>;
|
|
28
28
|
/** MCP servers contributed by global plugins only; project plugins are untrusted. */
|
|
29
29
|
export declare function loadPluginMcpServers(cwd: string, home?: string): Promise<Record<string, McpServerSpec>>;
|
|
30
|
-
//# sourceMappingURL=loader.d.ts.map
|
package/dist/plugins/loader.js
CHANGED
package/dist/policy/audit.d.ts
CHANGED
|
@@ -28,4 +28,3 @@ export declare function defaultAuditFile(): string;
|
|
|
28
28
|
/** Redacted, size-capped rendering of tool arguments. */
|
|
29
29
|
export declare function scrubArgs(args: unknown): unknown;
|
|
30
30
|
export declare function createFileAuditSink(file?: string, now?: () => Date): AuditSink;
|
|
31
|
-
//# sourceMappingURL=audit.d.ts.map
|
package/dist/policy/audit.js
CHANGED
package/dist/policy/policy.d.ts
CHANGED
|
@@ -106,4 +106,3 @@ export declare function filterMcpServers<T>(servers: Record<string, T>, policy:
|
|
|
106
106
|
/** Return `config` with the policy applied (a new object; the input is not mutated). */
|
|
107
107
|
export declare function applyPolicy(config: AgentConfig, policy: OrgPolicy | undefined): AgentConfig;
|
|
108
108
|
export {};
|
|
109
|
-
//# sourceMappingURL=policy.d.ts.map
|
package/dist/policy/policy.js
CHANGED
package/dist/policy/proxy.d.ts
CHANGED
package/dist/policy/proxy.js
CHANGED
package/dist/pricing.d.ts
CHANGED
package/dist/pricing.js
CHANGED
package/dist/providers.d.ts
CHANGED
|
@@ -34,4 +34,3 @@ export declare function pickAvailableProvider(env?: NodeJS.ProcessEnv, disabled?
|
|
|
34
34
|
* Pretty-print a model identifier for display (e.g. "anthropic/claude-sonnet-4-5").
|
|
35
35
|
*/
|
|
36
36
|
export declare function formatModelId(config: ModelConfig): string;
|
|
37
|
-
//# sourceMappingURL=providers.d.ts.map
|
package/dist/providers.js
CHANGED
package/dist/repomap/index.d.ts
CHANGED
|
@@ -2,4 +2,3 @@ export { DEFAULT_MAP_TOKENS, buildEdges, buildRepoMap, estimateTokens, identifie
|
|
|
2
2
|
export type { RepoMap, RepoMapOptions } from './repo-map.js';
|
|
3
3
|
export { isExported, isTestFile, nameWeight } from './repo-map.js';
|
|
4
4
|
export type { DefinitionFilter } from './repo-map.js';
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/repomap/index.js
CHANGED
|
@@ -41,4 +41,3 @@ export declare function isExported(file: string, sym: CodeSymbol, line: string):
|
|
|
41
41
|
export declare function buildRepoMap(cwd: string, options?: RepoMapOptions): Promise<RepoMap>;
|
|
42
42
|
/** The block added to the system prompt. */
|
|
43
43
|
export declare function repoMapBlock(map: RepoMap): string;
|
|
44
|
-
//# sourceMappingURL=repo-map.d.ts.map
|
package/dist/repomap/repo-map.js
CHANGED
package/dist/semantic/chunker.js
CHANGED
|
@@ -32,4 +32,3 @@ export declare function openAiCompatibleEmbedder(options: OpenAiCompatibleEmbedd
|
|
|
32
32
|
* chosen provider lacks what it needs (e.g. no OPENAI_API_KEY).
|
|
33
33
|
*/
|
|
34
34
|
export declare function embedderFromEnv(env?: NodeJS.ProcessEnv): Embedder;
|
|
35
|
-
//# sourceMappingURL=embedder.d.ts.map
|
|
@@ -10,4 +10,3 @@ export interface SemanticHit {
|
|
|
10
10
|
/** Bring `.forge/index/embeddings.json` up to date: re-embed only changed files, drop deleted ones. */
|
|
11
11
|
export declare function ensureSemanticFresh(cwd: string, embedder: Embedder): Promise<SemanticManifest>;
|
|
12
12
|
export declare function searchSemantic(cwd: string, embedder: Embedder, query: string, k?: number): Promise<SemanticHit[]>;
|
|
13
|
-
//# sourceMappingURL=semantic-index.d.ts.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFile, readdir, stat } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { redact } from '../tools/redact.js';
|
|
4
|
+
import { IgnoreRules } from '../tools/ignore-rules.js';
|
|
4
5
|
import { DEFAULT_IGNORED_DIRS } from '../tools/shared.js';
|
|
5
6
|
import { chunkSource } from './chunker.js';
|
|
6
7
|
import { cosine } from './embedder.js';
|
|
@@ -10,6 +11,7 @@ const MAX_FILE_BYTES = 512 * 1024;
|
|
|
10
11
|
const SNIPPET_LINES = 40;
|
|
11
12
|
async function collect(cwd) {
|
|
12
13
|
const out = [];
|
|
14
|
+
const rules = IgnoreRules.forRoot(cwd);
|
|
13
15
|
async function walk(dir) {
|
|
14
16
|
let entries;
|
|
15
17
|
try {
|
|
@@ -22,6 +24,8 @@ async function collect(cwd) {
|
|
|
22
24
|
if (entry.name.startsWith('.') || DEFAULT_IGNORED_DIRS.has(entry.name))
|
|
23
25
|
continue;
|
|
24
26
|
const abs = path.join(dir, entry.name);
|
|
27
|
+
if (rules.isIgnored(abs, entry.isDirectory()))
|
|
28
|
+
continue;
|
|
25
29
|
if (entry.isDirectory()) {
|
|
26
30
|
await walk(abs);
|
|
27
31
|
}
|
|
@@ -89,4 +93,3 @@ export async function searchSemantic(cwd, embedder, query, k = 8) {
|
|
|
89
93
|
}
|
|
90
94
|
return hits;
|
|
91
95
|
}
|
|
92
|
-
//# sourceMappingURL=semantic-index.js.map
|
|
@@ -17,4 +17,3 @@ export declare function encodeVector(v: number[]): string;
|
|
|
17
17
|
export declare function decodeVector(s: string): number[];
|
|
18
18
|
export declare function loadSemanticManifest(cwd: string, embedderId: string): Promise<SemanticManifest>;
|
|
19
19
|
export declare function saveSemanticManifest(cwd: string, manifest: SemanticManifest): Promise<void>;
|
|
20
|
-
//# sourceMappingURL=vector-store.d.ts.map
|
package/dist/sessions/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { defaultSessionDir, generateSessionId, saveSession, loadSession, deleteSession, listSessions, findLatestSession, } from './session-store.js';
|
|
2
2
|
export type { Session, ListEntry } from './session-store.js';
|
|
3
|
+
export { pruneByRetention, pruneSessions, type SessionPruneOptions, type SessionPruneResult } from './prune.js';
|
|
3
4
|
export { formatSessionMarkdown, formatSessionJson, type FormatOptions } from './session-export.js';
|
|
4
5
|
export { appendedSince, summarizeMessage, watchSession } from './watch.js';
|
|
5
6
|
export type { SessionUpdate, WatchSessionOptions } from './watch.js';
|
|
6
|
-
|
|
7
|
+
export { searchSessions, sessionText, type SessionMatch, type SearchSessionsOptions } from './search.js';
|
package/dist/sessions/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { defaultSessionDir, generateSessionId, saveSession, loadSession, deleteSession, listSessions, findLatestSession, } from './session-store.js';
|
|
2
|
+
export { pruneByRetention, pruneSessions } from './prune.js';
|
|
2
3
|
export { formatSessionMarkdown, formatSessionJson } from './session-export.js';
|
|
3
4
|
export { appendedSince, summarizeMessage, watchSession } from './watch.js';
|
|
4
|
-
|
|
5
|
+
export { searchSessions, sessionText } from './search.js';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface SessionPruneOptions {
|
|
2
|
+
/** Delete sessions last updated more than this many days ago. */
|
|
3
|
+
olderThanDays: number;
|
|
4
|
+
/** Session ids never to delete, such as the one that is open right now. */
|
|
5
|
+
keepIds?: readonly string[];
|
|
6
|
+
/** Report what would be deleted without deleting it. */
|
|
7
|
+
dryRun?: boolean;
|
|
8
|
+
/** The clock; tests pass a fixed date. */
|
|
9
|
+
now?: Date;
|
|
10
|
+
}
|
|
11
|
+
export interface SessionPruneResult {
|
|
12
|
+
/** Ids deleted (or, in a dry run, that would be). */
|
|
13
|
+
deleted: string[];
|
|
14
|
+
/** Sessions left in place. */
|
|
15
|
+
kept: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Prune by the `sessionRetentionDays` setting. Returns undefined, touching nothing, unless it is a
|
|
19
|
+
* positive number: unset means "keep everything".
|
|
20
|
+
*/
|
|
21
|
+
export declare function pruneByRetention(dir: string, retentionDays: number | undefined, opts?: Pick<SessionPruneOptions, 'keepIds' | 'now'>): Promise<SessionPruneResult | undefined>;
|
|
22
|
+
/** Delete saved sessions that have not been touched for `olderThanDays` days. Files that are not valid sessions are never touched. */
|
|
23
|
+
export declare function pruneSessions(dir: string, opts: SessionPruneOptions): Promise<SessionPruneResult>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { deleteSession, listSessions } from './session-store.js';
|
|
3
|
+
/**
|
|
4
|
+
* Prune by the `sessionRetentionDays` setting. Returns undefined, touching nothing, unless it is a
|
|
5
|
+
* positive number: unset means "keep everything".
|
|
6
|
+
*/
|
|
7
|
+
export async function pruneByRetention(dir, retentionDays, opts = {}) {
|
|
8
|
+
if (retentionDays === undefined || !Number.isFinite(retentionDays) || retentionDays <= 0)
|
|
9
|
+
return undefined;
|
|
10
|
+
return pruneSessions(dir, { ...opts, olderThanDays: retentionDays });
|
|
11
|
+
}
|
|
12
|
+
/** Delete saved sessions that have not been touched for `olderThanDays` days. Files that are not valid sessions are never touched. */
|
|
13
|
+
export async function pruneSessions(dir, opts) {
|
|
14
|
+
if (!Number.isFinite(opts.olderThanDays) || opts.olderThanDays <= 0) {
|
|
15
|
+
throw new Error(`pruneSessions: olderThanDays must be a positive number, got ${opts.olderThanDays}`);
|
|
16
|
+
}
|
|
17
|
+
if (!existsSync(dir))
|
|
18
|
+
return { deleted: [], kept: 0 };
|
|
19
|
+
const cutoff = (opts.now ?? new Date()).getTime() - opts.olderThanDays * 86_400_000;
|
|
20
|
+
const keep = new Set(opts.keepIds ?? []);
|
|
21
|
+
const deleted = [];
|
|
22
|
+
let kept = 0;
|
|
23
|
+
for (const entry of await listSessions(dir)) {
|
|
24
|
+
const updated = Date.parse(entry.updatedAt);
|
|
25
|
+
const stale = Number.isFinite(updated) && updated < cutoff;
|
|
26
|
+
if (!stale || keep.has(entry.id)) {
|
|
27
|
+
kept++;
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (!opts.dryRun)
|
|
31
|
+
await deleteSession(entry.id, dir);
|
|
32
|
+
deleted.push(entry.id);
|
|
33
|
+
}
|
|
34
|
+
return { deleted, kept };
|
|
35
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Full-text search over saved sessions: the label and the text of every user and
|
|
3
|
+
* assistant message (tool calls, tool results and attachment bytes are skipped).
|
|
4
|
+
* Every word of the query must appear; results rank by how often they do, then by recency.
|
|
5
|
+
*/
|
|
6
|
+
import { type ListEntry } from './session-store.js';
|
|
7
|
+
export interface SessionMatch {
|
|
8
|
+
entry: ListEntry;
|
|
9
|
+
/** About 120 characters around the first hit, on one line. */
|
|
10
|
+
snippet: string;
|
|
11
|
+
/** How many times the query words occur in the session. */
|
|
12
|
+
hits: number;
|
|
13
|
+
}
|
|
14
|
+
export interface SearchSessionsOptions {
|
|
15
|
+
limit?: number;
|
|
16
|
+
/** Only sessions started in this directory. */
|
|
17
|
+
cwd?: string;
|
|
18
|
+
}
|
|
19
|
+
/** The searchable text of a message list: user and assistant text parts. */
|
|
20
|
+
export declare function sessionText(messages: readonly unknown[]): string;
|
|
21
|
+
export declare function snippetAround(text: string, at: number, width?: number): string;
|
|
22
|
+
export declare function searchSessions(dir: string, query: string, options?: SearchSessionsOptions): Promise<SessionMatch[]>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Full-text search over saved sessions: the label and the text of every user and
|
|
3
|
+
* assistant message (tool calls, tool results and attachment bytes are skipped).
|
|
4
|
+
* Every word of the query must appear; results rank by how often they do, then by recency.
|
|
5
|
+
*/
|
|
6
|
+
import { listSessions, loadSession } from './session-store.js';
|
|
7
|
+
/** The searchable text of a message list: user and assistant text parts. */
|
|
8
|
+
export function sessionText(messages) {
|
|
9
|
+
const out = [];
|
|
10
|
+
for (const m of messages) {
|
|
11
|
+
if (!m || typeof m !== 'object')
|
|
12
|
+
continue;
|
|
13
|
+
const { role, content } = m;
|
|
14
|
+
if (role !== 'user' && role !== 'assistant')
|
|
15
|
+
continue;
|
|
16
|
+
if (typeof content === 'string')
|
|
17
|
+
out.push(content);
|
|
18
|
+
else if (Array.isArray(content)) {
|
|
19
|
+
for (const p of content) {
|
|
20
|
+
if (p && typeof p === 'object' && p.type === 'text') {
|
|
21
|
+
const text = p.text;
|
|
22
|
+
if (typeof text === 'string')
|
|
23
|
+
out.push(text);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return out.join('\n');
|
|
29
|
+
}
|
|
30
|
+
function countOf(haystack, needle) {
|
|
31
|
+
let n = 0;
|
|
32
|
+
for (let i = haystack.indexOf(needle); i !== -1; i = haystack.indexOf(needle, i + needle.length))
|
|
33
|
+
n++;
|
|
34
|
+
return n;
|
|
35
|
+
}
|
|
36
|
+
export function snippetAround(text, at, width = 120) {
|
|
37
|
+
const start = Math.max(0, at - Math.floor(width / 3));
|
|
38
|
+
const raw = text.slice(start, start + width).replace(/\s+/g, ' ').trim();
|
|
39
|
+
return `${start > 0 ? '…' : ''}${raw}${start + width < text.length ? '…' : ''}`;
|
|
40
|
+
}
|
|
41
|
+
export async function searchSessions(dir, query, options = {}) {
|
|
42
|
+
const words = query.toLowerCase().split(/\s+/).filter((w) => w.length > 0);
|
|
43
|
+
if (words.length === 0)
|
|
44
|
+
return [];
|
|
45
|
+
const matches = [];
|
|
46
|
+
for (const entry of await listSessions(dir)) {
|
|
47
|
+
if (options.cwd && entry.cwd !== options.cwd)
|
|
48
|
+
continue;
|
|
49
|
+
let text;
|
|
50
|
+
try {
|
|
51
|
+
const session = await loadSession(entry.id, dir);
|
|
52
|
+
text = `${entry.label ?? ''}\n${sessionText(session.messages)}`;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const lower = text.toLowerCase();
|
|
58
|
+
if (!words.every((w) => lower.includes(w)))
|
|
59
|
+
continue;
|
|
60
|
+
const hits = words.reduce((n, w) => n + countOf(lower, w), 0);
|
|
61
|
+
matches.push({ entry, snippet: snippetAround(text, lower.indexOf(words[0])), hits });
|
|
62
|
+
}
|
|
63
|
+
// listSessions is newest first and sort is stable, so equal hit counts stay by recency.
|
|
64
|
+
matches.sort((a, b) => b.hits - a.hits);
|
|
65
|
+
return matches.slice(0, options.limit ?? 20);
|
|
66
|
+
}
|
|
@@ -62,4 +62,3 @@ export declare function deleteSession(id: string, dir: string): Promise<void>;
|
|
|
62
62
|
export declare function listSessions(dir: string): Promise<ListEntry[]>;
|
|
63
63
|
/** Most-recent session, or null if there are none. */
|
|
64
64
|
export declare function findLatestSession(dir: string): Promise<ListEntry | null>;
|
|
65
|
-
//# sourceMappingURL=session-store.d.ts.map
|
package/dist/sessions/watch.d.ts
CHANGED
|
@@ -26,4 +26,3 @@ export declare function watchSession(id: string, dir: string, onUpdate: (update:
|
|
|
26
26
|
export declare function appendedSince(prev: ModelMessage[], next: ModelMessage[]): ModelMessage[] | null;
|
|
27
27
|
/** One short line per message part, for live tails. */
|
|
28
28
|
export declare function summarizeMessage(message: ModelMessage, maxChars?: number): string[];
|
|
29
|
-
//# sourceMappingURL=watch.d.ts.map
|
package/dist/sessions/watch.js
CHANGED
package/dist/settings-export.js
CHANGED
package/dist/skills/activator.js
CHANGED
package/dist/skills/index.d.ts
CHANGED
|
@@ -13,4 +13,3 @@ export { fetchSkillsCatalog, installSkillFromCatalog, searchSkills, } from './ma
|
|
|
13
13
|
export type { CatalogFetcher } from './marketplace.js';
|
|
14
14
|
export type { SkillCatalog, SkillCatalogEntry, SkillSearchResult, } from './marketplace-types.js';
|
|
15
15
|
export { DEFAULT_SKILL_CATALOG_URL, SKILL_CATALOG_VERSION } from './marketplace-types.js';
|
|
16
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/skills/index.js
CHANGED
|
@@ -11,4 +11,3 @@ export { buildSkillsBlock, composeSkillsPrompt, scoreSkill, selectSkills, } from
|
|
|
11
11
|
// Skills marketplace
|
|
12
12
|
export { fetchSkillsCatalog, installSkillFromCatalog, searchSkills, } from './marketplace.js';
|
|
13
13
|
export { DEFAULT_SKILL_CATALOG_URL, SKILL_CATALOG_VERSION } from './marketplace-types.js';
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
package/dist/skills/loader.d.ts
CHANGED
|
@@ -48,4 +48,3 @@ export declare function loadSkillsRegistry(cwd: string): SkillRegistry;
|
|
|
48
48
|
* Useful for callers that want a fully-populated registry in one step.
|
|
49
49
|
*/
|
|
50
50
|
export declare function loadSkillsRegistryAsync(cwd: string): Promise<SkillRegistry>;
|
|
51
|
-
//# sourceMappingURL=loader.d.ts.map
|
package/dist/skills/loader.js
CHANGED
|
@@ -13,4 +13,3 @@
|
|
|
13
13
|
export const SKILL_CATALOG_VERSION = 1;
|
|
14
14
|
/** Default catalog URL: fetched via {@link fetchSkillsCatalog} when none is supplied. */
|
|
15
15
|
export const DEFAULT_SKILL_CATALOG_URL = 'https://raw.githubusercontent.com/ikarmicai/forge-skills/main/skills-catalog.json';
|
|
16
|
-
//# sourceMappingURL=marketplace-types.js.map
|
package/dist/skills/parser.d.ts
CHANGED
package/dist/skills/parser.js
CHANGED
package/dist/skills/types.d.ts
CHANGED
package/dist/skills/types.js
CHANGED
package/dist/specs/generate.d.ts
CHANGED
package/dist/specs/generate.js
CHANGED
package/dist/specs/index.d.ts
CHANGED
|
@@ -10,4 +10,5 @@ export type { SpecDraft, SpecRunRecord, SpecRuns, SpecSections, SpecSummary } fr
|
|
|
10
10
|
export { SPEC_READONLY_TOOLS, splitSpecSections } from './generate.js';
|
|
11
11
|
export { convertToCheckboxes, parseTasks, setTaskDone } from './tasks-parser.js';
|
|
12
12
|
export type { SpecTask } from './tasks-parser.js';
|
|
13
|
-
|
|
13
|
+
export { changedSince, changeSize, keepDoneTasks, referencedPaths, specDrift, syncSpecTask } from './sync.js';
|
|
14
|
+
export type { SpecDrift } from './sync.js';
|
package/dist/specs/index.js
CHANGED
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
export { SpecStore, isSafeSpecId, runKey, slugifyTaskForSpecId } from './store.js';
|
|
9
9
|
export { SPEC_READONLY_TOOLS, splitSpecSections } from './generate.js';
|
|
10
10
|
export { convertToCheckboxes, parseTasks, setTaskDone } from './tasks-parser.js';
|
|
11
|
-
|
|
11
|
+
export { changedSince, changeSize, keepDoneTasks, referencedPaths, specDrift, syncSpecTask } from './sync.js';
|