@slope-dev/slope 1.5.1
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 +21 -0
- package/README.md +243 -0
- package/dist/cli/commands/auto-card.d.ts +2 -0
- package/dist/cli/commands/auto-card.d.ts.map +1 -0
- package/dist/cli/commands/auto-card.js +267 -0
- package/dist/cli/commands/auto-card.js.map +1 -0
- package/dist/cli/commands/briefing.d.ts +2 -0
- package/dist/cli/commands/briefing.d.ts.map +1 -0
- package/dist/cli/commands/briefing.js +133 -0
- package/dist/cli/commands/briefing.js.map +1 -0
- package/dist/cli/commands/card.d.ts +2 -0
- package/dist/cli/commands/card.d.ts.map +1 -0
- package/dist/cli/commands/card.js +144 -0
- package/dist/cli/commands/card.js.map +1 -0
- package/dist/cli/commands/claim.d.ts +2 -0
- package/dist/cli/commands/claim.d.ts.map +1 -0
- package/dist/cli/commands/claim.js +99 -0
- package/dist/cli/commands/claim.js.map +1 -0
- package/dist/cli/commands/classify.d.ts +2 -0
- package/dist/cli/commands/classify.d.ts.map +1 -0
- package/dist/cli/commands/classify.js +70 -0
- package/dist/cli/commands/classify.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +4 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -0
- package/dist/cli/commands/dashboard.js +156 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/distill.d.ts +2 -0
- package/dist/cli/commands/distill.d.ts.map +1 -0
- package/dist/cli/commands/distill.js +91 -0
- package/dist/cli/commands/distill.js.map +1 -0
- package/dist/cli/commands/escalate.d.ts +2 -0
- package/dist/cli/commands/escalate.d.ts.map +1 -0
- package/dist/cli/commands/escalate.js +136 -0
- package/dist/cli/commands/escalate.js.map +1 -0
- package/dist/cli/commands/extract.d.ts +2 -0
- package/dist/cli/commands/extract.d.ts.map +1 -0
- package/dist/cli/commands/extract.js +147 -0
- package/dist/cli/commands/extract.js.map +1 -0
- package/dist/cli/commands/flows.d.ts +2 -0
- package/dist/cli/commands/flows.d.ts.map +1 -0
- package/dist/cli/commands/flows.js +156 -0
- package/dist/cli/commands/flows.js.map +1 -0
- package/dist/cli/commands/guard.d.ts +15 -0
- package/dist/cli/commands/guard.d.ts.map +1 -0
- package/dist/cli/commands/guard.js +207 -0
- package/dist/cli/commands/guard.js.map +1 -0
- package/dist/cli/commands/hook.d.ts +2 -0
- package/dist/cli/commands/hook.d.ts.map +1 -0
- package/dist/cli/commands/hook.js +299 -0
- package/dist/cli/commands/hook.js.map +1 -0
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +421 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/map.d.ts +10 -0
- package/dist/cli/commands/map.d.ts.map +1 -0
- package/dist/cli/commands/map.js +591 -0
- package/dist/cli/commands/map.js.map +1 -0
- package/dist/cli/commands/next.d.ts +2 -0
- package/dist/cli/commands/next.d.ts.map +1 -0
- package/dist/cli/commands/next.js +28 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +2 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +54 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/plugin.d.ts +2 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -0
- package/dist/cli/commands/plugin.js +118 -0
- package/dist/cli/commands/plugin.js.map +1 -0
- package/dist/cli/commands/release.d.ts +2 -0
- package/dist/cli/commands/release.d.ts.map +1 -0
- package/dist/cli/commands/release.js +64 -0
- package/dist/cli/commands/release.js.map +1 -0
- package/dist/cli/commands/report.d.ts +2 -0
- package/dist/cli/commands/report.d.ts.map +1 -0
- package/dist/cli/commands/report.js +68 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/review-state.d.ts +11 -0
- package/dist/cli/commands/review-state.d.ts.map +1 -0
- package/dist/cli/commands/review-state.js +193 -0
- package/dist/cli/commands/review-state.js.map +1 -0
- package/dist/cli/commands/review.d.ts +2 -0
- package/dist/cli/commands/review.d.ts.map +1 -0
- package/dist/cli/commands/review.js +53 -0
- package/dist/cli/commands/review.js.map +1 -0
- package/dist/cli/commands/roadmap.d.ts +2 -0
- package/dist/cli/commands/roadmap.d.ts.map +1 -0
- package/dist/cli/commands/roadmap.js +283 -0
- package/dist/cli/commands/roadmap.js.map +1 -0
- package/dist/cli/commands/session.d.ts +2 -0
- package/dist/cli/commands/session.d.ts.map +1 -0
- package/dist/cli/commands/session.js +232 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/commands/standup.d.ts +2 -0
- package/dist/cli/commands/standup.d.ts.map +1 -0
- package/dist/cli/commands/standup.js +117 -0
- package/dist/cli/commands/standup.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +148 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/tournament.d.ts +2 -0
- package/dist/cli/commands/tournament.d.ts.map +1 -0
- package/dist/cli/commands/tournament.js +60 -0
- package/dist/cli/commands/tournament.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +2 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +74 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/config.d.ts +2 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +2 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/guards/commit-nudge.d.ts +7 -0
- package/dist/cli/guards/commit-nudge.d.ts.map +1 -0
- package/dist/cli/guards/commit-nudge.js +50 -0
- package/dist/cli/guards/commit-nudge.js.map +1 -0
- package/dist/cli/guards/compaction.d.ts +8 -0
- package/dist/cli/guards/compaction.d.ts.map +1 -0
- package/dist/cli/guards/compaction.js +79 -0
- package/dist/cli/guards/compaction.js.map +1 -0
- package/dist/cli/guards/explore.d.ts +8 -0
- package/dist/cli/guards/explore.d.ts.map +1 -0
- package/dist/cli/guards/explore.js +78 -0
- package/dist/cli/guards/explore.js.map +1 -0
- package/dist/cli/guards/hazard.d.ts +7 -0
- package/dist/cli/guards/hazard.d.ts.map +1 -0
- package/dist/cli/guards/hazard.js +43 -0
- package/dist/cli/guards/hazard.js.map +1 -0
- package/dist/cli/guards/next-action.d.ts +28 -0
- package/dist/cli/guards/next-action.d.ts.map +1 -0
- package/dist/cli/guards/next-action.js +196 -0
- package/dist/cli/guards/next-action.js.map +1 -0
- package/dist/cli/guards/push-nudge.d.ts +7 -0
- package/dist/cli/guards/push-nudge.d.ts.map +1 -0
- package/dist/cli/guards/push-nudge.js +53 -0
- package/dist/cli/guards/push-nudge.js.map +1 -0
- package/dist/cli/guards/review-tier.d.ts +7 -0
- package/dist/cli/guards/review-tier.d.ts.map +1 -0
- package/dist/cli/guards/review-tier.js +108 -0
- package/dist/cli/guards/review-tier.js.map +1 -0
- package/dist/cli/guards/scope-drift.d.ts +7 -0
- package/dist/cli/guards/scope-drift.d.ts.map +1 -0
- package/dist/cli/guards/scope-drift.js +47 -0
- package/dist/cli/guards/scope-drift.js.map +1 -0
- package/dist/cli/guards/stop-check.d.ts +7 -0
- package/dist/cli/guards/stop-check.d.ts.map +1 -0
- package/dist/cli/guards/stop-check.js +34 -0
- package/dist/cli/guards/stop-check.js.map +1 -0
- package/dist/cli/guards/subagent-gate.d.ts +7 -0
- package/dist/cli/guards/subagent-gate.d.ts.map +1 -0
- package/dist/cli/guards/subagent-gate.js +39 -0
- package/dist/cli/guards/subagent-gate.js.map +1 -0
- package/dist/cli/guards/version-check.d.ts +8 -0
- package/dist/cli/guards/version-check.d.ts.map +1 -0
- package/dist/cli/guards/version-check.js +49 -0
- package/dist/cli/guards/version-check.js.map +1 -0
- package/dist/cli/guards/workflow-gate.d.ts +7 -0
- package/dist/cli/guards/workflow-gate.d.ts.map +1 -0
- package/dist/cli/guards/workflow-gate.js +31 -0
- package/dist/cli/guards/workflow-gate.js.map +1 -0
- package/dist/cli/hooks-config.d.ts +9 -0
- package/dist/cli/hooks-config.d.ts.map +1 -0
- package/dist/cli/hooks-config.js +21 -0
- package/dist/cli/hooks-config.js.map +1 -0
- package/dist/cli/index.d.ts +19 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +282 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/loader.d.ts +2 -0
- package/dist/cli/loader.d.ts.map +1 -0
- package/dist/cli/loader.js +2 -0
- package/dist/cli/loader.js.map +1 -0
- package/dist/cli/metaphor.d.ts +6 -0
- package/dist/cli/metaphor.d.ts.map +1 -0
- package/dist/cli/metaphor.js +26 -0
- package/dist/cli/metaphor.js.map +1 -0
- package/dist/cli/registries/api-registry.d.ts +11 -0
- package/dist/cli/registries/api-registry.d.ts.map +1 -0
- package/dist/cli/registries/api-registry.js +42 -0
- package/dist/cli/registries/api-registry.js.map +1 -0
- package/dist/cli/registries/file-registry.d.ts +13 -0
- package/dist/cli/registries/file-registry.d.ts.map +1 -0
- package/dist/cli/registries/file-registry.js +55 -0
- package/dist/cli/registries/file-registry.js.map +1 -0
- package/dist/cli/registries/index.d.ts +7 -0
- package/dist/cli/registries/index.d.ts.map +1 -0
- package/dist/cli/registries/index.js +20 -0
- package/dist/cli/registries/index.js.map +1 -0
- package/dist/cli/store.d.ts +3 -0
- package/dist/cli/store.d.ts.map +1 -0
- package/dist/cli/store.js +13 -0
- package/dist/cli/store.js.map +1 -0
- package/dist/cli/template-generator.d.ts +15 -0
- package/dist/cli/template-generator.d.ts.map +1 -0
- package/dist/cli/template-generator.js +562 -0
- package/dist/cli/template-generator.js.map +1 -0
- package/dist/core/advisor.d.ts +63 -0
- package/dist/core/advisor.d.ts.map +1 -0
- package/dist/core/advisor.js +395 -0
- package/dist/core/advisor.js.map +1 -0
- package/dist/core/briefing.d.ts +103 -0
- package/dist/core/briefing.d.ts.map +1 -0
- package/dist/core/briefing.js +380 -0
- package/dist/core/briefing.js.map +1 -0
- package/dist/core/builder.d.ts +70 -0
- package/dist/core/builder.d.ts.map +1 -0
- package/dist/core/builder.js +175 -0
- package/dist/core/builder.js.map +1 -0
- package/dist/core/ci-signals.d.ts +10 -0
- package/dist/core/ci-signals.d.ts.map +1 -0
- package/dist/core/ci-signals.js +145 -0
- package/dist/core/ci-signals.js.map +1 -0
- package/dist/core/config.d.ts +48 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +42 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/constants.d.ts +14 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +44 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/dashboard.d.ts +40 -0
- package/dist/core/dashboard.d.ts.map +1 -0
- package/dist/core/dashboard.js +413 -0
- package/dist/core/dashboard.js.map +1 -0
- package/dist/core/dispersion.d.ts +12 -0
- package/dist/core/dispersion.d.ts.map +1 -0
- package/dist/core/dispersion.js +164 -0
- package/dist/core/dispersion.js.map +1 -0
- package/dist/core/escalation.d.ts +52 -0
- package/dist/core/escalation.d.ts.map +1 -0
- package/dist/core/escalation.js +105 -0
- package/dist/core/escalation.js.map +1 -0
- package/dist/core/flows.d.ts +44 -0
- package/dist/core/flows.d.ts.map +1 -0
- package/dist/core/flows.js +123 -0
- package/dist/core/flows.js.map +1 -0
- package/dist/core/formatter.d.ts +23 -0
- package/dist/core/formatter.d.ts.map +1 -0
- package/dist/core/formatter.js +301 -0
- package/dist/core/formatter.js.map +1 -0
- package/dist/core/guard.d.ts +124 -0
- package/dist/core/guard.d.ts.map +1 -0
- package/dist/core/guard.js +185 -0
- package/dist/core/guard.js.map +1 -0
- package/dist/core/handicap.d.ts +22 -0
- package/dist/core/handicap.d.ts.map +1 -0
- package/dist/core/handicap.js +111 -0
- package/dist/core/handicap.js.map +1 -0
- package/dist/core/index.d.ts +55 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +62 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/leaderboard.d.ts +32 -0
- package/dist/core/leaderboard.d.ts.map +1 -0
- package/dist/core/leaderboard.js +98 -0
- package/dist/core/leaderboard.js.map +1 -0
- package/dist/core/loader.d.ts +17 -0
- package/dist/core/loader.d.ts.map +1 -0
- package/dist/core/loader.js +68 -0
- package/dist/core/loader.js.map +1 -0
- package/dist/core/metaphor.d.ts +73 -0
- package/dist/core/metaphor.d.ts.map +1 -0
- package/dist/core/metaphor.js +73 -0
- package/dist/core/metaphor.js.map +1 -0
- package/dist/core/metaphors/baseball.d.ts +3 -0
- package/dist/core/metaphors/baseball.d.ts.map +1 -0
- package/dist/core/metaphors/baseball.js +89 -0
- package/dist/core/metaphors/baseball.js.map +1 -0
- package/dist/core/metaphors/dnd.d.ts +3 -0
- package/dist/core/metaphors/dnd.d.ts.map +1 -0
- package/dist/core/metaphors/dnd.js +89 -0
- package/dist/core/metaphors/dnd.js.map +1 -0
- package/dist/core/metaphors/gaming.d.ts +3 -0
- package/dist/core/metaphors/gaming.d.ts.map +1 -0
- package/dist/core/metaphors/gaming.js +89 -0
- package/dist/core/metaphors/gaming.js.map +1 -0
- package/dist/core/metaphors/golf.d.ts +3 -0
- package/dist/core/metaphors/golf.d.ts.map +1 -0
- package/dist/core/metaphors/golf.js +89 -0
- package/dist/core/metaphors/golf.js.map +1 -0
- package/dist/core/metaphors/index.d.ts +8 -0
- package/dist/core/metaphors/index.d.ts.map +1 -0
- package/dist/core/metaphors/index.js +17 -0
- package/dist/core/metaphors/index.js.map +1 -0
- package/dist/core/metaphors/matrix.d.ts +3 -0
- package/dist/core/metaphors/matrix.d.ts.map +1 -0
- package/dist/core/metaphors/matrix.js +89 -0
- package/dist/core/metaphors/matrix.js.map +1 -0
- package/dist/core/metaphors/tennis.d.ts +3 -0
- package/dist/core/metaphors/tennis.d.ts.map +1 -0
- package/dist/core/metaphors/tennis.js +89 -0
- package/dist/core/metaphors/tennis.js.map +1 -0
- package/dist/core/pipeline.d.ts +39 -0
- package/dist/core/pipeline.d.ts.map +1 -0
- package/dist/core/pipeline.js +158 -0
- package/dist/core/pipeline.js.map +1 -0
- package/dist/core/player.d.ts +51 -0
- package/dist/core/player.d.ts.map +1 -0
- package/dist/core/player.js +101 -0
- package/dist/core/player.js.map +1 -0
- package/dist/core/plugins.d.ts +33 -0
- package/dist/core/plugins.d.ts.map +1 -0
- package/dist/core/plugins.js +176 -0
- package/dist/core/plugins.js.map +1 -0
- package/dist/core/pr-signals.d.ts +23 -0
- package/dist/core/pr-signals.d.ts.map +1 -0
- package/dist/core/pr-signals.js +178 -0
- package/dist/core/pr-signals.js.map +1 -0
- package/dist/core/registry.d.ts +20 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +62 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/report.d.ts +50 -0
- package/dist/core/report.d.ts.map +1 -0
- package/dist/core/report.js +392 -0
- package/dist/core/report.js.map +1 -0
- package/dist/core/roadmap.d.ts +74 -0
- package/dist/core/roadmap.d.ts.map +1 -0
- package/dist/core/roadmap.js +389 -0
- package/dist/core/roadmap.js.map +1 -0
- package/dist/core/roles.d.ts +23 -0
- package/dist/core/roles.d.ts.map +1 -0
- package/dist/core/roles.js +107 -0
- package/dist/core/roles.js.map +1 -0
- package/dist/core/standup.d.ts +44 -0
- package/dist/core/standup.d.ts.map +1 -0
- package/dist/core/standup.js +164 -0
- package/dist/core/standup.js.map +1 -0
- package/dist/core/store.d.ts +43 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +11 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/team-handicap.d.ts +59 -0
- package/dist/core/team-handicap.d.ts.map +1 -0
- package/dist/core/team-handicap.js +227 -0
- package/dist/core/team-handicap.js.map +1 -0
- package/dist/core/tournament.d.ts +12 -0
- package/dist/core/tournament.d.ts.map +1 -0
- package/dist/core/tournament.js +249 -0
- package/dist/core/tournament.js.map +1 -0
- package/dist/core/types.d.ts +339 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +4 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/validation.d.ts +23 -0
- package/dist/core/validation.d.ts.map +1 -0
- package/dist/core/validation.js +140 -0
- package/dist/core/validation.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/index.d.ts +17 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +363 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/index.test.d.ts +2 -0
- package/dist/mcp/index.test.d.ts.map +1 -0
- package/dist/mcp/index.test.js +497 -0
- package/dist/mcp/index.test.js.map +1 -0
- package/dist/mcp/registry.d.ts +17 -0
- package/dist/mcp/registry.d.ts.map +1 -0
- package/dist/mcp/registry.js +708 -0
- package/dist/mcp/registry.js.map +1 -0
- package/dist/mcp/sandbox.d.ts +15 -0
- package/dist/mcp/sandbox.d.ts.map +1 -0
- package/dist/mcp/sandbox.js +153 -0
- package/dist/mcp/sandbox.js.map +1 -0
- package/dist/store/index.d.ts +40 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +324 -0
- package/dist/store/index.js.map +1 -0
- package/dist/tokens/colors.d.ts +47 -0
- package/dist/tokens/colors.d.ts.map +1 -0
- package/dist/tokens/colors.js +56 -0
- package/dist/tokens/colors.js.map +1 -0
- package/dist/tokens/css.d.ts +3 -0
- package/dist/tokens/css.d.ts.map +1 -0
- package/dist/tokens/css.js +58 -0
- package/dist/tokens/css.js.map +1 -0
- package/dist/tokens/index.d.ts +5 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.js +6 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/spacing.d.ts +23 -0
- package/dist/tokens/spacing.d.ts.map +1 -0
- package/dist/tokens/spacing.js +28 -0
- package/dist/tokens/spacing.js.map +1 -0
- package/dist/tokens/typography.d.ts +28 -0
- package/dist/tokens/typography.d.ts.map +1 -0
- package/dist/tokens/typography.js +34 -0
- package/dist/tokens/typography.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface SandboxResult {
|
|
2
|
+
result: unknown;
|
|
3
|
+
logs: string[];
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Run agent-written JS code in a sandboxed vm context.
|
|
7
|
+
*
|
|
8
|
+
* The context includes all @slope-dev/slope exports as top-level names,
|
|
9
|
+
* all constants, and filesystem helpers pre-bound to `cwd`.
|
|
10
|
+
*
|
|
11
|
+
* Code is wrapped in an async IIFE so `return` works naturally.
|
|
12
|
+
* Console output is captured to a logs buffer.
|
|
13
|
+
*/
|
|
14
|
+
export declare function runInSandbox(code: string, cwd: string): Promise<SandboxResult>;
|
|
15
|
+
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/mcp/sandbox.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAmGD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAiDpF"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SLOPE sandbox — runs agent-written JS in a node:vm context
|
|
3
|
+
* with the full @slope-dev/slope API + filesystem helpers pre-injected.
|
|
4
|
+
*/
|
|
5
|
+
import vm from 'node:vm';
|
|
6
|
+
import fs from 'node:fs';
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import * as core from '../core/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Resolve and validate that a path stays within the cwd boundary.
|
|
11
|
+
* Throws if the resolved path escapes the cwd.
|
|
12
|
+
*/
|
|
13
|
+
function safePath(cwd, p) {
|
|
14
|
+
const resolved = path.resolve(cwd, p);
|
|
15
|
+
if (resolved !== cwd && !resolved.startsWith(cwd + path.sep)) {
|
|
16
|
+
throw new Error(`Path escape blocked: "${p}" resolves outside project root`);
|
|
17
|
+
}
|
|
18
|
+
return resolved;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Build filesystem helpers scoped to cwd.
|
|
22
|
+
*/
|
|
23
|
+
function buildFsHelpers(cwd) {
|
|
24
|
+
const loadConfig = () => {
|
|
25
|
+
return core.loadConfig(cwd);
|
|
26
|
+
};
|
|
27
|
+
const loadScorecards = () => {
|
|
28
|
+
const config = loadConfig();
|
|
29
|
+
return core.loadScorecards(config, cwd);
|
|
30
|
+
};
|
|
31
|
+
const loadCommonIssues = () => {
|
|
32
|
+
const config = loadConfig();
|
|
33
|
+
const filePath = safePath(cwd, config.commonIssuesPath);
|
|
34
|
+
if (!fs.existsSync(filePath))
|
|
35
|
+
return { recurring_patterns: [] };
|
|
36
|
+
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
37
|
+
};
|
|
38
|
+
const loadSessions = () => {
|
|
39
|
+
const config = loadConfig();
|
|
40
|
+
const filePath = safePath(cwd, config.sessionsPath);
|
|
41
|
+
if (!fs.existsSync(filePath))
|
|
42
|
+
return [];
|
|
43
|
+
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
44
|
+
};
|
|
45
|
+
const saveScorecard = (card) => {
|
|
46
|
+
const config = loadConfig();
|
|
47
|
+
const dir = safePath(cwd, config.scorecardDir);
|
|
48
|
+
if (!fs.existsSync(dir)) {
|
|
49
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
50
|
+
}
|
|
51
|
+
const filename = `sprint-${card.sprint_number}.json`;
|
|
52
|
+
const filePath = path.join(dir, filename);
|
|
53
|
+
// Double-check the final path is safe
|
|
54
|
+
safePath(cwd, path.join(config.scorecardDir, filename));
|
|
55
|
+
fs.writeFileSync(filePath, JSON.stringify(card, null, 2) + '\n');
|
|
56
|
+
return filePath;
|
|
57
|
+
};
|
|
58
|
+
const loadRoadmap = () => {
|
|
59
|
+
const config = loadConfig();
|
|
60
|
+
const roadmapPath = config.roadmapPath;
|
|
61
|
+
const resolved = safePath(cwd, roadmapPath);
|
|
62
|
+
if (!fs.existsSync(resolved))
|
|
63
|
+
return null;
|
|
64
|
+
try {
|
|
65
|
+
const raw = JSON.parse(fs.readFileSync(resolved, 'utf8'));
|
|
66
|
+
const { roadmap } = core.parseRoadmap(raw);
|
|
67
|
+
return roadmap;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const readFile = (p) => {
|
|
74
|
+
const resolved = safePath(cwd, p);
|
|
75
|
+
return fs.readFileSync(resolved, 'utf8');
|
|
76
|
+
};
|
|
77
|
+
const writeFile = (p, content) => {
|
|
78
|
+
const resolved = safePath(cwd, p);
|
|
79
|
+
const dir = path.dirname(resolved);
|
|
80
|
+
if (!fs.existsSync(dir)) {
|
|
81
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
82
|
+
}
|
|
83
|
+
fs.writeFileSync(resolved, content);
|
|
84
|
+
};
|
|
85
|
+
const listFiles = (dir, pattern) => {
|
|
86
|
+
const resolved = safePath(cwd, dir ?? '.');
|
|
87
|
+
if (!fs.existsSync(resolved))
|
|
88
|
+
return [];
|
|
89
|
+
let entries = fs.readdirSync(resolved);
|
|
90
|
+
if (pattern) {
|
|
91
|
+
// Convert glob pattern to regex (supports basic * patterns)
|
|
92
|
+
const regexStr = '^' + pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.*') + '$';
|
|
93
|
+
const regex = new RegExp(regexStr);
|
|
94
|
+
entries = entries.filter((e) => regex.test(e));
|
|
95
|
+
}
|
|
96
|
+
return entries.sort();
|
|
97
|
+
};
|
|
98
|
+
return { loadConfig, loadScorecards, loadCommonIssues, loadSessions, loadRoadmap, saveScorecard, readFile, writeFile, listFiles };
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Run agent-written JS code in a sandboxed vm context.
|
|
102
|
+
*
|
|
103
|
+
* The context includes all @slope-dev/slope exports as top-level names,
|
|
104
|
+
* all constants, and filesystem helpers pre-bound to `cwd`.
|
|
105
|
+
*
|
|
106
|
+
* Code is wrapped in an async IIFE so `return` works naturally.
|
|
107
|
+
* Console output is captured to a logs buffer.
|
|
108
|
+
*/
|
|
109
|
+
export async function runInSandbox(code, cwd) {
|
|
110
|
+
const logs = [];
|
|
111
|
+
// Build console proxy
|
|
112
|
+
const sandboxConsole = {
|
|
113
|
+
log: (...args) => logs.push(args.map(String).join(' ')),
|
|
114
|
+
error: (...args) => logs.push('[error] ' + args.map(String).join(' ')),
|
|
115
|
+
warn: (...args) => logs.push('[warn] ' + args.map(String).join(' ')),
|
|
116
|
+
info: (...args) => logs.push(args.map(String).join(' ')),
|
|
117
|
+
};
|
|
118
|
+
// Build context with all core exports + fs helpers + constants
|
|
119
|
+
const fsHelpers = buildFsHelpers(cwd);
|
|
120
|
+
const context = {
|
|
121
|
+
...core,
|
|
122
|
+
...fsHelpers,
|
|
123
|
+
console: sandboxConsole,
|
|
124
|
+
JSON,
|
|
125
|
+
Math,
|
|
126
|
+
Date,
|
|
127
|
+
Array,
|
|
128
|
+
Object,
|
|
129
|
+
String,
|
|
130
|
+
Number,
|
|
131
|
+
Boolean,
|
|
132
|
+
RegExp,
|
|
133
|
+
Map,
|
|
134
|
+
Set,
|
|
135
|
+
Promise,
|
|
136
|
+
Error,
|
|
137
|
+
TypeError,
|
|
138
|
+
RangeError,
|
|
139
|
+
parseInt,
|
|
140
|
+
parseFloat,
|
|
141
|
+
isNaN,
|
|
142
|
+
isFinite,
|
|
143
|
+
undefined,
|
|
144
|
+
NaN,
|
|
145
|
+
Infinity,
|
|
146
|
+
};
|
|
147
|
+
vm.createContext(context);
|
|
148
|
+
const wrappedCode = `(async () => { ${code} })()`;
|
|
149
|
+
const script = new vm.Script(wrappedCode, { filename: 'slope-execute.js' });
|
|
150
|
+
const rawResult = await script.runInContext(context, { timeout: 30_000 });
|
|
151
|
+
return { result: rawResult, logs };
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/mcp/sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { SprintClaim, GolfScorecard, SlopeEvent } from '../core/index.js';
|
|
2
|
+
import type { CommonIssuesFile } from '../core/index.js';
|
|
3
|
+
import type { SlopeStore, SlopeSession } from '../core/index.js';
|
|
4
|
+
export declare class SqliteSlopeStore implements SlopeStore {
|
|
5
|
+
private db;
|
|
6
|
+
constructor(dbPath: string);
|
|
7
|
+
/** Versioned migration framework — runs each migration exactly once */
|
|
8
|
+
private migrate;
|
|
9
|
+
/** Get current schema version (0 if no migrations applied) */
|
|
10
|
+
getSchemaVersion(): number;
|
|
11
|
+
registerSession(session: Omit<SlopeSession, 'started_at' | 'last_heartbeat_at'>): Promise<SlopeSession>;
|
|
12
|
+
removeSession(sessionId: string): Promise<boolean>;
|
|
13
|
+
getActiveSessions(): Promise<SlopeSession[]>;
|
|
14
|
+
getSessionsBySwarm(swarmId: string): Promise<SlopeSession[]>;
|
|
15
|
+
updateHeartbeat(sessionId: string): Promise<void>;
|
|
16
|
+
cleanStaleSessions(maxAgeMs: number): Promise<number>;
|
|
17
|
+
claim(input: Omit<SprintClaim, 'id' | 'claimed_at'>): Promise<SprintClaim>;
|
|
18
|
+
release(id: string): Promise<boolean>;
|
|
19
|
+
list(sprintNumber: number): Promise<SprintClaim[]>;
|
|
20
|
+
get(id: string): Promise<SprintClaim | undefined>;
|
|
21
|
+
getActiveClaims(sprintNumber?: number): Promise<SprintClaim[]>;
|
|
22
|
+
saveScorecard(card: GolfScorecard): Promise<void>;
|
|
23
|
+
listScorecards(filter?: {
|
|
24
|
+
minSprint?: number;
|
|
25
|
+
maxSprint?: number;
|
|
26
|
+
}): Promise<GolfScorecard[]>;
|
|
27
|
+
loadCommonIssues(): Promise<CommonIssuesFile>;
|
|
28
|
+
saveCommonIssues(issues: CommonIssuesFile): Promise<void>;
|
|
29
|
+
insertEvent(event: Omit<SlopeEvent, 'id' | 'timestamp'>): Promise<SlopeEvent>;
|
|
30
|
+
getEventsBySession(sessionId: string): Promise<SlopeEvent[]>;
|
|
31
|
+
getEventsBySprint(sprintNumber: number): Promise<SlopeEvent[]>;
|
|
32
|
+
getEventsByTicket(ticketKey: string): Promise<SlopeEvent[]>;
|
|
33
|
+
close(): void;
|
|
34
|
+
}
|
|
35
|
+
/** Create a SlopeStore backed by SQLite */
|
|
36
|
+
export declare function createStore(opts: {
|
|
37
|
+
storePath: string;
|
|
38
|
+
cwd?: string;
|
|
39
|
+
}): SlopeStore;
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAoFjE,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,EAAE,CAAe;gBAEb,MAAM,EAAE,MAAM;IAQ1B,uEAAuE;IACvE,OAAO,CAAC,OAAO;IAoBf,8DAA8D;IAC9D,gBAAgB,IAAI,MAAM;IAOpB,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,mBAAmB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAkCvG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlD,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAK5C,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAM5D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQrD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,YAAY,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAiC1E,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAMlD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKjD,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAW9D,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoB7F,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQ7C,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IASzD,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAuB7E,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAM5D,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAM9D,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAQjE,KAAK,IAAI,IAAI;CAGd;AA8CD,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAGjF"}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
// SLOPE — SQLite Storage Adapter
|
|
2
|
+
// Implements SlopeStore backed by better-sqlite3 with WAL mode.
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { mkdirSync } from 'node:fs';
|
|
5
|
+
import { dirname } from 'node:path';
|
|
6
|
+
import Database from 'better-sqlite3';
|
|
7
|
+
import { SlopeStoreError } from '../core/index.js';
|
|
8
|
+
function generateId(prefix) {
|
|
9
|
+
return `${prefix}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
10
|
+
}
|
|
11
|
+
function nowISO() {
|
|
12
|
+
return new Date().toISOString();
|
|
13
|
+
}
|
|
14
|
+
/** Sequential schema migrations — each runs exactly once */
|
|
15
|
+
const MIGRATIONS = [
|
|
16
|
+
{
|
|
17
|
+
version: 1,
|
|
18
|
+
sql: `
|
|
19
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
20
|
+
session_id TEXT PRIMARY KEY,
|
|
21
|
+
role TEXT NOT NULL,
|
|
22
|
+
ide TEXT NOT NULL,
|
|
23
|
+
worktree_path TEXT,
|
|
24
|
+
branch TEXT,
|
|
25
|
+
started_at TEXT NOT NULL,
|
|
26
|
+
last_heartbeat_at TEXT NOT NULL,
|
|
27
|
+
metadata TEXT
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
CREATE TABLE IF NOT EXISTS claims (
|
|
31
|
+
id TEXT PRIMARY KEY,
|
|
32
|
+
session_id TEXT REFERENCES sessions(session_id) ON DELETE CASCADE,
|
|
33
|
+
sprint_number INTEGER NOT NULL,
|
|
34
|
+
target TEXT NOT NULL,
|
|
35
|
+
player TEXT NOT NULL,
|
|
36
|
+
scope TEXT NOT NULL,
|
|
37
|
+
claimed_at TEXT NOT NULL,
|
|
38
|
+
expires_at TEXT,
|
|
39
|
+
notes TEXT,
|
|
40
|
+
metadata TEXT,
|
|
41
|
+
UNIQUE(sprint_number, scope, target)
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
CREATE TABLE IF NOT EXISTS scorecards (
|
|
45
|
+
sprint_number INTEGER PRIMARY KEY,
|
|
46
|
+
data TEXT NOT NULL,
|
|
47
|
+
created_at TEXT NOT NULL,
|
|
48
|
+
updated_at TEXT NOT NULL
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
CREATE TABLE IF NOT EXISTS common_issues (
|
|
52
|
+
id INTEGER PRIMARY KEY DEFAULT 1,
|
|
53
|
+
data TEXT NOT NULL,
|
|
54
|
+
updated_at TEXT NOT NULL
|
|
55
|
+
);
|
|
56
|
+
`,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
version: 2,
|
|
60
|
+
sql: `
|
|
61
|
+
CREATE TABLE IF NOT EXISTS events (
|
|
62
|
+
id TEXT PRIMARY KEY,
|
|
63
|
+
session_id TEXT,
|
|
64
|
+
type TEXT NOT NULL,
|
|
65
|
+
timestamp TEXT NOT NULL,
|
|
66
|
+
data TEXT NOT NULL DEFAULT '{}',
|
|
67
|
+
sprint_number INTEGER,
|
|
68
|
+
ticket_key TEXT
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_events_session ON events(session_id);
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_events_sprint ON events(sprint_number);
|
|
73
|
+
CREATE INDEX IF NOT EXISTS idx_events_ticket ON events(ticket_key);
|
|
74
|
+
CREATE INDEX IF NOT EXISTS idx_events_type ON events(type);
|
|
75
|
+
`,
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
version: 3,
|
|
79
|
+
sql: `
|
|
80
|
+
ALTER TABLE sessions ADD COLUMN agent_role TEXT;
|
|
81
|
+
ALTER TABLE sessions ADD COLUMN swarm_id TEXT;
|
|
82
|
+
|
|
83
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_swarm ON sessions(swarm_id);
|
|
84
|
+
`,
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
export class SqliteSlopeStore {
|
|
88
|
+
db;
|
|
89
|
+
constructor(dbPath) {
|
|
90
|
+
mkdirSync(dirname(dbPath), { recursive: true });
|
|
91
|
+
this.db = new Database(dbPath);
|
|
92
|
+
this.db.pragma('journal_mode = WAL');
|
|
93
|
+
this.db.pragma('foreign_keys = ON');
|
|
94
|
+
this.migrate();
|
|
95
|
+
}
|
|
96
|
+
/** Versioned migration framework — runs each migration exactly once */
|
|
97
|
+
migrate() {
|
|
98
|
+
// Bootstrap schema_version table
|
|
99
|
+
this.db.exec(`
|
|
100
|
+
CREATE TABLE IF NOT EXISTS schema_version (
|
|
101
|
+
version INTEGER PRIMARY KEY,
|
|
102
|
+
applied_at TEXT NOT NULL
|
|
103
|
+
);
|
|
104
|
+
`);
|
|
105
|
+
const currentVersion = this.getSchemaVersion();
|
|
106
|
+
for (const migration of MIGRATIONS) {
|
|
107
|
+
if (migration.version > currentVersion) {
|
|
108
|
+
this.db.exec(migration.sql);
|
|
109
|
+
this.db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)')
|
|
110
|
+
.run(migration.version, nowISO());
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** Get current schema version (0 if no migrations applied) */
|
|
115
|
+
getSchemaVersion() {
|
|
116
|
+
const row = this.db.prepare('SELECT MAX(version) as v FROM schema_version').get();
|
|
117
|
+
return row?.v ?? 0;
|
|
118
|
+
}
|
|
119
|
+
// --- Sessions ---
|
|
120
|
+
async registerSession(session) {
|
|
121
|
+
const now = nowISO();
|
|
122
|
+
const full = {
|
|
123
|
+
...session,
|
|
124
|
+
started_at: now,
|
|
125
|
+
last_heartbeat_at: now,
|
|
126
|
+
};
|
|
127
|
+
try {
|
|
128
|
+
this.db.prepare(`
|
|
129
|
+
INSERT INTO sessions (session_id, role, ide, worktree_path, branch, started_at, last_heartbeat_at, metadata, agent_role, swarm_id)
|
|
130
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
131
|
+
`).run(full.session_id, full.role, full.ide, full.worktree_path ?? null, full.branch ?? null, full.started_at, full.last_heartbeat_at, full.metadata ? JSON.stringify(full.metadata) : null, full.agent_role ?? null, full.swarm_id ?? null);
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
if (err instanceof Error && err.message.includes('UNIQUE constraint')) {
|
|
135
|
+
throw new SlopeStoreError('SESSION_CONFLICT', `Session "${session.session_id}" already exists`);
|
|
136
|
+
}
|
|
137
|
+
throw err;
|
|
138
|
+
}
|
|
139
|
+
return full;
|
|
140
|
+
}
|
|
141
|
+
async removeSession(sessionId) {
|
|
142
|
+
const result = this.db.prepare('DELETE FROM sessions WHERE session_id = ?').run(sessionId);
|
|
143
|
+
return result.changes > 0;
|
|
144
|
+
}
|
|
145
|
+
async getActiveSessions() {
|
|
146
|
+
const rows = this.db.prepare('SELECT * FROM sessions ORDER BY started_at DESC').all();
|
|
147
|
+
return rows.map(rowToSession);
|
|
148
|
+
}
|
|
149
|
+
async getSessionsBySwarm(swarmId) {
|
|
150
|
+
const rows = this.db.prepare('SELECT * FROM sessions WHERE swarm_id = ? ORDER BY started_at')
|
|
151
|
+
.all(swarmId);
|
|
152
|
+
return rows.map(rowToSession);
|
|
153
|
+
}
|
|
154
|
+
async updateHeartbeat(sessionId) {
|
|
155
|
+
const result = this.db.prepare('UPDATE sessions SET last_heartbeat_at = ? WHERE session_id = ?')
|
|
156
|
+
.run(nowISO(), sessionId);
|
|
157
|
+
if (result.changes === 0) {
|
|
158
|
+
throw new SlopeStoreError('NOT_FOUND', `Session "${sessionId}" not found`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
async cleanStaleSessions(maxAgeMs) {
|
|
162
|
+
const cutoff = new Date(Date.now() - maxAgeMs).toISOString();
|
|
163
|
+
const result = this.db.prepare('DELETE FROM sessions WHERE last_heartbeat_at < ?').run(cutoff);
|
|
164
|
+
return result.changes;
|
|
165
|
+
}
|
|
166
|
+
// --- Claims (SprintRegistry + extensions) ---
|
|
167
|
+
async claim(input) {
|
|
168
|
+
const claim = {
|
|
169
|
+
id: generateId('claim'),
|
|
170
|
+
claimed_at: nowISO(),
|
|
171
|
+
...input,
|
|
172
|
+
};
|
|
173
|
+
try {
|
|
174
|
+
this.db.prepare(`
|
|
175
|
+
INSERT INTO claims (id, session_id, sprint_number, target, player, scope, claimed_at, expires_at, notes, metadata)
|
|
176
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
177
|
+
`).run(claim.id, claim.session_id ?? null, claim.sprint_number, claim.target, claim.player, claim.scope, claim.claimed_at, claim.expires_at ?? null, claim.notes ?? null, claim.metadata ? JSON.stringify(claim.metadata) : null);
|
|
178
|
+
}
|
|
179
|
+
catch (err) {
|
|
180
|
+
if (err instanceof Error && err.message.includes('UNIQUE constraint')) {
|
|
181
|
+
throw new SlopeStoreError('CLAIM_EXISTS', `Claim already exists for target "${input.target}" in sprint ${input.sprint_number}`);
|
|
182
|
+
}
|
|
183
|
+
throw err;
|
|
184
|
+
}
|
|
185
|
+
return claim;
|
|
186
|
+
}
|
|
187
|
+
async release(id) {
|
|
188
|
+
const result = this.db.prepare('DELETE FROM claims WHERE id = ?').run(id);
|
|
189
|
+
return result.changes > 0;
|
|
190
|
+
}
|
|
191
|
+
async list(sprintNumber) {
|
|
192
|
+
const rows = this.db.prepare('SELECT * FROM claims WHERE sprint_number = ? ORDER BY claimed_at')
|
|
193
|
+
.all(sprintNumber);
|
|
194
|
+
return rows.map(rowToClaim);
|
|
195
|
+
}
|
|
196
|
+
async get(id) {
|
|
197
|
+
const row = this.db.prepare('SELECT * FROM claims WHERE id = ?').get(id);
|
|
198
|
+
return row ? rowToClaim(row) : undefined;
|
|
199
|
+
}
|
|
200
|
+
async getActiveClaims(sprintNumber) {
|
|
201
|
+
if (sprintNumber !== undefined) {
|
|
202
|
+
return this.list(sprintNumber);
|
|
203
|
+
}
|
|
204
|
+
const rows = this.db.prepare('SELECT * FROM claims ORDER BY sprint_number, claimed_at')
|
|
205
|
+
.all();
|
|
206
|
+
return rows.map(rowToClaim);
|
|
207
|
+
}
|
|
208
|
+
// --- Scorecards ---
|
|
209
|
+
async saveScorecard(card) {
|
|
210
|
+
const now = nowISO();
|
|
211
|
+
this.db.prepare(`
|
|
212
|
+
INSERT INTO scorecards (sprint_number, data, created_at, updated_at)
|
|
213
|
+
VALUES (?, ?, ?, ?)
|
|
214
|
+
ON CONFLICT(sprint_number) DO UPDATE SET data = excluded.data, updated_at = excluded.updated_at
|
|
215
|
+
`).run(card.sprint_number, JSON.stringify(card), now, now);
|
|
216
|
+
}
|
|
217
|
+
async listScorecards(filter) {
|
|
218
|
+
let sql = 'SELECT data FROM scorecards WHERE 1=1';
|
|
219
|
+
const params = [];
|
|
220
|
+
if (filter?.minSprint !== undefined) {
|
|
221
|
+
sql += ' AND sprint_number >= ?';
|
|
222
|
+
params.push(filter.minSprint);
|
|
223
|
+
}
|
|
224
|
+
if (filter?.maxSprint !== undefined) {
|
|
225
|
+
sql += ' AND sprint_number <= ?';
|
|
226
|
+
params.push(filter.maxSprint);
|
|
227
|
+
}
|
|
228
|
+
sql += ' ORDER BY sprint_number';
|
|
229
|
+
const rows = this.db.prepare(sql).all(...params);
|
|
230
|
+
return rows.map(r => JSON.parse(r.data));
|
|
231
|
+
}
|
|
232
|
+
// --- Common Issues ---
|
|
233
|
+
async loadCommonIssues() {
|
|
234
|
+
const row = this.db.prepare('SELECT data FROM common_issues WHERE id = 1').get();
|
|
235
|
+
if (!row) {
|
|
236
|
+
return { recurring_patterns: [] };
|
|
237
|
+
}
|
|
238
|
+
return JSON.parse(row.data);
|
|
239
|
+
}
|
|
240
|
+
async saveCommonIssues(issues) {
|
|
241
|
+
this.db.prepare(`
|
|
242
|
+
INSERT INTO common_issues (id, data, updated_at) VALUES (1, ?, ?)
|
|
243
|
+
ON CONFLICT(id) DO UPDATE SET data = excluded.data, updated_at = excluded.updated_at
|
|
244
|
+
`).run(JSON.stringify(issues), nowISO());
|
|
245
|
+
}
|
|
246
|
+
// --- Events ---
|
|
247
|
+
async insertEvent(event) {
|
|
248
|
+
const full = {
|
|
249
|
+
id: generateId('evt'),
|
|
250
|
+
timestamp: nowISO(),
|
|
251
|
+
...event,
|
|
252
|
+
};
|
|
253
|
+
this.db.prepare(`
|
|
254
|
+
INSERT INTO events (id, session_id, type, timestamp, data, sprint_number, ticket_key)
|
|
255
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
256
|
+
`).run(full.id, full.session_id ?? null, full.type, full.timestamp, JSON.stringify(full.data), full.sprint_number ?? null, full.ticket_key ?? null);
|
|
257
|
+
return full;
|
|
258
|
+
}
|
|
259
|
+
async getEventsBySession(sessionId) {
|
|
260
|
+
const rows = this.db.prepare('SELECT * FROM events WHERE session_id = ? ORDER BY timestamp')
|
|
261
|
+
.all(sessionId);
|
|
262
|
+
return rows.map(rowToEvent);
|
|
263
|
+
}
|
|
264
|
+
async getEventsBySprint(sprintNumber) {
|
|
265
|
+
const rows = this.db.prepare('SELECT * FROM events WHERE sprint_number = ? ORDER BY timestamp')
|
|
266
|
+
.all(sprintNumber);
|
|
267
|
+
return rows.map(rowToEvent);
|
|
268
|
+
}
|
|
269
|
+
async getEventsByTicket(ticketKey) {
|
|
270
|
+
const rows = this.db.prepare('SELECT * FROM events WHERE ticket_key = ? ORDER BY timestamp')
|
|
271
|
+
.all(ticketKey);
|
|
272
|
+
return rows.map(rowToEvent);
|
|
273
|
+
}
|
|
274
|
+
// --- Lifecycle ---
|
|
275
|
+
close() {
|
|
276
|
+
this.db.close();
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// --- Row mappers ---
|
|
280
|
+
function rowToSession(row) {
|
|
281
|
+
return {
|
|
282
|
+
session_id: row.session_id,
|
|
283
|
+
role: row.role,
|
|
284
|
+
ide: row.ide,
|
|
285
|
+
worktree_path: row.worktree_path ?? undefined,
|
|
286
|
+
branch: row.branch ?? undefined,
|
|
287
|
+
started_at: row.started_at,
|
|
288
|
+
last_heartbeat_at: row.last_heartbeat_at,
|
|
289
|
+
metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
|
|
290
|
+
agent_role: row.agent_role ?? undefined,
|
|
291
|
+
swarm_id: row.swarm_id ?? undefined,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
function rowToClaim(row) {
|
|
295
|
+
return {
|
|
296
|
+
id: row.id,
|
|
297
|
+
sprint_number: row.sprint_number,
|
|
298
|
+
player: row.player,
|
|
299
|
+
target: row.target,
|
|
300
|
+
scope: row.scope,
|
|
301
|
+
claimed_at: row.claimed_at,
|
|
302
|
+
notes: row.notes ?? undefined,
|
|
303
|
+
session_id: row.session_id ?? undefined,
|
|
304
|
+
expires_at: row.expires_at ?? undefined,
|
|
305
|
+
metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
function rowToEvent(row) {
|
|
309
|
+
return {
|
|
310
|
+
id: row.id,
|
|
311
|
+
session_id: row.session_id ?? undefined,
|
|
312
|
+
type: row.type,
|
|
313
|
+
timestamp: row.timestamp,
|
|
314
|
+
data: row.data ? JSON.parse(row.data) : {},
|
|
315
|
+
sprint_number: row.sprint_number ?? undefined,
|
|
316
|
+
ticket_key: row.ticket_key ?? undefined,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
/** Create a SlopeStore backed by SQLite */
|
|
320
|
+
export function createStore(opts) {
|
|
321
|
+
const fullPath = opts.cwd ? join(opts.cwd, opts.storePath) : opts.storePath;
|
|
322
|
+
return new SqliteSlopeStore(fullPath);
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare const brand: {
|
|
2
|
+
readonly forest: "#1B5E3B";
|
|
3
|
+
readonly emerald: "#4AE68A";
|
|
4
|
+
readonly gold: "#D4A843";
|
|
5
|
+
};
|
|
6
|
+
export declare const background: {
|
|
7
|
+
readonly page: "#f8fafc";
|
|
8
|
+
readonly surface: "#ffffff";
|
|
9
|
+
readonly muted: "#f1f5f9";
|
|
10
|
+
};
|
|
11
|
+
export declare const text: {
|
|
12
|
+
readonly primary: "#1e293b";
|
|
13
|
+
readonly secondary: "#475569";
|
|
14
|
+
readonly tertiary: "#334155";
|
|
15
|
+
readonly muted: "#64748b";
|
|
16
|
+
readonly faint: "#94a3b8";
|
|
17
|
+
};
|
|
18
|
+
export declare const border: {
|
|
19
|
+
readonly default: "#e2e8f0";
|
|
20
|
+
readonly subtle: "#f1f5f9";
|
|
21
|
+
readonly accent: "#3b82f6";
|
|
22
|
+
readonly warning: "#fde68a";
|
|
23
|
+
};
|
|
24
|
+
export declare const status: {
|
|
25
|
+
readonly green: "#22c55e";
|
|
26
|
+
readonly red: "#ef4444";
|
|
27
|
+
readonly amber: "#f59e0b";
|
|
28
|
+
readonly blue: "#3b82f6";
|
|
29
|
+
readonly purple: "#8b5cf6";
|
|
30
|
+
readonly orange: "#f97316";
|
|
31
|
+
};
|
|
32
|
+
export declare const chart: {
|
|
33
|
+
readonly parBar: "#cbd5e1";
|
|
34
|
+
readonly underPar: "#22c55e";
|
|
35
|
+
readonly atPar: "#3b82f6";
|
|
36
|
+
readonly overPar: "#ef4444";
|
|
37
|
+
readonly heatmapBase: "#f8fafc";
|
|
38
|
+
readonly heatmapHot: "#ef4444";
|
|
39
|
+
};
|
|
40
|
+
export declare const semantic: {
|
|
41
|
+
readonly over: "#ef4444";
|
|
42
|
+
readonly under: "#22c55e";
|
|
43
|
+
readonly even: "#64748b";
|
|
44
|
+
readonly warn: "#ef4444";
|
|
45
|
+
readonly hazardHeading: "#92400e";
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=colors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/tokens/colors.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK;;;;CAIR,CAAC;AAIX,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAIX,eAAO,MAAM,IAAI;;;;;;CAMP,CAAC;AAIX,eAAO,MAAM,MAAM;;;;;CAKT,CAAC;AAIX,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAC;AAIX,eAAO,MAAM,KAAK;;;;;;;CAOR,CAAC;AAIX,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAC"}
|