@stigmer/cli 3.1.15 → 3.1.16
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/local/daemon/components.d.ts.map +1 -1
- package/local/daemon/components.js +6 -0
- package/local/daemon/components.js.map +1 -1
- package/local/daemon/env.d.ts +6 -0
- package/local/daemon/env.d.ts.map +1 -1
- package/local/daemon/env.js +8 -0
- package/local/daemon/env.js.map +1 -1
- package/local/daemon/launch.d.ts.map +1 -1
- package/local/daemon/launch.js +21 -0
- package/local/daemon/launch.js.map +1 -1
- package/package.json +5 -5
- package/src/local/daemon/components.test.ts +15 -0
- package/src/local/daemon/components.ts +4 -0
- package/src/local/daemon/env.test.ts +18 -0
- package/src/local/daemon/env.ts +14 -0
- package/src/local/daemon/launch.ts +22 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/local/daemon/components.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAK/D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAY7G;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/local/daemon/components.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAK/D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAY7G;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAkB7G;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,MAAM,CAAC,UAAwB,GAAG,aAAa,EAAE,CAmC5G"}
|
|
@@ -46,6 +46,12 @@ export function buildRunnerEnv(config, base = process.env) {
|
|
|
46
46
|
};
|
|
47
47
|
if (config.cursorApiKey !== undefined)
|
|
48
48
|
env.CURSOR_API_KEY = config.cursorApiKey;
|
|
49
|
+
// Explicit set (after the base spread) so the launcher-resolved key wins over any
|
|
50
|
+
// stale inherited value — the delivery path for a `stigmer setup`-persisted key.
|
|
51
|
+
if (config.anthropicApiKey !== undefined)
|
|
52
|
+
env.ANTHROPIC_API_KEY = config.anthropicApiKey;
|
|
53
|
+
if (config.openaiApiKey !== undefined)
|
|
54
|
+
env.OPENAI_API_KEY = config.openaiApiKey;
|
|
49
55
|
if (config.activityRouting !== undefined)
|
|
50
56
|
env.STIGMER_ACTIVITY_ROUTING = config.activityRouting;
|
|
51
57
|
return env;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/local/daemon/components.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/local/daemon/components.ts"],"names":[],"mappings":"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"}
|
package/local/daemon/env.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export declare const DaemonEnvVar: {
|
|
|
11
11
|
readonly RunnerEntry: "STIGMER_RUNNER_ENTRY";
|
|
12
12
|
readonly RunnerAppDir: "STIGMER_RUNNER_APP_DIR";
|
|
13
13
|
readonly CursorApiKey: "CURSOR_API_KEY";
|
|
14
|
+
readonly AnthropicApiKey: "ANTHROPIC_API_KEY";
|
|
15
|
+
readonly OpenAiApiKey: "OPENAI_API_KEY";
|
|
14
16
|
readonly ActivityRouting: "STIGMER_ACTIVITY_ROUTING";
|
|
15
17
|
};
|
|
16
18
|
/** Resolved runner launch coordinates. */
|
|
@@ -30,6 +32,8 @@ export interface DaemonConfig {
|
|
|
30
32
|
serverBin: string;
|
|
31
33
|
runner?: RunnerLaunch;
|
|
32
34
|
cursorApiKey?: string;
|
|
35
|
+
anthropicApiKey?: string;
|
|
36
|
+
openaiApiKey?: string;
|
|
33
37
|
activityRouting?: string;
|
|
34
38
|
}
|
|
35
39
|
/** Inputs the launcher already resolved, to encode into the daemon env. */
|
|
@@ -42,6 +46,8 @@ export interface DaemonEnvInputs {
|
|
|
42
46
|
noWeb: boolean;
|
|
43
47
|
serverBin: string;
|
|
44
48
|
runner?: RunnerLaunch;
|
|
49
|
+
anthropicApiKey?: string;
|
|
50
|
+
openaiApiKey?: string;
|
|
45
51
|
}
|
|
46
52
|
/**
|
|
47
53
|
* Build the environment for the internal-daemon child: the caller's environment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/local/daemon/env.ts"],"names":[],"mappings":"AAMA,+EAA+E;AAC/E,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/local/daemon/env.ts"],"names":[],"mappings":"AAMA,+EAA+E;AAC/E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;CAef,CAAC;AAEX,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IAKtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAiBhH;AAED;uBACuB;AACvB,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,YAAY,CAoBnF"}
|
package/local/daemon/env.js
CHANGED
|
@@ -16,6 +16,8 @@ export const DaemonEnvVar = {
|
|
|
16
16
|
RunnerEntry: "STIGMER_RUNNER_ENTRY",
|
|
17
17
|
RunnerAppDir: "STIGMER_RUNNER_APP_DIR",
|
|
18
18
|
CursorApiKey: "CURSOR_API_KEY",
|
|
19
|
+
AnthropicApiKey: "ANTHROPIC_API_KEY",
|
|
20
|
+
OpenAiApiKey: "OPENAI_API_KEY",
|
|
19
21
|
ActivityRouting: "STIGMER_ACTIVITY_ROUTING",
|
|
20
22
|
};
|
|
21
23
|
/**
|
|
@@ -39,6 +41,10 @@ export function buildDaemonEnv(inputs, base = process.env) {
|
|
|
39
41
|
env[DaemonEnvVar.RunnerEntry] = inputs.runner.entryPath;
|
|
40
42
|
env[DaemonEnvVar.RunnerAppDir] = inputs.runner.appDir;
|
|
41
43
|
}
|
|
44
|
+
if (inputs.anthropicApiKey !== undefined)
|
|
45
|
+
env[DaemonEnvVar.AnthropicApiKey] = inputs.anthropicApiKey;
|
|
46
|
+
if (inputs.openaiApiKey !== undefined)
|
|
47
|
+
env[DaemonEnvVar.OpenAiApiKey] = inputs.openaiApiKey;
|
|
42
48
|
return env;
|
|
43
49
|
}
|
|
44
50
|
/** Parse the daemon configuration from an environment. Throws if a required
|
|
@@ -58,6 +64,8 @@ export function readDaemonConfig(env = process.env) {
|
|
|
58
64
|
serverBin: required(env, DaemonEnvVar.ServerBin),
|
|
59
65
|
runner: serverOnly ? undefined : runner,
|
|
60
66
|
cursorApiKey: nonEmpty(env[DaemonEnvVar.CursorApiKey]),
|
|
67
|
+
anthropicApiKey: nonEmpty(env[DaemonEnvVar.AnthropicApiKey]),
|
|
68
|
+
openaiApiKey: nonEmpty(env[DaemonEnvVar.OpenAiApiKey]),
|
|
61
69
|
activityRouting: nonEmpty(env[DaemonEnvVar.ActivityRouting]),
|
|
62
70
|
};
|
|
63
71
|
}
|
package/local/daemon/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/local/daemon/env.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,iFAAiF;AACjF,+EAA+E;AAC/E,8EAA8E;AAC9E,mEAAmE;AAEnE,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,iBAAiB;IACzB,eAAe,EAAE,0BAA0B;IAC3C,eAAe,EAAE,0BAA0B;IAC3C,UAAU,EAAE,qBAAqB;IACjC,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,oBAAoB;IAC/B,aAAa,EAAE,yBAAyB;IACxC,WAAW,EAAE,sBAAsB;IACnC,YAAY,EAAE,wBAAwB;IACtC,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,0BAA0B;CACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/local/daemon/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../../src/local/daemon/launch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../../src/local/daemon/launch.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,8EAA8E;AAC9E,wBAAsB,EAAE,CAAC,OAAO,GAAE,SAAc,EAAE,IAAI,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDzF;AAuCD,kEAAkE;AAClE,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAiCrE;AAED,4EAA4E;AAC5E,wBAAsB,SAAS,CAAC,IAAI,GAAE,MAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ1E"}
|
package/local/daemon/launch.js
CHANGED
|
@@ -20,6 +20,7 @@ import { readPidFile, removePidFile } from "../state/pidfile.js";
|
|
|
20
20
|
import { findProcessByPort, isProcessAlive, killProcess } from "../state/proc.js";
|
|
21
21
|
import { removeStartupConfig, saveStartupConfig } from "../state/startup-config.js";
|
|
22
22
|
import { rotateLogs } from "../state/log-rotation.js";
|
|
23
|
+
import { resolveApiKey, resolveProvider } from "../llm-config.js";
|
|
23
24
|
import { ensureRunner } from "../runtime/runner.js";
|
|
24
25
|
import { ensureServerBinary } from "../runtime/server.js";
|
|
25
26
|
import { TemporalManager } from "../temporal/manager.js";
|
|
@@ -60,6 +61,7 @@ export async function up(options = {}, home = homedir()) {
|
|
|
60
61
|
noWeb: options.noWeb === true,
|
|
61
62
|
serverBin,
|
|
62
63
|
runner,
|
|
64
|
+
...resolveLlmKeyInputs(config),
|
|
63
65
|
}, process.env);
|
|
64
66
|
const daemonPid = spawnDaemon(env, join(logs, "daemon.log"));
|
|
65
67
|
log.info("daemon process started", { pid: daemonPid });
|
|
@@ -189,6 +191,25 @@ async function stopManagedTemporal(home) {
|
|
|
189
191
|
log.debug("managed Temporal stop skipped", { error: String(err) });
|
|
190
192
|
}
|
|
191
193
|
}
|
|
194
|
+
// LLM-key delivery for the runner: a key persisted by `stigmer setup` lives only in
|
|
195
|
+
// the config file, so the launcher must write it into the daemon contract explicitly
|
|
196
|
+
// — unlike a shell-exported key, it cannot flow by env inheritance. resolveApiKey's
|
|
197
|
+
// precedence (env var > config file) makes both cases one code path; when the env
|
|
198
|
+
// var is set this re-writes the same value. Only the effective provider's key is
|
|
199
|
+
// passed: the config file stores a single key, keyed to the chosen provider.
|
|
200
|
+
function resolveLlmKeyInputs(config) {
|
|
201
|
+
const key = resolveApiKey(config);
|
|
202
|
+
if (key === "")
|
|
203
|
+
return {};
|
|
204
|
+
switch (resolveProvider(config)) {
|
|
205
|
+
case "anthropic":
|
|
206
|
+
return { anthropicApiKey: key };
|
|
207
|
+
case "openai":
|
|
208
|
+
return { openaiApiKey: key };
|
|
209
|
+
default:
|
|
210
|
+
return {};
|
|
211
|
+
}
|
|
212
|
+
}
|
|
192
213
|
// Default to managed Temporal unless the opaque local config explicitly opts out
|
|
193
214
|
// (Go parity: managed is the default). Wave 4's `setup` models this section.
|
|
194
215
|
function isTemporalManaged(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/local/daemon/launch.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,qEAAqE;AACrE,EAAE;AACF,2EAA2E;AAC3E,+EAA+E;AAC/E,0EAA0E;AAC1E,oEAAoE;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAe,IAAI,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAsB,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/local/daemon/launch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/cli",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.16",
|
|
4
4
|
"description": "Stigmer command-line interface — manage agents, workflows, MCP servers, skills, and executions from the terminal",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"@connectrpc/connect": "^2.0.0",
|
|
36
36
|
"@connectrpc/connect-node": "^2.1.1",
|
|
37
37
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
38
|
-
"@stigmer/ink": "3.1.
|
|
39
|
-
"@stigmer/mcp-server": "3.1.
|
|
40
|
-
"@stigmer/protos": "3.1.
|
|
41
|
-
"@stigmer/sdk": "3.1.
|
|
38
|
+
"@stigmer/ink": "3.1.16",
|
|
39
|
+
"@stigmer/mcp-server": "3.1.16",
|
|
40
|
+
"@stigmer/protos": "3.1.16",
|
|
41
|
+
"@stigmer/sdk": "3.1.16",
|
|
42
42
|
"commander": "^12.1.0",
|
|
43
43
|
"fflate": "^0.8.3",
|
|
44
44
|
"ink": "^7.0.0",
|
|
@@ -47,6 +47,21 @@ describe("buildRunnerEnv", () => {
|
|
|
47
47
|
expect(withKey.STIGMER_ACTIVITY_ROUTING).toBe("session");
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
+
it("forwards LLM provider keys only when set, resolved value winning over the base env", () => {
|
|
51
|
+
const bare = buildRunnerEnv(config, {});
|
|
52
|
+
expect(bare.ANTHROPIC_API_KEY).toBeUndefined();
|
|
53
|
+
expect(bare.OPENAI_API_KEY).toBeUndefined();
|
|
54
|
+
|
|
55
|
+
// The contract value is authoritative: the launcher already applied the
|
|
56
|
+
// env > config precedence, so whatever sits in the child's base env must
|
|
57
|
+
// not override the resolved key.
|
|
58
|
+
const env = buildRunnerEnv(
|
|
59
|
+
{ ...config, anthropicApiKey: "sk-ant-resolved" },
|
|
60
|
+
{ ANTHROPIC_API_KEY: "sk-ant-other" },
|
|
61
|
+
);
|
|
62
|
+
expect(env.ANTHROPIC_API_KEY).toBe("sk-ant-resolved");
|
|
63
|
+
});
|
|
64
|
+
|
|
50
65
|
// The regression guard for the queue bug: the server dispatches to, and the
|
|
51
66
|
// runner polls, the exact same queue.
|
|
52
67
|
it("pins the runner's poll queue to the server's dispatch queue", () => {
|
|
@@ -51,6 +51,10 @@ export function buildRunnerEnv(config: DaemonConfig, base: NodeJS.ProcessEnv = p
|
|
|
51
51
|
LOG_LEVEL: base.LOG_LEVEL ?? "info",
|
|
52
52
|
};
|
|
53
53
|
if (config.cursorApiKey !== undefined) env.CURSOR_API_KEY = config.cursorApiKey;
|
|
54
|
+
// Explicit set (after the base spread) so the launcher-resolved key wins over any
|
|
55
|
+
// stale inherited value — the delivery path for a `stigmer setup`-persisted key.
|
|
56
|
+
if (config.anthropicApiKey !== undefined) env.ANTHROPIC_API_KEY = config.anthropicApiKey;
|
|
57
|
+
if (config.openaiApiKey !== undefined) env.OPENAI_API_KEY = config.openaiApiKey;
|
|
54
58
|
if (config.activityRouting !== undefined) env.STIGMER_ACTIVITY_ROUTING = config.activityRouting;
|
|
55
59
|
return env;
|
|
56
60
|
}
|
|
@@ -26,6 +26,8 @@ describe("buildDaemonEnv + readDaemonConfig", () => {
|
|
|
26
26
|
serverBin: "/usr/local/bin/stigmer-server",
|
|
27
27
|
runner: { nodeBin: "/usr/bin/node", entryPath: "/repo/runner/dist/main.js", appDir: "/repo/runner" },
|
|
28
28
|
cursorApiKey: undefined,
|
|
29
|
+
anthropicApiKey: undefined,
|
|
30
|
+
openaiApiKey: undefined,
|
|
29
31
|
activityRouting: undefined,
|
|
30
32
|
});
|
|
31
33
|
});
|
|
@@ -44,6 +46,22 @@ describe("buildDaemonEnv + readDaemonConfig", () => {
|
|
|
44
46
|
expect(config.activityRouting).toBe("session");
|
|
45
47
|
});
|
|
46
48
|
|
|
49
|
+
// The config-file-only delivery path: a key from `stigmer setup` is not in the
|
|
50
|
+
// shell env, so the launcher must write it into the contract explicitly.
|
|
51
|
+
it("delivers a launcher-resolved LLM key with no help from the base env", () => {
|
|
52
|
+
const env = buildDaemonEnv({ ...baseInputs, anthropicApiKey: "sk-ant-cfg" }, {});
|
|
53
|
+
const config = readDaemonConfig(env);
|
|
54
|
+
expect(config.anthropicApiKey).toBe("sk-ant-cfg");
|
|
55
|
+
expect(config.openaiApiKey).toBeUndefined();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("passes shell-exported LLM keys through from the base env", () => {
|
|
59
|
+
const env = buildDaemonEnv(baseInputs, { ANTHROPIC_API_KEY: "sk-ant-env", OPENAI_API_KEY: "sk-oai-env" });
|
|
60
|
+
const config = readDaemonConfig(env);
|
|
61
|
+
expect(config.anthropicApiKey).toBe("sk-ant-env");
|
|
62
|
+
expect(config.openaiApiKey).toBe("sk-oai-env");
|
|
63
|
+
});
|
|
64
|
+
|
|
47
65
|
it("requires the data dir and server binary", () => {
|
|
48
66
|
expect(() => readDaemonConfig({})).toThrow(/STIGMER_DATA_DIR/);
|
|
49
67
|
expect(() => readDaemonConfig({ STIGMER_DATA_DIR: "/x" })).toThrow(/STIGMER_SERVER_BIN/);
|
package/src/local/daemon/env.ts
CHANGED
|
@@ -17,6 +17,8 @@ export const DaemonEnvVar = {
|
|
|
17
17
|
RunnerEntry: "STIGMER_RUNNER_ENTRY",
|
|
18
18
|
RunnerAppDir: "STIGMER_RUNNER_APP_DIR",
|
|
19
19
|
CursorApiKey: "CURSOR_API_KEY",
|
|
20
|
+
AnthropicApiKey: "ANTHROPIC_API_KEY",
|
|
21
|
+
OpenAiApiKey: "OPENAI_API_KEY",
|
|
20
22
|
ActivityRouting: "STIGMER_ACTIVITY_ROUTING",
|
|
21
23
|
} as const;
|
|
22
24
|
|
|
@@ -38,6 +40,8 @@ export interface DaemonConfig {
|
|
|
38
40
|
serverBin: string;
|
|
39
41
|
runner?: RunnerLaunch;
|
|
40
42
|
cursorApiKey?: string;
|
|
43
|
+
anthropicApiKey?: string;
|
|
44
|
+
openaiApiKey?: string;
|
|
41
45
|
activityRouting?: string;
|
|
42
46
|
}
|
|
43
47
|
|
|
@@ -51,6 +55,12 @@ export interface DaemonEnvInputs {
|
|
|
51
55
|
noWeb: boolean;
|
|
52
56
|
serverBin: string;
|
|
53
57
|
runner?: RunnerLaunch;
|
|
58
|
+
// LLM provider key resolved by the launcher (env > config file). Must be written
|
|
59
|
+
// into the daemon env explicitly: unlike a shell-exported key, a key persisted by
|
|
60
|
+
// `stigmer setup` exists only in the config file and would otherwise never reach
|
|
61
|
+
// the runner. Only the effective provider's key is set.
|
|
62
|
+
anthropicApiKey?: string;
|
|
63
|
+
openaiApiKey?: string;
|
|
54
64
|
}
|
|
55
65
|
|
|
56
66
|
/**
|
|
@@ -72,6 +82,8 @@ export function buildDaemonEnv(inputs: DaemonEnvInputs, base: NodeJS.ProcessEnv
|
|
|
72
82
|
env[DaemonEnvVar.RunnerEntry] = inputs.runner.entryPath;
|
|
73
83
|
env[DaemonEnvVar.RunnerAppDir] = inputs.runner.appDir;
|
|
74
84
|
}
|
|
85
|
+
if (inputs.anthropicApiKey !== undefined) env[DaemonEnvVar.AnthropicApiKey] = inputs.anthropicApiKey;
|
|
86
|
+
if (inputs.openaiApiKey !== undefined) env[DaemonEnvVar.OpenAiApiKey] = inputs.openaiApiKey;
|
|
75
87
|
return env;
|
|
76
88
|
}
|
|
77
89
|
|
|
@@ -93,6 +105,8 @@ export function readDaemonConfig(env: NodeJS.ProcessEnv = process.env): DaemonCo
|
|
|
93
105
|
serverBin: required(env, DaemonEnvVar.ServerBin),
|
|
94
106
|
runner: serverOnly ? undefined : runner,
|
|
95
107
|
cursorApiKey: nonEmpty(env[DaemonEnvVar.CursorApiKey]),
|
|
108
|
+
anthropicApiKey: nonEmpty(env[DaemonEnvVar.AnthropicApiKey]),
|
|
109
|
+
openaiApiKey: nonEmpty(env[DaemonEnvVar.OpenAiApiKey]),
|
|
96
110
|
activityRouting: nonEmpty(env[DaemonEnvVar.ActivityRouting]),
|
|
97
111
|
};
|
|
98
112
|
}
|
|
@@ -21,10 +21,11 @@ import { readPidFile, removePidFile } from "../state/pidfile.js";
|
|
|
21
21
|
import { findProcessByPort, isProcessAlive, killProcess } from "../state/proc.js";
|
|
22
22
|
import { type StartupConfig, removeStartupConfig, saveStartupConfig } from "../state/startup-config.js";
|
|
23
23
|
import { rotateLogs } from "../state/log-rotation.js";
|
|
24
|
+
import { resolveApiKey, resolveProvider } from "../llm-config.js";
|
|
24
25
|
import { ensureRunner } from "../runtime/runner.js";
|
|
25
26
|
import { ensureServerBinary } from "../runtime/server.js";
|
|
26
27
|
import { TemporalManager } from "../temporal/manager.js";
|
|
27
|
-
import { buildDaemonEnv } from "./env.js";
|
|
28
|
+
import { buildDaemonEnv, type DaemonEnvInputs } from "./env.js";
|
|
28
29
|
|
|
29
30
|
/** How long `up` waits for the server's gRPC port after spawning the daemon. */
|
|
30
31
|
const READY_TIMEOUT_MS = 60_000;
|
|
@@ -75,6 +76,7 @@ export async function up(options: UpOptions = {}, home: string = homedir()): Pro
|
|
|
75
76
|
noWeb: options.noWeb === true,
|
|
76
77
|
serverBin,
|
|
77
78
|
runner,
|
|
79
|
+
...resolveLlmKeyInputs(config),
|
|
78
80
|
},
|
|
79
81
|
process.env,
|
|
80
82
|
);
|
|
@@ -222,6 +224,25 @@ async function stopManagedTemporal(home: string): Promise<void> {
|
|
|
222
224
|
}
|
|
223
225
|
}
|
|
224
226
|
|
|
227
|
+
// LLM-key delivery for the runner: a key persisted by `stigmer setup` lives only in
|
|
228
|
+
// the config file, so the launcher must write it into the daemon contract explicitly
|
|
229
|
+
// — unlike a shell-exported key, it cannot flow by env inheritance. resolveApiKey's
|
|
230
|
+
// precedence (env var > config file) makes both cases one code path; when the env
|
|
231
|
+
// var is set this re-writes the same value. Only the effective provider's key is
|
|
232
|
+
// passed: the config file stores a single key, keyed to the chosen provider.
|
|
233
|
+
function resolveLlmKeyInputs(config: Config): Pick<DaemonEnvInputs, "anthropicApiKey" | "openaiApiKey"> {
|
|
234
|
+
const key = resolveApiKey(config);
|
|
235
|
+
if (key === "") return {};
|
|
236
|
+
switch (resolveProvider(config)) {
|
|
237
|
+
case "anthropic":
|
|
238
|
+
return { anthropicApiKey: key };
|
|
239
|
+
case "openai":
|
|
240
|
+
return { openaiApiKey: key };
|
|
241
|
+
default:
|
|
242
|
+
return {};
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
225
246
|
// Default to managed Temporal unless the opaque local config explicitly opts out
|
|
226
247
|
// (Go parity: managed is the default). Wave 4's `setup` models this section.
|
|
227
248
|
function isTemporalManaged(config: Config): boolean {
|