dino-spec 17.5.0 → 17.6.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.
Files changed (97) hide show
  1. package/README.md +16 -1
  2. package/dist/core/agents/ambiguity-resolver.d.ts +14 -1
  3. package/dist/core/agents/ambiguity-resolver.d.ts.map +1 -1
  4. package/dist/core/agents/ambiguity-resolver.js +24 -2
  5. package/dist/core/agents/ambiguity-resolver.js.map +1 -1
  6. package/dist/core/agents/confidence-gate.d.ts +18 -2
  7. package/dist/core/agents/confidence-gate.d.ts.map +1 -1
  8. package/dist/core/agents/confidence-gate.js +16 -9
  9. package/dist/core/agents/confidence-gate.js.map +1 -1
  10. package/dist/core/context/auto-injection-engine.d.ts +7 -1
  11. package/dist/core/context/auto-injection-engine.d.ts.map +1 -1
  12. package/dist/core/context/auto-injection-engine.js +46 -1
  13. package/dist/core/context/auto-injection-engine.js.map +1 -1
  14. package/dist/core/ralph/__tests__/prd-generator-session-context.test.d.ts +7 -0
  15. package/dist/core/ralph/__tests__/prd-generator-session-context.test.d.ts.map +1 -0
  16. package/dist/core/ralph/__tests__/prd-generator-session-context.test.js +143 -0
  17. package/dist/core/ralph/__tests__/prd-generator-session-context.test.js.map +1 -0
  18. package/dist/core/ralph/index.d.ts +3 -3
  19. package/dist/core/ralph/index.d.ts.map +1 -1
  20. package/dist/core/ralph/index.js +2 -2
  21. package/dist/core/ralph/index.js.map +1 -1
  22. package/dist/core/ralph/prd-generator.d.ts +18 -3
  23. package/dist/core/ralph/prd-generator.d.ts.map +1 -1
  24. package/dist/core/ralph/prd-generator.js +33 -11
  25. package/dist/core/ralph/prd-generator.js.map +1 -1
  26. package/dist/core/ralph/progress-tracker.d.ts.map +1 -1
  27. package/dist/core/ralph/progress-tracker.js +2 -1
  28. package/dist/core/ralph/progress-tracker.js.map +1 -1
  29. package/dist/core/ralph/sub-agent-spawner.d.ts +4 -2
  30. package/dist/core/ralph/sub-agent-spawner.d.ts.map +1 -1
  31. package/dist/core/ralph/sub-agent-spawner.js +48 -3
  32. package/dist/core/ralph/sub-agent-spawner.js.map +1 -1
  33. package/dist/core/ralph/task-integration.d.ts.map +1 -1
  34. package/dist/core/ralph/task-integration.js +6 -3
  35. package/dist/core/ralph/task-integration.js.map +1 -1
  36. package/dist/core/ralph/types.d.ts +62 -3
  37. package/dist/core/ralph/types.d.ts.map +1 -1
  38. package/dist/core/ralph/types.js.map +1 -1
  39. package/dist/core/recommendations/recommendation-engine.d.ts +6 -0
  40. package/dist/core/recommendations/recommendation-engine.d.ts.map +1 -1
  41. package/dist/core/recommendations/recommendation-engine.js.map +1 -1
  42. package/dist/core/spec-analyzer/index.d.ts +12 -1
  43. package/dist/core/spec-analyzer/index.d.ts.map +1 -1
  44. package/dist/core/spec-analyzer/index.js +8 -2
  45. package/dist/core/spec-analyzer/index.js.map +1 -1
  46. package/dist/mcp/tools/auto-inject.d.ts +4 -0
  47. package/dist/mcp/tools/auto-inject.d.ts.map +1 -1
  48. package/dist/mcp/tools/auto-inject.js +13 -4
  49. package/dist/mcp/tools/auto-inject.js.map +1 -1
  50. package/dist/mcp/tools/chunking.d.ts +3 -0
  51. package/dist/mcp/tools/chunking.d.ts.map +1 -1
  52. package/dist/mcp/tools/chunking.js +10 -4
  53. package/dist/mcp/tools/chunking.js.map +1 -1
  54. package/dist/mcp/tools/embeddings.d.ts +4 -0
  55. package/dist/mcp/tools/embeddings.d.ts.map +1 -1
  56. package/dist/mcp/tools/embeddings.js +16 -6
  57. package/dist/mcp/tools/embeddings.js.map +1 -1
  58. package/dist/mcp/tools/knowledge-graph.d.ts +3 -0
  59. package/dist/mcp/tools/knowledge-graph.d.ts.map +1 -1
  60. package/dist/mcp/tools/knowledge-graph.js +19 -8
  61. package/dist/mcp/tools/knowledge-graph.js.map +1 -1
  62. package/dist/mcp/tools/lazy-context.d.ts +2 -0
  63. package/dist/mcp/tools/lazy-context.d.ts.map +1 -1
  64. package/dist/mcp/tools/lazy-context.js +10 -4
  65. package/dist/mcp/tools/lazy-context.js.map +1 -1
  66. package/dist/mcp/tools/memory-decay.d.ts.map +1 -1
  67. package/dist/mcp/tools/memory-decay.js +4 -2
  68. package/dist/mcp/tools/memory-decay.js.map +1 -1
  69. package/dist/mcp/tools/prefetch.d.ts +4 -1
  70. package/dist/mcp/tools/prefetch.d.ts.map +1 -1
  71. package/dist/mcp/tools/prefetch.js +18 -7
  72. package/dist/mcp/tools/prefetch.js.map +1 -1
  73. package/dist/mcp/tools/ralph.d.ts +2 -0
  74. package/dist/mcp/tools/ralph.d.ts.map +1 -1
  75. package/dist/mcp/tools/ralph.js +96 -6
  76. package/dist/mcp/tools/ralph.js.map +1 -1
  77. package/dist/mcp/tools/recommendations.d.ts +2 -0
  78. package/dist/mcp/tools/recommendations.d.ts.map +1 -1
  79. package/dist/mcp/tools/recommendations.js +13 -4
  80. package/dist/mcp/tools/recommendations.js.map +1 -1
  81. package/dist/mcp/tools/retrieval.d.ts +4 -0
  82. package/dist/mcp/tools/retrieval.d.ts.map +1 -1
  83. package/dist/mcp/tools/retrieval.js +25 -10
  84. package/dist/mcp/tools/retrieval.js.map +1 -1
  85. package/dist/mcp/tools/spec-feedback.d.ts +2 -0
  86. package/dist/mcp/tools/spec-feedback.d.ts.map +1 -1
  87. package/dist/mcp/tools/spec-feedback.js +33 -16
  88. package/dist/mcp/tools/spec-feedback.js.map +1 -1
  89. package/dist/mcp/utils/index.d.ts +1 -0
  90. package/dist/mcp/utils/index.d.ts.map +1 -1
  91. package/dist/mcp/utils/index.js +2 -0
  92. package/dist/mcp/utils/index.js.map +1 -1
  93. package/dist/mcp/utils/session-context.d.ts +108 -0
  94. package/dist/mcp/utils/session-context.d.ts.map +1 -0
  95. package/dist/mcp/utils/session-context.js +157 -0
  96. package/dist/mcp/utils/session-context.js.map +1 -0
  97. package/package.json +1 -1
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Session Context Wrapper - v17.6.0
3
+ *
4
+ * Provides a wrapper for MCP tool handlers that auto-loads session context.
5
+ * This ensures tools have access to focusArea, phase, blockers, and recent changes
6
+ * without requiring each tool to implement session loading individually.
7
+ *
8
+ * Usage:
9
+ * ```typescript
10
+ * const handler = withSessionContext(async (params, projectDir, session) => {
11
+ * // session.focusArea, session.phase, etc. are now available
12
+ * return 'result'
13
+ * })
14
+ * ```
15
+ */
16
+ /**
17
+ * Session context passed to wrapped handlers
18
+ */
19
+ export interface SessionContext {
20
+ /** Focus area from session.md (e.g., "src/core/ralph/") */
21
+ focusArea?: string;
22
+ /** Focus confidence level */
23
+ focusConfidence?: string;
24
+ /** Focus source (e.g., "manual", "directory-cluster") */
25
+ focusSource?: string;
26
+ /** Current phase from session.md (e.g., "implementation", "discovery") */
27
+ phase?: string;
28
+ /** Active blockers from session.md */
29
+ blockers?: string[];
30
+ /** Recent changes from session.md */
31
+ recentChanges?: Array<{
32
+ time: string;
33
+ category: string;
34
+ file: string;
35
+ } | string>;
36
+ /** Test status from session.md */
37
+ testStatus?: string;
38
+ /** Build status from session.md */
39
+ buildStatus?: string;
40
+ /** Whether session was successfully loaded */
41
+ loaded: boolean;
42
+ }
43
+ /**
44
+ * Handler function type that receives session context
45
+ */
46
+ export type SessionAwareHandler<TInput, TResult> = (params: TInput, projectDir: string, session: SessionContext) => Promise<TResult>;
47
+ /**
48
+ * Standard MCP handler function type
49
+ */
50
+ export type MCPHandler<TInput, TResult> = (params: TInput, projectDir: string) => Promise<TResult>;
51
+ /**
52
+ * Wrap an MCP tool handler to auto-load session context
53
+ *
54
+ * @param handler - Handler function that receives session context as third parameter
55
+ * @returns Standard MCP handler that auto-loads session before calling inner handler
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const handleWithContext = withSessionContext(async (params, projectDir, session) => {
60
+ * if (session.focusArea) {
61
+ * // Use focus area to scope operations
62
+ * }
63
+ * return 'result'
64
+ * })
65
+ * ```
66
+ */
67
+ export declare function withSessionContext<TInput, TResult>(handler: SessionAwareHandler<TInput, TResult>): MCPHandler<TInput, TResult>;
68
+ /**
69
+ * Load session context directly (for handlers that need more control)
70
+ *
71
+ * @returns Session context object
72
+ */
73
+ export declare function loadSessionContext(): Promise<SessionContext>;
74
+ /**
75
+ * Check if a file path is within the current focus area
76
+ *
77
+ * @param filePath - File path to check
78
+ * @param session - Session context
79
+ * @returns true if file is in focus area or no focus is set
80
+ */
81
+ export declare function isInFocusArea(filePath: string, session: SessionContext): boolean;
82
+ /**
83
+ * Filter a list of file paths to only those in focus area
84
+ *
85
+ * @param filePaths - Array of file paths
86
+ * @param session - Session context
87
+ * @returns Filtered array (or original if no focus)
88
+ */
89
+ export declare function filterByFocus(filePaths: string[], session: SessionContext): string[];
90
+ /**
91
+ * Get focus-aware priority for a file
92
+ * Files in focus area get higher priority (lower number)
93
+ *
94
+ * @param filePath - File path to prioritize
95
+ * @param session - Session context
96
+ * @returns Priority value (0 = highest, 1 = in-focus, 2 = near-focus, 3 = out-of-focus)
97
+ */
98
+ export declare function getFocusPriority(filePath: string, session: SessionContext): number;
99
+ /**
100
+ * Sort file paths by focus priority (in-focus first)
101
+ *
102
+ * @param filePaths - Array of file paths
103
+ * @param session - Session context
104
+ * @returns Sorted array with in-focus files first
105
+ */
106
+ export declare function sortByFocusPriority(filePaths: string[], session: SessionContext): string[];
107
+ export { parseSession, type SessionData } from './session-helpers.js';
108
+ //# sourceMappingURL=session-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../../../src/mcp/utils/session-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6BAA6B;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,qCAAqC;IACrC,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,CAAA;IAChF,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8CAA8C;IAC9C,MAAM,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,IAAI,CACjD,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AA2BlG;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAChD,OAAO,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5C,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAgB7B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,CAOlE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAUhF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,EAAE,CAMpF;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAuBlF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,EAAE,CAI1F;AAMD,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Session Context Wrapper - v17.6.0
3
+ *
4
+ * Provides a wrapper for MCP tool handlers that auto-loads session context.
5
+ * This ensures tools have access to focusArea, phase, blockers, and recent changes
6
+ * without requiring each tool to implement session loading individually.
7
+ *
8
+ * Usage:
9
+ * ```typescript
10
+ * const handler = withSessionContext(async (params, projectDir, session) => {
11
+ * // session.focusArea, session.phase, etc. are now available
12
+ * return 'result'
13
+ * })
14
+ * ```
15
+ */
16
+ import { parseSession } from './session-helpers.js';
17
+ // =============================================================================
18
+ // Core Functions
19
+ // =============================================================================
20
+ /**
21
+ * Convert SessionData to SessionContext
22
+ */
23
+ function sessionDataToContext(data) {
24
+ if (!data) {
25
+ return { loaded: false };
26
+ }
27
+ return {
28
+ focusArea: data.focus?.area,
29
+ focusConfidence: data.focus?.confidence,
30
+ focusSource: data.focus?.source,
31
+ phase: data.phase,
32
+ blockers: data.blockers,
33
+ recentChanges: data.recentChanges,
34
+ testStatus: data.testStatus,
35
+ buildStatus: data.buildStatus,
36
+ loaded: true,
37
+ };
38
+ }
39
+ /**
40
+ * Wrap an MCP tool handler to auto-load session context
41
+ *
42
+ * @param handler - Handler function that receives session context as third parameter
43
+ * @returns Standard MCP handler that auto-loads session before calling inner handler
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const handleWithContext = withSessionContext(async (params, projectDir, session) => {
48
+ * if (session.focusArea) {
49
+ * // Use focus area to scope operations
50
+ * }
51
+ * return 'result'
52
+ * })
53
+ * ```
54
+ */
55
+ export function withSessionContext(handler) {
56
+ return async (params, projectDir) => {
57
+ // Load session context
58
+ let sessionContext;
59
+ try {
60
+ const sessionData = await parseSession();
61
+ sessionContext = sessionDataToContext(sessionData);
62
+ }
63
+ catch {
64
+ // Session loading failed - continue with empty context
65
+ sessionContext = { loaded: false };
66
+ }
67
+ // Call the wrapped handler with session context
68
+ return handler(params, projectDir, sessionContext);
69
+ };
70
+ }
71
+ /**
72
+ * Load session context directly (for handlers that need more control)
73
+ *
74
+ * @returns Session context object
75
+ */
76
+ export async function loadSessionContext() {
77
+ try {
78
+ const sessionData = await parseSession();
79
+ return sessionDataToContext(sessionData);
80
+ }
81
+ catch {
82
+ return { loaded: false };
83
+ }
84
+ }
85
+ /**
86
+ * Check if a file path is within the current focus area
87
+ *
88
+ * @param filePath - File path to check
89
+ * @param session - Session context
90
+ * @returns true if file is in focus area or no focus is set
91
+ */
92
+ export function isInFocusArea(filePath, session) {
93
+ if (!session.focusArea) {
94
+ return true; // No focus = everything is in scope
95
+ }
96
+ // Normalize paths for comparison
97
+ const normalizedPath = filePath.replace(/\\/g, '/');
98
+ const normalizedFocus = session.focusArea.replace(/\\/g, '/');
99
+ return normalizedPath.startsWith(normalizedFocus);
100
+ }
101
+ /**
102
+ * Filter a list of file paths to only those in focus area
103
+ *
104
+ * @param filePaths - Array of file paths
105
+ * @param session - Session context
106
+ * @returns Filtered array (or original if no focus)
107
+ */
108
+ export function filterByFocus(filePaths, session) {
109
+ if (!session.focusArea) {
110
+ return filePaths;
111
+ }
112
+ return filePaths.filter((path) => isInFocusArea(path, session));
113
+ }
114
+ /**
115
+ * Get focus-aware priority for a file
116
+ * Files in focus area get higher priority (lower number)
117
+ *
118
+ * @param filePath - File path to prioritize
119
+ * @param session - Session context
120
+ * @returns Priority value (0 = highest, 1 = in-focus, 2 = near-focus, 3 = out-of-focus)
121
+ */
122
+ export function getFocusPriority(filePath, session) {
123
+ if (!session.focusArea) {
124
+ return 1; // Default priority when no focus
125
+ }
126
+ const normalizedPath = filePath.replace(/\\/g, '/');
127
+ const normalizedFocus = session.focusArea.replace(/\\/g, '/');
128
+ // Exact match or child
129
+ if (normalizedPath.startsWith(normalizedFocus)) {
130
+ return 0;
131
+ }
132
+ // Near focus (same parent directory)
133
+ const focusParent = normalizedFocus.split('/').slice(0, -1).join('/');
134
+ const pathParent = normalizedPath.split('/').slice(0, -1).join('/');
135
+ if (focusParent && pathParent.startsWith(focusParent)) {
136
+ return 1;
137
+ }
138
+ // Out of focus
139
+ return 2;
140
+ }
141
+ /**
142
+ * Sort file paths by focus priority (in-focus first)
143
+ *
144
+ * @param filePaths - Array of file paths
145
+ * @param session - Session context
146
+ * @returns Sorted array with in-focus files first
147
+ */
148
+ export function sortByFocusPriority(filePaths, session) {
149
+ return [...filePaths].sort((a, b) => {
150
+ return getFocusPriority(a, session) - getFocusPriority(b, session);
151
+ });
152
+ }
153
+ // =============================================================================
154
+ // Re-exports for convenience
155
+ // =============================================================================
156
+ export { parseSession } from './session-helpers.js';
157
+ //# sourceMappingURL=session-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-context.js","sourceRoot":"","sources":["../../../src/mcp/utils/session-context.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dino-spec",
3
- "version": "17.5.0",
3
+ "version": "17.6.0",
4
4
  "description": "Automatic context engineering for Claude Code",
5
5
  "type": "module",
6
6
  "exports": {