claude-cognitive 0.3.2 → 0.4.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 (108) hide show
  1. package/README.md +57 -35
  2. package/dist/agents/context.d.ts.map +1 -1
  3. package/dist/agents/context.js +7 -7
  4. package/dist/agents/context.js.map +1 -1
  5. package/dist/cli/commands/feedback-stats.d.ts +10 -0
  6. package/dist/cli/commands/feedback-stats.d.ts.map +1 -0
  7. package/dist/cli/commands/feedback-stats.js +70 -0
  8. package/dist/cli/commands/feedback-stats.js.map +1 -0
  9. package/dist/cli/commands/feedback-sync.d.ts +10 -0
  10. package/dist/cli/commands/feedback-sync.d.ts.map +1 -0
  11. package/dist/cli/commands/feedback-sync.js +117 -0
  12. package/dist/cli/commands/feedback-sync.js.map +1 -0
  13. package/dist/cli/commands/index.d.ts +2 -0
  14. package/dist/cli/commands/index.d.ts.map +1 -1
  15. package/dist/cli/commands/index.js +2 -0
  16. package/dist/cli/commands/index.js.map +1 -1
  17. package/dist/cli/commands/install.d.ts.map +1 -1
  18. package/dist/cli/commands/install.js +130 -4
  19. package/dist/cli/commands/install.js.map +1 -1
  20. package/dist/cli/commands/semantic.d.ts +4 -2
  21. package/dist/cli/commands/semantic.d.ts.map +1 -1
  22. package/dist/cli/commands/semantic.js +8 -57
  23. package/dist/cli/commands/semantic.js.map +1 -1
  24. package/dist/cli/commands/status.d.ts.map +1 -1
  25. package/dist/cli/commands/status.js +0 -2
  26. package/dist/cli/commands/status.js.map +1 -1
  27. package/dist/cli/commands/sync.d.ts +4 -2
  28. package/dist/cli/commands/sync.d.ts.map +1 -1
  29. package/dist/cli/commands/sync.js +9 -250
  30. package/dist/cli/commands/sync.js.map +1 -1
  31. package/dist/cli/commands/update.d.ts.map +1 -1
  32. package/dist/cli/commands/update.js +106 -1
  33. package/dist/cli/commands/update.js.map +1 -1
  34. package/dist/cli/index.js +3 -1
  35. package/dist/cli/index.js.map +1 -1
  36. package/dist/cli/utils/output.d.ts +0 -2
  37. package/dist/cli/utils/output.d.ts.map +1 -1
  38. package/dist/cli/utils/output.js +0 -2
  39. package/dist/cli/utils/output.js.map +1 -1
  40. package/dist/client.d.ts +121 -22
  41. package/dist/client.d.ts.map +1 -1
  42. package/dist/client.js +209 -36
  43. package/dist/client.js.map +1 -1
  44. package/dist/events.d.ts +30 -1
  45. package/dist/events.d.ts.map +1 -1
  46. package/dist/events.js.map +1 -1
  47. package/dist/feedback/constants.d.ts +72 -0
  48. package/dist/feedback/constants.d.ts.map +1 -0
  49. package/dist/feedback/constants.js +145 -0
  50. package/dist/feedback/constants.js.map +1 -0
  51. package/dist/feedback/detector.d.ts +75 -0
  52. package/dist/feedback/detector.d.ts.map +1 -0
  53. package/dist/feedback/detector.js +393 -0
  54. package/dist/feedback/detector.js.map +1 -0
  55. package/dist/feedback/index.d.ts +85 -0
  56. package/dist/feedback/index.d.ts.map +1 -0
  57. package/dist/feedback/index.js +194 -0
  58. package/dist/feedback/index.js.map +1 -0
  59. package/dist/feedback/offline-queue.d.ts +110 -0
  60. package/dist/feedback/offline-queue.d.ts.map +1 -0
  61. package/dist/feedback/offline-queue.js +188 -0
  62. package/dist/feedback/offline-queue.js.map +1 -0
  63. package/dist/feedback/scorer.d.ts +81 -0
  64. package/dist/feedback/scorer.d.ts.map +1 -0
  65. package/dist/feedback/scorer.js +194 -0
  66. package/dist/feedback/scorer.js.map +1 -0
  67. package/dist/feedback/similarity.d.ts +19 -0
  68. package/dist/feedback/similarity.d.ts.map +1 -0
  69. package/dist/feedback/similarity.js +49 -0
  70. package/dist/feedback/similarity.js.map +1 -0
  71. package/dist/feedback/tracker.d.ts +104 -0
  72. package/dist/feedback/tracker.d.ts.map +1 -0
  73. package/dist/feedback/tracker.js +324 -0
  74. package/dist/feedback/tracker.js.map +1 -0
  75. package/dist/hooks/process-session.d.ts.map +1 -1
  76. package/dist/hooks/process-session.js +17 -8
  77. package/dist/hooks/process-session.js.map +1 -1
  78. package/dist/index.d.ts +9 -0
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +15 -0
  81. package/dist/index.js.map +1 -1
  82. package/dist/learn/index.d.ts.map +1 -1
  83. package/dist/learn/index.js +6 -2
  84. package/dist/learn/index.js.map +1 -1
  85. package/dist/mcp/handlers.d.ts +9 -1
  86. package/dist/mcp/handlers.d.ts.map +1 -1
  87. package/dist/mcp/handlers.js +66 -0
  88. package/dist/mcp/handlers.js.map +1 -1
  89. package/dist/mcp/server.d.ts.map +1 -1
  90. package/dist/mcp/server.js +42 -2
  91. package/dist/mcp/server.js.map +1 -1
  92. package/dist/mcp/tools.d.ts +77 -0
  93. package/dist/mcp/tools.d.ts.map +1 -1
  94. package/dist/mcp/tools.js +30 -0
  95. package/dist/mcp/tools.js.map +1 -1
  96. package/dist/mcp/types.d.ts +16 -0
  97. package/dist/mcp/types.d.ts.map +1 -1
  98. package/dist/mind.d.ts +47 -28
  99. package/dist/mind.d.ts.map +1 -1
  100. package/dist/mind.js +351 -104
  101. package/dist/mind.js.map +1 -1
  102. package/dist/offline.d.ts +111 -0
  103. package/dist/offline.d.ts.map +1 -0
  104. package/dist/offline.js +198 -0
  105. package/dist/offline.js.map +1 -0
  106. package/dist/types.d.ts +171 -1
  107. package/dist/types.d.ts.map +1 -1
  108. package/package.json +1 -1
package/README.md CHANGED
@@ -43,7 +43,7 @@ claude-cognitive uninstall --delete-bank
43
43
 
44
44
  ## How It Works
45
45
 
46
- ![Session Lifecycle](./docs/session-lifecycle.svg)
46
+ ![Session Lifecycle](./docs/session-lifecycle.png)
47
47
 
48
48
  ### Core Operations
49
49
 
@@ -67,14 +67,14 @@ claude-cognitive uninstall --delete-bank
67
67
 
68
68
  ## Architecture
69
69
 
70
- ![Architecture](./docs/architecture.svg)
70
+ ![Architecture](./docs/architecture.png)
71
71
 
72
- ### Two Memory Layers
72
+ ### Memory Layers
73
73
 
74
- | Layer | Storage | Purpose |
75
- | ------------- | --------------------- | ------------------------------------------------------ |
76
- | **Hindsight** | PostgreSQL + pgvector | All memories, entity graphs, 4-way retrieval, opinions |
77
- | **Semantic** | `.claude/memory.md` | Human-curated knowledge, promoted observations |
74
+ | Layer | Storage | Purpose |
75
+ | ------------- | ------------------------------- | ------------------------------------------------------ |
76
+ | **Hindsight** | PostgreSQL + pgvector | All memories, entity graphs, 4-way retrieval, opinions |
77
+ | **Offline** | `.claude/offline-memories.json` | Local storage when Hindsight unavailable (auto-syncs) |
78
78
 
79
79
  ---
80
80
 
@@ -113,10 +113,11 @@ claude-cognitive learn # Bootstrap from codebase
113
113
  claude-cognitive learn --depth full # Full analysis with git history
114
114
  claude-cognitive recall "query" # Search memories
115
115
  claude-cognitive reflect "query" # Reason about knowledge
116
- claude-cognitive semantic # Show semantic memory
117
116
  claude-cognitive config # Show configuration
118
117
  claude-cognitive update # Update global configuration
119
118
  claude-cognitive update --check # Check what needs updating
119
+ claude-cognitive feedback-stats # Show feedback queue statistics
120
+ claude-cognitive feedback-sync # Sync pending feedback signals
120
121
  claude-cognitive uninstall # Remove from project
121
122
  ```
122
123
 
@@ -159,47 +160,67 @@ Each memory bank has personality traits that shape how `reflect()` reasons:
159
160
 
160
161
  ---
161
162
 
162
- ## Semantic Memory
163
+ ## Graceful Degradation & Offline Mode
163
164
 
164
- The `.claude/memory.md` file contains human-curated project knowledge:
165
+ When Hindsight is unavailable, claude-cognitive stores memories locally and syncs when reconnected:
165
166
 
166
- ```markdown
167
- ## Tech Stack
167
+ | Operation | With Hindsight | Without Hindsight (Offline) |
168
+ | ------------- | -------------- | -------------------------------- |
169
+ | Session start | Full context | Recent offline memories |
170
+ | recall | 4-way search | Text search in offline store |
171
+ | reflect | LLM reasoning | Error (requires Hindsight) |
172
+ | retain | Stored | Stored offline, auto-syncs later |
168
173
 
169
- - React Native with Expo SDK 51
170
- - Supabase for auth and database
171
- - NativeWind for styling
174
+ **Offline storage:** `.claude/offline-memories.json`
172
175
 
173
- ## Key Decisions
176
+ When Hindsight becomes available again, offline memories are automatically synced and cleared.
174
177
 
175
- - Magic link auth for better mobile UX
176
- - Zustand for state management
178
+ ---
177
179
 
178
- ## Critical Paths
180
+ ## Feedback Signals
179
181
 
180
- - Auth: src/lib/supabase.ts src/providers/AuthProvider.tsx
182
+ claude-cognitive automatically tracks which recalled memories are useful and submits feedback to Hindsight. This enables **query-context aware scoring** - frequently used facts rank higher in future recalls.
181
183
 
182
- ## Observations
184
+ ### How It Works
183
185
 
184
- <!-- Promoted from Hindsight when confidence > 0.9 -->
186
+ 1. **Track** - Recalls are tracked during sessions
187
+ 2. **Detect** - 4 detection strategies identify which facts Claude used
188
+ 3. **Score** - Signals are aggregated into used/ignored verdicts
189
+ 4. **Submit** - Feedback is sent to Hindsight (or queued offline)
190
+ 5. **Boost** - Future recalls prioritize frequently-used facts
185
191
 
186
- - Auth changes often require navigation updates
187
- ```
192
+ ### Detection Strategies
188
193
 
189
- This file is always loaded at session start and takes precedence over Hindsight memories when there are conflicts.
194
+ | Strategy | Confidence | Description |
195
+ |----------|------------|-------------|
196
+ | Explicit Reference | 0.9 | "I remember...", "As mentioned before..." |
197
+ | Semantic Similarity | 0.7 | Word overlap between response and facts |
198
+ | File Access | 0.4 | Fact mentions files Claude accessed |
199
+ | Task Correlation | 0.5 | Fact topics match completed tasks |
190
200
 
191
- ---
201
+ ### Configuration
192
202
 
193
- ## Graceful Degradation
203
+ ```json
204
+ {
205
+ "feedback": {
206
+ "enabled": true,
207
+ "detection": {
208
+ "explicit": true,
209
+ "semantic": true,
210
+ "behavioral": true
211
+ }
212
+ }
213
+ }
214
+ ```
215
+
216
+ ### CLI Commands
194
217
 
195
- When Hindsight is unavailable, claude-cognitive continues working with semantic memory only:
218
+ ```bash
219
+ claude-cognitive feedback-stats # Show queue statistics
220
+ claude-cognitive feedback-sync # Sync pending signals
221
+ ```
196
222
 
197
- | Operation | With Hindsight | Without Hindsight |
198
- | ------------- | -------------- | -------------------------- |
199
- | Session start | Full context | Semantic only |
200
- | recall | 4-way search | Empty results |
201
- | reflect | LLM reasoning | Error (requires Hindsight) |
202
- | retain | Stored | Skipped |
223
+ See [Feedback Signals](./docs/feedback-signals.md) for full documentation.
203
224
 
204
225
  ---
205
226
 
@@ -238,7 +259,7 @@ const result = await mind.learn({ depth: "full" });
238
259
  - **Node.js 18+**
239
260
  - **[Hindsight](https://github.com/vectorize-io/hindsight)** server running (for full functionality)
240
261
 
241
- Without Hindsight, claude-cognitive works in degraded mode with semantic memory only.
262
+ Without Hindsight, claude-cognitive works in offline mode - memories are stored locally and automatically synced when Hindsight becomes available.
242
263
 
243
264
  ---
244
265
 
@@ -248,6 +269,7 @@ Without Hindsight, claude-cognitive works in degraded mode with semantic memory
248
269
  - **[Concepts](./docs/concepts.md)** - Memory networks, operations, architecture
249
270
  - **[Configuration](./docs/configuration.md)** - Full configuration reference
250
271
  - **[API Reference](./docs/api-reference.md)** - Complete API documentation
272
+ - **[Feedback Signals](./docs/feedback-signals.md)** - Automatic usage tracking
251
273
  - **[Performance](./docs/performance.md)** - Benchmarks and optimization
252
274
 
253
275
  ---
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agents/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,YAAY,CAAC,CA+BvB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CA2D/D;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,GACX,MAAM,CAeR"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agents/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,YAAY,CAAC,CA8BvB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CA2D/D;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,GACX,MAAM,CAeR"}
@@ -17,15 +17,15 @@
17
17
  */
18
18
  export async function getAgentContext(client, bankId, template, task, options = {}) {
19
19
  const { budget = "mid", additionalContext, maxMemories = 10 } = options;
20
- // Recall memories relevant to the task
21
- const recallOptions = {
22
- budget,
23
- factType: "all", // Agent benefits from all memory types
24
- includeEntities: true,
25
- };
26
20
  let memories = [];
27
21
  try {
28
- memories = await client.recall(bankId, task, recallOptions);
22
+ memories = await client.recall({
23
+ bankId,
24
+ query: task,
25
+ budget,
26
+ factType: "all", // Agent benefits from all memory types
27
+ includeEntities: true,
28
+ });
29
29
  // Limit to maxMemories
30
30
  memories = memories.slice(0, maxMemories);
31
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agents/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agents/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI feedback-stats command - show feedback queue and processing statistics.
3
+ * @module cli/commands/feedback-stats
4
+ */
5
+ import type { CAC } from "cac";
6
+ /**
7
+ * Register the feedback-stats command.
8
+ */
9
+ export declare function registerFeedbackStatsCommand(cli: CAC): void;
10
+ //# sourceMappingURL=feedback-stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-stats.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/feedback-stats.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAuD/B;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAqC3D"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * CLI feedback-stats command - show feedback queue and processing statistics.
3
+ * @module cli/commands/feedback-stats
4
+ */
5
+ import { Mind } from "../../mind.js";
6
+ import { output, info } from "../utils/index.js";
7
+ /**
8
+ * Format feedback stats for human-readable output.
9
+ */
10
+ function formatFeedbackStats(result) {
11
+ const lines = [];
12
+ lines.push("Feedback System Status");
13
+ lines.push("=".repeat(40));
14
+ lines.push(`Bank: ${result.bankId}`);
15
+ lines.push(`Feedback enabled: ${result.feedbackEnabled ? "Yes" : "No"}`);
16
+ lines.push(`Mode: ${result.degraded ? "Degraded (offline)" : "Online"}`);
17
+ if (result.queue) {
18
+ lines.push("");
19
+ lines.push("Offline Queue:");
20
+ lines.push(` Total signals: ${result.queue.total}`);
21
+ lines.push(` Pending sync: ${result.queue.pending}`);
22
+ lines.push(` Already synced: ${result.queue.synced}`);
23
+ if (result.queue.lastSyncAttempt) {
24
+ const date = new Date(result.queue.lastSyncAttempt).toLocaleString();
25
+ lines.push(` Last sync attempt: ${date}`);
26
+ }
27
+ if (result.queue.lastSyncSuccess) {
28
+ const date = new Date(result.queue.lastSyncSuccess).toLocaleString();
29
+ lines.push(` Last successful sync: ${date}`);
30
+ }
31
+ }
32
+ else if (result.feedbackEnabled) {
33
+ lines.push("");
34
+ lines.push("Offline Queue: No pending signals");
35
+ }
36
+ return lines.join("\n");
37
+ }
38
+ /**
39
+ * Register the feedback-stats command.
40
+ */
41
+ export function registerFeedbackStatsCommand(cli) {
42
+ cli
43
+ .command("feedback-stats", "Show feedback queue and processing statistics")
44
+ .option("--project <path>", "Project directory (default: current directory)")
45
+ .option("--json", "Output as JSON")
46
+ .option("--quiet", "Suppress output")
47
+ .action(async (options) => {
48
+ const projectPath = options.project ?? process.cwd();
49
+ const mind = new Mind({ projectPath });
50
+ await mind.init();
51
+ const queue = mind.getOfflineFeedbackQueue();
52
+ const feedbackEnabled = queue !== null;
53
+ const result = {
54
+ feedbackEnabled,
55
+ degraded: mind.isDegraded,
56
+ bankId: mind.getBankId(),
57
+ };
58
+ if (queue) {
59
+ const stats = await queue.getStats();
60
+ result.queue = stats;
61
+ }
62
+ if (!feedbackEnabled && !options.quiet && !options.json) {
63
+ info("Feedback system is not enabled. Enable it in .claudemindrc:", options);
64
+ info(' "feedback": { "enabled": true }', options);
65
+ info("", options);
66
+ }
67
+ output(result, formatFeedbackStats, options);
68
+ });
69
+ }
70
+ //# sourceMappingURL=feedback-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-stats.js","sourceRoot":"","sources":["../../../src/cli/commands/feedback-stats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI feedback-sync command - sync pending offline feedback signals to Hindsight.
3
+ * @module cli/commands/feedback-sync
4
+ */
5
+ import type { CAC } from "cac";
6
+ /**
7
+ * Register the feedback-sync command.
8
+ */
9
+ export declare function registerFeedbackSyncCommand(cli: CAC): void;
10
+ //# sourceMappingURL=feedback-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-sync.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/feedback-sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AA6C/B;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA+F1D"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * CLI feedback-sync command - sync pending offline feedback signals to Hindsight.
3
+ * @module cli/commands/feedback-sync
4
+ */
5
+ import { Mind } from "../../mind.js";
6
+ import { output, info } from "../utils/index.js";
7
+ /**
8
+ * Format feedback sync result for human-readable output.
9
+ */
10
+ function formatFeedbackSyncResult(result) {
11
+ const lines = [];
12
+ if (result.success) {
13
+ if (result.signalsSynced > 0) {
14
+ lines.push(`Successfully synced ${result.signalsSynced} feedback signal(s) to Hindsight.`);
15
+ }
16
+ else {
17
+ lines.push("No pending feedback signals to sync.");
18
+ }
19
+ if (result.signalsCleared > 0) {
20
+ lines.push(`Cleared ${result.signalsCleared} synced signal(s) from queue.`);
21
+ }
22
+ }
23
+ else {
24
+ lines.push(`Failed to sync feedback signals: ${result.error ?? "Unknown error"}`);
25
+ if (result.degraded) {
26
+ lines.push("Hindsight is unavailable. Signals will be synced when connection is restored.");
27
+ }
28
+ }
29
+ return lines.join("\n");
30
+ }
31
+ /**
32
+ * Register the feedback-sync command.
33
+ */
34
+ export function registerFeedbackSyncCommand(cli) {
35
+ cli
36
+ .command("feedback-sync", "Sync pending offline feedback signals to Hindsight")
37
+ .option("--project <path>", "Project directory (default: current directory)")
38
+ .option("--json", "Output as JSON")
39
+ .option("--quiet", "Suppress output")
40
+ .option("--clear", "Clear synced signals after successful sync")
41
+ .action(async (options) => {
42
+ const projectPath = options.project ?? process.cwd();
43
+ const mind = new Mind({ projectPath });
44
+ await mind.init();
45
+ const queue = mind.getOfflineFeedbackQueue();
46
+ if (!queue) {
47
+ const result = {
48
+ success: false,
49
+ signalsSynced: 0,
50
+ signalsCleared: 0,
51
+ error: "Feedback system is not enabled",
52
+ degraded: mind.isDegraded,
53
+ };
54
+ output(result, formatFeedbackSyncResult, options);
55
+ return;
56
+ }
57
+ // Check if we're in degraded mode
58
+ if (mind.isDegraded) {
59
+ // Attempt recovery first
60
+ info("Hindsight unavailable, attempting recovery...", options);
61
+ const recovered = await mind.attemptRecovery();
62
+ if (!recovered) {
63
+ const result = {
64
+ success: false,
65
+ signalsSynced: 0,
66
+ signalsCleared: 0,
67
+ error: "Hindsight is unavailable",
68
+ degraded: true,
69
+ };
70
+ output(result, formatFeedbackSyncResult, options);
71
+ return;
72
+ }
73
+ info("Connection restored!", options);
74
+ }
75
+ // Get pending count before sync
76
+ const statsBefore = await queue.getStats();
77
+ if (statsBefore.pending === 0) {
78
+ const result = {
79
+ success: true,
80
+ signalsSynced: 0,
81
+ signalsCleared: 0,
82
+ degraded: false,
83
+ };
84
+ output(result, formatFeedbackSyncResult, options);
85
+ return;
86
+ }
87
+ info(`Found ${statsBefore.pending} pending signal(s) to sync...`, options);
88
+ // Sync signals
89
+ let signalsSynced = 0;
90
+ let signalsCleared = 0;
91
+ try {
92
+ signalsSynced = await mind.syncOfflineFeedback();
93
+ // Clear synced signals if requested
94
+ if (options.clear && signalsSynced > 0) {
95
+ signalsCleared = await queue.clearSynced();
96
+ }
97
+ const result = {
98
+ success: true,
99
+ signalsSynced,
100
+ signalsCleared,
101
+ degraded: false,
102
+ };
103
+ output(result, formatFeedbackSyncResult, options);
104
+ }
105
+ catch (error) {
106
+ const result = {
107
+ success: false,
108
+ signalsSynced: 0,
109
+ signalsCleared: 0,
110
+ error: error instanceof Error ? error.message : String(error),
111
+ degraded: mind.isDegraded,
112
+ };
113
+ output(result, formatFeedbackSyncResult, options);
114
+ }
115
+ });
116
+ }
117
+ //# sourceMappingURL=feedback-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-sync.js","sourceRoot":"","sources":["../../../src/cli/commands/feedback-sync.ts"],"names":[],"mappings":"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"}
@@ -16,4 +16,6 @@ export { registerUninstallCommand } from "./uninstall.js";
16
16
  export { registerSyncCommand } from "./sync.js";
17
17
  export { registerSyncSessionCommand } from "./sync-session.js";
18
18
  export { registerUpdateCommand } from "./update.js";
19
+ export { registerFeedbackStatsCommand } from "./feedback-stats.js";
20
+ export { registerFeedbackSyncCommand } from "./feedback-sync.js";
19
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
@@ -16,4 +16,6 @@ export { registerUninstallCommand } from "./uninstall.js";
16
16
  export { registerSyncCommand } from "./sync.js";
17
17
  export { registerSyncSessionCommand } from "./sync-session.js";
18
18
  export { registerUpdateCommand } from "./update.js";
19
+ export { registerFeedbackStatsCommand } from "./feedback-stats.js";
20
+ export { registerFeedbackSyncCommand } from "./feedback-sync.js";
19
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAiZ/B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAmZrD"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AA8hB/B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAmZrD"}