gsd-pi 2.67.0-dev.2142d3e → 2.67.0-dev.2367d7e
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/README.md +1 -1
- package/dist/resources/extensions/claude-code-cli/stream-adapter.js +152 -70
- package/dist/resources/extensions/gsd/auto/session.js +10 -0
- package/dist/resources/extensions/gsd/auto-dispatch.js +1 -1
- package/dist/resources/extensions/gsd/auto-start.js +16 -30
- package/dist/resources/extensions/gsd/auto-worktree.js +62 -15
- package/dist/resources/extensions/gsd/auto.js +121 -59
- package/dist/resources/extensions/gsd/bootstrap/system-context.js +7 -2
- package/dist/resources/extensions/gsd/commands/catalog.js +2 -1
- package/dist/resources/extensions/gsd/commands/handlers/core.js +1 -1
- package/dist/resources/extensions/gsd/commands-mcp-status.js +43 -7
- package/dist/resources/extensions/gsd/doctor-git-checks.js +4 -4
- package/dist/resources/extensions/gsd/doctor-proactive.js +3 -3
- package/dist/resources/extensions/gsd/doctor.js +8 -4
- package/dist/resources/extensions/gsd/gsd-db.js +11 -0
- package/dist/resources/extensions/gsd/guided-flow.js +40 -31
- package/dist/resources/extensions/gsd/init-wizard.js +15 -12
- package/dist/resources/extensions/gsd/interrupted-session.js +146 -0
- package/dist/resources/extensions/gsd/mcp-project-config.js +83 -0
- package/dist/resources/extensions/gsd/state.js +7 -2
- package/dist/resources/extensions/gsd/workflow-mcp.js +90 -19
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +14 -14
- package/dist/web/standalone/.next/build-manifest.json +3 -3
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- package/dist/web/standalone/.next/react-loadable-manifest.json +2 -2
- package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- 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/page_client-reference-manifest.js +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 +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +14 -14
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/standalone/.next/server/middleware-react-loadable-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/web/standalone/.next/static/chunks/2826.821e01b07d92e948.js +9 -0
- package/dist/web/standalone/.next/static/chunks/app/{page-0c485498795110d6.js → page-f1e30ab6bb269149.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/{webpack-b49b09f97429b5d0.js → webpack-6e4d7e9a4f57bed4.js} +1 -1
- package/package.json +4 -2
- package/packages/mcp-server/dist/cli.d.ts +9 -0
- package/packages/mcp-server/dist/cli.d.ts.map +1 -0
- package/packages/mcp-server/dist/cli.js +58 -0
- package/packages/mcp-server/dist/cli.js.map +1 -0
- package/packages/mcp-server/dist/index.d.ts +20 -0
- package/packages/mcp-server/dist/index.d.ts.map +1 -0
- package/packages/mcp-server/dist/index.js +14 -0
- package/packages/mcp-server/dist/index.js.map +1 -0
- package/packages/mcp-server/dist/readers/captures.d.ts +25 -0
- package/packages/mcp-server/dist/readers/captures.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/captures.js +67 -0
- package/packages/mcp-server/dist/readers/captures.js.map +1 -0
- package/packages/mcp-server/dist/readers/doctor-lite.d.ts +20 -0
- package/packages/mcp-server/dist/readers/doctor-lite.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/doctor-lite.js +173 -0
- package/packages/mcp-server/dist/readers/doctor-lite.js.map +1 -0
- package/packages/mcp-server/dist/readers/index.d.ts +14 -0
- package/packages/mcp-server/dist/readers/index.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/index.js +10 -0
- package/packages/mcp-server/dist/readers/index.js.map +1 -0
- package/packages/mcp-server/dist/readers/knowledge.d.ts +18 -0
- package/packages/mcp-server/dist/readers/knowledge.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/knowledge.js +82 -0
- package/packages/mcp-server/dist/readers/knowledge.js.map +1 -0
- package/packages/mcp-server/dist/readers/metrics.d.ts +32 -0
- package/packages/mcp-server/dist/readers/metrics.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/metrics.js +74 -0
- package/packages/mcp-server/dist/readers/metrics.js.map +1 -0
- package/packages/mcp-server/dist/readers/paths.d.ts +42 -0
- package/packages/mcp-server/dist/readers/paths.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/paths.js +199 -0
- package/packages/mcp-server/dist/readers/paths.js.map +1 -0
- package/packages/mcp-server/dist/readers/roadmap.d.ts +26 -0
- package/packages/mcp-server/dist/readers/roadmap.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/roadmap.js +194 -0
- package/packages/mcp-server/dist/readers/roadmap.js.map +1 -0
- package/packages/mcp-server/dist/readers/state.d.ts +43 -0
- package/packages/mcp-server/dist/readers/state.d.ts.map +1 -0
- package/packages/mcp-server/dist/readers/state.js +184 -0
- package/packages/mcp-server/dist/readers/state.js.map +1 -0
- package/packages/mcp-server/dist/server.d.ts +28 -0
- package/packages/mcp-server/dist/server.d.ts.map +1 -0
- package/packages/mcp-server/dist/server.js +319 -0
- package/packages/mcp-server/dist/server.js.map +1 -0
- package/packages/mcp-server/dist/session-manager.d.ts +54 -0
- package/packages/mcp-server/dist/session-manager.d.ts.map +1 -0
- package/packages/mcp-server/dist/session-manager.js +284 -0
- package/packages/mcp-server/dist/session-manager.js.map +1 -0
- package/packages/mcp-server/dist/types.d.ts +61 -0
- package/packages/mcp-server/dist/types.d.ts.map +1 -0
- package/packages/mcp-server/dist/types.js +11 -0
- package/packages/mcp-server/dist/types.js.map +1 -0
- package/packages/mcp-server/dist/workflow-tools.d.ts +9 -0
- package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -0
- package/packages/mcp-server/dist/workflow-tools.js +532 -0
- package/packages/mcp-server/dist/workflow-tools.js.map +1 -0
- package/packages/mcp-server/src/workflow-tools.ts +13 -2
- package/packages/mcp-server/tsconfig.json +1 -1
- package/packages/pi-agent-core/dist/agent-loop.js +14 -6
- package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/packages/pi-agent-core/src/agent-loop.test.ts +53 -0
- package/packages/pi-agent-core/src/agent-loop.ts +20 -6
- package/packages/pi-coding-agent/dist/core/contextual-tips.d.ts +43 -0
- package/packages/pi-coding-agent/dist/core/contextual-tips.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/contextual-tips.js +208 -0
- package/packages/pi-coding-agent/dist/core/contextual-tips.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/contextual-tips.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/contextual-tips.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/contextual-tips.test.js +227 -0
- package/packages/pi-coding-agent/dist/core/contextual-tips.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/index.d.ts +1 -0
- package/packages/pi-coding-agent/dist/core/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/index.js +1 -0
- package/packages/pi-coding-agent/dist/core/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +28 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +17 -12
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +19 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.d.ts +4 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.js +14 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +3 -0
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +15 -12
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/packages/pi-coding-agent/src/core/contextual-tips.test.ts +259 -0
- package/packages/pi-coding-agent/src/core/contextual-tips.ts +232 -0
- package/packages/pi-coding-agent/src/core/index.ts +2 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +54 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +18 -12
- package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +21 -0
- package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.ts +19 -0
- package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +19 -15
- package/packages/rpc-client/dist/index.d.ts +10 -0
- package/packages/rpc-client/dist/index.d.ts.map +1 -0
- package/packages/rpc-client/dist/index.js +9 -0
- package/packages/rpc-client/dist/index.js.map +1 -0
- package/packages/rpc-client/dist/jsonl.d.ts +17 -0
- package/packages/rpc-client/dist/jsonl.d.ts.map +1 -0
- package/packages/rpc-client/dist/jsonl.js +54 -0
- package/packages/rpc-client/dist/jsonl.js.map +1 -0
- package/packages/rpc-client/dist/rpc-client.d.ts +259 -0
- package/packages/rpc-client/dist/rpc-client.d.ts.map +1 -0
- package/packages/rpc-client/dist/rpc-client.js +541 -0
- package/packages/rpc-client/dist/rpc-client.js.map +1 -0
- package/packages/rpc-client/dist/rpc-client.test.d.ts +2 -0
- package/packages/rpc-client/dist/rpc-client.test.d.ts.map +1 -0
- package/packages/rpc-client/dist/rpc-client.test.js +477 -0
- package/packages/rpc-client/dist/rpc-client.test.js.map +1 -0
- package/packages/rpc-client/dist/rpc-types.d.ts +566 -0
- package/packages/rpc-client/dist/rpc-types.d.ts.map +1 -0
- package/packages/rpc-client/dist/rpc-types.js +12 -0
- package/packages/rpc-client/dist/rpc-types.js.map +1 -0
- package/scripts/ensure-workspace-builds.cjs +2 -0
- package/scripts/link-workspace-packages.cjs +21 -14
- package/src/resources/extensions/claude-code-cli/stream-adapter.ts +190 -93
- package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +89 -116
- package/src/resources/extensions/gsd/auto/session.ts +10 -0
- package/src/resources/extensions/gsd/auto-dispatch.ts +1 -1
- package/src/resources/extensions/gsd/auto-start.ts +23 -55
- package/src/resources/extensions/gsd/auto-worktree.ts +59 -15
- package/src/resources/extensions/gsd/auto.ts +133 -64
- package/src/resources/extensions/gsd/bootstrap/system-context.ts +8 -2
- package/src/resources/extensions/gsd/commands/catalog.ts +2 -1
- package/src/resources/extensions/gsd/commands/handlers/core.ts +1 -1
- package/src/resources/extensions/gsd/commands-mcp-status.ts +53 -7
- package/src/resources/extensions/gsd/doctor-git-checks.ts +4 -4
- package/src/resources/extensions/gsd/doctor-proactive.ts +3 -3
- package/src/resources/extensions/gsd/doctor.ts +9 -5
- package/src/resources/extensions/gsd/gsd-db.ts +12 -0
- package/src/resources/extensions/gsd/guided-flow.ts +42 -36
- package/src/resources/extensions/gsd/init-wizard.ts +17 -11
- package/src/resources/extensions/gsd/interrupted-session.ts +224 -0
- package/src/resources/extensions/gsd/mcp-project-config.ts +128 -0
- package/src/resources/extensions/gsd/state.ts +7 -1
- package/src/resources/extensions/gsd/tests/auto-project-root-env.test.ts +29 -0
- package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +668 -2
- package/src/resources/extensions/gsd/tests/cold-resume-db-reopen.test.ts +14 -4
- package/src/resources/extensions/gsd/tests/copy-planning-artifacts-samepath.test.ts +21 -0
- package/src/resources/extensions/gsd/tests/crash-recovery.test.ts +380 -2
- package/src/resources/extensions/gsd/tests/forensics-context-persist.test.ts +30 -0
- package/src/resources/extensions/gsd/tests/gsd-db.test.ts +12 -0
- package/src/resources/extensions/gsd/tests/guided-flow-session-isolation.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/integration/doctor-fixlevel.test.ts +52 -1
- package/src/resources/extensions/gsd/tests/integration/doctor-git.test.ts +2 -9
- package/src/resources/extensions/gsd/tests/integration/doctor-proactive.test.ts +0 -33
- package/src/resources/extensions/gsd/tests/integration/merge-cwd-restore.test.ts +169 -0
- package/src/resources/extensions/gsd/tests/interrupted-session-auto.test.ts +146 -0
- package/src/resources/extensions/gsd/tests/interrupted-session-ui.test.ts +136 -0
- package/src/resources/extensions/gsd/tests/mcp-project-config.test.ts +85 -0
- package/src/resources/extensions/gsd/tests/mcp-status.test.ts +15 -0
- package/src/resources/extensions/gsd/tests/verification-operational-gate.test.ts +11 -0
- package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +212 -13
- package/src/resources/extensions/gsd/workflow-mcp.ts +106 -19
- package/dist/web/standalone/.next/static/chunks/6502.b804e48b7919f55e.js +0 -9
- package/packages/pi-coding-agent/dist/modes/interactive/provider-auth-setup.d.ts +0 -13
- package/packages/pi-coding-agent/dist/modes/interactive/provider-auth-setup.d.ts.map +0 -1
- package/packages/pi-coding-agent/dist/modes/interactive/provider-auth-setup.js +0 -27
- package/packages/pi-coding-agent/dist/modes/interactive/provider-auth-setup.js.map +0 -1
- package/packages/pi-coding-agent/src/modes/interactive/provider-auth-setup.ts +0 -40
- package/src/resources/extensions/gsd/tests/init-bootstrap-completeness.test.ts +0 -121
- /package/dist/web/standalone/.next/static/{xR6qurkuYSvyjBjRyJLxG → WMDT_0C0XDkBKtsAI_AX4}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{xR6qurkuYSvyjBjRyJLxG → WMDT_0C0XDkBKtsAI_AX4}/_ssgManifest.js +0 -0
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ProviderAuthMode } from "../../core/model-registry.js";
|
|
2
|
-
export type ProviderSetupAction = {
|
|
3
|
-
kind: "oauth-login";
|
|
4
|
-
} | {
|
|
5
|
-
kind: "status";
|
|
6
|
-
message: string;
|
|
7
|
-
};
|
|
8
|
-
export declare function getProviderSetupAction(options: {
|
|
9
|
-
provider: string;
|
|
10
|
-
authMode: ProviderAuthMode;
|
|
11
|
-
hasAuth: boolean;
|
|
12
|
-
}): ProviderSetupAction;
|
|
13
|
-
//# sourceMappingURL=provider-auth-setup.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-auth-setup.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/provider-auth-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAC5B;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CACjB,GAAG,mBAAmB,CA6BtB"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export function getProviderSetupAction(options) {
|
|
2
|
-
const { provider, authMode, hasAuth } = options;
|
|
3
|
-
if (authMode === "oauth") {
|
|
4
|
-
return { kind: "oauth-login" };
|
|
5
|
-
}
|
|
6
|
-
if (authMode === "none") {
|
|
7
|
-
return {
|
|
8
|
-
kind: "status",
|
|
9
|
-
message: `${provider} does not need auth setup. Use /model to select it.`,
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
if (authMode === "externalCli") {
|
|
13
|
-
return {
|
|
14
|
-
kind: "status",
|
|
15
|
-
message: hasAuth
|
|
16
|
-
? `${provider} is already authenticated. Use /model to select it.`
|
|
17
|
-
: `${provider} uses external CLI auth. Sign in with the provider CLI, then use /model.`,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
return {
|
|
21
|
-
kind: "status",
|
|
22
|
-
message: hasAuth
|
|
23
|
-
? `${provider} already has credentials configured. Use /model to select it.`
|
|
24
|
-
: `${provider} uses API-key auth, not OAuth. Configure its credentials, then use /model.`,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=provider-auth-setup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-auth-setup.js","sourceRoot":"","sources":["../../../src/modes/interactive/provider-auth-setup.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,sBAAsB,CAAC,OAItC;IACA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEhD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,GAAG,QAAQ,qDAAqD;SACzE,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAChC,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,OAAO;gBACf,CAAC,CAAC,GAAG,QAAQ,qDAAqD;gBAClE,CAAC,CAAC,GAAG,QAAQ,0EAA0E;SACxF,CAAC;IACH,CAAC;IAED,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO;YACf,CAAC,CAAC,GAAG,QAAQ,+DAA+D;YAC5E,CAAC,CAAC,GAAG,QAAQ,4EAA4E;KAC1F,CAAC;AACH,CAAC","sourcesContent":["import type { ProviderAuthMode } from \"../../core/model-registry.js\";\n\nexport type ProviderSetupAction =\n\t| { kind: \"oauth-login\" }\n\t| { kind: \"status\"; message: string };\n\nexport function getProviderSetupAction(options: {\n\tprovider: string;\n\tauthMode: ProviderAuthMode;\n\thasAuth: boolean;\n}): ProviderSetupAction {\n\tconst { provider, authMode, hasAuth } = options;\n\n\tif (authMode === \"oauth\") {\n\t\treturn { kind: \"oauth-login\" };\n\t}\n\n\tif (authMode === \"none\") {\n\t\treturn {\n\t\t\tkind: \"status\",\n\t\t\tmessage: `${provider} does not need auth setup. Use /model to select it.`,\n\t\t};\n\t}\n\n\tif (authMode === \"externalCli\") {\n\t\treturn {\n\t\t\tkind: \"status\",\n\t\t\tmessage: hasAuth\n\t\t\t\t? `${provider} is already authenticated. Use /model to select it.`\n\t\t\t\t: `${provider} uses external CLI auth. Sign in with the provider CLI, then use /model.`,\n\t\t};\n\t}\n\n\treturn {\n\t\tkind: \"status\",\n\t\tmessage: hasAuth\n\t\t\t? `${provider} already has credentials configured. Use /model to select it.`\n\t\t\t: `${provider} uses API-key auth, not OAuth. Configure its credentials, then use /model.`,\n\t};\n}\n"]}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { ProviderAuthMode } from "../../core/model-registry.js";
|
|
2
|
-
|
|
3
|
-
export type ProviderSetupAction =
|
|
4
|
-
| { kind: "oauth-login" }
|
|
5
|
-
| { kind: "status"; message: string };
|
|
6
|
-
|
|
7
|
-
export function getProviderSetupAction(options: {
|
|
8
|
-
provider: string;
|
|
9
|
-
authMode: ProviderAuthMode;
|
|
10
|
-
hasAuth: boolean;
|
|
11
|
-
}): ProviderSetupAction {
|
|
12
|
-
const { provider, authMode, hasAuth } = options;
|
|
13
|
-
|
|
14
|
-
if (authMode === "oauth") {
|
|
15
|
-
return { kind: "oauth-login" };
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
if (authMode === "none") {
|
|
19
|
-
return {
|
|
20
|
-
kind: "status",
|
|
21
|
-
message: `${provider} does not need auth setup. Use /model to select it.`,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (authMode === "externalCli") {
|
|
26
|
-
return {
|
|
27
|
-
kind: "status",
|
|
28
|
-
message: hasAuth
|
|
29
|
-
? `${provider} is already authenticated. Use /model to select it.`
|
|
30
|
-
: `${provider} uses external CLI auth. Sign in with the provider CLI, then use /model.`,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return {
|
|
35
|
-
kind: "status",
|
|
36
|
-
message: hasAuth
|
|
37
|
-
? `${provider} already has credentials configured. Use /model to select it.`
|
|
38
|
-
: `${provider} uses API-key auth, not OAuth. Configure its credentials, then use /model.`,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GSD Init Wizard — Bootstrap completeness regression tests
|
|
3
|
-
*
|
|
4
|
-
* Regression test for #3880 — fresh install never creates gsd.db.
|
|
5
|
-
*
|
|
6
|
-
* The init wizard must create all artifacts needed for full-capability
|
|
7
|
-
* mode: gsd.db (via ensureDbOpen), runtime/ directory, and STATE.md
|
|
8
|
-
* (via deriveState + buildStateMarkdown). Without these, GSD enters
|
|
9
|
-
* degraded markdown-only mode on every fresh install.
|
|
10
|
-
*
|
|
11
|
-
* These are structural tests that verify the init-wizard.ts source
|
|
12
|
-
* contains the required calls in the correct order.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
import { describe, test } from "node:test";
|
|
16
|
-
import assert from "node:assert/strict";
|
|
17
|
-
import { readFileSync } from "node:fs";
|
|
18
|
-
import { fileURLToPath } from "node:url";
|
|
19
|
-
import { dirname, join } from "node:path";
|
|
20
|
-
|
|
21
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
22
|
-
const __dirname = dirname(__filename);
|
|
23
|
-
|
|
24
|
-
const wizardSrc = readFileSync(
|
|
25
|
-
join(__dirname, "..", "init-wizard.ts"),
|
|
26
|
-
"utf-8",
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
describe("init-wizard bootstrap completeness (#3880)", () => {
|
|
30
|
-
// ── Gap 1: gsd.db must be created during init ─────────────────────────
|
|
31
|
-
|
|
32
|
-
test("bootstrapGsdDirectory is followed by ensureDbOpen", () => {
|
|
33
|
-
const bootstrapIdx = wizardSrc.indexOf("bootstrapGsdDirectory(basePath");
|
|
34
|
-
const ensureDbIdx = wizardSrc.indexOf("ensureDbOpen(basePath)");
|
|
35
|
-
assert.ok(bootstrapIdx > -1, "bootstrapGsdDirectory call should exist");
|
|
36
|
-
assert.ok(ensureDbIdx > -1, "ensureDbOpen(basePath) call should exist");
|
|
37
|
-
assert.ok(
|
|
38
|
-
ensureDbIdx > bootstrapIdx,
|
|
39
|
-
"ensureDbOpen must appear after bootstrapGsdDirectory so .gsd/ exists first",
|
|
40
|
-
);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test("ensureDbOpen is imported from dynamic-tools", () => {
|
|
44
|
-
assert.match(
|
|
45
|
-
wizardSrc,
|
|
46
|
-
/import.*dynamic-tools/,
|
|
47
|
-
"init-wizard should import from dynamic-tools for ensureDbOpen",
|
|
48
|
-
);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
// ── Gap 2: runtime/ directory must be created during init ──────────────
|
|
52
|
-
|
|
53
|
-
test("bootstrapGsdDirectory creates runtime/ directory", () => {
|
|
54
|
-
// Find the bootstrapGsdDirectory function body
|
|
55
|
-
const fnStart = wizardSrc.indexOf("function bootstrapGsdDirectory(");
|
|
56
|
-
assert.ok(fnStart > -1, "bootstrapGsdDirectory function should exist");
|
|
57
|
-
|
|
58
|
-
// Find the next function definition to bound the search
|
|
59
|
-
const fnBody = wizardSrc.slice(fnStart, wizardSrc.indexOf("\nfunction ", fnStart + 1));
|
|
60
|
-
|
|
61
|
-
assert.match(
|
|
62
|
-
fnBody,
|
|
63
|
-
/mkdirSync\(.*"runtime"/,
|
|
64
|
-
'bootstrapGsdDirectory should create "runtime" directory',
|
|
65
|
-
);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
// ── Gap 3: STATE.md must be written during init ────────────────────────
|
|
69
|
-
|
|
70
|
-
test("showProjectInit generates STATE.md after bootstrap", () => {
|
|
71
|
-
const bootstrapIdx = wizardSrc.indexOf("bootstrapGsdDirectory(basePath");
|
|
72
|
-
const deriveIdx = wizardSrc.indexOf("deriveState(basePath)");
|
|
73
|
-
const stateIdx = wizardSrc.indexOf("buildStateMarkdown(state)");
|
|
74
|
-
const saveIdx = wizardSrc.indexOf('resolveGsdRootFile(basePath, "STATE")');
|
|
75
|
-
|
|
76
|
-
assert.ok(deriveIdx > -1, "deriveState call should exist in init-wizard");
|
|
77
|
-
assert.ok(stateIdx > -1, "buildStateMarkdown call should exist in init-wizard");
|
|
78
|
-
assert.ok(saveIdx > -1, "resolveGsdRootFile STATE call should exist in init-wizard");
|
|
79
|
-
assert.ok(
|
|
80
|
-
deriveIdx > bootstrapIdx,
|
|
81
|
-
"deriveState must appear after bootstrapGsdDirectory",
|
|
82
|
-
);
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
// ── Ordering: DB must be open before deriveState ───────────────────────
|
|
86
|
-
|
|
87
|
-
test("ensureDbOpen appears before deriveState", () => {
|
|
88
|
-
const ensureDbIdx = wizardSrc.indexOf("ensureDbOpen(basePath)");
|
|
89
|
-
const deriveIdx = wizardSrc.indexOf("deriveState(basePath)");
|
|
90
|
-
assert.ok(ensureDbIdx > -1, "ensureDbOpen should exist");
|
|
91
|
-
assert.ok(deriveIdx > -1, "deriveState should exist");
|
|
92
|
-
assert.ok(
|
|
93
|
-
ensureDbIdx < deriveIdx,
|
|
94
|
-
"ensureDbOpen must appear before deriveState so DB is ready for state derivation",
|
|
95
|
-
);
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
// ── Failure visibility: user must be warned on partial bootstrap ───────
|
|
99
|
-
|
|
100
|
-
test("ensureDbOpen failure surfaces a warning to the user", () => {
|
|
101
|
-
assert.match(
|
|
102
|
-
wizardSrc,
|
|
103
|
-
/if\s*\(\s*!dbReady\s*\)/,
|
|
104
|
-
"init-wizard should check dbReady and warn the user on failure",
|
|
105
|
-
);
|
|
106
|
-
// The warning must reference degraded mode so the user knows what happened
|
|
107
|
-
assert.match(
|
|
108
|
-
wizardSrc,
|
|
109
|
-
/degraded mode/,
|
|
110
|
-
"DB failure warning should mention degraded mode",
|
|
111
|
-
);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
test("STATE.md failure surfaces a warning to the user", () => {
|
|
115
|
-
assert.match(
|
|
116
|
-
wizardSrc,
|
|
117
|
-
/if\s*\(\s*!stateReady\s*\)/,
|
|
118
|
-
"init-wizard should check stateReady and warn the user on failure",
|
|
119
|
-
);
|
|
120
|
-
});
|
|
121
|
-
});
|
|
File without changes
|
|
File without changes
|