gsd-pi 2.80.0-dev.cf9433f56 → 2.80.0-dev.d4fc28e6b
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/cli.js +0 -19
- package/dist/resources/.managed-resources-content-hash +1 -1
- package/dist/resources/extensions/claude-code-cli/stream-adapter.js +29 -0
- package/dist/resources/extensions/gsd/auto/loop.js +71 -8
- package/dist/resources/extensions/gsd/auto/phases.js +150 -94
- package/dist/resources/extensions/gsd/auto/resolve.js +12 -0
- package/dist/resources/extensions/gsd/auto/run-unit.js +10 -30
- package/dist/resources/extensions/gsd/auto/session.js +8 -0
- package/dist/resources/extensions/gsd/auto/workflow-dispatch-claim.js +33 -1
- package/dist/resources/extensions/gsd/auto/workflow-worker-heartbeat.js +9 -1
- package/dist/resources/extensions/gsd/auto-direct-dispatch.js +5 -32
- package/dist/resources/extensions/gsd/auto-dispatch.js +16 -0
- package/dist/resources/extensions/gsd/auto-post-unit.js +17 -4
- package/dist/resources/extensions/gsd/auto-prompts.js +90 -15
- package/dist/resources/extensions/gsd/auto-start.js +197 -6
- package/dist/resources/extensions/gsd/auto-worktree.js +111 -1
- package/dist/resources/extensions/gsd/auto.js +18 -22
- package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +86 -19
- package/dist/resources/extensions/gsd/bootstrap/db-tools.js +49 -36
- package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +15 -5
- package/dist/resources/extensions/gsd/bootstrap/exec-tools.js +9 -3
- package/dist/resources/extensions/gsd/bootstrap/journal-tools.js +7 -1
- package/dist/resources/extensions/gsd/bootstrap/memory-tools.js +9 -3
- package/dist/resources/extensions/gsd/bootstrap/query-tools.js +8 -2
- package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +298 -54
- package/dist/resources/extensions/gsd/bootstrap/system-context.js +82 -23
- package/dist/resources/extensions/gsd/clean-root-preflight.js +24 -6
- package/dist/resources/extensions/gsd/commands-handlers.js +23 -9
- package/dist/resources/extensions/gsd/db/unit-dispatches.js +53 -0
- package/dist/resources/extensions/gsd/ecosystem/gsd-extension-api.js +2 -0
- package/dist/resources/extensions/gsd/guided-flow.js +47 -28
- package/dist/resources/extensions/gsd/native-git-bridge.js +32 -8
- package/dist/resources/extensions/gsd/orphan-stash-audit.js +101 -0
- package/dist/resources/extensions/gsd/parallel-orchestrator.js +13 -3
- package/dist/resources/extensions/gsd/pre-execution-checks.js +15 -0
- package/dist/resources/extensions/gsd/prompts/complete-milestone.md +2 -0
- package/dist/resources/extensions/gsd/prompts/complete-slice.md +1 -1
- package/dist/resources/extensions/gsd/prompts/execute-task.md +4 -2
- package/dist/resources/extensions/gsd/prompts/plan-slice.md +1 -1
- package/dist/resources/extensions/gsd/prompts/replan-slice.md +2 -2
- package/dist/resources/extensions/gsd/workflow-protocol.js +131 -0
- package/dist/resources/extensions/gsd/worktree-resolver.js +35 -4
- package/dist/tsconfig.extensions.tsbuildinfo +1 -1
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +12 -12
- package/dist/web/standalone/.next/build-manifest.json +2 -2
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +12 -12
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/standalone/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/.next/server/pages/500.html +1 -1
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/welcome-screen.d.ts +2 -0
- package/dist/welcome-screen.js +9 -7
- package/package.json +1 -1
- package/packages/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/packages/pi-agent-core/dist/agent-loop.js +4 -1
- package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/packages/pi-agent-core/dist/agent.d.ts +5 -0
- package/packages/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/packages/pi-agent-core/dist/agent.js +2 -0
- package/packages/pi-agent-core/dist/agent.js.map +1 -1
- package/packages/pi-agent-core/dist/index.d.ts +1 -0
- package/packages/pi-agent-core/dist/index.d.ts.map +1 -1
- package/packages/pi-agent-core/dist/index.js +2 -0
- package/packages/pi-agent-core/dist/index.js.map +1 -1
- package/packages/pi-agent-core/dist/token-audit.d.ts +47 -0
- package/packages/pi-agent-core/dist/token-audit.d.ts.map +1 -0
- package/packages/pi-agent-core/dist/token-audit.js +221 -0
- package/packages/pi-agent-core/dist/token-audit.js.map +1 -0
- package/packages/pi-agent-core/dist/types.d.ts +9 -0
- package/packages/pi-agent-core/dist/types.d.ts.map +1 -1
- package/packages/pi-agent-core/dist/types.js.map +1 -1
- package/packages/pi-agent-core/src/agent-loop.test.ts +128 -0
- package/packages/pi-agent-core/src/agent-loop.ts +4 -1
- package/packages/pi-agent-core/src/agent.ts +8 -0
- package/packages/pi-agent-core/src/index.ts +2 -0
- package/packages/pi-agent-core/src/token-audit.test.ts +189 -0
- package/packages/pi-agent-core/src/token-audit.ts +287 -0
- package/packages/pi-agent-core/src/types.ts +14 -0
- package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session-tool-refresh.test.js +18 -0
- package/packages/pi-coding-agent/dist/core/agent-session-tool-refresh.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts +12 -0
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.js +36 -7
- package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/loader.js +8 -0
- package/packages/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.js +3 -6
- package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.test.js +3 -3
- package/packages/pi-coding-agent/dist/core/extensions/runner.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/types.d.ts +32 -1
- package/packages/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/hooks-runner.test.js +2 -0
- package/packages/pi-coding-agent/dist/core/hooks-runner.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/sdk-tool-filter.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/sdk-tool-filter.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/sdk-tool-filter.test.js +46 -0
- package/packages/pi-coding-agent/dist/core/sdk-tool-filter.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/sdk.d.ts +10 -2
- package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/sdk.js +74 -2
- package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/skill-tool.test.js +22 -0
- package/packages/pi-coding-agent/dist/core/skill-tool.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/system-prompt.d.ts +6 -7
- package/packages/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/system-prompt.js +2 -3
- package/packages/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
- package/packages/pi-coding-agent/src/core/agent-session-tool-refresh.test.ts +25 -0
- package/packages/pi-coding-agent/src/core/agent-session.ts +40 -7
- package/packages/pi-coding-agent/src/core/extensions/loader.ts +10 -0
- package/packages/pi-coding-agent/src/core/extensions/runner.test.ts +3 -3
- package/packages/pi-coding-agent/src/core/extensions/runner.ts +5 -5
- package/packages/pi-coding-agent/src/core/extensions/types.ts +35 -1
- package/packages/pi-coding-agent/src/core/hooks-runner.test.ts +2 -0
- package/packages/pi-coding-agent/src/core/sdk-tool-filter.test.ts +60 -0
- package/packages/pi-coding-agent/src/core/sdk.ts +85 -3
- package/packages/pi-coding-agent/src/core/skill-tool.test.ts +28 -0
- package/packages/pi-coding-agent/src/core/system-prompt.ts +8 -10
- package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
- package/src/resources/extensions/claude-code-cli/stream-adapter.ts +30 -0
- package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +26 -0
- package/src/resources/extensions/gsd/auto/loop-deps.ts +2 -2
- package/src/resources/extensions/gsd/auto/loop.ts +84 -8
- package/src/resources/extensions/gsd/auto/phases.ts +218 -154
- package/src/resources/extensions/gsd/auto/resolve.ts +19 -0
- package/src/resources/extensions/gsd/auto/run-unit.ts +10 -29
- package/src/resources/extensions/gsd/auto/session.ts +8 -0
- package/src/resources/extensions/gsd/auto/workflow-dispatch-claim.ts +63 -1
- package/src/resources/extensions/gsd/auto/workflow-worker-heartbeat.ts +14 -1
- package/src/resources/extensions/gsd/auto-direct-dispatch.ts +8 -34
- package/src/resources/extensions/gsd/auto-dispatch.ts +16 -0
- package/src/resources/extensions/gsd/auto-post-unit.ts +18 -4
- package/src/resources/extensions/gsd/auto-prompts.ts +95 -14
- package/src/resources/extensions/gsd/auto-start.ts +230 -9
- package/src/resources/extensions/gsd/auto-worktree.ts +123 -0
- package/src/resources/extensions/gsd/auto.ts +18 -18
- package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +100 -18
- package/src/resources/extensions/gsd/bootstrap/db-tools.ts +50 -36
- package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +16 -5
- package/src/resources/extensions/gsd/bootstrap/exec-tools.ts +10 -3
- package/src/resources/extensions/gsd/bootstrap/journal-tools.ts +8 -1
- package/src/resources/extensions/gsd/bootstrap/memory-tools.ts +10 -3
- package/src/resources/extensions/gsd/bootstrap/query-tools.ts +9 -2
- package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +347 -54
- package/src/resources/extensions/gsd/bootstrap/system-context.ts +90 -22
- package/src/resources/extensions/gsd/clean-root-preflight.ts +32 -7
- package/src/resources/extensions/gsd/commands-handlers.ts +34 -15
- package/src/resources/extensions/gsd/db/unit-dispatches.ts +66 -0
- package/src/resources/extensions/gsd/ecosystem/gsd-extension-api.ts +3 -0
- package/src/resources/extensions/gsd/guided-flow.ts +52 -35
- package/src/resources/extensions/gsd/native-git-bridge.ts +39 -6
- package/src/resources/extensions/gsd/orphan-stash-audit.ts +117 -0
- package/src/resources/extensions/gsd/parallel-orchestrator.ts +13 -3
- package/src/resources/extensions/gsd/pre-execution-checks.ts +16 -0
- package/src/resources/extensions/gsd/prompts/complete-milestone.md +2 -0
- package/src/resources/extensions/gsd/prompts/complete-slice.md +1 -1
- package/src/resources/extensions/gsd/prompts/execute-task.md +4 -2
- package/src/resources/extensions/gsd/prompts/plan-slice.md +1 -1
- package/src/resources/extensions/gsd/prompts/replan-slice.md +2 -2
- package/src/resources/extensions/gsd/tests/artifact-retry-cap.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +361 -10
- package/src/resources/extensions/gsd/tests/auto-wrapup-inflight-guard.test.ts +168 -6
- package/src/resources/extensions/gsd/tests/clean-root-preflight.test.ts +15 -6
- package/src/resources/extensions/gsd/tests/complete-milestone-excerpt.test.ts +31 -0
- package/src/resources/extensions/gsd/tests/complete-slice-composer.test.ts +3 -2
- package/src/resources/extensions/gsd/tests/context-store.test.ts +7 -1
- package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +5 -1
- package/src/resources/extensions/gsd/tests/execute-task-rendering.test.ts +5 -2
- package/src/resources/extensions/gsd/tests/fast-forward-reused-milestone-branch.test.ts +219 -0
- package/src/resources/extensions/gsd/tests/finalize-survivor-branch.test.ts +132 -0
- package/src/resources/extensions/gsd/tests/isolation-none-branch-guard.test.ts +6 -3
- package/src/resources/extensions/gsd/tests/journal-integration.test.ts +5 -1
- package/src/resources/extensions/gsd/tests/journal-query-tool.test.ts +32 -0
- package/src/resources/extensions/gsd/tests/knowledge.test.ts +47 -0
- package/src/resources/extensions/gsd/tests/merge-conflict-stops-loop.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/milestone-merge-stash-restore.test.ts +242 -0
- package/src/resources/extensions/gsd/tests/native-git-bridge-exec-fallback.test.ts +34 -2
- package/src/resources/extensions/gsd/tests/originalbase-path-comparison.test.ts +3 -0
- package/src/resources/extensions/gsd/tests/orphan-merge-bootstrap.test.ts +133 -0
- package/src/resources/extensions/gsd/tests/orphan-stash-audit.test.ts +201 -0
- package/src/resources/extensions/gsd/tests/parallel-orchestrator-fast-forward.test.ts +113 -0
- package/src/resources/extensions/gsd/tests/pre-execution-checks.test.ts +7 -5
- package/src/resources/extensions/gsd/tests/prompt-duplication-cuts.test.ts +230 -0
- package/src/resources/extensions/gsd/tests/query-tools-db-open.test.ts +3 -3
- package/src/resources/extensions/gsd/tests/restore-tools-after-discuss.test.ts +38 -17
- package/src/resources/extensions/gsd/tests/select-resumable-milestone.test.ts +96 -0
- package/src/resources/extensions/gsd/tests/session-start-footer.test.ts +77 -0
- package/src/resources/extensions/gsd/tests/session-switch-abort-misclassification.test.ts +166 -0
- package/src/resources/extensions/gsd/tests/state-corruption-2945.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/system-context-memory.test.ts +112 -0
- package/src/resources/extensions/gsd/tests/system-context-message-routing.test.ts +7 -9
- package/src/resources/extensions/gsd/tests/token-tool-gating.test.ts +291 -0
- package/src/resources/extensions/gsd/tests/unit-dispatches.test.ts +50 -1
- package/src/resources/extensions/gsd/tests/unstructured-continue-context-injection.test.ts +5 -4
- package/src/resources/extensions/gsd/tests/workflow-dispatch-claim.test.ts +142 -0
- package/src/resources/extensions/gsd/tests/workflow-protocol-excerpt.test.ts +99 -0
- package/src/resources/extensions/gsd/tests/workflow-worker-heartbeat.test.ts +32 -1
- package/src/resources/extensions/gsd/tests/worktree-journal-events.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/worktree-path-injection.test.ts +22 -19
- package/src/resources/extensions/gsd/tests/worktree-project-root-degrade.test.ts +66 -0
- package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +104 -3
- package/src/resources/extensions/gsd/workflow-protocol.ts +160 -0
- package/src/resources/extensions/gsd/worktree-resolver.ts +49 -4
- package/src/resources/extensions/gsd/tests/phases-merge-error-stops-auto.test.ts +0 -97
- /package/dist/web/standalone/.next/static/{-5nHJWzSdG-WkPMul_khA → cWaxzf-sdbSSbbwYu8q7a}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{-5nHJWzSdG-WkPMul_khA → cWaxzf-sdbSSbbwYu8q7a}/_ssgManifest.js +0 -0
|
@@ -4,6 +4,12 @@ import { createBashTool, createEditTool, createReadTool, createWriteTool } from
|
|
|
4
4
|
import { DEFAULT_BASH_TIMEOUT_SECS } from "../constants.js";
|
|
5
5
|
import { setLogBasePath, logWarning } from "../workflow-logger.js";
|
|
6
6
|
import { resolveGsdPathContract } from "../paths.js";
|
|
7
|
+
function resolveToolWorkspaceRoot(ctx) {
|
|
8
|
+
if (ctx && typeof ctx === "object" && typeof ctx.cwd === "string") {
|
|
9
|
+
return ctx.cwd;
|
|
10
|
+
}
|
|
11
|
+
return process.cwd();
|
|
12
|
+
}
|
|
7
13
|
/**
|
|
8
14
|
* Resolve the correct DB path for the current working directory.
|
|
9
15
|
* If `basePath` is inside a `.gsd/worktrees/<MID>/` directory, returns
|
|
@@ -45,16 +51,20 @@ export async function ensureDbOpen(basePath = process.cwd()) {
|
|
|
45
51
|
}
|
|
46
52
|
export function registerDynamicTools(pi) {
|
|
47
53
|
const baseBash = createBashTool(process.cwd(), {
|
|
48
|
-
spawnHook: (ctx) =>
|
|
54
|
+
spawnHook: (ctx) => ctx,
|
|
49
55
|
});
|
|
50
56
|
const dynamicBash = {
|
|
51
57
|
...baseBash,
|
|
52
58
|
execute: async (toolCallId, params, signal, onUpdate, ctx) => {
|
|
59
|
+
const basePath = resolveToolWorkspaceRoot(ctx);
|
|
60
|
+
const fresh = createBashTool(basePath, {
|
|
61
|
+
spawnHook: (spawnCtx) => ({ ...spawnCtx, cwd: basePath }),
|
|
62
|
+
});
|
|
53
63
|
const paramsWithTimeout = {
|
|
54
64
|
...params,
|
|
55
65
|
timeout: params.timeout ?? DEFAULT_BASH_TIMEOUT_SECS,
|
|
56
66
|
};
|
|
57
|
-
return
|
|
67
|
+
return fresh.execute(toolCallId, paramsWithTimeout, signal, onUpdate, ctx);
|
|
58
68
|
},
|
|
59
69
|
};
|
|
60
70
|
pi.registerTool(dynamicBash);
|
|
@@ -62,7 +72,7 @@ export function registerDynamicTools(pi) {
|
|
|
62
72
|
pi.registerTool({
|
|
63
73
|
...baseWrite,
|
|
64
74
|
execute: async (toolCallId, params, signal, onUpdate, ctx) => {
|
|
65
|
-
const fresh = createWriteTool(
|
|
75
|
+
const fresh = createWriteTool(resolveToolWorkspaceRoot(ctx));
|
|
66
76
|
return fresh.execute(toolCallId, params, signal, onUpdate, ctx);
|
|
67
77
|
},
|
|
68
78
|
});
|
|
@@ -70,7 +80,7 @@ export function registerDynamicTools(pi) {
|
|
|
70
80
|
pi.registerTool({
|
|
71
81
|
...baseRead,
|
|
72
82
|
execute: async (toolCallId, params, signal, onUpdate, ctx) => {
|
|
73
|
-
const fresh = createReadTool(
|
|
83
|
+
const fresh = createReadTool(resolveToolWorkspaceRoot(ctx));
|
|
74
84
|
return fresh.execute(toolCallId, params, signal, onUpdate, ctx);
|
|
75
85
|
},
|
|
76
86
|
});
|
|
@@ -78,7 +88,7 @@ export function registerDynamicTools(pi) {
|
|
|
78
88
|
pi.registerTool({
|
|
79
89
|
...baseEdit,
|
|
80
90
|
execute: async (toolCallId, params, signal, onUpdate, ctx) => {
|
|
81
|
-
const fresh = createEditTool(
|
|
91
|
+
const fresh = createEditTool(resolveToolWorkspaceRoot(ctx));
|
|
82
92
|
return fresh.execute(toolCallId, params, signal, onUpdate, ctx);
|
|
83
93
|
},
|
|
84
94
|
});
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
// Exposes the Context Mode runtime tools in-process. Default-on; opt out with
|
|
4
4
|
// `context_mode.enabled: false` in preferences.
|
|
5
5
|
import { Type } from "@sinclair/typebox";
|
|
6
|
+
function toolWorkspaceRoot(ctx) {
|
|
7
|
+
if (ctx && typeof ctx === "object" && typeof ctx.cwd === "string") {
|
|
8
|
+
return ctx.cwd;
|
|
9
|
+
}
|
|
10
|
+
return process.cwd();
|
|
11
|
+
}
|
|
6
12
|
async function loadContextModePreferences(baseDir) {
|
|
7
13
|
const [{ loadEffectiveGSDPreferences }, { logWarning }] = await Promise.all([
|
|
8
14
|
import("../preferences.js"),
|
|
@@ -44,7 +50,7 @@ export function registerExecTools(pi) {
|
|
|
44
50
|
}),
|
|
45
51
|
async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
|
|
46
52
|
const { executeGsdExec } = await import("../tools/exec-tool.js");
|
|
47
|
-
const baseDir =
|
|
53
|
+
const baseDir = toolWorkspaceRoot(_ctx);
|
|
48
54
|
return executeGsdExec(params, {
|
|
49
55
|
baseDir,
|
|
50
56
|
preferences: await loadContextModePreferences(baseDir),
|
|
@@ -71,7 +77,7 @@ export function registerExecTools(pi) {
|
|
|
71
77
|
}),
|
|
72
78
|
async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
|
|
73
79
|
const { executeExecSearch } = await import("../tools/exec-search-tool.js");
|
|
74
|
-
const baseDir =
|
|
80
|
+
const baseDir = toolWorkspaceRoot(_ctx);
|
|
75
81
|
return executeExecSearch(params, {
|
|
76
82
|
baseDir,
|
|
77
83
|
preferences: await loadContextModePreferences(baseDir),
|
|
@@ -92,7 +98,7 @@ export function registerExecTools(pi) {
|
|
|
92
98
|
parameters: Type.Object({}),
|
|
93
99
|
async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
|
|
94
100
|
const { executeResume } = await import("../tools/resume-tool.js");
|
|
95
|
-
const baseDir =
|
|
101
|
+
const baseDir = toolWorkspaceRoot(_ctx);
|
|
96
102
|
return executeResume(params, {
|
|
97
103
|
baseDir,
|
|
98
104
|
preferences: await loadContextModePreferences(baseDir),
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
2
|
import { queryJournal } from "../journal.js";
|
|
3
3
|
import { logWarning } from "../workflow-logger.js";
|
|
4
|
+
function toolWorkspaceRoot(ctx) {
|
|
5
|
+
if (ctx && typeof ctx === "object" && typeof ctx.cwd === "string") {
|
|
6
|
+
return ctx.cwd;
|
|
7
|
+
}
|
|
8
|
+
return process.cwd();
|
|
9
|
+
}
|
|
4
10
|
export function registerJournalTools(pi) {
|
|
5
11
|
pi.registerTool({
|
|
6
12
|
name: "gsd_journal_query",
|
|
@@ -37,7 +43,7 @@ export function registerJournalTools(pi) {
|
|
|
37
43
|
filters.after = params.after;
|
|
38
44
|
if (params.before !== undefined)
|
|
39
45
|
filters.before = params.before;
|
|
40
|
-
const entries = queryJournal(
|
|
46
|
+
const entries = queryJournal(toolWorkspaceRoot(_ctx), filters);
|
|
41
47
|
const limited = entries.slice(0, params.limit ?? 100);
|
|
42
48
|
if (limited.length === 0) {
|
|
43
49
|
return {
|
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
import { Type } from "@sinclair/typebox";
|
|
7
7
|
import { ensureDbOpen } from "./dynamic-tools.js";
|
|
8
8
|
import { executeGsdGraph, executeMemoryCapture, executeMemoryQuery, } from "../tools/memory-tools.js";
|
|
9
|
+
function toolWorkspaceRoot(ctx) {
|
|
10
|
+
if (ctx && typeof ctx === "object" && typeof ctx.cwd === "string") {
|
|
11
|
+
return ctx.cwd;
|
|
12
|
+
}
|
|
13
|
+
return process.cwd();
|
|
14
|
+
}
|
|
9
15
|
export function registerMemoryTools(pi) {
|
|
10
16
|
// ─── capture_thought ────────────────────────────────────────────────────
|
|
11
17
|
pi.registerTool({
|
|
@@ -39,7 +45,7 @@ export function registerMemoryTools(pi) {
|
|
|
39
45
|
})),
|
|
40
46
|
}),
|
|
41
47
|
async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
|
|
42
|
-
const ok = await ensureDbOpen();
|
|
48
|
+
const ok = await ensureDbOpen(toolWorkspaceRoot(_ctx));
|
|
43
49
|
if (!ok) {
|
|
44
50
|
return {
|
|
45
51
|
content: [{ type: "text", text: "Error: GSD database is not available. Cannot capture memory." }],
|
|
@@ -79,7 +85,7 @@ export function registerMemoryTools(pi) {
|
|
|
79
85
|
reinforce_hits: Type.Optional(Type.Boolean({ description: "Increment hit_count on returned memories (default false)" })),
|
|
80
86
|
}),
|
|
81
87
|
async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
|
|
82
|
-
const ok = await ensureDbOpen();
|
|
88
|
+
const ok = await ensureDbOpen(toolWorkspaceRoot(_ctx));
|
|
83
89
|
if (!ok) {
|
|
84
90
|
return {
|
|
85
91
|
content: [{ type: "text", text: "Error: GSD database is not available. Cannot query memory." }],
|
|
@@ -117,7 +123,7 @@ export function registerMemoryTools(pi) {
|
|
|
117
123
|
], { description: "Only include edges with this relation type" })),
|
|
118
124
|
}),
|
|
119
125
|
async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
|
|
120
|
-
const ok = await ensureDbOpen();
|
|
126
|
+
const ok = await ensureDbOpen(toolWorkspaceRoot(_ctx));
|
|
121
127
|
if (!ok) {
|
|
122
128
|
return {
|
|
123
129
|
content: [{ type: "text", text: "Error: GSD database is not available." }],
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
// GSD2 — Read-only query tools exposing DB state to the LLM via the WAL connection
|
|
2
2
|
import { Type } from "@sinclair/typebox";
|
|
3
3
|
import { ensureDbOpen } from "./dynamic-tools.js";
|
|
4
|
+
function toolWorkspaceRoot(ctx) {
|
|
5
|
+
if (ctx && typeof ctx === "object" && typeof ctx.cwd === "string") {
|
|
6
|
+
return ctx.cwd;
|
|
7
|
+
}
|
|
8
|
+
return process.cwd();
|
|
9
|
+
}
|
|
4
10
|
export function registerQueryTools(pi) {
|
|
5
11
|
pi.registerTool({
|
|
6
12
|
name: "gsd_milestone_status",
|
|
@@ -16,7 +22,7 @@ export function registerQueryTools(pi) {
|
|
|
16
22
|
milestoneId: Type.String({ description: "Milestone ID to query (e.g. M001)" }),
|
|
17
23
|
}),
|
|
18
24
|
async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
|
|
19
|
-
const dbAvailable = await ensureDbOpen();
|
|
25
|
+
const dbAvailable = await ensureDbOpen(toolWorkspaceRoot(_ctx));
|
|
20
26
|
if (!dbAvailable) {
|
|
21
27
|
return {
|
|
22
28
|
content: [{ type: "text", text: "Error: GSD database is not available. Cannot read milestone status." }],
|
|
@@ -41,7 +47,7 @@ export function registerQueryTools(pi) {
|
|
|
41
47
|
],
|
|
42
48
|
parameters: Type.Object({}),
|
|
43
49
|
async execute(_toolCallId, _params, _signal, _onUpdate, _ctx) {
|
|
44
|
-
const dbAvailable = await ensureDbOpen();
|
|
50
|
+
const dbAvailable = await ensureDbOpen(toolWorkspaceRoot(_ctx));
|
|
45
51
|
if (!dbAvailable) {
|
|
46
52
|
return {
|
|
47
53
|
content: [{ type: "text", text: "Error: GSD database is not available. Cannot checkpoint." }],
|