instar 1.3.201 → 1.3.203
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 +4 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +2 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/route.d.ts.map +1 -1
- package/dist/commands/route.js +2 -0
- package/dist/commands/route.js.map +1 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +25 -10
- package/dist/commands/server.js.map +1 -1
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +47 -12
- package/dist/commands/setup.js.map +1 -1
- package/dist/core/Config.d.ts +12 -2
- package/dist/core/Config.d.ts.map +1 -1
- package/dist/core/Config.js +36 -10
- package/dist/core/Config.js.map +1 -1
- package/dist/core/FeatureRegistry.d.ts.map +1 -1
- package/dist/core/FeatureRegistry.js +6 -0
- package/dist/core/FeatureRegistry.js.map +1 -1
- package/dist/core/FrameworkSessionStore.d.ts +2 -9
- package/dist/core/FrameworkSessionStore.d.ts.map +1 -1
- package/dist/core/FrameworkSessionStore.js +16 -0
- package/dist/core/FrameworkSessionStore.js.map +1 -1
- package/dist/core/GeminiCliIntelligenceProvider.d.ts +44 -0
- package/dist/core/GeminiCliIntelligenceProvider.d.ts.map +1 -0
- package/dist/core/GeminiCliIntelligenceProvider.js +65 -0
- package/dist/core/GeminiCliIntelligenceProvider.js.map +1 -0
- package/dist/core/IdentityRenderer.d.ts.map +1 -1
- package/dist/core/IdentityRenderer.js +6 -3
- package/dist/core/IdentityRenderer.js.map +1 -1
- package/dist/core/LeaseCoordinator.d.ts +40 -0
- package/dist/core/LeaseCoordinator.d.ts.map +1 -1
- package/dist/core/LeaseCoordinator.js +54 -0
- package/dist/core/LeaseCoordinator.js.map +1 -1
- package/dist/core/LocalLeaseStore.d.ts +11 -0
- package/dist/core/LocalLeaseStore.d.ts.map +1 -1
- package/dist/core/LocalLeaseStore.js +18 -0
- package/dist/core/LocalLeaseStore.js.map +1 -1
- package/dist/core/MultiMachineCoordinator.d.ts +35 -0
- package/dist/core/MultiMachineCoordinator.d.ts.map +1 -1
- package/dist/core/MultiMachineCoordinator.js +94 -0
- package/dist/core/MultiMachineCoordinator.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +7 -1
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/PreCompactionFlush.d.ts +3 -1
- package/dist/core/PreCompactionFlush.d.ts.map +1 -1
- package/dist/core/PreCompactionFlush.js +3 -1
- package/dist/core/PreCompactionFlush.js.map +1 -1
- package/dist/core/ResumeValidator.d.ts +1 -1
- package/dist/core/ResumeValidator.d.ts.map +1 -1
- package/dist/core/SqliteRegistry.d.ts +59 -0
- package/dist/core/SqliteRegistry.d.ts.map +1 -0
- package/dist/core/SqliteRegistry.js +97 -0
- package/dist/core/SqliteRegistry.js.map +1 -0
- package/dist/core/StopGateDb.d.ts +2 -0
- package/dist/core/StopGateDb.d.ts.map +1 -1
- package/dist/core/StopGateDb.js +22 -0
- package/dist/core/StopGateDb.js.map +1 -1
- package/dist/core/TopicFrameworksStore.d.ts.map +1 -1
- package/dist/core/TopicFrameworksStore.js +1 -0
- package/dist/core/TopicFrameworksStore.js.map +1 -1
- package/dist/core/TopicResumeMap.d.ts.map +1 -1
- package/dist/core/TopicResumeMap.js +13 -0
- package/dist/core/TopicResumeMap.js.map +1 -1
- package/dist/core/frameworkSessionLaunch.d.ts.map +1 -1
- package/dist/core/frameworkSessionLaunch.js +73 -0
- package/dist/core/frameworkSessionLaunch.js.map +1 -1
- package/dist/core/intelligenceProviderFactory.d.ts +8 -1
- package/dist/core/intelligenceProviderFactory.d.ts.map +1 -1
- package/dist/core/intelligenceProviderFactory.js +13 -1
- package/dist/core/intelligenceProviderFactory.js.map +1 -1
- package/dist/core/types.d.ts +6 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/memory/SemanticMemory.d.ts.map +1 -1
- package/dist/memory/SemanticMemory.js +8 -0
- package/dist/memory/SemanticMemory.js.map +1 -1
- package/dist/memory/TopicMemory.d.ts.map +1 -1
- package/dist/memory/TopicMemory.js +7 -0
- package/dist/memory/TopicMemory.js.map +1 -1
- package/dist/messaging/MessageProcessingLedger.d.ts.map +1 -1
- package/dist/messaging/MessageProcessingLedger.js +7 -0
- package/dist/messaging/MessageProcessingLedger.js.map +1 -1
- package/dist/messaging/imessage/NativeBackend.d.ts.map +1 -1
- package/dist/messaging/imessage/NativeBackend.js +6 -0
- package/dist/messaging/imessage/NativeBackend.js.map +1 -1
- package/dist/messaging/pending-relay-store.d.ts.map +1 -1
- package/dist/messaging/pending-relay-store.js +6 -0
- package/dist/messaging/pending-relay-store.js.map +1 -1
- package/dist/messaging/shared/telegramRelayPrompt.d.ts +1 -1
- package/dist/messaging/shared/telegramRelayPrompt.d.ts.map +1 -1
- package/dist/messaging/shared/telegramRelayPrompt.js.map +1 -1
- package/dist/monitoring/CompactionSentinel.d.ts +2 -0
- package/dist/monitoring/CompactionSentinel.d.ts.map +1 -1
- package/dist/monitoring/CompactionSentinel.js +10 -0
- package/dist/monitoring/CompactionSentinel.js.map +1 -1
- package/dist/monitoring/CorrectionLedger.d.ts.map +1 -1
- package/dist/monitoring/CorrectionLedger.js +6 -0
- package/dist/monitoring/CorrectionLedger.js.map +1 -1
- package/dist/monitoring/FailureLedger.d.ts.map +1 -1
- package/dist/monitoring/FailureLedger.js +6 -0
- package/dist/monitoring/FailureLedger.js.map +1 -1
- package/dist/monitoring/FeatureMetricsLedger.d.ts.map +1 -1
- package/dist/monitoring/FeatureMetricsLedger.js +6 -0
- package/dist/monitoring/FeatureMetricsLedger.js.map +1 -1
- package/dist/monitoring/FrameworkIssueLedger.d.ts.map +1 -1
- package/dist/monitoring/FrameworkIssueLedger.js +6 -0
- package/dist/monitoring/FrameworkIssueLedger.js.map +1 -1
- package/dist/monitoring/RateLimitSentinel.d.ts +2 -0
- package/dist/monitoring/RateLimitSentinel.d.ts.map +1 -1
- package/dist/monitoring/RateLimitSentinel.js +15 -1
- package/dist/monitoring/RateLimitSentinel.js.map +1 -1
- package/dist/monitoring/RevertDetector.d.ts.map +1 -1
- package/dist/monitoring/RevertDetector.js +7 -1
- package/dist/monitoring/RevertDetector.js.map +1 -1
- package/dist/monitoring/SessionReaper.d.ts +1 -1
- package/dist/monitoring/SessionReaper.d.ts.map +1 -1
- package/dist/monitoring/SessionReaper.js +7 -0
- package/dist/monitoring/SessionReaper.js.map +1 -1
- package/dist/monitoring/TokenLedger.d.ts.map +1 -1
- package/dist/monitoring/TokenLedger.js +8 -0
- package/dist/monitoring/TokenLedger.js.map +1 -1
- package/dist/monitoring/frameworkActivitySignals.d.ts.map +1 -1
- package/dist/monitoring/frameworkActivitySignals.js +17 -0
- package/dist/monitoring/frameworkActivitySignals.js.map +1 -1
- package/dist/monitoring/frameworkProcessSignals.d.ts.map +1 -1
- package/dist/monitoring/frameworkProcessSignals.js +15 -0
- package/dist/monitoring/frameworkProcessSignals.js.map +1 -1
- package/dist/providers/adapters/gemini-cli/capabilities.d.ts +28 -0
- package/dist/providers/adapters/gemini-cli/capabilities.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/capabilities.js +38 -0
- package/dist/providers/adapters/gemini-cli/capabilities.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/config.d.ts +50 -0
- package/dist/providers/adapters/gemini-cli/config.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/config.js +36 -0
- package/dist/providers/adapters/gemini-cli/config.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/control/geminiHardKill.d.ts +19 -0
- package/dist/providers/adapters/gemini-cli/control/geminiHardKill.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/control/geminiHardKill.js +67 -0
- package/dist/providers/adapters/gemini-cli/control/geminiHardKill.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/credentials.d.ts +40 -0
- package/dist/providers/adapters/gemini-cli/credentials.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/credentials.js +41 -0
- package/dist/providers/adapters/gemini-cli/credentials.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/errors.d.ts +23 -0
- package/dist/providers/adapters/gemini-cli/errors.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/errors.js +41 -0
- package/dist/providers/adapters/gemini-cli/errors.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/index.d.ts +38 -0
- package/dist/providers/adapters/gemini-cli/index.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/index.js +66 -0
- package/dist/providers/adapters/gemini-cli/index.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/models.d.ts +29 -0
- package/dist/providers/adapters/gemini-cli/models.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/models.js +43 -0
- package/dist/providers/adapters/gemini-cli/models.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionId.d.ts +26 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionId.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionId.js +52 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionId.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionPaths.d.ts +72 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionPaths.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionPaths.js +202 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionPaths.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.d.ts +79 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.js +221 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.d.ts +21 -0
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.js +80 -0
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.js.map +1 -0
- package/dist/providers/parity/rules/skillParityRule.d.ts.map +1 -1
- package/dist/providers/parity/rules/skillParityRule.js +8 -0
- package/dist/providers/parity/rules/skillParityRule.js.map +1 -1
- package/dist/providers/uxConfirm/PreferenceStore.d.ts +1 -0
- package/dist/providers/uxConfirm/PreferenceStore.d.ts.map +1 -1
- package/dist/providers/uxConfirm/PreferenceStore.js +13 -0
- package/dist/providers/uxConfirm/PreferenceStore.js.map +1 -1
- package/dist/threadline/SpawnLedger.d.ts +1 -0
- package/dist/threadline/SpawnLedger.d.ts.map +1 -1
- package/dist/threadline/SpawnLedger.js +13 -0
- package/dist/threadline/SpawnLedger.js.map +1 -1
- package/dist/threadline/ThreadResumeMap.d.ts.map +1 -1
- package/dist/threadline/ThreadResumeMap.js +14 -0
- package/dist/threadline/ThreadResumeMap.js.map +1 -1
- package/dist/threadline/relay/RegistryStore.d.ts.map +1 -1
- package/dist/threadline/relay/RegistryStore.js +6 -0
- package/dist/threadline/relay/RegistryStore.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +50 -50
- package/src/templates/scripts/convergence-check.sh +49 -0
- package/upgrades/1.3.202.md +65 -0
- package/upgrades/1.3.203.md +30 -0
- package/upgrades/side-effects/APPRENTICESHIP-STEP2-GEMINI-RUNTIME-ADAPTER-SPEC.md +78 -0
- package/upgrades/side-effects/evo003-revertdetector-git-arg.md +106 -0
- package/upgrades/side-effects/git-less-lease-convergence.md +31 -0
- package/upgrades/side-effects/sqlite-close-on-exit-registry.md +27 -0
- package/upgrades/side-effects/time-awareness-component4-reporting-nudge.md +20 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spawn helper for the Gemini CLI.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors openai-codex/transport/codexSpawn.ts (process-level, framework-
|
|
5
|
+
* agnostic structure) but encodes the Gemini-specific credential boundary
|
|
6
|
+
* and the canonical one-shot argv.
|
|
7
|
+
*
|
|
8
|
+
* stdin discipline: like Codex, the binary may read stdin; without an
|
|
9
|
+
* explicit EOF it can hang waiting for input. `spawn` + an immediate
|
|
10
|
+
* `child.stdin.end()` defeats this (harmless and defensive regardless of
|
|
11
|
+
* whether Gemini actually exhibits it).
|
|
12
|
+
*
|
|
13
|
+
* Output-byte cap (improves on codex): codexSpawn's `Buffer.concat` of
|
|
14
|
+
* stdout chunks is UNBOUNDED — a runaway/looping child could OOM the
|
|
15
|
+
* supervising process. `spawnGeminiAndWait` hard-caps captured stdout +
|
|
16
|
+
* stderr at `maxOutputBytes` and flags the result `truncated`.
|
|
17
|
+
*/
|
|
18
|
+
/** Default output cap: 8 MiB per stream. A one-shot final message is tiny;
|
|
19
|
+
* the cap only fires on a runaway/looping child. */
|
|
20
|
+
export declare const DEFAULT_MAX_OUTPUT_BYTES: number;
|
|
21
|
+
/**
|
|
22
|
+
* The canonical one-shot argv — pinned, no ambiguity.
|
|
23
|
+
*
|
|
24
|
+
* gemini -m <model> --approval-mode default -p <prompt>
|
|
25
|
+
*
|
|
26
|
+
* - `-p/--prompt` is the documented one-shot entrypoint and takes the prompt
|
|
27
|
+
* as its SOLE value, so the prompt is exactly ONE argv element. A
|
|
28
|
+
* leading-dash prompt (`"--help me"`, `"-y do X"`) can NEVER be re-parsed
|
|
29
|
+
* as a flag — a thin but real argument-injection boundary. `--` is NOT
|
|
30
|
+
* used (the end-of-options separator is only meaningful for a positional
|
|
31
|
+
* prompt, which the canonical form never uses).
|
|
32
|
+
* - `--approval-mode default` is pinned HERE (part of the canonical argv,
|
|
33
|
+
* not an optional add-on). `yolo`/`auto_edit`/`-y` let the model take
|
|
34
|
+
* filesystem/exec actions without confirmation — they are a capability-only
|
|
35
|
+
* mode, never reachable from this one-shot builder. (Analog of codex's
|
|
36
|
+
* `--sandbox read-only` pin at the call site.)
|
|
37
|
+
*/
|
|
38
|
+
export declare function buildGeminiOneShotArgv(model: string, prompt: string): string[];
|
|
39
|
+
/**
|
|
40
|
+
* The Google/Gemini billing-capable vars that are UNCONDITIONALLY deleted
|
|
41
|
+
* from the child env, regardless of allowlist contents. Any of these present
|
|
42
|
+
* would silently route Gemini onto a billed API path instead of the
|
|
43
|
+
* cached-OAuth/subscription path. A false-negative (silent billing) is
|
|
44
|
+
* asymmetrically costly, so the delete is unconditional and the
|
|
45
|
+
* geminiKeyLeakageCanary asserts none of these ever reaches the child.
|
|
46
|
+
*/
|
|
47
|
+
export declare const GEMINI_BILLING_ENV_VARS: readonly ["GEMINI_API_KEY", "GOOGLE_API_KEY", "GOOGLE_APPLICATION_CREDENTIALS", "GOOGLE_GENAI_USE_VERTEXAI", "GOOGLE_CLOUD_PROJECT"];
|
|
48
|
+
/**
|
|
49
|
+
* Build the env for a `gemini` child process per the Rule-1a analog.
|
|
50
|
+
* Constructs an explicit allowlist (variables not listed are dropped), then
|
|
51
|
+
* UNCONDITIONALLY hard-deletes every billing-capable Google/Gemini var.
|
|
52
|
+
*/
|
|
53
|
+
export declare function buildGeminiChildEnv(parentEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
54
|
+
export interface GeminiSpawnResult {
|
|
55
|
+
exitCode: number | null;
|
|
56
|
+
stdout: string;
|
|
57
|
+
stderr: string;
|
|
58
|
+
/** True when stdout OR stderr capture hit the byte cap and was truncated. */
|
|
59
|
+
truncated: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface SpawnGeminiOptions {
|
|
62
|
+
timeoutMs: number;
|
|
63
|
+
env: NodeJS.ProcessEnv;
|
|
64
|
+
signal?: AbortSignal;
|
|
65
|
+
/** Hard cap on captured stdout/stderr bytes (each stream). */
|
|
66
|
+
maxOutputBytes?: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Spawn `gemini` with the given argv and wait for completion.
|
|
70
|
+
*
|
|
71
|
+
* - Closes stdin immediately (Gemini may otherwise block waiting for EOF).
|
|
72
|
+
* - SIGTERM→SIGKILL on timeout (2s grace), AbortSignal handling.
|
|
73
|
+
* - Bounds captured stdout/stderr at `maxOutputBytes` (default 8 MiB),
|
|
74
|
+
* killing the child and flagging `truncated` once the cap is exceeded.
|
|
75
|
+
* - The benign `Loaded cached credentials` stderr line is NOT treated as a
|
|
76
|
+
* failure — the caller only fails on a non-zero exit code.
|
|
77
|
+
*/
|
|
78
|
+
export declare function spawnGeminiAndWait(binary: string, args: string[], options: SpawnGeminiOptions): Promise<GeminiSpawnResult>;
|
|
79
|
+
//# sourceMappingURL=geminiSpawn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geminiSpawn.d.ts","sourceRoot":"","sources":["../../../../../src/providers/adapters/gemini-cli/transport/geminiSpawn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;qDACqD;AACrD,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AAExD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9E;AAyCD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,sIAM1B,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,MAAM,CAAC,UAAwB,GACzC,MAAM,CAAC,UAAU,CAiBnB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAsG5B"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spawn helper for the Gemini CLI.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors openai-codex/transport/codexSpawn.ts (process-level, framework-
|
|
5
|
+
* agnostic structure) but encodes the Gemini-specific credential boundary
|
|
6
|
+
* and the canonical one-shot argv.
|
|
7
|
+
*
|
|
8
|
+
* stdin discipline: like Codex, the binary may read stdin; without an
|
|
9
|
+
* explicit EOF it can hang waiting for input. `spawn` + an immediate
|
|
10
|
+
* `child.stdin.end()` defeats this (harmless and defensive regardless of
|
|
11
|
+
* whether Gemini actually exhibits it).
|
|
12
|
+
*
|
|
13
|
+
* Output-byte cap (improves on codex): codexSpawn's `Buffer.concat` of
|
|
14
|
+
* stdout chunks is UNBOUNDED — a runaway/looping child could OOM the
|
|
15
|
+
* supervising process. `spawnGeminiAndWait` hard-caps captured stdout +
|
|
16
|
+
* stderr at `maxOutputBytes` and flags the result `truncated`.
|
|
17
|
+
*/
|
|
18
|
+
import { spawn } from 'node:child_process';
|
|
19
|
+
/** Default output cap: 8 MiB per stream. A one-shot final message is tiny;
|
|
20
|
+
* the cap only fires on a runaway/looping child. */
|
|
21
|
+
export const DEFAULT_MAX_OUTPUT_BYTES = 8 * 1024 * 1024;
|
|
22
|
+
/**
|
|
23
|
+
* The canonical one-shot argv — pinned, no ambiguity.
|
|
24
|
+
*
|
|
25
|
+
* gemini -m <model> --approval-mode default -p <prompt>
|
|
26
|
+
*
|
|
27
|
+
* - `-p/--prompt` is the documented one-shot entrypoint and takes the prompt
|
|
28
|
+
* as its SOLE value, so the prompt is exactly ONE argv element. A
|
|
29
|
+
* leading-dash prompt (`"--help me"`, `"-y do X"`) can NEVER be re-parsed
|
|
30
|
+
* as a flag — a thin but real argument-injection boundary. `--` is NOT
|
|
31
|
+
* used (the end-of-options separator is only meaningful for a positional
|
|
32
|
+
* prompt, which the canonical form never uses).
|
|
33
|
+
* - `--approval-mode default` is pinned HERE (part of the canonical argv,
|
|
34
|
+
* not an optional add-on). `yolo`/`auto_edit`/`-y` let the model take
|
|
35
|
+
* filesystem/exec actions without confirmation — they are a capability-only
|
|
36
|
+
* mode, never reachable from this one-shot builder. (Analog of codex's
|
|
37
|
+
* `--sandbox read-only` pin at the call site.)
|
|
38
|
+
*/
|
|
39
|
+
export function buildGeminiOneShotArgv(model, prompt) {
|
|
40
|
+
return ['-m', model, '--approval-mode', 'default', '-p', prompt];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Rule-1a analog — env allowlist for Gemini child processes.
|
|
44
|
+
*
|
|
45
|
+
* Gemini auths via `~/.gemini` cached OAuth credentials (the
|
|
46
|
+
* subscription/cached-OAuth path). Like Codex, a present billing-capable
|
|
47
|
+
* env var would silently route Gemini onto a billed API path instead of the
|
|
48
|
+
* cached-OAuth path — the exact Codex Rule-1 leak class. This is an explicit
|
|
49
|
+
* ALLOWLIST (not a blocklist): anything not listed is dropped.
|
|
50
|
+
*/
|
|
51
|
+
const GEMINI_ENV_ALLOWLIST = [
|
|
52
|
+
// Filesystem / user identity
|
|
53
|
+
'HOME',
|
|
54
|
+
'USER',
|
|
55
|
+
'LOGNAME',
|
|
56
|
+
// Subprocess execution
|
|
57
|
+
'PATH',
|
|
58
|
+
'SHELL',
|
|
59
|
+
'TMPDIR',
|
|
60
|
+
// Locale
|
|
61
|
+
'LANG',
|
|
62
|
+
'LANGUAGE',
|
|
63
|
+
'LC_ALL',
|
|
64
|
+
'LC_CTYPE',
|
|
65
|
+
'LC_MESSAGES',
|
|
66
|
+
// Terminal sizing
|
|
67
|
+
'COLUMNS',
|
|
68
|
+
'LINES',
|
|
69
|
+
'ROWS',
|
|
70
|
+
'TERM',
|
|
71
|
+
// Gemini CLI configuration knobs (benign — model/dir overrides, NOT keys)
|
|
72
|
+
'GEMINI_MODEL',
|
|
73
|
+
'GEMINI_SYSTEM_MD',
|
|
74
|
+
// XDG base-dir conventions
|
|
75
|
+
'XDG_CONFIG_HOME',
|
|
76
|
+
'XDG_DATA_HOME',
|
|
77
|
+
'XDG_CACHE_HOME',
|
|
78
|
+
'XDG_STATE_HOME',
|
|
79
|
+
];
|
|
80
|
+
/**
|
|
81
|
+
* The Google/Gemini billing-capable vars that are UNCONDITIONALLY deleted
|
|
82
|
+
* from the child env, regardless of allowlist contents. Any of these present
|
|
83
|
+
* would silently route Gemini onto a billed API path instead of the
|
|
84
|
+
* cached-OAuth/subscription path. A false-negative (silent billing) is
|
|
85
|
+
* asymmetrically costly, so the delete is unconditional and the
|
|
86
|
+
* geminiKeyLeakageCanary asserts none of these ever reaches the child.
|
|
87
|
+
*/
|
|
88
|
+
export const GEMINI_BILLING_ENV_VARS = [
|
|
89
|
+
'GEMINI_API_KEY',
|
|
90
|
+
'GOOGLE_API_KEY',
|
|
91
|
+
'GOOGLE_APPLICATION_CREDENTIALS',
|
|
92
|
+
'GOOGLE_GENAI_USE_VERTEXAI',
|
|
93
|
+
'GOOGLE_CLOUD_PROJECT',
|
|
94
|
+
];
|
|
95
|
+
/**
|
|
96
|
+
* Build the env for a `gemini` child process per the Rule-1a analog.
|
|
97
|
+
* Constructs an explicit allowlist (variables not listed are dropped), then
|
|
98
|
+
* UNCONDITIONALLY hard-deletes every billing-capable Google/Gemini var.
|
|
99
|
+
*/
|
|
100
|
+
export function buildGeminiChildEnv(parentEnv = process.env) {
|
|
101
|
+
const env = {};
|
|
102
|
+
for (const key of GEMINI_ENV_ALLOWLIST) {
|
|
103
|
+
const value = parentEnv[key];
|
|
104
|
+
if (value !== undefined) {
|
|
105
|
+
env[key] = value;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Unconditional hard-delete — belt-and-suspenders against any allowlist
|
|
109
|
+
// expansion mistake AND any value that slipped through. Never billed.
|
|
110
|
+
for (const key of GEMINI_BILLING_ENV_VARS) {
|
|
111
|
+
delete env[key];
|
|
112
|
+
}
|
|
113
|
+
return env;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Spawn `gemini` with the given argv and wait for completion.
|
|
117
|
+
*
|
|
118
|
+
* - Closes stdin immediately (Gemini may otherwise block waiting for EOF).
|
|
119
|
+
* - SIGTERM→SIGKILL on timeout (2s grace), AbortSignal handling.
|
|
120
|
+
* - Bounds captured stdout/stderr at `maxOutputBytes` (default 8 MiB),
|
|
121
|
+
* killing the child and flagging `truncated` once the cap is exceeded.
|
|
122
|
+
* - The benign `Loaded cached credentials` stderr line is NOT treated as a
|
|
123
|
+
* failure — the caller only fails on a non-zero exit code.
|
|
124
|
+
*/
|
|
125
|
+
export async function spawnGeminiAndWait(binary, args, options) {
|
|
126
|
+
const maxBytes = options.maxOutputBytes ?? DEFAULT_MAX_OUTPUT_BYTES;
|
|
127
|
+
return new Promise((resolve, reject) => {
|
|
128
|
+
const child = spawn(binary, args, {
|
|
129
|
+
env: options.env,
|
|
130
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
131
|
+
});
|
|
132
|
+
const stdoutChunks = [];
|
|
133
|
+
const stderrChunks = [];
|
|
134
|
+
let stdoutBytes = 0;
|
|
135
|
+
let stderrBytes = 0;
|
|
136
|
+
let truncated = false;
|
|
137
|
+
let timedOut = false;
|
|
138
|
+
let aborted = false;
|
|
139
|
+
const timer = setTimeout(() => {
|
|
140
|
+
timedOut = true;
|
|
141
|
+
child.kill('SIGTERM');
|
|
142
|
+
setTimeout(() => child.kill('SIGKILL'), 2000).unref();
|
|
143
|
+
}, options.timeoutMs);
|
|
144
|
+
timer.unref();
|
|
145
|
+
const onAbort = () => {
|
|
146
|
+
aborted = true;
|
|
147
|
+
child.kill('SIGTERM');
|
|
148
|
+
};
|
|
149
|
+
options.signal?.addEventListener('abort', onAbort, { once: true });
|
|
150
|
+
const capTriggered = () => {
|
|
151
|
+
if (truncated)
|
|
152
|
+
return;
|
|
153
|
+
truncated = true;
|
|
154
|
+
// Stop the runaway child once either stream hits the cap. Best-effort.
|
|
155
|
+
child.kill('SIGTERM');
|
|
156
|
+
setTimeout(() => child.kill('SIGKILL'), 2000).unref();
|
|
157
|
+
};
|
|
158
|
+
child.stdout.on('data', (b) => {
|
|
159
|
+
// Any data arriving once the cap is already full means we are dropping
|
|
160
|
+
// output → flag truncated (covers the exact-boundary case where the
|
|
161
|
+
// previous chunk landed us precisely AT the cap).
|
|
162
|
+
if (stdoutBytes >= maxBytes) {
|
|
163
|
+
capTriggered();
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const remaining = maxBytes - stdoutBytes;
|
|
167
|
+
if (b.length > remaining) {
|
|
168
|
+
stdoutChunks.push(b.subarray(0, remaining));
|
|
169
|
+
stdoutBytes = maxBytes;
|
|
170
|
+
capTriggered();
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
stdoutChunks.push(b);
|
|
174
|
+
stdoutBytes += b.length;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
child.stderr.on('data', (b) => {
|
|
178
|
+
if (stderrBytes >= maxBytes) {
|
|
179
|
+
capTriggered();
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const remaining = maxBytes - stderrBytes;
|
|
183
|
+
if (b.length > remaining) {
|
|
184
|
+
stderrChunks.push(b.subarray(0, remaining));
|
|
185
|
+
stderrBytes = maxBytes;
|
|
186
|
+
capTriggered();
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
stderrChunks.push(b);
|
|
190
|
+
stderrBytes += b.length;
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
child.on('error', (err) => {
|
|
194
|
+
clearTimeout(timer);
|
|
195
|
+
options.signal?.removeEventListener('abort', onAbort);
|
|
196
|
+
reject(err);
|
|
197
|
+
});
|
|
198
|
+
child.on('close', (code) => {
|
|
199
|
+
clearTimeout(timer);
|
|
200
|
+
options.signal?.removeEventListener('abort', onAbort);
|
|
201
|
+
const stdout = Buffer.concat(stdoutChunks).toString('utf-8');
|
|
202
|
+
const stderr = Buffer.concat(stderrChunks).toString('utf-8');
|
|
203
|
+
if (aborted) {
|
|
204
|
+
const e = new Error('Aborted');
|
|
205
|
+
e.name = 'AbortError';
|
|
206
|
+
return reject(e);
|
|
207
|
+
}
|
|
208
|
+
if (timedOut) {
|
|
209
|
+
const e = new Error(`Gemini timed out after ${options.timeoutMs}ms`);
|
|
210
|
+
e.signal = 'SIGTERM';
|
|
211
|
+
e.killed = true;
|
|
212
|
+
e.stderr = stderr;
|
|
213
|
+
return reject(e);
|
|
214
|
+
}
|
|
215
|
+
resolve({ exitCode: code, stdout, stderr, truncated });
|
|
216
|
+
});
|
|
217
|
+
// Close stdin immediately so Gemini doesn't wait for input.
|
|
218
|
+
child.stdin.end();
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=geminiSpawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geminiSpawn.js","sourceRoot":"","sources":["../../../../../src/providers/adapters/gemini-cli/transport/geminiSpawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OneShotCompletion implementation for the gemini-cli adapter.
|
|
3
|
+
*
|
|
4
|
+
* Spawns the CANONICAL one-shot argv:
|
|
5
|
+
* gemini -m <model> --approval-mode default -p <prompt>
|
|
6
|
+
* and reads the trimmed final message from stdout. Unlike Codex's
|
|
7
|
+
* `--output-last-message <file>` indirection, the verified Gemini one-shot
|
|
8
|
+
* writes the final message to stdout directly (clean stdout, exit 0), so
|
|
9
|
+
* this is simpler than Codex's tmpfile dance.
|
|
10
|
+
*
|
|
11
|
+
* SAFETY (pinned at the call site):
|
|
12
|
+
* - `--approval-mode default` is part of the canonical argv (buildGeminiOneShotArgv).
|
|
13
|
+
* `yolo`/`auto_edit`/`-y` are NEVER reachable from this primitive.
|
|
14
|
+
* - The env unconditionally hard-deletes the Google/Gemini billing vars.
|
|
15
|
+
* - Output is byte-capped (spawnGeminiAndWait) — improving on codex's
|
|
16
|
+
* unbounded Buffer.concat.
|
|
17
|
+
*/
|
|
18
|
+
import type { OneShotCompletion } from '../../../primitives/transport/oneShotCompletion.js';
|
|
19
|
+
import type { GeminiCliConfig } from '../config.js';
|
|
20
|
+
export declare function createOneShotCompletion(config: GeminiCliConfig): OneShotCompletion;
|
|
21
|
+
//# sourceMappingURL=oneShotCompletion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oneShotCompletion.d.ts","sourceRoot":"","sources":["../../../../../src/providers/adapters/gemini-cli/transport/oneShotCompletion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,oDAAoD,CAAC;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAiFpD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAElF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OneShotCompletion implementation for the gemini-cli adapter.
|
|
3
|
+
*
|
|
4
|
+
* Spawns the CANONICAL one-shot argv:
|
|
5
|
+
* gemini -m <model> --approval-mode default -p <prompt>
|
|
6
|
+
* and reads the trimmed final message from stdout. Unlike Codex's
|
|
7
|
+
* `--output-last-message <file>` indirection, the verified Gemini one-shot
|
|
8
|
+
* writes the final message to stdout directly (clean stdout, exit 0), so
|
|
9
|
+
* this is simpler than Codex's tmpfile dance.
|
|
10
|
+
*
|
|
11
|
+
* SAFETY (pinned at the call site):
|
|
12
|
+
* - `--approval-mode default` is part of the canonical argv (buildGeminiOneShotArgv).
|
|
13
|
+
* `yolo`/`auto_edit`/`-y` are NEVER reachable from this primitive.
|
|
14
|
+
* - The env unconditionally hard-deletes the Google/Gemini billing vars.
|
|
15
|
+
* - Output is byte-capped (spawnGeminiAndWait) — improving on codex's
|
|
16
|
+
* unbounded Buffer.concat.
|
|
17
|
+
*/
|
|
18
|
+
import { CapabilityFlag } from '../../../capabilities.js';
|
|
19
|
+
import { AbortError } from '../../../errors.js';
|
|
20
|
+
import { GEMINI_CLI_ID, mapExecError } from '../errors.js';
|
|
21
|
+
import { resolveCliModelFlag } from '../models.js';
|
|
22
|
+
import { buildGeminiChildEnv, buildGeminiOneShotArgv, spawnGeminiAndWait, } from './geminiSpawn.js';
|
|
23
|
+
class GeminiCliOneShotCompletion {
|
|
24
|
+
config;
|
|
25
|
+
capability = CapabilityFlag.OneShotCompletion;
|
|
26
|
+
constructor(config) {
|
|
27
|
+
this.config = config;
|
|
28
|
+
}
|
|
29
|
+
async evaluate(prompt, options) {
|
|
30
|
+
const timeoutMs = options?.timeoutMs ?? this.config.defaultOneShotTimeoutMs ?? 60_000;
|
|
31
|
+
const model = resolveCliModelFlag(options?.model ?? this.config.defaultModel);
|
|
32
|
+
// System prompt is prepended to the user prompt (Gemini's one-shot `-p`
|
|
33
|
+
// takes a single string; there's no separate system flag on this path).
|
|
34
|
+
const effectivePrompt = options?.system
|
|
35
|
+
? `${options.system}\n\n${prompt}`
|
|
36
|
+
: prompt;
|
|
37
|
+
// CANONICAL argv — the only form this primitive ever emits.
|
|
38
|
+
// --approval-mode default is pinned here; the prompt is exactly one slot.
|
|
39
|
+
const args = buildGeminiOneShotArgv(model, effectivePrompt);
|
|
40
|
+
const childEnv = buildGeminiChildEnv();
|
|
41
|
+
const abortSignal = options?.signal;
|
|
42
|
+
if (abortSignal?.aborted) {
|
|
43
|
+
throw new AbortError('Aborted before start', GEMINI_CLI_ID);
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const result = await spawnGeminiAndWait(this.config.geminiPath, args, {
|
|
47
|
+
timeoutMs,
|
|
48
|
+
env: childEnv,
|
|
49
|
+
...(abortSignal ? { signal: abortSignal } : {}),
|
|
50
|
+
...(this.config.maxOutputBytes !== undefined
|
|
51
|
+
? { maxOutputBytes: this.config.maxOutputBytes }
|
|
52
|
+
: {}),
|
|
53
|
+
});
|
|
54
|
+
if (result.exitCode !== 0) {
|
|
55
|
+
// Benign `Loaded cached credentials` stderr line is NOT a failure when
|
|
56
|
+
// exit is 0; here exit is non-zero so surface the stderr.
|
|
57
|
+
throw mapExecError(new Error(`Gemini exited ${result.exitCode}`), result.stderr);
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
text: result.stdout.trim(),
|
|
61
|
+
usage: null,
|
|
62
|
+
providerSpecific: {
|
|
63
|
+
[GEMINI_CLI_ID]: { model, approvalMode: 'default', truncated: result.truncated },
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
const error = err;
|
|
69
|
+
if (error.name === 'AbortError' || abortSignal?.aborted) {
|
|
70
|
+
throw new AbortError('Aborted during execution', GEMINI_CLI_ID, err);
|
|
71
|
+
}
|
|
72
|
+
const stderr = String(error.stderr ?? '');
|
|
73
|
+
throw mapExecError(error, stderr);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export function createOneShotCompletion(config) {
|
|
78
|
+
return new GeminiCliOneShotCompletion(config);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=oneShotCompletion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oneShotCompletion.js","sourceRoot":"","sources":["../../../../../src/providers/adapters/gemini-cli/transport/oneShotCompletion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillParityRule.d.ts","sourceRoot":"","sources":["../../../../src/providers/parity/rules/skillParityRule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAOH,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,aAAa,CAAC;AAiCrB,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;
|
|
1
|
+
{"version":3,"file":"skillParityRule.d.ts","sourceRoot":"","sources":["../../../../src/providers/parity/rules/skillParityRule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAOH,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,aAAa,CAAC;AAiCrB,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AA+hBD,eAAO,MAAM,eAAe,EAAE,UA2E7B,CAAC"}
|
|
@@ -511,6 +511,14 @@ async function removeOrphanSkillDirs(skillsRoot, canonicalNames) {
|
|
|
511
511
|
const FRAMEWORK_RENDERERS = {
|
|
512
512
|
'claude-code': claudeCodeRenderer,
|
|
513
513
|
'codex-cli': codexCliRenderer,
|
|
514
|
+
// Gemini CLI (apprenticeship Step 2 minimal body): reuses the non-Claude
|
|
515
|
+
// `.agents/skills` shared-layout renderer. Skill-rendering PARITY for gemini
|
|
516
|
+
// (a gemini-specific sibling YAML if/when one is needed) is §9 ongoing
|
|
517
|
+
// apprenticeship work — the parity harness is dormant in production
|
|
518
|
+
// (src/providers/registry is unregistered), so this entry keeps the
|
|
519
|
+
// compiler-forced Record total without overclaiming a gemini-native artifact
|
|
520
|
+
// that the minimal body does not yet produce.
|
|
521
|
+
'gemini-cli': codexCliRenderer,
|
|
514
522
|
};
|
|
515
523
|
// ─── The exported ParityRule ───────────────────────────────────────────
|
|
516
524
|
async function findOrphans(projectRoot, framework, canonicalNames) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillParityRule.js","sourceRoot":"","sources":["../../../../src/providers/parity/rules/skillParityRule.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skillParityRule.js","sourceRoot":"","sources":["../../../../src/providers/parity/rules/skillParityRule.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ export interface PreferenceStoreOptions {
|
|
|
39
39
|
}
|
|
40
40
|
export declare class PreferenceStore {
|
|
41
41
|
private readonly db;
|
|
42
|
+
private _unregisterSqlite?;
|
|
42
43
|
constructor(options: PreferenceStoreOptions);
|
|
43
44
|
private initSchema;
|
|
44
45
|
/** Read a cached preference. Returns null when none exists. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreferenceStore.d.ts","sourceRoot":"","sources":["../../../src/providers/uxConfirm/PreferenceStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"PreferenceStore.d.ts","sourceRoot":"","sources":["../../../src/providers/uxConfirm/PreferenceStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAMhE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,aAAa,CAAC;AAExE,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,8EAA8E;IAC9E,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,iBAAiB,EAAE,eAAe,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAuB;IAC1C,OAAO,CAAC,iBAAiB,CAAC,CAAa;gBAE3B,OAAO,EAAE,sBAAsB;IAmB3C,OAAO,CAAC,UAAU;IAgBlB,+DAA+D;IAC/D,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAuCzE,sCAAsC;IACtC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB,GAAG,IAAI;IA2BpF,kFAAkF;IAClF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAShD,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9B,iEAAiE;IACjE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IASnD,gDAAgD;IAChD,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* trigger anyway.
|
|
19
19
|
*/
|
|
20
20
|
import Database from 'better-sqlite3';
|
|
21
|
+
import { registerSqliteHandle } from '../../core/SqliteRegistry.js';
|
|
21
22
|
import fs from 'node:fs';
|
|
22
23
|
import path from 'node:path';
|
|
23
24
|
// ---------------------------------------------------------------------------
|
|
@@ -25,6 +26,7 @@ import path from 'node:path';
|
|
|
25
26
|
// ---------------------------------------------------------------------------
|
|
26
27
|
export class PreferenceStore {
|
|
27
28
|
db;
|
|
29
|
+
_unregisterSqlite;
|
|
28
30
|
constructor(options) {
|
|
29
31
|
if (options.dbPath !== ':memory:') {
|
|
30
32
|
const dir = path.dirname(options.dbPath);
|
|
@@ -38,6 +40,13 @@ export class PreferenceStore {
|
|
|
38
40
|
this.db = new Database(options.dbPath);
|
|
39
41
|
this.db.pragma('journal_mode = WAL');
|
|
40
42
|
this.initSchema();
|
|
43
|
+
// Close-on-exit registry (SqliteRegistry.ts). Registered after the db is open.
|
|
44
|
+
this._unregisterSqlite = registerSqliteHandle(() => {
|
|
45
|
+
try {
|
|
46
|
+
this.db?.close();
|
|
47
|
+
}
|
|
48
|
+
catch { /* already closed — fine */ }
|
|
49
|
+
});
|
|
41
50
|
}
|
|
42
51
|
initSchema() {
|
|
43
52
|
this.db.exec(`
|
|
@@ -119,6 +128,10 @@ export class PreferenceStore {
|
|
|
119
128
|
}
|
|
120
129
|
/** Close the underlying database connection. */
|
|
121
130
|
close() {
|
|
131
|
+
if (this._unregisterSqlite) {
|
|
132
|
+
this._unregisterSqlite();
|
|
133
|
+
this._unregisterSqlite = undefined;
|
|
134
|
+
}
|
|
122
135
|
this.db.close();
|
|
123
136
|
}
|
|
124
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreferenceStore.js","sourceRoot":"","sources":["../../../src/providers/uxConfirm/PreferenceStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AA8B7B,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,OAAO,eAAe;IACT,EAAE,CAAuB;
|
|
1
|
+
{"version":3,"file":"PreferenceStore.js","sourceRoot":"","sources":["../../../src/providers/uxConfirm/PreferenceStore.ts"],"names":[],"mappings":"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"}
|