@slope-dev/slope 1.13.0 → 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +118 -189
  2. package/dist/adapters.d.ts +15 -0
  3. package/dist/adapters.d.ts.map +1 -0
  4. package/dist/adapters.js +17 -0
  5. package/dist/adapters.js.map +1 -0
  6. package/dist/cli/commands/guard.d.ts +19 -0
  7. package/dist/cli/commands/guard.d.ts.map +1 -1
  8. package/dist/cli/commands/guard.js +89 -1
  9. package/dist/cli/commands/guard.js.map +1 -1
  10. package/dist/cli/commands/hook.d.ts +5 -0
  11. package/dist/cli/commands/hook.d.ts.map +1 -1
  12. package/dist/cli/commands/hook.js +59 -83
  13. package/dist/cli/commands/hook.js.map +1 -1
  14. package/dist/cli/commands/init.d.ts +13 -4
  15. package/dist/cli/commands/init.d.ts.map +1 -1
  16. package/dist/cli/commands/init.js +309 -16
  17. package/dist/cli/commands/init.js.map +1 -1
  18. package/dist/cli/commands/metaphor.d.ts +3 -0
  19. package/dist/cli/commands/metaphor.d.ts.map +1 -0
  20. package/dist/cli/commands/metaphor.js +100 -0
  21. package/dist/cli/commands/metaphor.js.map +1 -0
  22. package/dist/cli/commands/roadmap.d.ts.map +1 -1
  23. package/dist/cli/commands/roadmap.js +94 -1
  24. package/dist/cli/commands/roadmap.js.map +1 -1
  25. package/dist/cli/commands/store.d.ts +2 -0
  26. package/dist/cli/commands/store.d.ts.map +1 -0
  27. package/dist/cli/commands/store.js +204 -0
  28. package/dist/cli/commands/store.js.map +1 -0
  29. package/dist/cli/guards/branch-before-commit.d.ts +7 -0
  30. package/dist/cli/guards/branch-before-commit.d.ts.map +1 -0
  31. package/dist/cli/guards/branch-before-commit.js +43 -0
  32. package/dist/cli/guards/branch-before-commit.js.map +1 -0
  33. package/dist/cli/guards/stop-check.d.ts +4 -0
  34. package/dist/cli/guards/stop-check.d.ts.map +1 -1
  35. package/dist/cli/guards/stop-check.js +50 -16
  36. package/dist/cli/guards/stop-check.js.map +1 -1
  37. package/dist/cli/index.js +20 -1
  38. package/dist/cli/index.js.map +1 -1
  39. package/dist/cli/registry.d.ts.map +1 -1
  40. package/dist/cli/registry.js +2 -0
  41. package/dist/cli/registry.js.map +1 -1
  42. package/dist/cli/store.d.ts +9 -0
  43. package/dist/cli/store.d.ts.map +1 -1
  44. package/dist/cli/store.js +29 -0
  45. package/dist/cli/store.js.map +1 -1
  46. package/dist/cli/template-generator.d.ts +1 -1
  47. package/dist/cli/template-generator.d.ts.map +1 -1
  48. package/dist/cli/template-generator.js +5 -3
  49. package/dist/cli/template-generator.js.map +1 -1
  50. package/dist/core/adapters/claude-code.d.ts +28 -0
  51. package/dist/core/adapters/claude-code.d.ts.map +1 -0
  52. package/dist/core/adapters/claude-code.js +148 -0
  53. package/dist/core/adapters/claude-code.js.map +1 -0
  54. package/dist/core/adapters/cline.d.ts +36 -0
  55. package/dist/core/adapters/cline.d.ts.map +1 -0
  56. package/dist/core/adapters/cline.js +279 -0
  57. package/dist/core/adapters/cline.js.map +1 -0
  58. package/dist/core/adapters/cursor.d.ts +38 -0
  59. package/dist/core/adapters/cursor.d.ts.map +1 -0
  60. package/dist/core/adapters/cursor.js +143 -0
  61. package/dist/core/adapters/cursor.js.map +1 -0
  62. package/dist/core/adapters/generic.d.ts +29 -0
  63. package/dist/core/adapters/generic.d.ts.map +1 -0
  64. package/dist/core/adapters/generic.js +142 -0
  65. package/dist/core/adapters/generic.js.map +1 -0
  66. package/dist/core/adapters/windsurf.d.ts +37 -0
  67. package/dist/core/adapters/windsurf.d.ts.map +1 -0
  68. package/dist/core/adapters/windsurf.js +170 -0
  69. package/dist/core/adapters/windsurf.js.map +1 -0
  70. package/dist/core/config.d.ts +3 -0
  71. package/dist/core/config.d.ts.map +1 -1
  72. package/dist/core/config.js +9 -0
  73. package/dist/core/config.js.map +1 -1
  74. package/dist/core/guard.d.ts +10 -3
  75. package/dist/core/guard.d.ts.map +1 -1
  76. package/dist/core/guard.js +33 -59
  77. package/dist/core/guard.js.map +1 -1
  78. package/dist/core/harness.d.ts +61 -0
  79. package/dist/core/harness.d.ts.map +1 -0
  80. package/dist/core/harness.js +88 -0
  81. package/dist/core/harness.js.map +1 -0
  82. package/dist/core/index.d.ts +15 -5
  83. package/dist/core/index.d.ts.map +1 -1
  84. package/dist/core/index.js +13 -3
  85. package/dist/core/index.js.map +1 -1
  86. package/dist/core/interview.js +1 -1
  87. package/dist/core/interview.js.map +1 -1
  88. package/dist/core/metaphor.d.ts +14 -0
  89. package/dist/core/metaphor.d.ts.map +1 -1
  90. package/dist/core/metaphor.js +14 -0
  91. package/dist/core/metaphor.js.map +1 -1
  92. package/dist/core/plugins.d.ts +12 -0
  93. package/dist/core/plugins.d.ts.map +1 -1
  94. package/dist/core/plugins.js +58 -1
  95. package/dist/core/plugins.js.map +1 -1
  96. package/dist/core/roadmap.d.ts.map +1 -1
  97. package/dist/core/roadmap.js +5 -4
  98. package/dist/core/roadmap.js.map +1 -1
  99. package/dist/core/store-health.d.ts +11 -0
  100. package/dist/core/store-health.d.ts.map +1 -0
  101. package/dist/core/store-health.js +26 -0
  102. package/dist/core/store-health.js.map +1 -0
  103. package/dist/core/store.d.ts +10 -0
  104. package/dist/core/store.d.ts.map +1 -1
  105. package/dist/core/store.js.map +1 -1
  106. package/dist/mcp/index.d.ts +2 -2
  107. package/dist/mcp/index.d.ts.map +1 -1
  108. package/dist/mcp/index.js +55 -6
  109. package/dist/mcp/index.js.map +1 -1
  110. package/dist/mcp/index.test.js +7 -4
  111. package/dist/mcp/index.test.js.map +1 -1
  112. package/dist/mcp/registry.d.ts.map +1 -1
  113. package/dist/mcp/registry.js +32 -3
  114. package/dist/mcp/registry.js.map +1 -1
  115. package/dist/mcp/sandbox.d.ts.map +1 -1
  116. package/dist/mcp/sandbox.js +7 -1
  117. package/dist/mcp/sandbox.js.map +1 -1
  118. package/dist/store/index.d.ts +8 -2
  119. package/dist/store/index.d.ts.map +1 -1
  120. package/dist/store/index.js +27 -3
  121. package/dist/store/index.js.map +1 -1
  122. package/dist/store-pg/index.d.ts +3 -0
  123. package/dist/store-pg/index.d.ts.map +1 -1
  124. package/dist/store-pg/index.js +49 -1
  125. package/dist/store-pg/index.js.map +1 -1
  126. package/package.json +16 -7
@@ -1,11 +1,13 @@
1
1
  // SLOPE Guard Framework
2
2
  // Types and utilities for agent guidance hooks.
3
+ import { getAdapter } from './harness.js';
3
4
  /** All guard definitions */
4
5
  export const GUARD_DEFINITIONS = [
5
6
  {
6
7
  name: 'explore',
7
8
  description: 'Suggest checking codebase index before deep exploration',
8
9
  hookEvent: 'PreToolUse',
10
+ toolCategories: ['read_file', 'search_files', 'search_content'],
9
11
  matcher: 'Read|Glob|Grep',
10
12
  level: 'full',
11
13
  },
@@ -13,6 +15,7 @@ export const GUARD_DEFINITIONS = [
13
15
  name: 'hazard',
14
16
  description: 'Warn about known issues in file areas being edited',
15
17
  hookEvent: 'PreToolUse',
18
+ toolCategories: ['write_file'],
16
19
  matcher: 'Edit|Write',
17
20
  level: 'full',
18
21
  },
@@ -20,6 +23,7 @@ export const GUARD_DEFINITIONS = [
20
23
  name: 'commit-nudge',
21
24
  description: 'Nudge to commit/push after prolonged editing',
22
25
  hookEvent: 'PostToolUse',
26
+ toolCategories: ['write_file'],
23
27
  matcher: 'Edit|Write',
24
28
  level: 'full',
25
29
  },
@@ -27,6 +31,7 @@ export const GUARD_DEFINITIONS = [
27
31
  name: 'scope-drift',
28
32
  description: 'Warn when editing files outside claimed ticket scope',
29
33
  hookEvent: 'PreToolUse',
34
+ toolCategories: ['write_file'],
30
35
  matcher: 'Edit|Write',
31
36
  level: 'full',
32
37
  },
@@ -46,6 +51,7 @@ export const GUARD_DEFINITIONS = [
46
51
  name: 'subagent-gate',
47
52
  description: 'Force haiku model and cap max_turns on Explore/Plan subagents',
48
53
  hookEvent: 'PreToolUse',
54
+ toolCategories: ['create_subagent'],
49
55
  matcher: 'Task',
50
56
  level: 'full',
51
57
  },
@@ -53,6 +59,7 @@ export const GUARD_DEFINITIONS = [
53
59
  name: 'push-nudge',
54
60
  description: 'Nudge to push after git commits when unpushed count or time is high',
55
61
  hookEvent: 'PostToolUse',
62
+ toolCategories: ['execute_command'],
56
63
  matcher: 'Bash',
57
64
  level: 'full',
58
65
  },
@@ -60,6 +67,7 @@ export const GUARD_DEFINITIONS = [
60
67
  name: 'workflow-gate',
61
68
  description: 'Block ExitPlanMode until review rounds are complete',
62
69
  hookEvent: 'PreToolUse',
70
+ toolCategories: ['exit_plan'],
63
71
  matcher: 'ExitPlanMode',
64
72
  level: 'full',
65
73
  },
@@ -67,6 +75,7 @@ export const GUARD_DEFINITIONS = [
67
75
  name: 'review-tier',
68
76
  description: 'Recommend review tier based on plan scope',
69
77
  hookEvent: 'PreToolUse',
78
+ toolCategories: ['exit_plan'],
70
79
  matcher: 'ExitPlanMode',
71
80
  level: 'full',
72
81
  },
@@ -74,6 +83,7 @@ export const GUARD_DEFINITIONS = [
74
83
  name: 'version-check',
75
84
  description: 'Block push to main when package versions have not been bumped',
76
85
  hookEvent: 'PreToolUse',
86
+ toolCategories: ['execute_command'],
77
87
  matcher: 'Bash',
78
88
  level: 'full',
79
89
  },
@@ -81,6 +91,7 @@ export const GUARD_DEFINITIONS = [
81
91
  name: 'stale-flows',
82
92
  description: 'Warn when editing files belonging to a stale flow definition',
83
93
  hookEvent: 'PreToolUse',
94
+ toolCategories: ['write_file'],
84
95
  matcher: 'Edit|Write',
85
96
  level: 'full',
86
97
  },
@@ -94,6 +105,7 @@ export const GUARD_DEFINITIONS = [
94
105
  name: 'pr-review',
95
106
  description: 'Prompt for review workflow after PR creation',
96
107
  hookEvent: 'PostToolUse',
108
+ toolCategories: ['execute_command'],
97
109
  matcher: 'Bash',
98
110
  level: 'full',
99
111
  },
@@ -101,7 +113,15 @@ export const GUARD_DEFINITIONS = [
101
113
  name: 'transcript',
102
114
  description: 'Append tool call metadata to session transcript',
103
115
  hookEvent: 'PostToolUse',
104
- // no matcher → fires on all tools
116
+ // no toolCategories, no matcher → fires on all tools
117
+ level: 'full',
118
+ },
119
+ {
120
+ name: 'branch-before-commit',
121
+ description: 'Block git commit on main/master — create a feature branch first',
122
+ hookEvent: 'PreToolUse',
123
+ toolCategories: ['execute_command'],
124
+ matcher: 'Bash',
105
125
  level: 'full',
106
126
  },
107
127
  ];
@@ -124,76 +144,30 @@ export function getCustomGuard(name) {
124
144
  export function clearCustomGuards() {
125
145
  customGuards.length = 0;
126
146
  }
127
- // --- Formatters ---
147
+ // --- Formatters (delegates to ClaudeCodeAdapter via registry lookup) ---
148
+ function getClaudeCodeAdapter() {
149
+ const adapter = getAdapter('claude-code');
150
+ if (!adapter)
151
+ throw new Error('ClaudeCodeAdapter not registered — ensure adapters/claude-code.js is imported');
152
+ return adapter;
153
+ }
128
154
  /** Format a GuardResult as PreToolUse JSON output */
129
155
  export function formatPreToolUseOutput(result) {
130
- return {
131
- hookSpecificOutput: {
132
- hookEventName: 'PreToolUse',
133
- ...(result.decision && { permissionDecision: result.decision }),
134
- ...(result.blockReason && { permissionDecisionReason: result.blockReason }),
135
- ...(result.context && { additionalContext: result.context }),
136
- },
137
- };
156
+ return getClaudeCodeAdapter().formatPreToolOutput(result);
138
157
  }
139
158
  /** Format a GuardResult as PostToolUse JSON output */
140
159
  export function formatPostToolUseOutput(result) {
141
- if (result.blockReason) {
142
- return {
143
- decision: 'block',
144
- reason: result.blockReason,
145
- hookSpecificOutput: {
146
- hookEventName: 'PostToolUse',
147
- ...(result.context && { additionalContext: result.context }),
148
- },
149
- };
150
- }
151
- if (result.context) {
152
- return {
153
- hookSpecificOutput: {
154
- hookEventName: 'PostToolUse',
155
- additionalContext: result.context,
156
- },
157
- };
158
- }
159
- return {};
160
+ return getClaudeCodeAdapter().formatPostToolOutput(result);
160
161
  }
161
162
  /** Format a GuardResult as Stop JSON output */
162
163
  export function formatStopOutput(result) {
163
- if (result.blockReason) {
164
- return { decision: 'block', reason: result.blockReason };
165
- }
166
- return {};
164
+ return getClaudeCodeAdapter().formatStopOutput(result);
167
165
  }
168
166
  /**
169
167
  * Generate Claude Code settings.json hooks configuration for installed guards.
170
- * Returns the `hooks` object to merge into .claude/settings.json.
168
+ * Delegates to ClaudeCodeAdapter.generateHooksConfig().
171
169
  */
172
170
  export function generateClaudeCodeHooksConfig(guards, guardScriptPath) {
173
- const config = {};
174
- // Group guards by hookEvent + matcher
175
- const groups = new Map();
176
- for (const g of guards) {
177
- const key = `${g.hookEvent}::${g.matcher ?? ''}`;
178
- const list = groups.get(key) || [];
179
- list.push(g);
180
- groups.set(key, list);
181
- }
182
- for (const [key, defs] of groups) {
183
- const [hookEvent, matcher] = key.split('::');
184
- if (!config[hookEvent])
185
- config[hookEvent] = [];
186
- const hooks = defs.map(d => ({
187
- type: 'command',
188
- command: `${guardScriptPath} ${d.name}`,
189
- timeout: 10,
190
- statusMessage: `SLOPE: ${d.description}`,
191
- }));
192
- const entry = { hooks };
193
- if (matcher)
194
- entry.matcher = matcher;
195
- config[hookEvent].push(entry);
196
- }
197
- return config;
171
+ return getClaudeCodeAdapter().generateHooksConfig(guards, guardScriptPath);
198
172
  }
199
173
  //# sourceMappingURL=guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/core/guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/core/guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { GuardResult, AnyGuardDefinition } from './guard.js';
2
+ /** Known AI coding harness identifiers (extensible via string for third-party adapters) */
3
+ export type HarnessId = 'claude-code' | 'cursor' | 'cline' | 'windsurf' | 'continue' | 'aider' | 'generic' | (string & {});
4
+ /** Tool categories that guards can match against (harness-agnostic) */
5
+ export type ToolCategory = 'read_file' | 'write_file' | 'search_files' | 'search_content' | 'execute_command' | 'create_subagent' | 'exit_plan';
6
+ /** All tool categories for iteration */
7
+ export declare const TOOL_CATEGORIES: ToolCategory[];
8
+ /** Maps tool categories to harness-specific tool name patterns */
9
+ export type ToolNameMap = Record<ToolCategory, string>;
10
+ /** Interface that all harness adapters must implement */
11
+ export interface HarnessAdapter {
12
+ /** Unique identifier for this harness */
13
+ id: HarnessId;
14
+ /** Human-readable display name */
15
+ displayName: string;
16
+ /** Maps tool categories to harness-specific tool names */
17
+ toolNames: ToolNameMap;
18
+ /** Format a GuardResult for PreToolUse hook output */
19
+ formatPreToolOutput(result: GuardResult): unknown;
20
+ /** Format a GuardResult for PostToolUse hook output */
21
+ formatPostToolOutput(result: GuardResult): unknown;
22
+ /** Format a GuardResult for Stop hook output */
23
+ formatStopOutput(result: GuardResult): unknown;
24
+ /** Generate hooks configuration for this harness */
25
+ generateHooksConfig(guards: AnyGuardDefinition[], guardScriptPath: string): unknown;
26
+ /** Install guard hooks into the project for this harness */
27
+ installGuards(cwd: string, guards: AnyGuardDefinition[]): void;
28
+ /** Detect whether this harness is active in the given directory */
29
+ detect(cwd: string): boolean;
30
+ /** Hook events this harness supports (e.g. PreToolUse, PostToolUse, Stop, PreCompact) */
31
+ readonly supportedEvents: ReadonlySet<string>;
32
+ /** Whether the harness can inject additionalContext into the agent's context */
33
+ readonly supportsContextInjection: boolean;
34
+ /** Return the path to this harness's hooks config file, or null if N/A */
35
+ hooksConfigPath(cwd: string): string | null;
36
+ }
37
+ /** Claude Code tool name mappings */
38
+ export declare const CLAUDE_CODE_TOOLS: ToolNameMap;
39
+ /** Detection order for adapters. First match wins. Generic is always last (fallback). */
40
+ export declare const ADAPTER_PRIORITY: HarnessId[];
41
+ /** Register a harness adapter. Idempotent — overwrites if id already registered. */
42
+ export declare function registerAdapter(adapter: HarnessAdapter): void;
43
+ /** Get a registered adapter by id. Returns undefined if not found. */
44
+ export declare function getAdapter(id: HarnessId): HarnessAdapter | undefined;
45
+ /** List all registered adapter ids. */
46
+ export declare function listAdapters(): HarnessId[];
47
+ /**
48
+ * Detect which harness is active in the given directory.
49
+ * Iterates ADAPTER_PRIORITY in order; first match wins.
50
+ * Falls back to generic if registered and no other adapter matches.
51
+ * Adapters not in ADAPTER_PRIORITY are checked after priority list (before generic).
52
+ */
53
+ export declare function detectAdapter(cwd: string): HarnessAdapter | undefined;
54
+ /** Clear all registered adapters (for testing). */
55
+ export declare function clearAdapters(): void;
56
+ /**
57
+ * Resolve tool categories to a matcher string for a specific harness.
58
+ * If categories is undefined, returns undefined (match all tools).
59
+ */
60
+ export declare function resolveToolMatcher(adapter: HarnessAdapter, categories: ToolCategory[] | undefined): string | undefined;
61
+ //# sourceMappingURL=harness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../src/core/harness.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIlE,2FAA2F;AAC3F,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE3H,uEAAuE;AACvE,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,YAAY,GACZ,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,WAAW,CAAC;AAEhB,wCAAwC;AACxC,eAAO,MAAM,eAAe,EAAE,YAAY,EAQzC,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAEvD,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,EAAE,EAAE,SAAS,CAAC;IACd,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,SAAS,EAAE,WAAW,CAAC;IACvB,sDAAsD;IACtD,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAClD,uDAAuD;IACvD,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IACnD,gDAAgD;IAChD,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/C,oDAAoD;IACpD,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC;IACpF,4DAA4D;IAC5D,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IAC/D,mEAAmE;IACnE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,gFAAgF;IAChF,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,0EAA0E;IAC1E,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC7C;AAID,qCAAqC;AACrC,eAAO,MAAM,iBAAiB,EAAE,WAQ/B,CAAC;AAIF,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAA8D,CAAC;AAMvG,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAEpE;AAED,uCAAuC;AACvC,wBAAgB,YAAY,IAAI,SAAS,EAAE,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAerE;AAED,mDAAmD;AACnD,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAUtH"}
@@ -0,0 +1,88 @@
1
+ // SLOPE Harness Adapter Framework
2
+ // Abstracts guard/hook integration from Claude Code to support multiple AI coding harnesses.
3
+ /** All tool categories for iteration */
4
+ export const TOOL_CATEGORIES = [
5
+ 'read_file',
6
+ 'write_file',
7
+ 'search_files',
8
+ 'search_content',
9
+ 'execute_command',
10
+ 'create_subagent',
11
+ 'exit_plan',
12
+ ];
13
+ // --- Claude Code Tool Name Map ---
14
+ /** Claude Code tool name mappings */
15
+ export const CLAUDE_CODE_TOOLS = {
16
+ read_file: 'Read',
17
+ write_file: 'Edit|Write',
18
+ search_files: 'Glob',
19
+ search_content: 'Grep',
20
+ execute_command: 'Bash',
21
+ create_subagent: 'Task',
22
+ exit_plan: 'ExitPlanMode',
23
+ };
24
+ // --- Adapter Priority ---
25
+ /** Detection order for adapters. First match wins. Generic is always last (fallback). */
26
+ export const ADAPTER_PRIORITY = ['claude-code', 'cursor', 'windsurf', 'cline', 'generic'];
27
+ // --- Adapter Registry ---
28
+ const adapters = new Map();
29
+ /** Register a harness adapter. Idempotent — overwrites if id already registered. */
30
+ export function registerAdapter(adapter) {
31
+ adapters.set(adapter.id, adapter);
32
+ }
33
+ /** Get a registered adapter by id. Returns undefined if not found. */
34
+ export function getAdapter(id) {
35
+ return adapters.get(id);
36
+ }
37
+ /** List all registered adapter ids. */
38
+ export function listAdapters() {
39
+ return [...adapters.keys()];
40
+ }
41
+ /**
42
+ * Detect which harness is active in the given directory.
43
+ * Iterates ADAPTER_PRIORITY in order; first match wins.
44
+ * Falls back to generic if registered and no other adapter matches.
45
+ * Adapters not in ADAPTER_PRIORITY are checked after priority list (before generic).
46
+ */
47
+ export function detectAdapter(cwd) {
48
+ // Check priority-ordered adapters first (skip generic — it's the fallback)
49
+ for (const id of ADAPTER_PRIORITY) {
50
+ if (id === 'generic')
51
+ continue;
52
+ const adapter = adapters.get(id);
53
+ if (adapter?.detect(cwd))
54
+ return adapter;
55
+ }
56
+ // Check any registered adapters not in the priority list (third-party)
57
+ for (const adapter of adapters.values()) {
58
+ if (adapter.id === 'generic')
59
+ continue;
60
+ if (ADAPTER_PRIORITY.includes(adapter.id))
61
+ continue;
62
+ if (adapter.detect(cwd))
63
+ return adapter;
64
+ }
65
+ // Fall back to generic if registered
66
+ return adapters.get('generic');
67
+ }
68
+ /** Clear all registered adapters (for testing). */
69
+ export function clearAdapters() {
70
+ adapters.clear();
71
+ }
72
+ /**
73
+ * Resolve tool categories to a matcher string for a specific harness.
74
+ * If categories is undefined, returns undefined (match all tools).
75
+ */
76
+ export function resolveToolMatcher(adapter, categories) {
77
+ if (!categories)
78
+ return undefined;
79
+ const names = new Set();
80
+ for (const cat of categories) {
81
+ // Split pipe-separated names (e.g., 'Edit|Write') and add each
82
+ for (const name of adapter.toolNames[cat].split('|')) {
83
+ names.add(name);
84
+ }
85
+ }
86
+ return [...names].join('|');
87
+ }
88
+ //# sourceMappingURL=harness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/core/harness.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,6FAA6F;AAmB7F,wCAAwC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,WAAW;IACX,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;CACZ,CAAC;AAiCF,oCAAoC;AAEpC,qCAAqC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,MAAM;IACpB,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,MAAM;IACvB,eAAe,EAAE,MAAM;IACvB,SAAS,EAAE,cAAc;CAC1B,CAAC;AAEF,2BAA2B;AAE3B,yFAAyF;AACzF,MAAM,CAAC,MAAM,gBAAgB,GAAgB,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAEvG,2BAA2B;AAE3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEtD,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,UAAU,CAAC,EAAa;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,2EAA2E;IAC3E,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;QAClC,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS;QAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC;IAC3C,CAAC;IACD,uEAAuE;IACvE,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS;YAAE,SAAS;QACvC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAAE,SAAS;QACpD,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC;IAC1C,CAAC;IACD,qCAAqC;IACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,aAAa;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAuB,EAAE,UAAsC;IAChG,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,+DAA+D;QAC/D,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
@@ -15,15 +15,17 @@ export type { RecurringPattern, CommonIssuesFile, SessionEntry, BriefingFilter,
15
15
  export { checkConflicts } from './registry.js';
16
16
  export type { SprintRegistry } from './registry.js';
17
17
  export { SlopeStoreError } from './store.js';
18
- export type { SlopeStore, SlopeSession, StoreErrorCode } from './store.js';
18
+ export type { SlopeStore, SlopeSession, StoreErrorCode, StoreStats } from './store.js';
19
+ export { checkStoreHealth } from './store-health.js';
20
+ export type { StoreHealthResult } from './store-health.js';
19
21
  export { buildTournamentReview, formatTournamentReview, } from './tournament.js';
20
22
  export type { TournamentReview, TournamentSprintEntry, TournamentScoring, TournamentStats, TournamentHazard, } from './types.js';
21
23
  export { validateRoadmap, computeCriticalPath, findParallelOpportunities, parseRoadmap, formatRoadmapSummary, formatStrategicContext, } from './roadmap.js';
22
24
  export type { RoadmapDefinition, RoadmapSprint, RoadmapTicket, RoadmapPhase, RoadmapClub, RoadmapValidationResult, RoadmapValidationError, RoadmapValidationWarning, CriticalPathResult, ParallelGroup, } from './roadmap.js';
23
25
  export type { SlopeConfig } from './config.js';
24
- export { loadConfig, createConfig, resolveConfigPath } from './config.js';
26
+ export { loadConfig, createConfig, saveConfig, resolveConfigPath } from './config.js';
25
27
  export { loadScorecards, detectLatestSprint, resolveCurrentSprint } from './loader.js';
26
- export { registerMetaphor, getMetaphor, listMetaphors, hasMetaphor, validateMetaphor, } from './metaphor.js';
28
+ export { registerMetaphor, getMetaphor, listMetaphors, hasMetaphor, validateMetaphor, METAPHOR_SCHEMA, } from './metaphor.js';
27
29
  export type { MetaphorDefinition, MetaphorVocabulary, ClubTerms, ShotResultTerms, HazardTerms, ConditionTerms, SpecialPlayTerms, MissDirectionTerms, ScoreLabelTerms, SprintTypeTerms, TrainingTypeTerms, NutritionTerms, } from './metaphor.js';
28
30
  export { clusterEvents, findPromotionCandidates, runPipeline, } from './pipeline.js';
29
31
  export type { EventCluster, PromotionCandidate, PipelineResult, } from './pipeline.js';
@@ -31,6 +33,14 @@ export { detectRunner, parseTestOutput, parseVitestOutput, parseJestOutput, } fr
31
33
  export { GH_PR_JSON_FIELDS, buildGhCommand, parsePRJson, emptyPRSignal, mergePRChecksWithCI, detectCheckRetries, } from './pr-signals.js';
32
34
  export { GUARD_DEFINITIONS, formatPreToolUseOutput, formatPostToolUseOutput, formatStopOutput, generateClaudeCodeHooksConfig, registerCustomGuard, getAllGuardDefinitions, getCustomGuard, clearCustomGuards, } from './guard.js';
33
35
  export type { HookInput, PreToolUseOutput, PostToolUseOutput, StopOutput, GuardResult, GuardName, GuardDefinition, GuidanceConfig, CustomGuardDefinition, AnyGuardDefinition, } from './guard.js';
36
+ export { TOOL_CATEGORIES, CLAUDE_CODE_TOOLS, ADAPTER_PRIORITY, registerAdapter, getAdapter, listAdapters, detectAdapter, clearAdapters, resolveToolMatcher, } from './harness.js';
37
+ export type { HarnessId, ToolCategory, ToolNameMap, HarnessAdapter, } from './harness.js';
38
+ export { ClaudeCodeAdapter, claudeCodeAdapter } from './adapters/claude-code.js';
39
+ export { CursorAdapter, cursorAdapter } from './adapters/cursor.js';
40
+ export { WindsurfAdapter, windsurfAdapter } from './adapters/windsurf.js';
41
+ export { ClineAdapter, clineAdapter } from './adapters/cline.js';
42
+ export { GenericAdapter, genericAdapter } from './adapters/generic.js';
43
+ export type { GuardManifestEntry } from './adapters/generic.js';
34
44
  export { buildReportData, generateHtmlReport, REPORT_CSS, escapeHtml, svgLine, svgRect, svgText, renderSummaryCards, renderHandicapTrendChart, renderDispersionChart, renderAreaPerformanceChart, renderNutritionChart, renderSprintTable, } from './report.js';
35
45
  export type { ReportData, SprintTrendEntry, NutritionTrendEntry, } from './report.js';
36
46
  export { DEFAULT_DASHBOARD_CONFIG, generateDashboardHtml, renderSprintDetail, renderSprintTimeline, generateDashboardScript, computeMissHeatmap, renderMissHeatmap, computeAreaHazards, renderAreaHazardOverlay, } from './dashboard.js';
@@ -43,8 +53,8 @@ export { resolveEscalationConfig, detectEscalation, buildEscalationEvent, } from
43
53
  export type { EscalationTrigger, EscalationSeverity, EscalationAction, EscalationConfig, EscalationResult, } from './escalation.js';
44
54
  export { generateStandup, formatStandup, parseStandup, extractRelevantHandoffs, aggregateStandups, formatTeamStandup, } from './standup.js';
45
55
  export type { StandupReport, HandoffEntry, TeamStandup, } from './standup.js';
46
- export { validatePluginManifest, discoverPlugins, loadPlugins, loadPluginMetaphors, loadPluginGuards, isPluginEnabled, } from './plugins.js';
47
- export type { PluginType, PluginManifest, DiscoveredPlugin, PluginLoadResult, PluginsConfig, } from './plugins.js';
56
+ export { validatePluginManifest, discoverPlugins, loadPlugins, loadPluginMetaphors, loadPluginGuards, isPluginEnabled, saveCustomMetaphor, } from './plugins.js';
57
+ export type { PluginType, PluginManifest, DiscoveredPlugin, PluginLoadResult, PluginsConfig, SaveMetaphorResult, } from './plugins.js';
48
58
  export { buildLeaderboard, formatLeaderboard, renderLeaderboardHtml, } from './leaderboard.js';
49
59
  export type { LeaderboardEntry, Leaderboard } from './leaderboard.js';
50
60
  export { DEFAULT_PLAYER, extractPlayers, filterScorecardsByPlayer, computePlayerHandicaps, computePlayerHandicap, computeReporterSeverity, mergeHazardIndices, filterHazardsByVisibility, } from './player.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -20,15 +20,17 @@ export { filterCommonIssues, extractHazardIndex, computeNutritionTrend, hazardBr
20
20
  export { checkConflicts } from './registry.js';
21
21
  // Store
22
22
  export { SlopeStoreError } from './store.js';
23
+ // Store Health
24
+ export { checkStoreHealth } from './store-health.js';
23
25
  // Tournament Review
24
26
  export { buildTournamentReview, formatTournamentReview, } from './tournament.js';
25
27
  // Roadmap
26
28
  export { validateRoadmap, computeCriticalPath, findParallelOpportunities, parseRoadmap, formatRoadmapSummary, formatStrategicContext, } from './roadmap.js';
27
- export { loadConfig, createConfig, resolveConfigPath } from './config.js';
29
+ export { loadConfig, createConfig, saveConfig, resolveConfigPath } from './config.js';
28
30
  // Loader
29
31
  export { loadScorecards, detectLatestSprint, resolveCurrentSprint } from './loader.js';
30
32
  // Metaphor
31
- export { registerMetaphor, getMetaphor, listMetaphors, hasMetaphor, validateMetaphor, } from './metaphor.js';
33
+ export { registerMetaphor, getMetaphor, listMetaphors, hasMetaphor, validateMetaphor, METAPHOR_SCHEMA, } from './metaphor.js';
32
34
  // Event Pipeline
33
35
  export { clusterEvents, findPromotionCandidates, runPipeline, } from './pipeline.js';
34
36
  // CI Signal Parser
@@ -37,6 +39,14 @@ export { detectRunner, parseTestOutput, parseVitestOutput, parseJestOutput, } fr
37
39
  export { GH_PR_JSON_FIELDS, buildGhCommand, parsePRJson, emptyPRSignal, mergePRChecksWithCI, detectCheckRetries, } from './pr-signals.js';
38
40
  // Guard Framework
39
41
  export { GUARD_DEFINITIONS, formatPreToolUseOutput, formatPostToolUseOutput, formatStopOutput, generateClaudeCodeHooksConfig, registerCustomGuard, getAllGuardDefinitions, getCustomGuard, clearCustomGuards, } from './guard.js';
42
+ // Harness Adapter Framework
43
+ export { TOOL_CATEGORIES, CLAUDE_CODE_TOOLS, ADAPTER_PRIORITY, registerAdapter, getAdapter, listAdapters, detectAdapter, clearAdapters, resolveToolMatcher, } from './harness.js';
44
+ // Adapters
45
+ export { ClaudeCodeAdapter, claudeCodeAdapter } from './adapters/claude-code.js';
46
+ export { CursorAdapter, cursorAdapter } from './adapters/cursor.js';
47
+ export { WindsurfAdapter, windsurfAdapter } from './adapters/windsurf.js';
48
+ export { ClineAdapter, clineAdapter } from './adapters/cline.js';
49
+ export { GenericAdapter, genericAdapter } from './adapters/generic.js';
40
50
  // Report
41
51
  export { buildReportData, generateHtmlReport, REPORT_CSS, escapeHtml, svgLine, svgRect, svgText, renderSummaryCards, renderHandicapTrendChart, renderDispersionChart, renderAreaPerformanceChart, renderNutritionChart, renderSprintTable, } from './report.js';
42
52
  // Dashboard
@@ -50,7 +60,7 @@ export { resolveEscalationConfig, detectEscalation, buildEscalationEvent, } from
50
60
  // Standup (Communication Protocol)
51
61
  export { generateStandup, formatStandup, parseStandup, extractRelevantHandoffs, aggregateStandups, formatTeamStandup, } from './standup.js';
52
62
  // Plugin System
53
- export { validatePluginManifest, discoverPlugins, loadPlugins, loadPluginMetaphors, loadPluginGuards, isPluginEnabled, } from './plugins.js';
63
+ export { validatePluginManifest, discoverPlugins, loadPlugins, loadPluginMetaphors, loadPluginGuards, isPluginEnabled, saveCustomMetaphor, } from './plugins.js';
54
64
  // Leaderboard (Multi-Developer)
55
65
  export { buildLeaderboard, formatLeaderboard, renderLeaderboardHtml, } from './leaderboard.js';
56
66
  // Player (Multi-Developer)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export function validateInitInput(input) {
14
14
  if (!input.projectName || input.projectName.trim().length === 0) {
15
15
  errors.push('projectName is required and must be non-empty');
16
16
  }
17
- if (input.metaphor !== undefined) {
17
+ if (input.metaphor !== undefined && input.metaphor !== 'custom') {
18
18
  // Import side-effects of metaphors happen at module load in the caller
19
19
  if (!hasMetaphor(input.metaphor)) {
20
20
  errors.push(`Unknown metaphor "${input.metaphor}". Use listMetaphors() to see available options.`);
@@ -1 +1 @@
1
- {"version":3,"file":"interview.js","sourceRoot":"","sources":["../../src/core/interview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interview.js","sourceRoot":"","sources":["../../src/core/interview.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,20 @@ export declare function getMetaphor(id: string): MetaphorDefinition;
68
68
  export declare function listMetaphors(): MetaphorDefinition[];
69
69
  /** Check if a metaphor ID is registered */
70
70
  export declare function hasMetaphor(id: string): boolean;
71
+ /** Schema describing all required keys for each MetaphorDefinition category. Agents use this to generate valid custom metaphors. */
72
+ export declare const METAPHOR_SCHEMA: {
73
+ vocabulary: readonly ["sprint", "ticket", "scorecard", "handicapCard", "briefing", "perfectScore", "onTarget", "review"];
74
+ clubs: ClubSelection[];
75
+ shotResults: ShotResult[];
76
+ hazards: HazardType[];
77
+ conditions: ConditionType[];
78
+ specialPlays: SpecialPlay[];
79
+ missDirections: MissDirection[];
80
+ scoreLabels: ScoreLabel[];
81
+ sprintTypes: SprintType[];
82
+ trainingTypes: TrainingType[];
83
+ nutrition: NutritionCategory[];
84
+ };
71
85
  /** Validate that a metaphor definition covers every required term */
72
86
  export declare function validateMetaphor(metaphor: MetaphorDefinition): string[];
73
87
  //# sourceMappingURL=metaphor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metaphor.d.ts","sourceRoot":"","sources":["../../src/core/metaphor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metaphor.d.ts","sourceRoot":"","sources":["../../src/core/metaphor.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,20 @@ const REQUIRED_SCORES = ['eagle', 'birdie', 'par', 'bogey', 'double_bogey', 'tri
38
38
  const REQUIRED_SPRINT_TYPES = ['feature', 'feedback', 'infra', 'bugfix', 'research', 'flow', 'test-coverage', 'audit'];
39
39
  const REQUIRED_TRAINING = ['driving_range', 'chipping_practice', 'putting_practice', 'lessons'];
40
40
  const REQUIRED_NUTRITION = ['hydration', 'diet', 'recovery', 'supplements', 'stretching'];
41
+ /** Schema describing all required keys for each MetaphorDefinition category. Agents use this to generate valid custom metaphors. */
42
+ export const METAPHOR_SCHEMA = {
43
+ vocabulary: ['sprint', 'ticket', 'scorecard', 'handicapCard', 'briefing', 'perfectScore', 'onTarget', 'review'],
44
+ clubs: REQUIRED_CLUBS,
45
+ shotResults: REQUIRED_SHOTS,
46
+ hazards: REQUIRED_HAZARDS,
47
+ conditions: REQUIRED_CONDITIONS,
48
+ specialPlays: REQUIRED_SPECIALS,
49
+ missDirections: REQUIRED_MISS,
50
+ scoreLabels: REQUIRED_SCORES,
51
+ sprintTypes: REQUIRED_SPRINT_TYPES,
52
+ trainingTypes: REQUIRED_TRAINING,
53
+ nutrition: REQUIRED_NUTRITION,
54
+ };
41
55
  /** Validate that a metaphor definition covers every required term */
42
56
  export function validateMetaphor(metaphor) {
43
57
  const errors = [];