@stackmemoryai/stackmemory 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/agents/core/agent-task-manager.js +3 -3
- package/dist/src/agents/verifiers/formatter-verifier.js +1 -1
- package/dist/src/agents/verifiers/llm-judge.js +2 -2
- package/dist/src/cli/commands/context-rehydrate.js +2 -2
- package/dist/src/cli/commands/log.js +1 -1
- package/dist/src/cli/commands/onboard.js +4 -4
- package/dist/src/cli/commands/search.js +3 -3
- package/dist/src/cli/commands/setup.js +1 -1
- package/dist/src/cli/commands/signup.js +1 -1
- package/dist/src/cli/commands/skills.js +2 -2
- package/dist/src/cli/commands/worktree.js +1 -1
- package/dist/src/core/config/config-manager.js +3 -1
- package/dist/src/core/config/types.js +7 -0
- package/dist/src/core/context/dual-stack-manager.js +2 -2
- package/dist/src/core/context/frame-database.js +38 -0
- package/dist/src/core/context/frame-enrichment.js +93 -0
- package/dist/src/core/context/frame-handoff-manager.js +1 -1
- package/dist/src/core/context/frame-manager.js +4 -4
- package/dist/src/core/context/rehydration.js +6 -6
- package/dist/src/core/database/sqlite-adapter.js +136 -15
- package/dist/src/core/digest/frame-digest-integration.js +1 -1
- package/dist/src/core/digest/hybrid-digest-generator.js +1 -1
- package/dist/src/core/digest/hybrid-digest.js +3 -3
- package/dist/src/core/errors/recovery.js +1 -1
- package/dist/src/core/extensions/loader.js +10 -10
- package/dist/src/core/extensions/plugin-system.js +1 -1
- package/dist/src/core/monitoring/logger.js +2 -2
- package/dist/src/core/monitoring/metrics.js +2 -2
- package/dist/src/core/monitoring/progress-tracker.js +2 -2
- package/dist/src/core/performance/lazy-context-loader.js +1 -1
- package/dist/src/core/performance/performance-benchmark.js +8 -8
- package/dist/src/core/performance/performance-profiler.js +2 -2
- package/dist/src/core/performance/streaming-jsonl-parser.js +1 -1
- package/dist/src/core/projects/project-isolation.js +1 -1
- package/dist/src/core/projects/project-manager.js +5 -5
- package/dist/src/core/session/clear-survival.js +3 -3
- package/dist/src/core/session/handoff-generator.js +1 -1
- package/dist/src/core/session/session-manager.js +4 -4
- package/dist/src/core/skills/skill-storage.js +2 -2
- package/dist/src/core/storage/remote-storage.js +2 -2
- package/dist/src/core/trace/cli-trace-wrapper.js +3 -3
- package/dist/src/core/trace/debug-trace.js +2 -2
- package/dist/src/core/trace/trace-detector.js +1 -1
- package/dist/src/core/worktree/worktree-manager.js +2 -2
- package/dist/src/features/analytics/api/analytics-api.js +1 -1
- package/dist/src/features/analytics/core/analytics-service.js +2 -2
- package/dist/src/features/analytics/queries/metrics-queries.js +1 -1
- package/dist/src/features/web/server/index.js +8 -8
- package/dist/src/integrations/anthropic/client.js +4 -4
- package/dist/src/integrations/claude-code/post-task-hooks.js +3 -3
- package/dist/src/integrations/claude-code/subagent-client.js +2 -2
- package/dist/src/integrations/diffmem/client.js +1 -1
- package/dist/src/integrations/linear/client.js +1 -1
- package/dist/src/integrations/linear/migration.js +1 -1
- package/dist/src/integrations/linear/oauth-server.js +2 -2
- package/dist/src/integrations/linear/sync.js +1 -1
- package/dist/src/integrations/linear/webhook-handler.js +2 -2
- package/dist/src/integrations/linear/webhook-server.js +2 -2
- package/dist/src/integrations/linear/webhook.js +2 -2
- package/dist/src/integrations/mcp/handlers/discovery-handlers.js +3 -3
- package/dist/src/integrations/mcp/handlers/linear-handlers.js +1 -1
- package/dist/src/integrations/mcp/handlers/skill-handlers.js +2 -2
- package/dist/src/integrations/mcp/handlers/task-handlers.js +2 -2
- package/dist/src/integrations/mcp/handlers/trace-handlers.js +1 -1
- package/dist/src/integrations/mcp/refactored-server.js +2 -2
- package/dist/src/integrations/mcp/remote-server.js +1 -1
- package/dist/src/integrations/mcp/server.js +4 -4
- package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js +13 -13
- package/dist/src/integrations/ralph/context/stackmemory-context-loader.js +1 -1
- package/dist/src/integrations/ralph/learning/pattern-learner.js +3 -3
- package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js +1 -1
- package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js +2 -2
- package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js +19 -19
- package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js +5 -5
- package/dist/src/integrations/ralph/performance/performance-optimizer.js +1 -1
- package/dist/src/integrations/ralph/recovery/crash-recovery.js +1 -1
- package/dist/src/integrations/ralph/state/state-reconciler.js +1 -1
- package/dist/src/integrations/ralph/swarm/git-workflow-manager.js +4 -4
- package/dist/src/integrations/ralph/swarm/swarm-coordinator.js +8 -8
- package/dist/src/integrations/ralph/visualization/ralph-debugger.js +3 -3
- package/dist/src/orchestrators/multimodal/harness.js +3 -3
- package/dist/src/servers/production/auth-middleware.js +2 -2
- package/package.json +1 -1
|
@@ -117,7 +117,7 @@ class SwarmCoordinator {
|
|
|
117
117
|
/**
|
|
118
118
|
* Launch a swarm of agents to work on a complex project
|
|
119
119
|
*/
|
|
120
|
-
async launchSwarm(projectDescription, agents,
|
|
120
|
+
async launchSwarm(projectDescription, agents, _coordination) {
|
|
121
121
|
logger.info("Launching swarm", {
|
|
122
122
|
project: projectDescription.substring(0, 100),
|
|
123
123
|
agentCount: agents.length
|
|
@@ -236,7 +236,7 @@ class SwarmCoordinator {
|
|
|
236
236
|
/**
|
|
237
237
|
* Initialize specialized agents with role-specific configurations
|
|
238
238
|
*/
|
|
239
|
-
async initializeSpecializedAgents(specifications,
|
|
239
|
+
async initializeSpecializedAgents(specifications, _tasks) {
|
|
240
240
|
const agents = [];
|
|
241
241
|
for (const spec of specifications) {
|
|
242
242
|
const agent = {
|
|
@@ -704,7 +704,7 @@ You are a PROJECT COORDINATOR. Your role is to:
|
|
|
704
704
|
complexity: "medium"
|
|
705
705
|
};
|
|
706
706
|
}
|
|
707
|
-
extractCoreFeatures(
|
|
707
|
+
extractCoreFeatures(_description) {
|
|
708
708
|
return [
|
|
709
709
|
{
|
|
710
710
|
name: "Core Feature",
|
|
@@ -760,7 +760,7 @@ You are a PROJECT COORDINATOR. Your role is to:
|
|
|
760
760
|
agentCanHandle(agent, role) {
|
|
761
761
|
return agent.role === role || agent.capabilities.includes(role);
|
|
762
762
|
}
|
|
763
|
-
selectOptimalAgent(agents,
|
|
763
|
+
selectOptimalAgent(agents, _task) {
|
|
764
764
|
return agents.reduce((best, current) => {
|
|
765
765
|
const bestLoad = best.currentTask ? 1 : 0;
|
|
766
766
|
const currentLoad = current.currentTask ? 1 : 0;
|
|
@@ -792,18 +792,18 @@ You are a PROJECT COORDINATOR. Your role is to:
|
|
|
792
792
|
};
|
|
793
793
|
return iterations[task.estimatedEffort] || 10;
|
|
794
794
|
}
|
|
795
|
-
async getSwarmContext(
|
|
795
|
+
async getSwarmContext(_task) {
|
|
796
796
|
const relatedTasks = Array.from(this.activeAgents.values()).filter((a) => a.currentTask).map((a) => `- Agent ${a.role} is working on task ${a.currentTask}`).join("\n");
|
|
797
797
|
return relatedTasks || "No other agents currently active";
|
|
798
798
|
}
|
|
799
|
-
getCoordinationInstructions(
|
|
799
|
+
getCoordinationInstructions(_agent) {
|
|
800
800
|
return `
|
|
801
801
|
- Save progress to shared context regularly
|
|
802
802
|
- Check for updates from collaborators
|
|
803
803
|
- Request help if blocked for more than 2 iterations
|
|
804
804
|
- Report completion immediately`;
|
|
805
805
|
}
|
|
806
|
-
setupAgentCoordination(agent,
|
|
806
|
+
setupAgentCoordination(agent, _ralph, _assignment) {
|
|
807
807
|
logger.debug(`Setting up coordination for agent ${agent.id}`);
|
|
808
808
|
}
|
|
809
809
|
updateAgentPerformance(agent, success) {
|
|
@@ -839,7 +839,7 @@ You are a PROJECT COORDINATOR. Your role is to:
|
|
|
839
839
|
});
|
|
840
840
|
}
|
|
841
841
|
}
|
|
842
|
-
async detectTunnelVision(
|
|
842
|
+
async detectTunnelVision(_agent) {
|
|
843
843
|
return false;
|
|
844
844
|
}
|
|
845
845
|
async provideAlternativeApproach(agent) {
|
|
@@ -200,11 +200,11 @@ class RalphDebugger {
|
|
|
200
200
|
try {
|
|
201
201
|
const statePath = path.join(session.ralphDir, "state.json");
|
|
202
202
|
const iterationPath = path.join(session.ralphDir, "iteration.txt");
|
|
203
|
-
let
|
|
203
|
+
let _currentState = {};
|
|
204
204
|
let currentIteration = 0;
|
|
205
205
|
try {
|
|
206
206
|
const stateData = await fs.readFile(statePath, "utf8");
|
|
207
|
-
|
|
207
|
+
_currentState = JSON.parse(stateData);
|
|
208
208
|
const iterData = await fs.readFile(iterationPath, "utf8");
|
|
209
209
|
currentIteration = parseInt(iterData.trim()) || 0;
|
|
210
210
|
} catch {
|
|
@@ -435,7 +435,7 @@ class RalphDebugger {
|
|
|
435
435
|
return exportPath;
|
|
436
436
|
}
|
|
437
437
|
// Helper methods
|
|
438
|
-
determineIterationPhase(
|
|
438
|
+
determineIterationPhase(_ralphDir) {
|
|
439
439
|
return "working";
|
|
440
440
|
}
|
|
441
441
|
async calculateContextSize(ralphDir) {
|
|
@@ -81,7 +81,7 @@ Constraints: Keep the plan minimal and implementable in a single PR.`;
|
|
|
81
81
|
const iterations = [];
|
|
82
82
|
let approved = false;
|
|
83
83
|
let lastCommand = "";
|
|
84
|
-
let
|
|
84
|
+
let _lastOutput = "";
|
|
85
85
|
let lastCritique = {
|
|
86
86
|
approved: true,
|
|
87
87
|
issues: [],
|
|
@@ -106,14 +106,14 @@ Incorporate reviewer suggestions: ${lastCritique.suggestions.join("; ")}`;
|
|
|
106
106
|
);
|
|
107
107
|
ok = impl.ok;
|
|
108
108
|
lastCommand = impl.command;
|
|
109
|
-
|
|
109
|
+
_lastOutput = impl.output;
|
|
110
110
|
} else {
|
|
111
111
|
const impl = await implementWithClaude(implPrompt, {
|
|
112
112
|
model: options.plannerModel
|
|
113
113
|
});
|
|
114
114
|
ok = impl.ok;
|
|
115
115
|
lastCommand = `claude:${options.plannerModel || "sonnet"} prompt`;
|
|
116
|
-
|
|
116
|
+
_lastOutput = impl.output;
|
|
117
117
|
}
|
|
118
118
|
const diff = options.dryRun !== false ? "(dry run \u2014 no diff)" : captureGitDiff(input.repoPath);
|
|
119
119
|
const checks = options.dryRun !== false ? null : runPostImplChecks(input.repoPath);
|
|
@@ -10,7 +10,7 @@ import BetterSqlite3 from "better-sqlite3";
|
|
|
10
10
|
import { logger } from "../../core/monitoring/logger.js";
|
|
11
11
|
import { metrics } from "../../core/monitoring/metrics.js";
|
|
12
12
|
import { getUserModel } from "../../models/user.model.js";
|
|
13
|
-
function
|
|
13
|
+
function _getEnv(key, defaultValue) {
|
|
14
14
|
const value = process.env[key];
|
|
15
15
|
if (value === void 0) {
|
|
16
16
|
if (defaultValue !== void 0) return defaultValue;
|
|
@@ -18,7 +18,7 @@ function getEnv(key, defaultValue) {
|
|
|
18
18
|
}
|
|
19
19
|
return value;
|
|
20
20
|
}
|
|
21
|
-
function
|
|
21
|
+
function _getOptionalEnv(key) {
|
|
22
22
|
return process.env[key];
|
|
23
23
|
}
|
|
24
24
|
class AuthMiddleware {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackmemoryai/stackmemory",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "Lossless, project-scoped memory for AI coding tools. Durable context across sessions with 56 MCP tools, FTS5 search, conductor orchestrator, loop/watch monitoring, snapshot capture, pre-flight overlap checks, Claude/Codex/OpenCode wrappers, Linear sync, and automatic hooks.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=20.0.0",
|