agent-bober 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +11 -0
- package/README.md +245 -6
- package/agents/bober-art-director.md +100 -0
- package/agents/bober-design-critic.md +114 -0
- package/agents/bober-frontend-builder.md +101 -0
- package/agents/bober-security-auditor.md +193 -0
- package/agents/bober-security-verifier.md +104 -0
- package/agents/bober-seo-strategist.md +144 -0
- package/agents/bober-seo-verifier.md +103 -0
- package/dist/calendar/calendar-egress.d.ts +26 -0
- package/dist/calendar/calendar-egress.d.ts.map +1 -0
- package/dist/calendar/calendar-egress.js +35 -0
- package/dist/calendar/calendar-egress.js.map +1 -0
- package/dist/calendar/calendar-token.d.ts +34 -0
- package/dist/calendar/calendar-token.d.ts.map +1 -0
- package/dist/calendar/calendar-token.js +56 -0
- package/dist/calendar/calendar-token.js.map +1 -0
- package/dist/calendar/connector.d.ts +22 -0
- package/dist/calendar/connector.d.ts.map +1 -0
- package/dist/calendar/connector.js +3 -0
- package/dist/calendar/connector.js.map +1 -0
- package/dist/calendar/finding-source.d.ts +20 -0
- package/dist/calendar/finding-source.d.ts.map +1 -0
- package/dist/calendar/finding-source.js +35 -0
- package/dist/calendar/finding-source.js.map +1 -0
- package/dist/calendar/google-connector.d.ts +65 -0
- package/dist/calendar/google-connector.d.ts.map +1 -0
- package/dist/calendar/google-connector.js +129 -0
- package/dist/calendar/google-connector.js.map +1 -0
- package/dist/calendar/ics-connector.d.ts +12 -0
- package/dist/calendar/ics-connector.d.ts.map +1 -0
- package/dist/calendar/ics-connector.js +48 -0
- package/dist/calendar/ics-connector.js.map +1 -0
- package/dist/calendar/proposal-gate.d.ts +84 -0
- package/dist/calendar/proposal-gate.d.ts.map +1 -0
- package/dist/calendar/proposal-gate.js +126 -0
- package/dist/calendar/proposal-gate.js.map +1 -0
- package/dist/calendar/slotter.d.ts +34 -0
- package/dist/calendar/slotter.d.ts.map +1 -0
- package/dist/calendar/slotter.js +196 -0
- package/dist/calendar/slotter.js.map +1 -0
- package/dist/calendar/types.d.ts +162 -0
- package/dist/calendar/types.d.ts.map +1 -0
- package/dist/calendar/types.js +28 -0
- package/dist/calendar/types.js.map +1 -0
- package/dist/chat/chat-session.d.ts +27 -0
- package/dist/chat/chat-session.d.ts.map +1 -1
- package/dist/chat/chat-session.js +101 -1
- package/dist/chat/chat-session.js.map +1 -1
- package/dist/chat/slash-commands.d.ts +6 -2
- package/dist/chat/slash-commands.d.ts.map +1 -1
- package/dist/chat/slash-commands.js +22 -2
- package/dist/chat/slash-commands.js.map +1 -1
- package/dist/chat/turn-classifier.d.ts +3 -0
- package/dist/chat/turn-classifier.d.ts.map +1 -1
- package/dist/chat/turn-classifier.js +7 -0
- package/dist/chat/turn-classifier.js.map +1 -1
- package/dist/cli/commands/calendar.d.ts +75 -0
- package/dist/cli/commands/calendar.d.ts.map +1 -0
- package/dist/cli/commands/calendar.js +203 -0
- package/dist/cli/commands/calendar.js.map +1 -0
- package/dist/cli/commands/do.d.ts +52 -0
- package/dist/cli/commands/do.d.ts.map +1 -0
- package/dist/cli/commands/do.js +216 -0
- package/dist/cli/commands/do.js.map +1 -0
- package/dist/cli/commands/hub.d.ts +29 -0
- package/dist/cli/commands/hub.d.ts.map +1 -0
- package/dist/cli/commands/hub.js +233 -0
- package/dist/cli/commands/hub.js.map +1 -0
- package/dist/cli/commands/medical.d.ts +25 -0
- package/dist/cli/commands/medical.d.ts.map +1 -1
- package/dist/cli/commands/medical.js +233 -0
- package/dist/cli/commands/medical.js.map +1 -1
- package/dist/cli/commands/research.d.ts +41 -0
- package/dist/cli/commands/research.d.ts.map +1 -0
- package/dist/cli/commands/research.js +313 -0
- package/dist/cli/commands/research.js.map +1 -0
- package/dist/cli/commands/security-audit.d.ts +89 -0
- package/dist/cli/commands/security-audit.d.ts.map +1 -0
- package/dist/cli/commands/security-audit.js +238 -0
- package/dist/cli/commands/security-audit.js.map +1 -0
- package/dist/cli/commands/task.d.ts +64 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +422 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/telegram.d.ts +10 -0
- package/dist/cli/commands/telegram.d.ts.map +1 -0
- package/dist/cli/commands/telegram.js +44 -0
- package/dist/cli/commands/telegram.js.map +1 -0
- package/dist/cli/commands/vault.d.ts +40 -0
- package/dist/cli/commands/vault.d.ts.map +1 -0
- package/dist/cli/commands/vault.js +122 -0
- package/dist/cli/commands/vault.js.map +1 -0
- package/dist/cli/index.js +33 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/role-providers.d.ts +15 -0
- package/dist/config/role-providers.d.ts.map +1 -1
- package/dist/config/role-providers.js +8 -1
- package/dist/config/role-providers.js.map +1 -1
- package/dist/config/schema.d.ts +3522 -171
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +405 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/do-bridge/coding-promoter.d.ts +19 -0
- package/dist/do-bridge/coding-promoter.d.ts.map +1 -0
- package/dist/do-bridge/coding-promoter.js +43 -0
- package/dist/do-bridge/coding-promoter.js.map +1 -0
- package/dist/do-bridge/finding-port.d.ts +88 -0
- package/dist/do-bridge/finding-port.d.ts.map +1 -0
- package/dist/do-bridge/finding-port.js +95 -0
- package/dist/do-bridge/finding-port.js.map +1 -0
- package/dist/do-bridge/launcher.d.ts +55 -0
- package/dist/do-bridge/launcher.d.ts.map +1 -0
- package/dist/do-bridge/launcher.js +37 -0
- package/dist/do-bridge/launcher.js.map +1 -0
- package/dist/do-bridge/promote.d.ts +50 -0
- package/dist/do-bridge/promote.d.ts.map +1 -0
- package/dist/do-bridge/promote.js +116 -0
- package/dist/do-bridge/promote.js.map +1 -0
- package/dist/do-bridge/reconcile.d.ts +50 -0
- package/dist/do-bridge/reconcile.d.ts.map +1 -0
- package/dist/do-bridge/reconcile.js +70 -0
- package/dist/do-bridge/reconcile.js.map +1 -0
- package/dist/do-bridge/registry.d.ts +23 -0
- package/dist/do-bridge/registry.d.ts.map +1 -0
- package/dist/do-bridge/registry.js +42 -0
- package/dist/do-bridge/registry.js.map +1 -0
- package/dist/do-bridge/types.d.ts +50 -0
- package/dist/do-bridge/types.d.ts.map +1 -0
- package/dist/do-bridge/types.js +17 -0
- package/dist/do-bridge/types.js.map +1 -0
- package/dist/fleet/child-config.d.ts.map +1 -1
- package/dist/fleet/child-config.js +7 -0
- package/dist/fleet/child-config.js.map +1 -1
- package/dist/fleet/coordinator.d.ts +27 -1
- package/dist/fleet/coordinator.d.ts.map +1 -1
- package/dist/fleet/coordinator.js +70 -0
- package/dist/fleet/coordinator.js.map +1 -1
- package/dist/fleet/critic-deep.d.ts +9 -1
- package/dist/fleet/critic-deep.d.ts.map +1 -1
- package/dist/fleet/critic-deep.js +5 -2
- package/dist/fleet/critic-deep.js.map +1 -1
- package/dist/fleet/decomposer-deep.d.ts +4 -11
- package/dist/fleet/decomposer-deep.d.ts.map +1 -1
- package/dist/fleet/decomposer-deep.js +5 -5
- package/dist/fleet/decomposer-deep.js.map +1 -1
- package/dist/fleet/index.d.ts +9 -0
- package/dist/fleet/index.d.ts.map +1 -1
- package/dist/fleet/index.js +87 -8
- package/dist/fleet/index.js.map +1 -1
- package/dist/fleet/manifest.d.ts +26 -0
- package/dist/fleet/manifest.d.ts.map +1 -1
- package/dist/fleet/manifest.js +8 -0
- package/dist/fleet/manifest.js.map +1 -1
- package/dist/fleet/reporter.d.ts +4 -1
- package/dist/fleet/reporter.d.ts.map +1 -1
- package/dist/fleet/reporter.js +2 -1
- package/dist/fleet/reporter.js.map +1 -1
- package/dist/fleet/scaffolder.d.ts +5 -1
- package/dist/fleet/scaffolder.d.ts.map +1 -1
- package/dist/fleet/scaffolder.js +11 -2
- package/dist/fleet/scaffolder.js.map +1 -1
- package/dist/graph/client.d.ts.map +1 -1
- package/dist/graph/client.js +115 -23
- package/dist/graph/client.js.map +1 -1
- package/dist/graph/mcp-client.d.ts +1 -0
- package/dist/graph/mcp-client.d.ts.map +1 -1
- package/dist/graph/mcp-client.js +58 -7
- package/dist/graph/mcp-client.js.map +1 -1
- package/dist/hub/collector.d.ts +12 -0
- package/dist/hub/collector.d.ts.map +1 -0
- package/dist/hub/collector.js +36 -0
- package/dist/hub/collector.js.map +1 -0
- package/dist/hub/finding-source.d.ts +22 -0
- package/dist/hub/finding-source.d.ts.map +1 -0
- package/dist/hub/finding-source.js +41 -0
- package/dist/hub/finding-source.js.map +1 -0
- package/dist/hub/finding-store.d.ts +68 -0
- package/dist/hub/finding-store.d.ts.map +1 -0
- package/dist/hub/finding-store.js +122 -0
- package/dist/hub/finding-store.js.map +1 -0
- package/dist/hub/finding.d.ts +54 -0
- package/dist/hub/finding.d.ts.map +1 -0
- package/dist/hub/finding.js +24 -0
- package/dist/hub/finding.js.map +1 -0
- package/dist/hub/gmail-to-task.d.ts +69 -0
- package/dist/hub/gmail-to-task.d.ts.map +1 -0
- package/dist/hub/gmail-to-task.js +102 -0
- package/dist/hub/gmail-to-task.js.map +1 -0
- package/dist/hub/hub-config.d.ts +18 -0
- package/dist/hub/hub-config.d.ts.map +1 -0
- package/dist/hub/hub-config.js +40 -0
- package/dist/hub/hub-config.js.map +1 -0
- package/dist/hub/judge.d.ts +30 -0
- package/dist/hub/judge.d.ts.map +1 -0
- package/dist/hub/judge.js +177 -0
- package/dist/hub/judge.js.map +1 -0
- package/dist/hub/lenses.d.ts +60 -0
- package/dist/hub/lenses.d.ts.map +1 -0
- package/dist/hub/lenses.js +123 -0
- package/dist/hub/lenses.js.map +1 -0
- package/dist/hub/priority-md.d.ts +21 -0
- package/dist/hub/priority-md.d.ts.map +1 -0
- package/dist/hub/priority-md.js +64 -0
- package/dist/hub/priority-md.js.map +1 -0
- package/dist/hub/repo-resolver.d.ts +11 -0
- package/dist/hub/repo-resolver.d.ts.map +1 -0
- package/dist/hub/repo-resolver.js +39 -0
- package/dist/hub/repo-resolver.js.map +1 -0
- package/dist/hub/scope.d.ts +39 -0
- package/dist/hub/scope.d.ts.map +1 -0
- package/dist/hub/scope.js +62 -0
- package/dist/hub/scope.js.map +1 -0
- package/dist/hub/task-inbox.d.ts +16 -0
- package/dist/hub/task-inbox.d.ts.map +1 -0
- package/dist/hub/task-inbox.js +39 -0
- package/dist/hub/task-inbox.js.map +1 -0
- package/dist/incident/resolution-verify.d.ts +2 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/medical/adapters/apple-health.js +1 -1
- package/dist/medical/adapters/apple-health.js.map +1 -1
- package/dist/medical/analysis/cadence.d.ts +32 -0
- package/dist/medical/analysis/cadence.d.ts.map +1 -0
- package/dist/medical/analysis/cadence.js +72 -0
- package/dist/medical/analysis/cadence.js.map +1 -0
- package/dist/medical/analysis/cross-marker.d.ts +33 -0
- package/dist/medical/analysis/cross-marker.d.ts.map +1 -0
- package/dist/medical/analysis/cross-marker.js +79 -0
- package/dist/medical/analysis/cross-marker.js.map +1 -0
- package/dist/medical/analysis/finding-writer.d.ts +26 -0
- package/dist/medical/analysis/finding-writer.d.ts.map +1 -0
- package/dist/medical/analysis/finding-writer.js +60 -0
- package/dist/medical/analysis/finding-writer.js.map +1 -0
- package/dist/medical/analysis/finding.d.ts +63 -0
- package/dist/medical/analysis/finding.d.ts.map +1 -0
- package/dist/medical/analysis/finding.js +70 -0
- package/dist/medical/analysis/finding.js.map +1 -0
- package/dist/medical/analysis/review-pass.d.ts +76 -0
- package/dist/medical/analysis/review-pass.d.ts.map +1 -0
- package/dist/medical/analysis/review-pass.js +119 -0
- package/dist/medical/analysis/review-pass.js.map +1 -0
- package/dist/medical/analysis/trends.d.ts +36 -0
- package/dist/medical/analysis/trends.d.ts.map +1 -0
- package/dist/medical/analysis/trends.js +157 -0
- package/dist/medical/analysis/trends.js.map +1 -0
- package/dist/medical/health-store.d.ts +5 -0
- package/dist/medical/health-store.d.ts.map +1 -1
- package/dist/medical/health-store.js +10 -0
- package/dist/medical/health-store.js.map +1 -1
- package/dist/medical/lab-note.d.ts +72 -0
- package/dist/medical/lab-note.d.ts.map +1 -0
- package/dist/medical/lab-note.js +161 -0
- package/dist/medical/lab-note.js.map +1 -0
- package/dist/medical/lab-pdf-parser.d.ts +19 -0
- package/dist/medical/lab-pdf-parser.d.ts.map +1 -0
- package/dist/medical/lab-pdf-parser.js +57 -0
- package/dist/medical/lab-pdf-parser.js.map +1 -0
- package/dist/medical/lab-reindex.d.ts +24 -0
- package/dist/medical/lab-reindex.d.ts.map +1 -0
- package/dist/medical/lab-reindex.js +45 -0
- package/dist/medical/lab-reindex.js.map +1 -0
- package/dist/medical/lab-types.d.ts +75 -0
- package/dist/medical/lab-types.d.ts.map +1 -0
- package/dist/medical/lab-types.js +17 -0
- package/dist/medical/lab-types.js.map +1 -0
- package/dist/medical/profile.d.ts +96 -0
- package/dist/medical/profile.d.ts.map +1 -0
- package/dist/medical/profile.js +273 -0
- package/dist/medical/profile.js.map +1 -0
- package/dist/medical/recommend/context.d.ts +48 -0
- package/dist/medical/recommend/context.d.ts.map +1 -0
- package/dist/medical/recommend/context.js +109 -0
- package/dist/medical/recommend/context.js.map +1 -0
- package/dist/medical/recommend/judge-panel.d.ts +49 -0
- package/dist/medical/recommend/judge-panel.d.ts.map +1 -0
- package/dist/medical/recommend/judge-panel.js +164 -0
- package/dist/medical/recommend/judge-panel.js.map +1 -0
- package/dist/medical/recommend/lenses.d.ts +72 -0
- package/dist/medical/recommend/lenses.d.ts.map +1 -0
- package/dist/medical/recommend/lenses.js +220 -0
- package/dist/medical/recommend/lenses.js.map +1 -0
- package/dist/medical/recommend/recommend.d.ts +86 -0
- package/dist/medical/recommend/recommend.d.ts.map +1 -0
- package/dist/medical/recommend/recommend.js +211 -0
- package/dist/medical/recommend/recommend.js.map +1 -0
- package/dist/medical/recommend/types.d.ts +98 -0
- package/dist/medical/recommend/types.d.ts.map +1 -0
- package/dist/medical/recommend/types.js +20 -0
- package/dist/medical/recommend/types.js.map +1 -0
- package/dist/medical/recommend/urgency.d.ts +26 -0
- package/dist/medical/recommend/urgency.d.ts.map +1 -0
- package/dist/medical/recommend/urgency.js +124 -0
- package/dist/medical/recommend/urgency.js.map +1 -0
- package/dist/medical/research/online-research.d.ts +65 -0
- package/dist/medical/research/online-research.d.ts.map +1 -0
- package/dist/medical/research/online-research.js +101 -0
- package/dist/medical/research/online-research.js.map +1 -0
- package/dist/medical/research/research-note.d.ts +32 -0
- package/dist/medical/research/research-note.d.ts.map +1 -0
- package/dist/medical/research/research-note.js +55 -0
- package/dist/medical/research/research-note.js.map +1 -0
- package/dist/medical/supplements.d.ts +82 -0
- package/dist/medical/supplements.d.ts.map +1 -0
- package/dist/medical/supplements.js +173 -0
- package/dist/medical/supplements.js.map +1 -0
- package/dist/orchestrator/agentic-loop.d.ts +160 -1
- package/dist/orchestrator/agentic-loop.d.ts.map +1 -1
- package/dist/orchestrator/agentic-loop.js +350 -41
- package/dist/orchestrator/agentic-loop.js.map +1 -1
- package/dist/orchestrator/compaction.d.ts +47 -0
- package/dist/orchestrator/compaction.d.ts.map +1 -0
- package/dist/orchestrator/compaction.js +75 -0
- package/dist/orchestrator/compaction.js.map +1 -0
- package/dist/orchestrator/generator-agent.d.ts +19 -0
- package/dist/orchestrator/generator-agent.d.ts.map +1 -1
- package/dist/orchestrator/generator-agent.js +27 -1
- package/dist/orchestrator/generator-agent.js.map +1 -1
- package/dist/orchestrator/loop-events.d.ts +98 -0
- package/dist/orchestrator/loop-events.d.ts.map +1 -0
- package/dist/orchestrator/loop-events.js +2 -0
- package/dist/orchestrator/loop-events.js.map +1 -0
- package/dist/orchestrator/model-resolver.d.ts.map +1 -1
- package/dist/orchestrator/model-resolver.js +10 -6
- package/dist/orchestrator/model-resolver.js.map +1 -1
- package/dist/orchestrator/pipeline.d.ts +10 -1
- package/dist/orchestrator/pipeline.d.ts.map +1 -1
- package/dist/orchestrator/pipeline.js +102 -4
- package/dist/orchestrator/pipeline.js.map +1 -1
- package/dist/orchestrator/security-audit-types.d.ts +53 -0
- package/dist/orchestrator/security-audit-types.d.ts.map +1 -0
- package/dist/orchestrator/security-audit-types.js +10 -0
- package/dist/orchestrator/security-audit-types.js.map +1 -0
- package/dist/orchestrator/security-auditor-agent.d.ts +68 -0
- package/dist/orchestrator/security-auditor-agent.d.ts.map +1 -0
- package/dist/orchestrator/security-auditor-agent.js +482 -0
- package/dist/orchestrator/security-auditor-agent.js.map +1 -0
- package/dist/orchestrator/security-gate.d.ts +73 -0
- package/dist/orchestrator/security-gate.d.ts.map +1 -0
- package/dist/orchestrator/security-gate.js +174 -0
- package/dist/orchestrator/security-gate.js.map +1 -0
- package/dist/orchestrator/security-hub.d.ts +45 -0
- package/dist/orchestrator/security-hub.d.ts.map +1 -0
- package/dist/orchestrator/security-hub.js +147 -0
- package/dist/orchestrator/security-hub.js.map +1 -0
- package/dist/orchestrator/security-knowledge/benchmark/harness.d.ts +43 -0
- package/dist/orchestrator/security-knowledge/benchmark/harness.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/benchmark/harness.js +13 -0
- package/dist/orchestrator/security-knowledge/benchmark/harness.js.map +1 -0
- package/dist/orchestrator/security-knowledge/diff-provider.d.ts +79 -0
- package/dist/orchestrator/security-knowledge/diff-provider.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/diff-provider.js +320 -0
- package/dist/orchestrator/security-knowledge/diff-provider.js.map +1 -0
- package/dist/orchestrator/security-knowledge/index.d.ts +22 -0
- package/dist/orchestrator/security-knowledge/index.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/index.js +66 -0
- package/dist/orchestrator/security-knowledge/index.js.map +1 -0
- package/dist/orchestrator/security-knowledge/parser.d.ts +9 -0
- package/dist/orchestrator/security-knowledge/parser.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/parser.js +137 -0
- package/dist/orchestrator/security-knowledge/parser.js.map +1 -0
- package/dist/orchestrator/security-knowledge/registry.d.ts +25 -0
- package/dist/orchestrator/security-knowledge/registry.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/registry.js +114 -0
- package/dist/orchestrator/security-knowledge/registry.js.map +1 -0
- package/dist/orchestrator/security-knowledge/resolver.d.ts +48 -0
- package/dist/orchestrator/security-knowledge/resolver.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/resolver.js +63 -0
- package/dist/orchestrator/security-knowledge/resolver.js.map +1 -0
- package/dist/orchestrator/security-knowledge/selector.d.ts +18 -0
- package/dist/orchestrator/security-knowledge/selector.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/selector.js +46 -0
- package/dist/orchestrator/security-knowledge/selector.js.map +1 -0
- package/dist/orchestrator/security-knowledge/signature.d.ts +37 -0
- package/dist/orchestrator/security-knowledge/signature.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/signature.js +2 -0
- package/dist/orchestrator/security-knowledge/signature.js.map +1 -0
- package/dist/orchestrator/security-knowledge/supply-chain-inspector.d.ts +29 -0
- package/dist/orchestrator/security-knowledge/supply-chain-inspector.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/supply-chain-inspector.js +211 -0
- package/dist/orchestrator/security-knowledge/supply-chain-inspector.js.map +1 -0
- package/dist/orchestrator/security-scanners.d.ts +126 -0
- package/dist/orchestrator/security-scanners.d.ts.map +1 -0
- package/dist/orchestrator/security-scanners.js +501 -0
- package/dist/orchestrator/security-scanners.js.map +1 -0
- package/dist/orchestrator/security-verifier-agent.d.ts +62 -0
- package/dist/orchestrator/security-verifier-agent.d.ts.map +1 -0
- package/dist/orchestrator/security-verifier-agent.js +230 -0
- package/dist/orchestrator/security-verifier-agent.js.map +1 -0
- package/dist/orchestrator/session-store.d.ts +95 -0
- package/dist/orchestrator/session-store.d.ts.map +1 -0
- package/dist/orchestrator/session-store.js +186 -0
- package/dist/orchestrator/session-store.js.map +1 -0
- package/dist/orchestrator/stack-knowledge.d.ts +17 -0
- package/dist/orchestrator/stack-knowledge.d.ts.map +1 -0
- package/dist/orchestrator/stack-knowledge.js +35 -0
- package/dist/orchestrator/stack-knowledge.js.map +1 -0
- package/dist/orchestrator/subagents.d.ts +62 -0
- package/dist/orchestrator/subagents.d.ts.map +1 -0
- package/dist/orchestrator/subagents.js +143 -0
- package/dist/orchestrator/subagents.js.map +1 -0
- package/dist/orchestrator/tools/executor.d.ts +68 -0
- package/dist/orchestrator/tools/executor.d.ts.map +1 -0
- package/dist/orchestrator/tools/executor.js +104 -0
- package/dist/orchestrator/tools/executor.js.map +1 -0
- package/dist/orchestrator/tools/mcp-bridge.d.ts +76 -0
- package/dist/orchestrator/tools/mcp-bridge.d.ts.map +1 -0
- package/dist/orchestrator/tools/mcp-bridge.js +154 -0
- package/dist/orchestrator/tools/mcp-bridge.js.map +1 -0
- package/dist/orchestrator/tools/schemas.d.ts.map +1 -1
- package/dist/orchestrator/tools/schemas.js +3 -0
- package/dist/orchestrator/tools/schemas.js.map +1 -1
- package/dist/orchestrator/workflow/budget.d.ts +24 -2
- package/dist/orchestrator/workflow/budget.d.ts.map +1 -1
- package/dist/orchestrator/workflow/budget.js +39 -1
- package/dist/orchestrator/workflow/budget.js.map +1 -1
- package/dist/orchestrator/workflow/engine.d.ts +1 -1
- package/dist/orchestrator/workflow/engine.d.ts.map +1 -1
- package/dist/orchestrator/workflow/selector.d.ts.map +1 -1
- package/dist/orchestrator/workflow/selector.js +10 -0
- package/dist/orchestrator/workflow/selector.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +116 -26
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/claude-code.d.ts.map +1 -1
- package/dist/providers/claude-code.js +17 -0
- package/dist/providers/claude-code.js.map +1 -1
- package/dist/providers/cost-meter.d.ts +52 -0
- package/dist/providers/cost-meter.d.ts.map +1 -0
- package/dist/providers/cost-meter.js +81 -0
- package/dist/providers/cost-meter.js.map +1 -0
- package/dist/providers/factory.d.ts +6 -1
- package/dist/providers/factory.d.ts.map +1 -1
- package/dist/providers/factory.js +24 -5
- package/dist/providers/factory.js.map +1 -1
- package/dist/providers/google.d.ts.map +1 -1
- package/dist/providers/google.js +29 -0
- package/dist/providers/google.js.map +1 -1
- package/dist/providers/grounded-search.d.ts +128 -0
- package/dist/providers/grounded-search.d.ts.map +1 -0
- package/dist/providers/grounded-search.js +160 -0
- package/dist/providers/grounded-search.js.map +1 -0
- package/dist/providers/openai-compat.d.ts +15 -1
- package/dist/providers/openai-compat.d.ts.map +1 -1
- package/dist/providers/openai-compat.js +24 -0
- package/dist/providers/openai-compat.js.map +1 -1
- package/dist/providers/openai.d.ts +7 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +95 -4
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +88 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/research/cadence.d.ts +33 -0
- package/dist/research/cadence.d.ts.map +1 -0
- package/dist/research/cadence.js +55 -0
- package/dist/research/cadence.js.map +1 -0
- package/dist/research/digest.d.ts +80 -0
- package/dist/research/digest.d.ts.map +1 -0
- package/dist/research/digest.js +119 -0
- package/dist/research/digest.js.map +1 -0
- package/dist/research/egress.d.ts +28 -0
- package/dist/research/egress.d.ts.map +1 -0
- package/dist/research/egress.js +41 -0
- package/dist/research/egress.js.map +1 -0
- package/dist/research/job-store.d.ts +30 -0
- package/dist/research/job-store.d.ts.map +1 -0
- package/dist/research/job-store.js +100 -0
- package/dist/research/job-store.js.map +1 -0
- package/dist/research/model-diversity.d.ts +27 -0
- package/dist/research/model-diversity.d.ts.map +1 -0
- package/dist/research/model-diversity.js +52 -0
- package/dist/research/model-diversity.js.map +1 -0
- package/dist/research/note-writer.d.ts +36 -0
- package/dist/research/note-writer.d.ts.map +1 -0
- package/dist/research/note-writer.js +53 -0
- package/dist/research/note-writer.js.map +1 -0
- package/dist/research/online-retrieval.d.ts +27 -0
- package/dist/research/online-retrieval.d.ts.map +1 -0
- package/dist/research/online-retrieval.js +22 -0
- package/dist/research/online-retrieval.js.map +1 -0
- package/dist/research/runner.d.ts +80 -0
- package/dist/research/runner.d.ts.map +1 -0
- package/dist/research/runner.js +115 -0
- package/dist/research/runner.js.map +1 -0
- package/dist/research/scheduler.d.ts +61 -0
- package/dist/research/scheduler.d.ts.map +1 -0
- package/dist/research/scheduler.js +58 -0
- package/dist/research/scheduler.js.map +1 -0
- package/dist/research/types.d.ts +81 -0
- package/dist/research/types.d.ts.map +1 -0
- package/dist/research/types.js +57 -0
- package/dist/research/types.js.map +1 -0
- package/dist/seo/adapters/http.d.ts +43 -0
- package/dist/seo/adapters/http.d.ts.map +1 -0
- package/dist/seo/adapters/http.js +35 -0
- package/dist/seo/adapters/http.js.map +1 -0
- package/dist/seo/ai-visibility-provider.d.ts +171 -0
- package/dist/seo/ai-visibility-provider.d.ts.map +1 -0
- package/dist/seo/ai-visibility-provider.js +165 -0
- package/dist/seo/ai-visibility-provider.js.map +1 -0
- package/dist/seo/ai-visibility-scorer.d.ts +43 -0
- package/dist/seo/ai-visibility-scorer.d.ts.map +1 -0
- package/dist/seo/ai-visibility-scorer.js +102 -0
- package/dist/seo/ai-visibility-scorer.js.map +1 -0
- package/dist/seo/analyzer.d.ts +58 -0
- package/dist/seo/analyzer.d.ts.map +1 -0
- package/dist/seo/analyzer.js +265 -0
- package/dist/seo/analyzer.js.map +1 -0
- package/dist/seo/benchmark/harness.d.ts +56 -0
- package/dist/seo/benchmark/harness.d.ts.map +1 -0
- package/dist/seo/benchmark/harness.js +172 -0
- package/dist/seo/benchmark/harness.js.map +1 -0
- package/dist/seo/builder/approved-finding.d.ts +115 -0
- package/dist/seo/builder/approved-finding.d.ts.map +1 -0
- package/dist/seo/builder/approved-finding.js +145 -0
- package/dist/seo/builder/approved-finding.js.map +1 -0
- package/dist/seo/builder/build-runner.d.ts +41 -0
- package/dist/seo/builder/build-runner.d.ts.map +1 -0
- package/dist/seo/builder/build-runner.js +156 -0
- package/dist/seo/builder/build-runner.js.map +1 -0
- package/dist/seo/builder/draft-generators.d.ts +32 -0
- package/dist/seo/builder/draft-generators.d.ts.map +1 -0
- package/dist/seo/builder/draft-generators.js +31 -0
- package/dist/seo/builder/draft-generators.js.map +1 -0
- package/dist/seo/builder/draft-store.d.ts +30 -0
- package/dist/seo/builder/draft-store.d.ts.map +1 -0
- package/dist/seo/builder/draft-store.js +76 -0
- package/dist/seo/builder/draft-store.js.map +1 -0
- package/dist/seo/builder/draft-types.d.ts +36 -0
- package/dist/seo/builder/draft-types.d.ts.map +1 -0
- package/dist/seo/builder/draft-types.js +14 -0
- package/dist/seo/builder/draft-types.js.map +1 -0
- package/dist/seo/builder/hub-approved-source.d.ts +11 -0
- package/dist/seo/builder/hub-approved-source.d.ts.map +1 -0
- package/dist/seo/builder/hub-approved-source.js +48 -0
- package/dist/seo/builder/hub-approved-source.js.map +1 -0
- package/dist/seo/builder/seo-builder.d.ts +72 -0
- package/dist/seo/builder/seo-builder.d.ts.map +1 -0
- package/dist/seo/builder/seo-builder.js +72 -0
- package/dist/seo/builder/seo-builder.js.map +1 -0
- package/dist/seo/citation-gate.d.ts +36 -0
- package/dist/seo/citation-gate.d.ts.map +1 -0
- package/dist/seo/citation-gate.js +59 -0
- package/dist/seo/citation-gate.js.map +1 -0
- package/dist/seo/command.d.ts +11 -0
- package/dist/seo/command.d.ts.map +1 -0
- package/dist/seo/command.js +90 -0
- package/dist/seo/command.js.map +1 -0
- package/dist/seo/content-sanitizer.d.ts +56 -0
- package/dist/seo/content-sanitizer.d.ts.map +1 -0
- package/dist/seo/content-sanitizer.js +55 -0
- package/dist/seo/content-sanitizer.js.map +1 -0
- package/dist/seo/crawl-engine.d.ts +35 -0
- package/dist/seo/crawl-engine.d.ts.map +1 -0
- package/dist/seo/crawl-engine.js +2 -0
- package/dist/seo/crawl-engine.js.map +1 -0
- package/dist/seo/data-source.d.ts +156 -0
- package/dist/seo/data-source.d.ts.map +1 -0
- package/dist/seo/data-source.js +2 -0
- package/dist/seo/data-source.js.map +1 -0
- package/dist/seo/egress.d.ts +39 -0
- package/dist/seo/egress.d.ts.map +1 -0
- package/dist/seo/egress.js +64 -0
- package/dist/seo/egress.js.map +1 -0
- package/dist/seo/hub-emitter.d.ts +28 -0
- package/dist/seo/hub-emitter.d.ts.map +1 -0
- package/dist/seo/hub-emitter.js +95 -0
- package/dist/seo/hub-emitter.js.map +1 -0
- package/dist/seo/index.d.ts +42 -0
- package/dist/seo/index.d.ts.map +1 -0
- package/dist/seo/index.js +19 -0
- package/dist/seo/index.js.map +1 -0
- package/dist/seo/never-encode-filter.d.ts +45 -0
- package/dist/seo/never-encode-filter.d.ts.map +1 -0
- package/dist/seo/never-encode-filter.js +51 -0
- package/dist/seo/never-encode-filter.js.map +1 -0
- package/dist/seo/parser.d.ts +46 -0
- package/dist/seo/parser.d.ts.map +1 -0
- package/dist/seo/parser.js +113 -0
- package/dist/seo/parser.js.map +1 -0
- package/dist/seo/playbook-index.d.ts +19 -0
- package/dist/seo/playbook-index.d.ts.map +1 -0
- package/dist/seo/playbook-index.js +74 -0
- package/dist/seo/playbook-index.js.map +1 -0
- package/dist/seo/quota-governor.d.ts +100 -0
- package/dist/seo/quota-governor.d.ts.map +1 -0
- package/dist/seo/quota-governor.js +199 -0
- package/dist/seo/quota-governor.js.map +1 -0
- package/dist/seo/quota-ledger.d.ts +50 -0
- package/dist/seo/quota-ledger.d.ts.map +1 -0
- package/dist/seo/quota-ledger.js +95 -0
- package/dist/seo/quota-ledger.js.map +1 -0
- package/dist/seo/report-store.d.ts +30 -0
- package/dist/seo/report-store.d.ts.map +1 -0
- package/dist/seo/report-store.js +94 -0
- package/dist/seo/report-store.js.map +1 -0
- package/dist/seo/retriever.d.ts +34 -0
- package/dist/seo/retriever.d.ts.map +1 -0
- package/dist/seo/retriever.js +95 -0
- package/dist/seo/retriever.js.map +1 -0
- package/dist/seo/runner.d.ts +108 -0
- package/dist/seo/runner.d.ts.map +1 -0
- package/dist/seo/runner.js +512 -0
- package/dist/seo/runner.js.map +1 -0
- package/dist/seo/scrape-throttle.d.ts +84 -0
- package/dist/seo/scrape-throttle.d.ts.map +1 -0
- package/dist/seo/scrape-throttle.js +149 -0
- package/dist/seo/scrape-throttle.js.map +1 -0
- package/dist/seo/serp-provider.d.ts +52 -0
- package/dist/seo/serp-provider.d.ts.map +1 -0
- package/dist/seo/serp-provider.js +17 -0
- package/dist/seo/serp-provider.js.map +1 -0
- package/dist/seo/sources/ai-visibility-adapter.d.ts +87 -0
- package/dist/seo/sources/ai-visibility-adapter.d.ts.map +1 -0
- package/dist/seo/sources/ai-visibility-adapter.js +85 -0
- package/dist/seo/sources/ai-visibility-adapter.js.map +1 -0
- package/dist/seo/sources/api-spine-provider.d.ts +66 -0
- package/dist/seo/sources/api-spine-provider.d.ts.map +1 -0
- package/dist/seo/sources/api-spine-provider.js +68 -0
- package/dist/seo/sources/api-spine-provider.js.map +1 -0
- package/dist/seo/sources/citation-verifier.d.ts +95 -0
- package/dist/seo/sources/citation-verifier.d.ts.map +1 -0
- package/dist/seo/sources/citation-verifier.js +106 -0
- package/dist/seo/sources/citation-verifier.js.map +1 -0
- package/dist/seo/sources/crawl-source.d.ts +62 -0
- package/dist/seo/sources/crawl-source.d.ts.map +1 -0
- package/dist/seo/sources/crawl-source.js +87 -0
- package/dist/seo/sources/crawl-source.js.map +1 -0
- package/dist/seo/sources/damcrawler-crawl-engine.d.ts +151 -0
- package/dist/seo/sources/damcrawler-crawl-engine.d.ts.map +1 -0
- package/dist/seo/sources/damcrawler-crawl-engine.js +154 -0
- package/dist/seo/sources/damcrawler-crawl-engine.js.map +1 -0
- package/dist/seo/sources/damcrawler-serp-provider.d.ts +75 -0
- package/dist/seo/sources/damcrawler-serp-provider.d.ts.map +1 -0
- package/dist/seo/sources/damcrawler-serp-provider.js +60 -0
- package/dist/seo/sources/damcrawler-serp-provider.js.map +1 -0
- package/dist/seo/sources/dataforseo-adapter.d.ts +46 -0
- package/dist/seo/sources/dataforseo-adapter.d.ts.map +1 -0
- package/dist/seo/sources/dataforseo-adapter.js +335 -0
- package/dist/seo/sources/dataforseo-adapter.js.map +1 -0
- package/dist/seo/sources/dataforseo-serp-provider.d.ts +30 -0
- package/dist/seo/sources/dataforseo-serp-provider.d.ts.map +1 -0
- package/dist/seo/sources/dataforseo-serp-provider.js +20 -0
- package/dist/seo/sources/dataforseo-serp-provider.js.map +1 -0
- package/dist/seo/sources/engine-scrape-parser-chatgpt.d.ts +62 -0
- package/dist/seo/sources/engine-scrape-parser-chatgpt.d.ts.map +1 -0
- package/dist/seo/sources/engine-scrape-parser-chatgpt.js +72 -0
- package/dist/seo/sources/engine-scrape-parser-chatgpt.js.map +1 -0
- package/dist/seo/sources/engine-scrape-parser-perplexity.d.ts +10 -0
- package/dist/seo/sources/engine-scrape-parser-perplexity.d.ts.map +1 -0
- package/dist/seo/sources/engine-scrape-parser-perplexity.js +72 -0
- package/dist/seo/sources/engine-scrape-parser-perplexity.js.map +1 -0
- package/dist/seo/sources/gsc-adapter.d.ts +64 -0
- package/dist/seo/sources/gsc-adapter.d.ts.map +1 -0
- package/dist/seo/sources/gsc-adapter.js +221 -0
- package/dist/seo/sources/gsc-adapter.js.map +1 -0
- package/dist/seo/sources/local-export.d.ts +53 -0
- package/dist/seo/sources/local-export.d.ts.map +1 -0
- package/dist/seo/sources/local-export.js +307 -0
- package/dist/seo/sources/local-export.js.map +1 -0
- package/dist/seo/sources/mention-citation-extractor.d.ts +136 -0
- package/dist/seo/sources/mention-citation-extractor.d.ts.map +1 -0
- package/dist/seo/sources/mention-citation-extractor.js +272 -0
- package/dist/seo/sources/mention-citation-extractor.js.map +1 -0
- package/dist/seo/sources/scrape-arm-provider.d.ts +109 -0
- package/dist/seo/sources/scrape-arm-provider.d.ts.map +1 -0
- package/dist/seo/sources/scrape-arm-provider.js +129 -0
- package/dist/seo/sources/scrape-arm-provider.js.map +1 -0
- package/dist/seo/tracked-prompt-store.d.ts +33 -0
- package/dist/seo/tracked-prompt-store.d.ts.map +1 -0
- package/dist/seo/tracked-prompt-store.js +68 -0
- package/dist/seo/tracked-prompt-store.js.map +1 -0
- package/dist/seo/types.d.ts +128 -0
- package/dist/seo/types.d.ts.map +1 -0
- package/dist/seo/types.js +14 -0
- package/dist/seo/types.js.map +1 -0
- package/dist/seo/verifier.d.ts +34 -0
- package/dist/seo/verifier.d.ts.map +1 -0
- package/dist/seo/verifier.js +204 -0
- package/dist/seo/verifier.js.map +1 -0
- package/dist/seo/workflow-capabilities.d.ts +26 -0
- package/dist/seo/workflow-capabilities.d.ts.map +1 -0
- package/dist/seo/workflow-capabilities.js +12 -0
- package/dist/seo/workflow-capabilities.js.map +1 -0
- package/dist/state/facts.d.ts +5 -1
- package/dist/state/facts.d.ts.map +1 -1
- package/dist/state/facts.js +29 -19
- package/dist/state/facts.js.map +1 -1
- package/dist/state/index.d.ts +1 -1
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +1 -1
- package/dist/state/index.js.map +1 -1
- package/dist/state/outline-state.d.ts +0 -12
- package/dist/state/outline-state.d.ts.map +1 -1
- package/dist/state/outline-state.js +1 -18
- package/dist/state/outline-state.js.map +1 -1
- package/dist/state/security-audit-state.d.ts +20 -0
- package/dist/state/security-audit-state.d.ts.map +1 -0
- package/dist/state/security-audit-state.js +59 -0
- package/dist/state/security-audit-state.js.map +1 -0
- package/dist/teams/registry.d.ts.map +1 -1
- package/dist/teams/registry.js +17 -0
- package/dist/teams/registry.js.map +1 -1
- package/dist/telegram/bot.d.ts +137 -0
- package/dist/telegram/bot.d.ts.map +1 -0
- package/dist/telegram/bot.js +323 -0
- package/dist/telegram/bot.js.map +1 -0
- package/dist/telegram/digest.d.ts +19 -0
- package/dist/telegram/digest.d.ts.map +1 -0
- package/dist/telegram/digest.js +23 -0
- package/dist/telegram/digest.js.map +1 -0
- package/dist/telegram/fleet-view.d.ts +38 -0
- package/dist/telegram/fleet-view.d.ts.map +1 -0
- package/dist/telegram/fleet-view.js +98 -0
- package/dist/telegram/fleet-view.js.map +1 -0
- package/dist/telegram/handlers/approvals.d.ts +61 -0
- package/dist/telegram/handlers/approvals.d.ts.map +1 -0
- package/dist/telegram/handlers/approvals.js +122 -0
- package/dist/telegram/handlers/approvals.js.map +1 -0
- package/dist/telegram/handlers/capture.d.ts +43 -0
- package/dist/telegram/handlers/capture.d.ts.map +1 -0
- package/dist/telegram/handlers/capture.js +51 -0
- package/dist/telegram/handlers/capture.js.map +1 -0
- package/dist/telegram/handlers/prioritize.d.ts +50 -0
- package/dist/telegram/handlers/prioritize.d.ts.map +1 -0
- package/dist/telegram/handlers/prioritize.js +99 -0
- package/dist/telegram/handlers/prioritize.js.map +1 -0
- package/dist/telegram/handlers/upload.d.ts +105 -0
- package/dist/telegram/handlers/upload.d.ts.map +1 -0
- package/dist/telegram/handlers/upload.js +149 -0
- package/dist/telegram/handlers/upload.js.map +1 -0
- package/dist/telegram/keyboard.d.ts +48 -0
- package/dist/telegram/keyboard.d.ts.map +1 -0
- package/dist/telegram/keyboard.js +81 -0
- package/dist/telegram/keyboard.js.map +1 -0
- package/dist/telegram/outbound.d.ts +77 -0
- package/dist/telegram/outbound.d.ts.map +1 -0
- package/dist/telegram/outbound.js +45 -0
- package/dist/telegram/outbound.js.map +1 -0
- package/dist/telegram/router.d.ts +46 -0
- package/dist/telegram/router.d.ts.map +1 -0
- package/dist/telegram/router.js +63 -0
- package/dist/telegram/router.js.map +1 -0
- package/dist/telegram/streaming.d.ts +36 -0
- package/dist/telegram/streaming.d.ts.map +1 -0
- package/dist/telegram/streaming.js +55 -0
- package/dist/telegram/streaming.js.map +1 -0
- package/dist/telegram/whitelist.d.ts +20 -0
- package/dist/telegram/whitelist.d.ts.map +1 -0
- package/dist/telegram/whitelist.js +34 -0
- package/dist/telegram/whitelist.js.map +1 -0
- package/dist/utils/git.d.ts +0 -6
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +0 -19
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/vault/conventions.d.ts +23 -0
- package/dist/vault/conventions.d.ts.map +1 -0
- package/dist/vault/conventions.js +22 -0
- package/dist/vault/conventions.js.map +1 -0
- package/dist/vault/frontmatter.d.ts +47 -0
- package/dist/vault/frontmatter.d.ts.map +1 -0
- package/dist/vault/frontmatter.js +149 -0
- package/dist/vault/frontmatter.js.map +1 -0
- package/dist/vault/index-map.d.ts +35 -0
- package/dist/vault/index-map.d.ts.map +1 -0
- package/dist/vault/index-map.js +67 -0
- package/dist/vault/index-map.js.map +1 -0
- package/dist/vault/mcp-adapter.d.ts +96 -0
- package/dist/vault/mcp-adapter.d.ts.map +1 -0
- package/dist/vault/mcp-adapter.js +176 -0
- package/dist/vault/mcp-adapter.js.map +1 -0
- package/dist/vault/note-io.d.ts +29 -0
- package/dist/vault/note-io.d.ts.map +1 -0
- package/dist/vault/note-io.js +44 -0
- package/dist/vault/note-io.js.map +1 -0
- package/dist/vault/profile.d.ts +35 -0
- package/dist/vault/profile.d.ts.map +1 -0
- package/dist/vault/profile.js +50 -0
- package/dist/vault/profile.js.map +1 -0
- package/dist/vault/reindex.d.ts +55 -0
- package/dist/vault/reindex.d.ts.map +1 -0
- package/dist/vault/reindex.js +69 -0
- package/dist/vault/reindex.js.map +1 -0
- package/dist/vault/types.d.ts +25 -0
- package/dist/vault/types.d.ts.map +1 -0
- package/dist/vault/types.js +9 -0
- package/dist/vault/types.js.map +1 -0
- package/package.json +20 -4
- package/scripts/sync-targets.json +2 -1
- package/skills/bober.design/SKILL.md +190 -0
- package/skills/bober.design/references/1-anti-slop.md +102 -0
- package/skills/bober.design/references/2-design-brief.md +84 -0
- package/skills/bober.design/references/3-critique-rubric.md +62 -0
- package/skills/bober.design/references/4-copy-guide.md +43 -0
- package/skills/bober.plan/SKILL.md +15 -1
- package/skills/bober.run/SKILL.md +7 -4
- package/skills/bober.security-anchor/SKILL.md +172 -0
- package/skills/bober.security-audit/SKILL.md +288 -0
- package/skills/bober.security-dex-backend/SKILL.md +306 -0
- package/skills/bober.security-generic/SKILL.md +295 -0
- package/skills/bober.security-igaming/SKILL.md +290 -0
- package/skills/bober.security-node/SKILL.md +267 -0
- package/skills/bober.security-payments/SKILL.md +249 -0
- package/skills/bober.security-react/SKILL.md +194 -0
- package/skills/bober.security-solidity/SKILL.md +306 -0
- package/skills/bober.seo/SKILL.md +132 -0
- package/skills/bober.seo-ai-visibility/SKILL.md +110 -0
- package/skills/bober.seo-content-decay/SKILL.md +99 -0
- package/skills/bober.seo-generic/SKILL.md +173 -0
- package/skills/bober.seo-internal-linking/SKILL.md +87 -0
- package/skills/bober.seo-parasite-watch/SKILL.md +121 -0
- package/skills/bober.seo-rank-track/SKILL.md +98 -0
- package/skills/bober.seo-schema-audit/SKILL.md +97 -0
- package/skills/bober.seo-technical-audit/SKILL.md +113 -0
- package/skills/bober.seo-topical-map/SKILL.md +100 -0
- package/skills/bober.seo-verticals/SKILL.md +133 -0
- package/skills/bober.using-bober/SKILL.md +1 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// ── Hub lens catalog ─────────────────────────────────────────────────
|
|
3
|
+
/**
|
|
4
|
+
* Hub prioritization lens focus fragments.
|
|
5
|
+
*
|
|
6
|
+
* Each lens evaluates a Finding through a distinct prioritization axis.
|
|
7
|
+
* These are hub-specific lenses — do NOT reuse the eval-lenses catalog
|
|
8
|
+
* (correctness/security/regression/quality/simplicity), which is pinned
|
|
9
|
+
* by a drift gate at src/orchestrator/lens-panel-parity.test.ts.
|
|
10
|
+
*/
|
|
11
|
+
const HUB_LENS_CATALOG = {
|
|
12
|
+
urgency: "Focus on how time-sensitive this finding is. Evaluate the immediacy of required action: whether delay causes irreversible harm, significant cost increase, or missed opportunity. A finding requiring action within hours scores higher than one that can wait weeks.",
|
|
13
|
+
impact: "Focus on the magnitude of effect this finding has on the person's goals, health, finances, or productivity. Evaluate how many downstream decisions or outcomes depend on resolving this finding. High-impact findings affect multiple domains or have compounding consequences.",
|
|
14
|
+
effort: "Focus on the effort-to-ROI ratio for addressing this finding. Evaluate whether the required action is proportionate to the benefit gained. Low-effort high-benefit findings score highest; high-effort low-benefit findings score lowest. Include complexity, time, and resource cost.",
|
|
15
|
+
"deadline-risk": "Focus on whether this finding is at risk of becoming unactionable due to an approaching deadline, time-sensitive window, or compounding delay penalty. Evaluate explicit due dates, implicit time constraints, and whether missing the window closes off future options.",
|
|
16
|
+
};
|
|
17
|
+
// ── Hub lens names ────────────────────────────────────────────────────
|
|
18
|
+
export const HUB_LENS_NAMES = [
|
|
19
|
+
"urgency",
|
|
20
|
+
"impact",
|
|
21
|
+
"effort",
|
|
22
|
+
"deadline-risk",
|
|
23
|
+
];
|
|
24
|
+
// ── Resolver ──────────────────────────────────────────────────────────
|
|
25
|
+
/**
|
|
26
|
+
* Resolve a hub lens name to its focus fragment.
|
|
27
|
+
* Returns the catalog entry for a known lens, or a generic non-empty
|
|
28
|
+
* fallback for any unknown custom string — never throws.
|
|
29
|
+
*/
|
|
30
|
+
export function resolveHubLensFocus(lens) {
|
|
31
|
+
return (HUB_LENS_CATALOG[lens] ??
|
|
32
|
+
`Evaluate this finding specifically through the '${lens}' lens.`);
|
|
33
|
+
}
|
|
34
|
+
// ── Zod schemas ───────────────────────────────────────────────────────
|
|
35
|
+
/**
|
|
36
|
+
* Schema for pass-1 relevance verdict (general and decision scopes).
|
|
37
|
+
* For decision scope: relevantTo disambiguates which option the finding supports.
|
|
38
|
+
*/
|
|
39
|
+
export const RelevanceVerdictSchema = z.object({
|
|
40
|
+
relevant: z.boolean(),
|
|
41
|
+
relevantTo: z.enum(["optionA", "optionB", "both", "neither"]).optional(),
|
|
42
|
+
reason: z.string().optional(),
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* Schema for pass-2 per-lens score/vote.
|
|
46
|
+
* include=true counts as a pass-vote; include=false counts as fail-vote.
|
|
47
|
+
* score (0-10) contributes to aggregate score for final ordering.
|
|
48
|
+
* An unparseable lens response is treated as { include: false, score: 0 } (fail-closed).
|
|
49
|
+
*/
|
|
50
|
+
export const LensScoreSchema = z.object({
|
|
51
|
+
include: z.boolean(),
|
|
52
|
+
score: z.number().min(0).max(10),
|
|
53
|
+
reason: z.string().optional(),
|
|
54
|
+
});
|
|
55
|
+
// ── Four-tier JSON extraction (NEVER throws) ──────────────────────────
|
|
56
|
+
/**
|
|
57
|
+
* Shared four-tier JSON extraction strategy: direct parse → fenced JSON →
|
|
58
|
+
* first { } block → fail. Mirrors validateLensVerdict (medical/recommend/lenses.ts:65-113).
|
|
59
|
+
* NEVER throws. Returns the parsed unknown on success, null on failure.
|
|
60
|
+
*/
|
|
61
|
+
function extractJson(rawText) {
|
|
62
|
+
// Tier 1: direct parse
|
|
63
|
+
try {
|
|
64
|
+
return JSON.parse(rawText.trim());
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// fall through to tier 2
|
|
68
|
+
}
|
|
69
|
+
// Tier 2: extract from markdown code fences
|
|
70
|
+
const fenceMatch = /```(?:json)?\s*\n?([\s\S]*?)\n?\s*```/.exec(rawText);
|
|
71
|
+
if (fenceMatch) {
|
|
72
|
+
try {
|
|
73
|
+
return JSON.parse(fenceMatch[1].trim());
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// fall through to tier 3
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Tier 3: find first { ... } block
|
|
80
|
+
const braceStart = rawText.indexOf("{");
|
|
81
|
+
const braceEnd = rawText.lastIndexOf("}");
|
|
82
|
+
if (braceStart !== -1 && braceEnd > braceStart) {
|
|
83
|
+
try {
|
|
84
|
+
return JSON.parse(rawText.slice(braceStart, braceEnd + 1));
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// fall through to tier 4
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Tier 4: unparseable
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
// ── validateRelevanceVerdict ──────────────────────────────────────────
|
|
94
|
+
/**
|
|
95
|
+
* Parse a raw LLM text into a RelevanceVerdict.
|
|
96
|
+
* Returns null on parse failure (fail-closed: treated as irrelevant / no-vote).
|
|
97
|
+
* NEVER throws.
|
|
98
|
+
*/
|
|
99
|
+
export function validateRelevanceVerdict(rawText) {
|
|
100
|
+
const parsed = extractJson(rawText);
|
|
101
|
+
if (parsed === null)
|
|
102
|
+
return null;
|
|
103
|
+
const result = RelevanceVerdictSchema.safeParse(parsed);
|
|
104
|
+
if (!result.success)
|
|
105
|
+
return null;
|
|
106
|
+
return result.data;
|
|
107
|
+
}
|
|
108
|
+
// ── validateLensScore ─────────────────────────────────────────────────
|
|
109
|
+
/**
|
|
110
|
+
* Parse a raw LLM text into a LensScore.
|
|
111
|
+
* Returns null on parse failure (fail-closed: contributes to failCount, score=0).
|
|
112
|
+
* NEVER throws.
|
|
113
|
+
*/
|
|
114
|
+
export function validateLensScore(rawText) {
|
|
115
|
+
const parsed = extractJson(rawText);
|
|
116
|
+
if (parsed === null)
|
|
117
|
+
return null;
|
|
118
|
+
const result = LensScoreSchema.safeParse(parsed);
|
|
119
|
+
if (!result.success)
|
|
120
|
+
return null;
|
|
121
|
+
return result.data;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=lenses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lenses.js","sourceRoot":"","sources":["../../src/hub/lenses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure priority.md renderer — produces a Dataview-friendly markdown note.
|
|
3
|
+
*
|
|
4
|
+
* PURE: no IO, no re-ranking, no side effects. The judge's array order is
|
|
5
|
+
* consumed verbatim — rank = index + 1.
|
|
6
|
+
*
|
|
7
|
+
* bober: hand-rolled YAML-frontmatter subset (flat scalars only).
|
|
8
|
+
* Mirror of lab-note.ts approach — never import that module.
|
|
9
|
+
* Swap for a vetted YAML library if quoted strings or nested objects are required.
|
|
10
|
+
*/
|
|
11
|
+
import type { Finding } from "./finding.js";
|
|
12
|
+
/**
|
|
13
|
+
* Render a ranked Finding[] into a Dataview-friendly priority.md string.
|
|
14
|
+
*
|
|
15
|
+
* @param ranked Ordered findings from rankFindings() — order is preserved verbatim (no re-sort).
|
|
16
|
+
* @param scopeLabel Human-readable scope label for the frontmatter (e.g. "general", "decide: X vs Y").
|
|
17
|
+
* @param now Injected clock — used for generatedAt. Never call new Date() here.
|
|
18
|
+
* @returns Markdown string: YAML frontmatter + Dataview table + per-finding rationale.
|
|
19
|
+
*/
|
|
20
|
+
export declare function renderPriorityMd(ranked: Finding[], scopeLabel: string, now: Date): string;
|
|
21
|
+
//# sourceMappingURL=priority-md.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priority-md.d.ts","sourceRoot":"","sources":["../../src/hub/priority-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAc5C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,OAAO,EAAE,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,IAAI,GACR,MAAM,CAyCR"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure priority.md renderer — produces a Dataview-friendly markdown note.
|
|
3
|
+
*
|
|
4
|
+
* PURE: no IO, no re-ranking, no side effects. The judge's array order is
|
|
5
|
+
* consumed verbatim — rank = index + 1.
|
|
6
|
+
*
|
|
7
|
+
* bober: hand-rolled YAML-frontmatter subset (flat scalars only).
|
|
8
|
+
* Mirror of lab-note.ts approach — never import that module.
|
|
9
|
+
* Swap for a vetted YAML library if quoted strings or nested objects are required.
|
|
10
|
+
*/
|
|
11
|
+
// ── Cell helpers ──────────────────────────────────────────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Escape pipe characters and strip embedded newlines from a table cell value
|
|
14
|
+
* so the Markdown table stays valid for Dataview readers.
|
|
15
|
+
*/
|
|
16
|
+
function cellValue(s) {
|
|
17
|
+
return s.replace(/\|/g, "\\|").replace(/[\r\n]+/g, " ");
|
|
18
|
+
}
|
|
19
|
+
// ── renderPriorityMd ──────────────────────────────────────────────────
|
|
20
|
+
/**
|
|
21
|
+
* Render a ranked Finding[] into a Dataview-friendly priority.md string.
|
|
22
|
+
*
|
|
23
|
+
* @param ranked Ordered findings from rankFindings() — order is preserved verbatim (no re-sort).
|
|
24
|
+
* @param scopeLabel Human-readable scope label for the frontmatter (e.g. "general", "decide: X vs Y").
|
|
25
|
+
* @param now Injected clock — used for generatedAt. Never call new Date() here.
|
|
26
|
+
* @returns Markdown string: YAML frontmatter + Dataview table + per-finding rationale.
|
|
27
|
+
*/
|
|
28
|
+
export function renderPriorityMd(ranked, scopeLabel, now) {
|
|
29
|
+
// ── Hand-rolled YAML frontmatter ──────────────────────────────────
|
|
30
|
+
const lines = ["---"];
|
|
31
|
+
lines.push(`generatedAt: ${now.toISOString()}`);
|
|
32
|
+
lines.push(`scope: ${scopeLabel}`);
|
|
33
|
+
lines.push(`count: ${ranked.length}`);
|
|
34
|
+
lines.push("---");
|
|
35
|
+
lines.push("");
|
|
36
|
+
// ── Dataview-friendly markdown table ─────────────────────────────
|
|
37
|
+
lines.push("| rank | title | domain | kind | urgency | severity | dueBy |");
|
|
38
|
+
lines.push("| --- | --- | --- | --- | --- | --- | --- |");
|
|
39
|
+
for (let i = 0; i < ranked.length; i++) {
|
|
40
|
+
const f = ranked[i];
|
|
41
|
+
const rank = i + 1;
|
|
42
|
+
const dueBy = f.dueBy !== undefined ? f.dueBy : "";
|
|
43
|
+
lines.push(`| ${rank} | ${cellValue(f.title)} | ${cellValue(f.domain)} | ${f.kind} | ${f.urgency} | ${f.severity} | ${dueBy} |`);
|
|
44
|
+
}
|
|
45
|
+
lines.push("");
|
|
46
|
+
// ── Per-finding rationale / evidence ─────────────────────────────
|
|
47
|
+
for (let i = 0; i < ranked.length; i++) {
|
|
48
|
+
const f = ranked[i];
|
|
49
|
+
const rank = i + 1;
|
|
50
|
+
lines.push(`### ${rank}. ${f.title}`);
|
|
51
|
+
lines.push("");
|
|
52
|
+
if (f.evidence.length > 0) {
|
|
53
|
+
for (const ev of f.evidence) {
|
|
54
|
+
lines.push(`- ${ev}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
lines.push("- (no evidence recorded)");
|
|
59
|
+
}
|
|
60
|
+
lines.push("");
|
|
61
|
+
}
|
|
62
|
+
return lines.join("\n");
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=priority-md.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priority-md.js","sourceRoot":"","sources":["../../src/hub/priority-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,yEAAyE;AAEzE;;;GAGG;AACH,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,yEAAyE;AAEzE;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAiB,EACjB,UAAkB,EAClB,GAAS;IAET,qEAAqE;IACrE,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,oEAAoE;IACpE,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CACR,KAAK,IAAI,MAAM,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,QAAQ,MAAM,KAAK,IAAI,CACrH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,oEAAoE;IACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turn configured hub.repos (if any) OR discovered `kb-*` siblings into
|
|
3
|
+
* absolute repo-root paths whose derived facts.db actually exists.
|
|
4
|
+
* Never throws: a configured path that does not exist is skipped.
|
|
5
|
+
*
|
|
6
|
+
* @param projectRoot Absolute path to the current project root.
|
|
7
|
+
* @param configuredRepos Optional list from config hub.repos; pass undefined
|
|
8
|
+
* to fall through to kb-* sibling discovery.
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveSiblingRepos(projectRoot: string, configuredRepos?: string[]): Promise<string[]>;
|
|
11
|
+
//# sourceMappingURL=repo-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-resolver.d.ts","sourceRoot":"","sources":["../../src/hub/repo-resolver.ts"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { resolve, dirname } from "node:path";
|
|
2
|
+
import { readdir } from "node:fs/promises";
|
|
3
|
+
import { fileExists } from "../utils/fs.js";
|
|
4
|
+
import { factsDbPath } from "../state/facts.js";
|
|
5
|
+
// ── resolveSiblingRepos ───────────────────────────────────────────────
|
|
6
|
+
/**
|
|
7
|
+
* Turn configured hub.repos (if any) OR discovered `kb-*` siblings into
|
|
8
|
+
* absolute repo-root paths whose derived facts.db actually exists.
|
|
9
|
+
* Never throws: a configured path that does not exist is skipped.
|
|
10
|
+
*
|
|
11
|
+
* @param projectRoot Absolute path to the current project root.
|
|
12
|
+
* @param configuredRepos Optional list from config hub.repos; pass undefined
|
|
13
|
+
* to fall through to kb-* sibling discovery.
|
|
14
|
+
*/
|
|
15
|
+
export async function resolveSiblingRepos(projectRoot, configuredRepos) {
|
|
16
|
+
const candidates = configuredRepos && configuredRepos.length > 0
|
|
17
|
+
? configuredRepos.map((r) => resolve(projectRoot, r))
|
|
18
|
+
: await discoverKbSiblings(projectRoot);
|
|
19
|
+
const out = [];
|
|
20
|
+
for (const repo of candidates) {
|
|
21
|
+
if (await fileExists(factsDbPath(repo)))
|
|
22
|
+
out.push(repo);
|
|
23
|
+
}
|
|
24
|
+
return out;
|
|
25
|
+
}
|
|
26
|
+
// ── discoverKbSiblings ────────────────────────────────────────────────
|
|
27
|
+
async function discoverKbSiblings(projectRoot) {
|
|
28
|
+
const parent = dirname(projectRoot);
|
|
29
|
+
try {
|
|
30
|
+
const entries = await readdir(parent, { withFileTypes: true });
|
|
31
|
+
return entries
|
|
32
|
+
.filter((e) => e.isDirectory() && /^kb-/.test(e.name))
|
|
33
|
+
.map((e) => resolve(parent, e.name));
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=repo-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-resolver.js","sourceRoot":"","sources":["../../src/hub/repo-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,yEAAyE;AAEzE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB,EACnB,eAA0B;IAE1B,MAAM,UAAU,GACd,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;QAC3C,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAE5C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,yEAAyE;AAEzE,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Finding } from "./finding.js";
|
|
2
|
+
/**
|
|
3
|
+
* Discriminated union representing the query scope for hub prioritization.
|
|
4
|
+
*
|
|
5
|
+
* - general: no constraint; LLM relevance-filters the full pool.
|
|
6
|
+
* - decision: keep findings relevant to either named option (drop "neither").
|
|
7
|
+
* - filtered: pure JS structural filter on domain, tag, and/or dueWithinDays.
|
|
8
|
+
*/
|
|
9
|
+
export type Scope = {
|
|
10
|
+
mode: "general";
|
|
11
|
+
} | {
|
|
12
|
+
mode: "decision";
|
|
13
|
+
optionA: string;
|
|
14
|
+
optionB: string;
|
|
15
|
+
} | {
|
|
16
|
+
mode: "filtered";
|
|
17
|
+
domain?: string;
|
|
18
|
+
dueWithinDays?: number;
|
|
19
|
+
tag?: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Parse an unknown value into a Scope discriminated union.
|
|
23
|
+
* Falls back to { mode: "general" } on any parse failure — never throws.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseScope(raw: unknown): Scope;
|
|
26
|
+
/**
|
|
27
|
+
* Pure structural filter — NO LLM, NO async, NO side effects.
|
|
28
|
+
*
|
|
29
|
+
* For filtered scope: returns findings matching ALL specified constraints
|
|
30
|
+
* (domain AND tag AND dueBy within dueWithinDays of now).
|
|
31
|
+
* A finding with no dueBy does NOT satisfy a dueWithinDays constraint.
|
|
32
|
+
* For non-filtered scopes: returns findings unchanged (the LLM pass-1 handles those).
|
|
33
|
+
*
|
|
34
|
+
* @param findings Pool of findings to filter.
|
|
35
|
+
* @param scope The parsed query scope.
|
|
36
|
+
* @param now Injected clock — used for dueWithinDays calculation.
|
|
37
|
+
*/
|
|
38
|
+
export declare function applyFilter(findings: Finding[], scope: Scope, now: Date): Finding[];
|
|
39
|
+
//# sourceMappingURL=scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/hub/scope.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAI5C;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,GACb;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAmBhF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAI9C;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,EAAE,CAqBnF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// ── parseScope ────────────────────────────────────────────────────────
|
|
3
|
+
const ScopeInputSchema = z.discriminatedUnion("mode", [
|
|
4
|
+
z.object({ mode: z.literal("general") }),
|
|
5
|
+
z.object({
|
|
6
|
+
mode: z.literal("decision"),
|
|
7
|
+
optionA: z.string(),
|
|
8
|
+
optionB: z.string(),
|
|
9
|
+
}),
|
|
10
|
+
z.object({
|
|
11
|
+
mode: z.literal("filtered"),
|
|
12
|
+
domain: z.string().optional(),
|
|
13
|
+
dueWithinDays: z.number().int().optional(),
|
|
14
|
+
tag: z.string().optional(),
|
|
15
|
+
}),
|
|
16
|
+
]);
|
|
17
|
+
/**
|
|
18
|
+
* Parse an unknown value into a Scope discriminated union.
|
|
19
|
+
* Falls back to { mode: "general" } on any parse failure — never throws.
|
|
20
|
+
*/
|
|
21
|
+
export function parseScope(raw) {
|
|
22
|
+
const result = ScopeInputSchema.safeParse(raw);
|
|
23
|
+
if (result.success)
|
|
24
|
+
return result.data;
|
|
25
|
+
return { mode: "general" };
|
|
26
|
+
}
|
|
27
|
+
// ── applyFilter ───────────────────────────────────────────────────────
|
|
28
|
+
/**
|
|
29
|
+
* Pure structural filter — NO LLM, NO async, NO side effects.
|
|
30
|
+
*
|
|
31
|
+
* For filtered scope: returns findings matching ALL specified constraints
|
|
32
|
+
* (domain AND tag AND dueBy within dueWithinDays of now).
|
|
33
|
+
* A finding with no dueBy does NOT satisfy a dueWithinDays constraint.
|
|
34
|
+
* For non-filtered scopes: returns findings unchanged (the LLM pass-1 handles those).
|
|
35
|
+
*
|
|
36
|
+
* @param findings Pool of findings to filter.
|
|
37
|
+
* @param scope The parsed query scope.
|
|
38
|
+
* @param now Injected clock — used for dueWithinDays calculation.
|
|
39
|
+
*/
|
|
40
|
+
export function applyFilter(findings, scope, now) {
|
|
41
|
+
if (scope.mode !== "filtered")
|
|
42
|
+
return findings;
|
|
43
|
+
const { domain, tag, dueWithinDays } = scope;
|
|
44
|
+
return findings.filter((f) => {
|
|
45
|
+
// Domain constraint: finding.domain must match if specified
|
|
46
|
+
if (domain !== undefined && f.domain !== domain)
|
|
47
|
+
return false;
|
|
48
|
+
// Tag constraint: finding.tags must include the tag if specified
|
|
49
|
+
if (tag !== undefined && !f.tags.includes(tag))
|
|
50
|
+
return false;
|
|
51
|
+
// dueWithinDays constraint: finding.dueBy must exist and be within N days of now
|
|
52
|
+
if (dueWithinDays !== undefined) {
|
|
53
|
+
if (!f.dueBy)
|
|
54
|
+
return false; // no dueBy → does NOT satisfy dueWithinDays
|
|
55
|
+
const deadline = new Date(now.getTime() + dueWithinDays * 24 * 60 * 60 * 1000);
|
|
56
|
+
if (Date.parse(f.dueBy) > deadline.getTime())
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/hub/scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,yEAAyE;AAEzE,MAAM,gBAAgB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACpD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IACxC,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC3B,CAAC;CACH,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACvC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC;AAED,yEAAyE;AAEzE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,QAAmB,EAAE,KAAY,EAAE,GAAS;IACtE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC;IAE/C,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAE7C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3B,4DAA4D;QAC5D,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAE9D,iEAAiE;QACjE,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7D,iFAAiF;QACjF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC,CAAC,4CAA4C;YACxE,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC/E,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE;gBAAE,OAAO,KAAK,CAAC;QAC7D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Finding } from "./finding.js";
|
|
2
|
+
import type { FactStore } from "../state/facts.js";
|
|
3
|
+
/**
|
|
4
|
+
* Build a Finding from free text and persist it to the hub pool.
|
|
5
|
+
*
|
|
6
|
+
* Deterministic enrichment only: id is derived from title+now (no clock
|
|
7
|
+
* call here — `now` is always injected at the CLI boundary). All unknown
|
|
8
|
+
* fields are omitted; urgency/severity are set to safe neutral defaults.
|
|
9
|
+
*
|
|
10
|
+
* PURE: never calls Date.now() / new Date().
|
|
11
|
+
*/
|
|
12
|
+
export declare function captureTask(store: FactStore, text: string, { domain, now }: {
|
|
13
|
+
domain?: string;
|
|
14
|
+
now: string;
|
|
15
|
+
}): Promise<Finding>;
|
|
16
|
+
//# sourceMappingURL=task-inbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-inbox.d.ts","sourceRoot":"","sources":["../../src/hub/task-inbox.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAUnD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { writeFinding } from "./finding-store.js";
|
|
3
|
+
// ── Constants ─────────────────────────────────────────────────────────
|
|
4
|
+
/** Fallback domain when none is provided — required min(1) on FindingSchema. */
|
|
5
|
+
const DEFAULT_DOMAIN = "inbox";
|
|
6
|
+
// ── captureTask ───────────────────────────────────────────────────────
|
|
7
|
+
/**
|
|
8
|
+
* Build a Finding from free text and persist it to the hub pool.
|
|
9
|
+
*
|
|
10
|
+
* Deterministic enrichment only: id is derived from title+now (no clock
|
|
11
|
+
* call here — `now` is always injected at the CLI boundary). All unknown
|
|
12
|
+
* fields are omitted; urgency/severity are set to safe neutral defaults.
|
|
13
|
+
*
|
|
14
|
+
* PURE: never calls Date.now() / new Date().
|
|
15
|
+
*/
|
|
16
|
+
export async function captureTask(store, text, { domain, now }) {
|
|
17
|
+
const title = text.trim();
|
|
18
|
+
// Stable deterministic id — no clock dependency
|
|
19
|
+
const id = createHash("sha256")
|
|
20
|
+
.update(`${title}|${now}`)
|
|
21
|
+
.digest("hex")
|
|
22
|
+
.slice(0, 16);
|
|
23
|
+
const finding = {
|
|
24
|
+
id,
|
|
25
|
+
domain: domain ?? DEFAULT_DOMAIN, // REQUIRED min(1) — cannot be empty
|
|
26
|
+
title,
|
|
27
|
+
kind: "action",
|
|
28
|
+
urgency: 3, // neutral default (contract assumption §3a)
|
|
29
|
+
severity: 1, // neutral default
|
|
30
|
+
evidence: [],
|
|
31
|
+
surfacedAt: now,
|
|
32
|
+
tags: domain ? [`domain:${domain}`] : [],
|
|
33
|
+
status: "open",
|
|
34
|
+
// dueBy / estDurationMin / calendarSafeTitle / promotesTo: OMITTED (optional)
|
|
35
|
+
};
|
|
36
|
+
await writeFinding(store, finding, { now });
|
|
37
|
+
return finding;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=task-inbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-inbox.js","sourceRoot":"","sources":["../../src/hub/task-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,yEAAyE;AAEzE,gFAAgF;AAChF,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,yEAAyE;AAEzE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAgB,EAChB,IAAY,EACZ,EAAE,MAAM,EAAE,GAAG,EAAoC;IAEjD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,gDAAgD;IAChD,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC5B,MAAM,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC;SACzB,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhB,MAAM,OAAO,GAAY;QACvB,EAAE;QACF,MAAM,EAAE,MAAM,IAAI,cAAc,EAAE,oCAAoC;QACtE,KAAK;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,EAAE,4CAA4C;QACxD,QAAQ,EAAE,CAAC,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,GAAG;QACf,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QACxC,MAAM,EAAE,MAAM;QACd,8EAA8E;KAC/E,CAAC;IAEF,MAAM,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -70,18 +70,18 @@ export declare const VerifyResultSchema: z.ZodObject<{
|
|
|
70
70
|
hint: z.ZodOptional<z.ZodString>;
|
|
71
71
|
}, "strip", z.ZodTypeAny, {
|
|
72
72
|
verified: boolean;
|
|
73
|
+
hint?: string | undefined;
|
|
73
74
|
observedValue?: number | undefined;
|
|
74
75
|
sampledAt?: string | undefined;
|
|
75
76
|
evidencePath?: string | undefined;
|
|
76
77
|
reason?: "OK" | "OUTLIER" | "NO_PROVIDER" | "NOT_IMPLEMENTED" | "MCP_ERROR" | undefined;
|
|
77
|
-
hint?: string | undefined;
|
|
78
78
|
}, {
|
|
79
79
|
verified: boolean;
|
|
80
|
+
hint?: string | undefined;
|
|
80
81
|
observedValue?: number | undefined;
|
|
81
82
|
sampledAt?: string | undefined;
|
|
82
83
|
evidencePath?: string | undefined;
|
|
83
84
|
reason?: "OK" | "OUTLIER" | "NO_PROVIDER" | "NOT_IMPLEMENTED" | "MCP_ERROR" | undefined;
|
|
84
|
-
hint?: string | undefined;
|
|
85
85
|
}>;
|
|
86
86
|
export type VerifyResult = z.infer<typeof VerifyResultSchema>;
|
|
87
87
|
export declare const ResolutionEvidenceSchema: z.ZodObject<{
|
package/dist/index.d.ts
CHANGED
|
@@ -13,7 +13,8 @@ export { runPipeline, type PipelineResult, } from "./orchestrator/pipeline.js";
|
|
|
13
13
|
export { resolveModel } from "./orchestrator/model-resolver.js";
|
|
14
14
|
export { loadAgentDefinition, clearAgentCache, type AgentDefinition, } from "./orchestrator/agent-loader.js";
|
|
15
15
|
export { buildToolSet, resolveRoleTools, getGraphState, getGraphDeps, ROLE_TOOLS, type ToolSet, type AgentRole, type GraphState, } from "./orchestrator/tools/index.js";
|
|
16
|
-
export { runAgenticLoop, type AgenticLoopParams, type AgenticLoopResult, } from "./orchestrator/agentic-loop.js";
|
|
16
|
+
export { runAgenticLoop, resumeSession, forkSession, type AgenticLoopParams, type AgenticLoopResult, } from "./orchestrator/agentic-loop.js";
|
|
17
|
+
export { SessionStore, type SessionRecord, } from "./orchestrator/session-store.js";
|
|
17
18
|
export { EvaluatorRegistry, createDefaultRegistry, runEvaluation, type EvaluationRunResult, } from "./evaluators/registry.js";
|
|
18
19
|
export type { EvaluatorPlugin, EvaluatorFactory, EvalContext, } from "./evaluators/plugin-interface.js";
|
|
19
20
|
export { ensureBoberDir, saveContract, loadContract, listContracts, updateContract, saveSpec, loadSpec, loadLatestSpec, listSpecs, appendHistory, loadHistory, saveBriefing, readBriefing, listBriefings, } from "./state/index.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAInE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,gCAAgC,EAChC,6BAA6B,EAC7B,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,yBAAyB,EACzB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,IAAI,wBAAwB,EACjD,gBAAgB,EAChB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EACL,YAAY,EACZ,KAAK,eAAe,GACrB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EACL,UAAU,EACV,KAAK,cAAc,GACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,WAAW,EACX,KAAK,cAAc,GACpB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,8 @@ export { runPipeline, } from "./orchestrator/pipeline.js";
|
|
|
16
16
|
export { resolveModel } from "./orchestrator/model-resolver.js";
|
|
17
17
|
export { loadAgentDefinition, clearAgentCache, } from "./orchestrator/agent-loader.js";
|
|
18
18
|
export { buildToolSet, resolveRoleTools, getGraphState, getGraphDeps, ROLE_TOOLS, } from "./orchestrator/tools/index.js";
|
|
19
|
-
export { runAgenticLoop, } from "./orchestrator/agentic-loop.js";
|
|
19
|
+
export { runAgenticLoop, resumeSession, forkSession, } from "./orchestrator/agentic-loop.js";
|
|
20
|
+
export { SessionStore, } from "./orchestrator/session-store.js";
|
|
20
21
|
// ── Evaluators ─────────────────────────────────────────────────────
|
|
21
22
|
export { EvaluatorRegistry, createDefaultRegistry, runEvaluation, } from "./evaluators/registry.js";
|
|
22
23
|
// ── State ──────────────────────────────────────────────────────────
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAOL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnE,sEAAsE;AAEtE,OAAO,EAOL,gCAAgC,EAChC,6BAA6B,EAC7B,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAYL,yBAAyB,EACzB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAOL,gBAAgB,EAChB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,sEAAsE;AAEtE,OAAO,EAIL,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EACL,YAAY,GAEb,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EACL,UAAU,GAEX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EACL,mBAAmB,EACnB,eAAe,GAEhB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,UAAU,GAIX,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAOL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnE,sEAAsE;AAEtE,OAAO,EAOL,gCAAgC,EAChC,6BAA6B,EAC7B,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAYL,yBAAyB,EACzB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAOL,gBAAgB,EAChB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,sEAAsE;AAEtE,OAAO,EAIL,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EACL,YAAY,GAEb,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EACL,UAAU,GAEX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EACL,mBAAmB,EACnB,eAAe,GAEhB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,UAAU,GAIX,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,EACd,aAAa,EACb,WAAW,GAGZ,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,YAAY,GAEb,MAAM,iCAAiC,CAAC;AAEzC,sEAAsE;AAEtE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GAEd,MAAM,0BAA0B,CAAC;AAQlC,sEAAsE;AAEtE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,SAAS,EACT,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,kBAAkB,CAAC;AAoB1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAC;AAEzF,sEAAsE;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,uEAAuE;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,wEAAwE;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** AppleHealthAdapter — SAX streaming import of Apple Health export.xml (Phase 6, Sprint 5). */
|
|
2
2
|
import { createReadStream } from "node:fs";
|
|
3
|
-
import
|
|
3
|
+
import sax from "sax";
|
|
4
4
|
/** Maximum observations to buffer before awaiting a sink write (backpressure cap). */
|
|
5
5
|
const BATCH_CAP = 1000;
|
|
6
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apple-health.js","sourceRoot":"","sources":["../../../src/medical/adapters/apple-health.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,
|
|
1
|
+
{"version":3,"file":"apple-health.js","sourceRoot":"","sources":["../../../src/medical/adapters/apple-health.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test-gap (cadence) analyzer — flags biomarkers overdue for re-testing.
|
|
3
|
+
*
|
|
4
|
+
* PURE except store reads. NO network / NO LLM / NO Date.now().
|
|
5
|
+
* All timestamps are injected parameters; the wall clock is read ONLY at the CLI boundary.
|
|
6
|
+
*
|
|
7
|
+
* ADR-3: RECOMMENDED_CADENCE_DAYS is a CLOSED code-reviewed table (mirror of NumericPrimitive
|
|
8
|
+
* at src/medical/types.ts:142). Extending it is a code-review event, not a runtime decision.
|
|
9
|
+
* Biomarkers ABSENT from the table are SKIPPED — no guessed cadence (sc-4-3).
|
|
10
|
+
*/
|
|
11
|
+
import type { HealthDataStore } from "../health-store.js";
|
|
12
|
+
import type { MedicalFinding } from "./finding.js";
|
|
13
|
+
/**
|
|
14
|
+
* Recommended re-test cadence in days, keyed by biomarker.
|
|
15
|
+
* Extending this is a code-review event (mirror NumericPrimitive at types.ts:142).
|
|
16
|
+
* Biomarkers absent here are SKIPPED — no guessed cadence (sc-4-3).
|
|
17
|
+
*/
|
|
18
|
+
export declare const RECOMMENDED_CADENCE_DAYS: Readonly<Record<string, number>>;
|
|
19
|
+
/**
|
|
20
|
+
* Detect biomarkers that are overdue for re-testing based on the CLOSED cadence table.
|
|
21
|
+
*
|
|
22
|
+
* PURE except store reads. NO network / NO LLM / NO Date.now(). 'now' is injected.
|
|
23
|
+
* Biomarkers absent from RECOMMENDED_CADENCE_DAYS are SKIPPED (sc-4-3).
|
|
24
|
+
*
|
|
25
|
+
* @param store HealthDataStore (caller owns lifecycle)
|
|
26
|
+
* @param biomarkers List of biomarker names to check
|
|
27
|
+
* @param opts { now: ISO 8601 injected timestamp }
|
|
28
|
+
*/
|
|
29
|
+
export declare function detectTestGaps(store: HealthDataStore, biomarkers: string[], opts: {
|
|
30
|
+
now: string;
|
|
31
|
+
}): MedicalFinding[];
|
|
32
|
+
//# sourceMappingURL=cadence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cadence.d.ts","sourceRoot":"","sources":["../../../src/medical/analysis/cadence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMrE,CAAC;AA+BF;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACpB,cAAc,EAAE,CAgBlB"}
|