@stigmer/cli 3.12.6 → 3.12.8
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/commands/mcp-server.js +1 -1
- package/commands/setup.d.ts.map +1 -1
- package/commands/setup.js +38 -18
- package/commands/setup.js.map +1 -1
- package/local/daemon/components.d.ts.map +1 -1
- package/local/daemon/components.js +11 -1
- 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 +15 -0
- package/local/daemon/launch.js.map +1 -1
- package/local/operator-config.d.ts +28 -0
- package/local/operator-config.d.ts.map +1 -0
- package/local/operator-config.js +77 -0
- package/local/operator-config.js.map +1 -0
- package/local/setup/wizard.d.ts +16 -3
- package/local/setup/wizard.d.ts.map +1 -1
- package/local/setup/wizard.js +72 -13
- package/local/setup/wizard.js.map +1 -1
- package/package.json +5 -5
- package/src/commands/mcp-server.ts +1 -1
- package/src/commands/setup.ts +48 -18
- package/src/local/daemon/components.test.ts +20 -0
- package/src/local/daemon/components.ts +9 -1
- package/src/local/daemon/env.test.ts +21 -0
- package/src/local/daemon/env.ts +14 -0
- package/src/local/daemon/launch.ts +17 -0
- package/src/local/operator-config.test.ts +72 -0
- package/src/local/operator-config.ts +95 -0
- package/src/local/setup/wizard.test.ts +46 -1
- package/src/local/setup/wizard.ts +82 -13
package/commands/mcp-server.js
CHANGED
|
@@ -21,7 +21,7 @@ Environment variables:
|
|
|
21
21
|
STIGMER_SERVER_ADDRESS gRPC address (default: CLI config, else localhost:7234)
|
|
22
22
|
STIGMER_API_KEY API key (auto-resolved from CLI config for cloud)
|
|
23
23
|
STIGMER_MCP_TRANSPORT stdio | http | both (default: stdio)
|
|
24
|
-
STIGMER_MCP_ROSTER full |
|
|
24
|
+
STIGMER_MCP_ROSTER full | channels | memory (default: full; channels = send_channel_message only, memory = remember only)
|
|
25
25
|
STIGMER_MCP_HTTP_PORT HTTP listen port (default: 8080)
|
|
26
26
|
STIGMER_MCP_LOG_FORMAT text | json (default: text)
|
|
27
27
|
STIGMER_MCP_LOG_LEVEL debug | info | warn | error (default: info)
|
package/commands/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUpD"}
|
package/commands/setup.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
// `stigmer setup` — configure the LLM provider used for agent execution
|
|
1
|
+
// `stigmer setup` — configure the LLM provider used for agent execution and
|
|
2
|
+
// the optional self-hosted operator identity (oss#796).
|
|
2
3
|
//
|
|
3
4
|
// Two paths share one decision core (local/setup/wizard.ts): a non-interactive
|
|
4
|
-
// flag path (`--provider`, `--
|
|
5
|
-
// interactive
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
5
|
+
// flag path (`--provider`/`--api-key`, `--operator-email`/`--operator-name`)
|
|
6
|
+
// for scripts and CI, and an interactive flow when NO flag is given. Flags
|
|
7
|
+
// are independently applicable — operator flags without `--provider` leave
|
|
8
|
+
// the LLM section untouched, and vice versa. Writes land under
|
|
9
|
+
// backend.local.llm / backend.local.operator, preserving every other config
|
|
10
|
+
// field. The valid provider set is owned by wizard.ts's PROVIDER_CHOICES
|
|
11
|
+
// (Anthropic-only + skip — the only story the native runner serves).
|
|
9
12
|
//
|
|
10
13
|
// Setup deliberately has NO model concept: the platform model registry owns
|
|
11
14
|
// the execution default, and per-run overrides belong to `stigmer run
|
|
@@ -18,36 +21,53 @@ import { addResultFlags, resultFormat } from "./shared.js";
|
|
|
18
21
|
export function registerSetup(program) {
|
|
19
22
|
const setup = program
|
|
20
23
|
.command("setup")
|
|
21
|
-
.description("configure the LLM provider for
|
|
24
|
+
.description("configure the LLM provider and operator identity for local execution")
|
|
22
25
|
.option("--provider <name>", "provider: anthropic, or skip to clear (non-interactive)")
|
|
23
26
|
.option("--api-key <key>", "Anthropic API key")
|
|
27
|
+
.option("--operator-email <email>", "operator identity for local caller attribution (non-interactive)")
|
|
28
|
+
.option("--operator-name <name>", "operator display name (requires --operator-email)")
|
|
24
29
|
.action((options) => runSetup(options));
|
|
25
30
|
addResultFlags(setup);
|
|
26
31
|
}
|
|
27
32
|
async function runSetup(options) {
|
|
28
33
|
const { load, save } = await import("../config/config.js");
|
|
29
|
-
const { PROVIDER_CHOICES, applyChoice, runInteractiveWizard } = await import("../local/setup/wizard.js");
|
|
34
|
+
const { PROVIDER_CHOICES, applyChoice, applyOperatorIdentity, runInteractiveWizard } = await import("../local/setup/wizard.js");
|
|
30
35
|
const { isRunning } = await import("../local/daemon/launch.js");
|
|
31
36
|
const { CliExitError } = await import("../errors/cli-exit-error.js");
|
|
32
37
|
const { ExitCode } = await import("../errors/exit-codes.js");
|
|
33
38
|
const config = load();
|
|
39
|
+
const nonInteractive = options.provider !== undefined ||
|
|
40
|
+
options.operatorEmail !== undefined ||
|
|
41
|
+
options.operatorName !== undefined;
|
|
34
42
|
let updated;
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
if (
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
if (nonInteractive) {
|
|
44
|
+
updated = config;
|
|
45
|
+
if (options.provider !== undefined) {
|
|
46
|
+
const provider = options.provider.toLowerCase();
|
|
47
|
+
if (!PROVIDER_CHOICES.includes(provider)) {
|
|
48
|
+
throw new CliExitError(`unknown provider: ${options.provider}`, ExitCode.Usage, [
|
|
49
|
+
`Valid providers: ${PROVIDER_CHOICES.join(", ")}`,
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
updated = applyChoice(updated, provider, {
|
|
53
|
+
apiKey: options.apiKey,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (options.operatorEmail !== undefined || options.operatorName !== undefined) {
|
|
57
|
+
try {
|
|
58
|
+
updated = applyOperatorIdentity(updated, options.operatorEmail ?? "", options.operatorName ?? "");
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
// Same rule the server enforces at boot, surfaced at setup time.
|
|
62
|
+
throw new CliExitError(error instanceof Error ? error.message : String(error), ExitCode.Usage);
|
|
63
|
+
}
|
|
41
64
|
}
|
|
42
|
-
updated = applyChoice(config, provider, {
|
|
43
|
-
apiKey: options.apiKey,
|
|
44
|
-
});
|
|
45
65
|
}
|
|
46
66
|
else {
|
|
47
67
|
updated = await runInteractiveWizard(config);
|
|
48
68
|
}
|
|
49
69
|
save(updated);
|
|
50
|
-
const result = CommandResult.success("
|
|
70
|
+
const result = CommandResult.success("Configuration saved");
|
|
51
71
|
if (await isRunning(homedir())) {
|
|
52
72
|
result.hint("Restart to apply: stigmer down && stigmer up");
|
|
53
73
|
}
|
package/commands/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/local/daemon/components.ts"],"names":[],"mappings":"AAaA,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,
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/local/daemon/components.ts"],"names":[],"mappings":"AAaA,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,CAwB7G;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CA0B7G;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,MAAM,CAAC,UAAwB,GAAG,aAAa,EAAE,CAmC5G"}
|
|
@@ -18,7 +18,7 @@ const SERVER_GATE_TIMEOUT_MS = 30_000;
|
|
|
18
18
|
*/
|
|
19
19
|
export function buildServerEnv(config, base = process.env) {
|
|
20
20
|
const configDir = dirname(config.dataDir); // ~/.stigmer
|
|
21
|
-
|
|
21
|
+
const env = {
|
|
22
22
|
...base,
|
|
23
23
|
GRPC_PORT: String(SERVER_PORT),
|
|
24
24
|
TEMPORAL_HOST_PORT: config.temporalAddress,
|
|
@@ -32,6 +32,16 @@ export function buildServerEnv(config, base = process.env) {
|
|
|
32
32
|
// is visible and enforceable here, next to the runner's LOCAL_ARTIFACT_PATH.
|
|
33
33
|
ARTIFACT_LOCAL_BASE_PATH: join(config.dataDir, ARTIFACTS_SUBDIR),
|
|
34
34
|
};
|
|
35
|
+
// Explicit set (after the base spread) so the launcher-resolved identity wins
|
|
36
|
+
// over a stale inherited value — the delivery path for a `stigmer setup`-
|
|
37
|
+
// persisted operator identity (oss#796; the ANTHROPIC_API_KEY precedent in
|
|
38
|
+
// buildRunnerEnv). Server child only: the runner resolves caller identity
|
|
39
|
+
// from the session's stamped created_by, never from its own env.
|
|
40
|
+
if (config.operatorEmail !== undefined)
|
|
41
|
+
env.STIGMER_OPERATOR_EMAIL = config.operatorEmail;
|
|
42
|
+
if (config.operatorName !== undefined)
|
|
43
|
+
env.STIGMER_OPERATOR_NAME = config.operatorName;
|
|
44
|
+
return env;
|
|
35
45
|
}
|
|
36
46
|
/**
|
|
37
47
|
* Environment for the unified runner child in static mode (STIGMER_RUNNER_MODE
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/local/daemon/components.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,6EAA6E;AAC7E,kFAAkF;AAClF,gFAAgF;AAChF,4EAA4E;AAC5E,8EAA8E;AAC9E,+DAA+D;AAE/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC5I,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,2EAA2E;AAC3E,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB,EAAE,OAA0B,OAAO,CAAC,GAAG;IACxF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa;IACxD,
|
|
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
|
@@ -13,6 +13,8 @@ export declare const DaemonEnvVar: {
|
|
|
13
13
|
readonly CursorApiKey: "CURSOR_API_KEY";
|
|
14
14
|
readonly AnthropicApiKey: "ANTHROPIC_API_KEY";
|
|
15
15
|
readonly ActivityRouting: "STIGMER_ACTIVITY_ROUTING";
|
|
16
|
+
readonly OperatorEmail: "STIGMER_OPERATOR_EMAIL";
|
|
17
|
+
readonly OperatorName: "STIGMER_OPERATOR_NAME";
|
|
16
18
|
};
|
|
17
19
|
/** Resolved runner launch coordinates. */
|
|
18
20
|
export interface RunnerLaunch {
|
|
@@ -33,6 +35,8 @@ export interface DaemonConfig {
|
|
|
33
35
|
cursorApiKey?: string;
|
|
34
36
|
anthropicApiKey?: string;
|
|
35
37
|
activityRouting?: string;
|
|
38
|
+
operatorEmail?: string;
|
|
39
|
+
operatorName?: string;
|
|
36
40
|
}
|
|
37
41
|
/** Inputs the launcher already resolved, to encode into the daemon env. */
|
|
38
42
|
export interface DaemonEnvInputs {
|
|
@@ -45,6 +49,8 @@ export interface DaemonEnvInputs {
|
|
|
45
49
|
serverBin: string;
|
|
46
50
|
runner?: RunnerLaunch;
|
|
47
51
|
anthropicApiKey?: string;
|
|
52
|
+
operatorEmail?: string;
|
|
53
|
+
operatorName?: string;
|
|
48
54
|
}
|
|
49
55
|
/**
|
|
50
56
|
* 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;;;;;;;;;;;;;;;;CAgBf,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,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;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;IAOtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,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,CAkBhH;AAED;uBACuB;AACvB,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,YAAY,CAqBnF"}
|
package/local/daemon/env.js
CHANGED
|
@@ -18,6 +18,8 @@ export const DaemonEnvVar = {
|
|
|
18
18
|
CursorApiKey: "CURSOR_API_KEY",
|
|
19
19
|
AnthropicApiKey: "ANTHROPIC_API_KEY",
|
|
20
20
|
ActivityRouting: "STIGMER_ACTIVITY_ROUTING",
|
|
21
|
+
OperatorEmail: "STIGMER_OPERATOR_EMAIL",
|
|
22
|
+
OperatorName: "STIGMER_OPERATOR_NAME",
|
|
21
23
|
};
|
|
22
24
|
/**
|
|
23
25
|
* Build the environment for the internal-daemon child: the caller's environment
|
|
@@ -42,6 +44,10 @@ export function buildDaemonEnv(inputs, base = process.env) {
|
|
|
42
44
|
}
|
|
43
45
|
if (inputs.anthropicApiKey !== undefined)
|
|
44
46
|
env[DaemonEnvVar.AnthropicApiKey] = inputs.anthropicApiKey;
|
|
47
|
+
if (inputs.operatorEmail !== undefined)
|
|
48
|
+
env[DaemonEnvVar.OperatorEmail] = inputs.operatorEmail;
|
|
49
|
+
if (inputs.operatorName !== undefined)
|
|
50
|
+
env[DaemonEnvVar.OperatorName] = inputs.operatorName;
|
|
45
51
|
return env;
|
|
46
52
|
}
|
|
47
53
|
/** Parse the daemon configuration from an environment. Throws if a required
|
|
@@ -63,6 +69,8 @@ export function readDaemonConfig(env = process.env) {
|
|
|
63
69
|
cursorApiKey: nonEmpty(env[DaemonEnvVar.CursorApiKey]),
|
|
64
70
|
anthropicApiKey: nonEmpty(env[DaemonEnvVar.AnthropicApiKey]),
|
|
65
71
|
activityRouting: nonEmpty(env[DaemonEnvVar.ActivityRouting]),
|
|
72
|
+
operatorEmail: nonEmpty(env[DaemonEnvVar.OperatorEmail]),
|
|
73
|
+
operatorName: nonEmpty(env[DaemonEnvVar.OperatorName]),
|
|
66
74
|
};
|
|
67
75
|
}
|
|
68
76
|
function readRunner(env) {
|
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,uEAAuE;AACvE,+EAA+E;AAC/E,yEAAyE;AACzE,6CAA6C;AAE7C,+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,mBAAmB;IACpC,eAAe,EAAE,0BAA0B;
|
|
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":"AAsCA,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,CAwDzF;AAsCD,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
|
@@ -21,6 +21,7 @@ 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
23
|
import { resolveApiKey, resolveProvider } from "../llm-config.js";
|
|
24
|
+
import { resolveOperatorIdentity } from "../operator-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";
|
|
@@ -62,6 +63,7 @@ export async function up(options = {}, home = homedir()) {
|
|
|
62
63
|
serverBin,
|
|
63
64
|
runner,
|
|
64
65
|
...resolveLlmKeyInputs(config),
|
|
66
|
+
...resolveOperatorIdentityInputs(config),
|
|
65
67
|
}, process.env);
|
|
66
68
|
const daemonPid = spawnDaemon(env, join(logs, "daemon.log"));
|
|
67
69
|
log.info("daemon process started", { pid: daemonPid });
|
|
@@ -202,6 +204,19 @@ function resolveLlmKeyInputs(config) {
|
|
|
202
204
|
const key = resolveApiKey(config);
|
|
203
205
|
return key === "" ? {} : { anthropicApiKey: key };
|
|
204
206
|
}
|
|
207
|
+
// Operator-identity delivery for the server child (oss#796): same persisted-
|
|
208
|
+
// delivery reasoning as the LLM key above — a setup-persisted identity lives
|
|
209
|
+
// only in the config file, so the launcher must write it into the daemon
|
|
210
|
+
// contract explicitly. resolveOperatorIdentity's precedence (env > config,
|
|
211
|
+
// sources never mixed) makes both cases one code path.
|
|
212
|
+
function resolveOperatorIdentityInputs(config) {
|
|
213
|
+
const identity = resolveOperatorIdentity(config);
|
|
214
|
+
if (identity === undefined)
|
|
215
|
+
return {};
|
|
216
|
+
return identity.name === undefined
|
|
217
|
+
? { operatorEmail: identity.email }
|
|
218
|
+
: { operatorEmail: identity.email, operatorName: identity.name };
|
|
219
|
+
}
|
|
205
220
|
// Default to managed Temporal unless the opaque local config explicitly opts
|
|
206
221
|
// out — zero-config `stigmer up` must work on a fresh machine.
|
|
207
222
|
function isTemporalManaged(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/local/daemon/launch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/local/daemon/launch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Config } from "../config/config.js";
|
|
2
|
+
/** Operator identity as persisted under `backend.local.operator` (snake_case = YAML keys). */
|
|
3
|
+
export interface OperatorSettings {
|
|
4
|
+
email?: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
}
|
|
7
|
+
/** The persisted operator settings, if any. */
|
|
8
|
+
export declare function readOperator(config: Config): OperatorSettings | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Effective operator identity: env > config file, sources never mixed.
|
|
11
|
+
* Returns `undefined` when neither source provides an email (the anonymous
|
|
12
|
+
* default oss#400 preserves).
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolveOperatorIdentity(config: Config, env?: NodeJS.ProcessEnv): OperatorSettings | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Validate an operator identity the way the server's boot check will
|
|
17
|
+
* (byte-similar messages so setup-time and boot-time failures read as one
|
|
18
|
+
* rule). Returns an error message, or undefined when valid. An empty email
|
|
19
|
+
* with an empty name is valid — it means "no identity", the wizard's skip.
|
|
20
|
+
*/
|
|
21
|
+
export declare function validateOperatorIdentity(email: string, name: string): string | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Return a copy of `config` with the operator section replaced, preserving
|
|
24
|
+
* every other key under `backend.local`. Passing `undefined` clears the
|
|
25
|
+
* section.
|
|
26
|
+
*/
|
|
27
|
+
export declare function setOperator(config: Config, settings: OperatorSettings | undefined): Config;
|
|
28
|
+
//# sourceMappingURL=operator-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operator-config.d.ts","sourceRoot":"","sources":["../../src/local/operator-config.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,8FAA8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAYD,+CAA+C;AAC/C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,gBAAgB,GAAG,SAAS,CAW9B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUxF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAQ1F"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Typed view over `backend.local.operator` — the self-hosted operator
|
|
2
|
+
// identity `setup` persists and the launcher delivers to the server child
|
|
3
|
+
// (oss#796, the UX-completion arm of oss#400's configured operator identity).
|
|
4
|
+
//
|
|
5
|
+
// The lens pattern mirrors llm-config.ts: config/config.ts carries
|
|
6
|
+
// `backend.local` verbatim so unknown siblings are never dropped; this module
|
|
7
|
+
// owns exactly one sub-tree (`local.operator`) and resolves the effective
|
|
8
|
+
// identity with env-override precedence (STIGMER_OPERATOR_EMAIL >
|
|
9
|
+
// config file). Sources never mix: an env-provided email brings the
|
|
10
|
+
// env-provided name (or none), a config-provided email brings the config
|
|
11
|
+
// name — half-and-half identities would be attribution lies.
|
|
12
|
+
//
|
|
13
|
+
// Validation deliberately duplicates the server's boot check
|
|
14
|
+
// (stigmer-server pkg/config/config.go loadOperatorIdentity): trim both
|
|
15
|
+
// values; a non-empty email must contain '@' (nothing more — the server is
|
|
16
|
+
// equally minimal on purpose); a name without an email is refused because
|
|
17
|
+
// the email IS the identity. Checking here surfaces the failure at setup
|
|
18
|
+
// time instead of at the next `stigmer up`.
|
|
19
|
+
function localSection(config) {
|
|
20
|
+
const local = config.backend.local;
|
|
21
|
+
return local !== null && typeof local === "object" ? local : {};
|
|
22
|
+
}
|
|
23
|
+
/** The persisted operator settings, if any. */
|
|
24
|
+
export function readOperator(config) {
|
|
25
|
+
return localSection(config).operator;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Effective operator identity: env > config file, sources never mixed.
|
|
29
|
+
* Returns `undefined` when neither source provides an email (the anonymous
|
|
30
|
+
* default oss#400 preserves).
|
|
31
|
+
*/
|
|
32
|
+
export function resolveOperatorIdentity(config, env = process.env) {
|
|
33
|
+
const envEmail = (env.STIGMER_OPERATOR_EMAIL ?? "").trim();
|
|
34
|
+
if (envEmail !== "") {
|
|
35
|
+
const envName = (env.STIGMER_OPERATOR_NAME ?? "").trim();
|
|
36
|
+
return envName === "" ? { email: envEmail } : { email: envEmail, name: envName };
|
|
37
|
+
}
|
|
38
|
+
const persisted = readOperator(config);
|
|
39
|
+
const email = (persisted?.email ?? "").trim();
|
|
40
|
+
if (email === "")
|
|
41
|
+
return undefined;
|
|
42
|
+
const name = (persisted?.name ?? "").trim();
|
|
43
|
+
return name === "" ? { email } : { email, name };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Validate an operator identity the way the server's boot check will
|
|
47
|
+
* (byte-similar messages so setup-time and boot-time failures read as one
|
|
48
|
+
* rule). Returns an error message, or undefined when valid. An empty email
|
|
49
|
+
* with an empty name is valid — it means "no identity", the wizard's skip.
|
|
50
|
+
*/
|
|
51
|
+
export function validateOperatorIdentity(email, name) {
|
|
52
|
+
const trimmedEmail = email.trim();
|
|
53
|
+
const trimmedName = name.trim();
|
|
54
|
+
if (trimmedEmail !== "" && !trimmedEmail.includes("@")) {
|
|
55
|
+
return `"${trimmedEmail}" is not an email address (missing '@')`;
|
|
56
|
+
}
|
|
57
|
+
if (trimmedName !== "" && trimmedEmail === "") {
|
|
58
|
+
return "an operator name without an email is not an identity — set both or neither";
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Return a copy of `config` with the operator section replaced, preserving
|
|
64
|
+
* every other key under `backend.local`. Passing `undefined` clears the
|
|
65
|
+
* section.
|
|
66
|
+
*/
|
|
67
|
+
export function setOperator(config, settings) {
|
|
68
|
+
const local = { ...localSection(config) };
|
|
69
|
+
if (settings === undefined) {
|
|
70
|
+
delete local.operator;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
local.operator = settings;
|
|
74
|
+
}
|
|
75
|
+
return { ...config, backend: { ...config.backend, local } };
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=operator-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operator-config.js","sourceRoot":"","sources":["../../src/local/operator-config.ts"],"names":[],"mappings":"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"}
|
package/local/setup/wizard.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Config } from "../../config/config.js";
|
|
2
2
|
import { type LlmSettings } from "../llm-config.js";
|
|
3
|
+
import { type OperatorSettings } from "../operator-config.js";
|
|
3
4
|
/**
|
|
4
5
|
* The providers `stigmer setup` accepts. This is the single source of truth
|
|
5
6
|
* for the CLI's local-provider surface — `setup --provider` validates against
|
|
@@ -20,11 +21,23 @@ export interface SelectionInputs {
|
|
|
20
21
|
export declare function buildLlmForChoice(choice: ProviderChoice, inputs?: SelectionInputs): LlmSettings | undefined;
|
|
21
22
|
/** Apply a provider choice to a config, returning the updated copy. */
|
|
22
23
|
export declare function applyChoice(config: Config, choice: ProviderChoice, inputs?: SelectionInputs): Config;
|
|
24
|
+
/**
|
|
25
|
+
* Resolve operator-identity inputs to the settings to persist, validating the
|
|
26
|
+
* way the server's boot check will (oss#796) — the pure decision core shared
|
|
27
|
+
* by the flag path and the interactive prompt, like buildLlmForChoice. An
|
|
28
|
+
* empty email with an empty name yields `undefined` (nothing to persist —
|
|
29
|
+
* identity stays whatever it was; the anonymous default is the absence of
|
|
30
|
+
* the section, not an empty one). Throws on inputs the server would refuse
|
|
31
|
+
* at boot, so the failure surfaces at setup time.
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildOperatorForInputs(email: string, name: string): OperatorSettings | undefined;
|
|
34
|
+
/** Apply operator-identity inputs to a config, returning the updated copy. */
|
|
35
|
+
export declare function applyOperatorIdentity(config: Config, email: string, name: string): Config;
|
|
23
36
|
/**
|
|
24
37
|
* Run the interactive setup against the current terminal: one Anthropic
|
|
25
|
-
* API-key prompt
|
|
26
|
-
*
|
|
27
|
-
* entry is an explicit skip.
|
|
38
|
+
* API-key prompt, then the (skippable) operator-identity prompt. A key
|
|
39
|
+
* already in the environment is used without prompting (and never persisted —
|
|
40
|
+
* env precedence makes a copy redundant); an empty entry is an explicit skip.
|
|
28
41
|
*/
|
|
29
42
|
export declare function runInteractiveWizard(config: Config, env?: NodeJS.ProcessEnv): Promise<Config>;
|
|
30
43
|
//# sourceMappingURL=wizard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../../src/local/setup/wizard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../../src/local/setup/wizard.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,uBAAuB,CAAC;AAG/B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,gCAAiC,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,GAAE,eAAoB,GAAG,WAAW,GAAG,SAAS,CAK/G;AAED,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAE,eAAoB,GAAG,MAAM,CAExG;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAShG;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGzF;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBhH"}
|
package/local/setup/wizard.js
CHANGED
|
@@ -7,11 +7,13 @@
|
|
|
7
7
|
// Local agent execution is Anthropic-only (the native runner only constructs
|
|
8
8
|
// Anthropic clients and the registry's native entries are Anthropic models),
|
|
9
9
|
// so the interactive flow is a single API-key prompt rather than a provider
|
|
10
|
-
// menu
|
|
11
|
-
//
|
|
12
|
-
//
|
|
10
|
+
// menu, followed by the skippable operator-identity prompt (oss#796). There
|
|
11
|
+
// is no model concept here at all: the platform model registry owns the
|
|
12
|
+
// execution default, and per-run overrides belong to `stigmer run --model`
|
|
13
|
+
// (oss#314 removed the dead setup-level pin).
|
|
13
14
|
import { setLlm } from "../llm-config.js";
|
|
14
|
-
import {
|
|
15
|
+
import { setOperator, validateOperatorIdentity, } from "../operator-config.js";
|
|
16
|
+
import { promptLine, promptSecret } from "./prompt.js";
|
|
15
17
|
/**
|
|
16
18
|
* The providers `stigmer setup` accepts. This is the single source of truth
|
|
17
19
|
* for the CLI's local-provider surface — `setup --provider` validates against
|
|
@@ -37,24 +39,81 @@ export function buildLlmForChoice(choice, inputs = {}) {
|
|
|
37
39
|
export function applyChoice(config, choice, inputs = {}) {
|
|
38
40
|
return setLlm(config, buildLlmForChoice(choice, inputs));
|
|
39
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Resolve operator-identity inputs to the settings to persist, validating the
|
|
44
|
+
* way the server's boot check will (oss#796) — the pure decision core shared
|
|
45
|
+
* by the flag path and the interactive prompt, like buildLlmForChoice. An
|
|
46
|
+
* empty email with an empty name yields `undefined` (nothing to persist —
|
|
47
|
+
* identity stays whatever it was; the anonymous default is the absence of
|
|
48
|
+
* the section, not an empty one). Throws on inputs the server would refuse
|
|
49
|
+
* at boot, so the failure surfaces at setup time.
|
|
50
|
+
*/
|
|
51
|
+
export function buildOperatorForInputs(email, name) {
|
|
52
|
+
const error = validateOperatorIdentity(email, name);
|
|
53
|
+
if (error !== undefined) {
|
|
54
|
+
throw new Error(error);
|
|
55
|
+
}
|
|
56
|
+
const trimmedEmail = email.trim();
|
|
57
|
+
if (trimmedEmail === "")
|
|
58
|
+
return undefined;
|
|
59
|
+
const trimmedName = name.trim();
|
|
60
|
+
return trimmedName === "" ? { email: trimmedEmail } : { email: trimmedEmail, name: trimmedName };
|
|
61
|
+
}
|
|
62
|
+
/** Apply operator-identity inputs to a config, returning the updated copy. */
|
|
63
|
+
export function applyOperatorIdentity(config, email, name) {
|
|
64
|
+
const settings = buildOperatorForInputs(email, name);
|
|
65
|
+
return settings === undefined ? config : setOperator(config, settings);
|
|
66
|
+
}
|
|
40
67
|
/**
|
|
41
68
|
* Run the interactive setup against the current terminal: one Anthropic
|
|
42
|
-
* API-key prompt
|
|
43
|
-
*
|
|
44
|
-
* entry is an explicit skip.
|
|
69
|
+
* API-key prompt, then the (skippable) operator-identity prompt. A key
|
|
70
|
+
* already in the environment is used without prompting (and never persisted —
|
|
71
|
+
* env precedence makes a copy redundant); an empty entry is an explicit skip.
|
|
45
72
|
*/
|
|
46
73
|
export async function runInteractiveWizard(config, env = process.env) {
|
|
47
74
|
process.stderr.write("\nStigmer runs local agents on Anthropic Claude models.\n");
|
|
48
75
|
process.stderr.write("The model is chosen automatically from the platform model registry.\n\n");
|
|
76
|
+
let updated;
|
|
49
77
|
if (env.ANTHROPIC_API_KEY) {
|
|
50
78
|
process.stderr.write("Using ANTHROPIC_API_KEY from environment\n");
|
|
51
|
-
|
|
79
|
+
updated = applyChoice(config, "anthropic");
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
const key = (await promptSecret("Enter your Anthropic API key (press Enter to skip)")).trim();
|
|
83
|
+
if (key === "") {
|
|
84
|
+
process.stderr.write("Skipped. Agents won't execute until a provider is configured (stigmer setup).\n");
|
|
85
|
+
updated = applyChoice(config, "skip");
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
updated = applyChoice(config, "anthropic", { apiKey: key });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return runOperatorIdentityStep(updated, env);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The operator-identity step (oss#796): opt-in, skippable, and env-aware in
|
|
95
|
+
* the same way the API-key step is — an env-provided identity is used without
|
|
96
|
+
* prompting and never persisted (env precedence makes a copy redundant). An
|
|
97
|
+
* invalid entry is refused and NOT persisted (re-run `stigmer setup`), the
|
|
98
|
+
* same rule the server enforces at boot, just earlier.
|
|
99
|
+
*/
|
|
100
|
+
async function runOperatorIdentityStep(config, env) {
|
|
101
|
+
process.stderr.write("\nAn operator identity attributes local creates to you and unlocks identity-gated MCP tools.\n");
|
|
102
|
+
if ((env.STIGMER_OPERATOR_EMAIL ?? "").trim() !== "") {
|
|
103
|
+
process.stderr.write("Using STIGMER_OPERATOR_EMAIL from environment\n");
|
|
104
|
+
return config;
|
|
105
|
+
}
|
|
106
|
+
const email = (await promptLine("Operator email (press Enter to skip): ")).trim();
|
|
107
|
+
if (email === "") {
|
|
108
|
+
return config;
|
|
109
|
+
}
|
|
110
|
+
const name = (await promptLine("Operator display name (optional): ")).trim();
|
|
111
|
+
try {
|
|
112
|
+
return applyOperatorIdentity(config, email, name);
|
|
52
113
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return applyChoice(config, "skip");
|
|
114
|
+
catch (error) {
|
|
115
|
+
process.stderr.write(`Not saved: ${error instanceof Error ? error.message : String(error)} — re-run stigmer setup.\n`);
|
|
116
|
+
return config;
|
|
57
117
|
}
|
|
58
|
-
return applyChoice(config, "anthropic", { apiKey: key });
|
|
59
118
|
}
|
|
60
119
|
//# sourceMappingURL=wizard.js.map
|