pi-shadow-mind 0.1.11 → 0.1.13
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/index.js +6441 -7194
- package/dist/index.js.map +4 -4
- package/package.json +11 -3
- package/dist/config.d.ts +0 -18
- package/dist/config.js +0 -132
- package/dist/config.js.map +0 -1
- package/dist/entity-store.d.ts +0 -22
- package/dist/entity-store.js +0 -71
- package/dist/entity-store.js.map +0 -1
- package/dist/management-tools.d.ts +0 -4
- package/dist/management-tools.js +0 -130
- package/dist/management-tools.js.map +0 -1
- package/dist/protocol.d.ts +0 -3
- package/dist/protocol.js +0 -15
- package/dist/protocol.js.map +0 -1
- package/dist/random.d.ts +0 -2
- package/dist/random.js +0 -14
- package/dist/random.js.map +0 -1
- package/dist/registry.d.ts +0 -9
- package/dist/registry.js +0 -139
- package/dist/registry.js.map +0 -1
- package/dist/report-batcher.d.ts +0 -15
- package/dist/report-batcher.js +0 -49
- package/dist/report-batcher.js.map +0 -1
- package/dist/runtime.d.ts +0 -38
- package/dist/runtime.js +0 -312
- package/dist/runtime.js.map +0 -1
- package/dist/scheduler.d.ts +0 -16
- package/dist/scheduler.js +0 -54
- package/dist/scheduler.js.map +0 -1
- package/dist/session-lifetime.d.ts +0 -8
- package/dist/session-lifetime.js +0 -31
- package/dist/session-lifetime.js.map +0 -1
- package/dist/shadow-runner.d.ts +0 -93
- package/dist/shadow-runner.js +0 -248
- package/dist/shadow-runner.js.map +0 -1
- package/dist/shutdown-drain.d.ts +0 -12
- package/dist/shutdown-drain.js +0 -22
- package/dist/shutdown-drain.js.map +0 -1
- package/dist/summaries.d.ts +0 -9
- package/dist/summaries.js +0 -56
- package/dist/summaries.js.map +0 -1
- package/dist/trajectory.d.ts +0 -8
- package/dist/trajectory.js +0 -107
- package/dist/trajectory.js.map +0 -1
- package/dist/types.d.ts +0 -64
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/validation.d.ts +0 -8
- package/dist/validation.js +0 -18
- package/dist/validation.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-shadow-mind",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "Parallel cognitive runtime for Pi",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -10,6 +10,14 @@
|
|
|
10
10
|
"multi-agent"
|
|
11
11
|
],
|
|
12
12
|
"license": "MIT",
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js",
|
|
18
|
+
"default": "./dist/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
13
21
|
"files": [
|
|
14
22
|
"dist",
|
|
15
23
|
"README.md",
|
|
@@ -21,8 +29,8 @@
|
|
|
21
29
|
]
|
|
22
30
|
},
|
|
23
31
|
"scripts": {
|
|
24
|
-
"clean": "node -e \"require('node:fs').rmSync(
|
|
25
|
-
"build": "npm run clean && tsc -p tsconfig.build.json &&
|
|
32
|
+
"clean": "node -e \"for(const path of ['dist','.build'])require('node:fs').rmSync(path,{recursive:true,force:true})\"",
|
|
33
|
+
"build": "npm run clean && tsc -p tsconfig.build.json && node scripts/build.mjs",
|
|
26
34
|
"typecheck": "tsc --noEmit",
|
|
27
35
|
"test": "vitest run",
|
|
28
36
|
"verify": "npm run typecheck && npm test",
|
package/dist/config.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { ShadowConfig } from "./types.js";
|
|
2
|
-
export declare const DEFAULT_CONFIG: ShadowConfig;
|
|
3
|
-
export declare function parseConfig(input: unknown): ShadowConfig;
|
|
4
|
-
export declare function serializeConfig(config: ShadowConfig): string;
|
|
5
|
-
export declare class ConfigStore {
|
|
6
|
-
private readonly agentDir;
|
|
7
|
-
readonly configPath: string;
|
|
8
|
-
private lastGood;
|
|
9
|
-
private lastError?;
|
|
10
|
-
constructor(agentDir: string);
|
|
11
|
-
initialize(): Promise<void>;
|
|
12
|
-
reload(): Promise<{
|
|
13
|
-
config: ShadowConfig;
|
|
14
|
-
error?: string;
|
|
15
|
-
}>;
|
|
16
|
-
get current(): ShadowConfig;
|
|
17
|
-
get error(): string | undefined;
|
|
18
|
-
}
|
package/dist/config.js
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
-
import { dirname, join } from "node:path";
|
|
3
|
-
import { inRange, isFiniteNumber, isNonEmptyString, isThinkingLevel } from "./validation.js";
|
|
4
|
-
export const DEFAULT_CONFIG = {
|
|
5
|
-
heartbeatProbability: 1 / 3,
|
|
6
|
-
maxParallelShadows: 2,
|
|
7
|
-
defaultShadowTimeoutSeconds: 300,
|
|
8
|
-
headlessDrainTimeoutSeconds: 120,
|
|
9
|
-
resultBatchWindowMs: 400,
|
|
10
|
-
defaultThinkingLevel: "low",
|
|
11
|
-
};
|
|
12
|
-
export function parseConfig(input) {
|
|
13
|
-
if (input === null || typeof input !== "object" || Array.isArray(input)) {
|
|
14
|
-
throw new Error("config must be a JSON object");
|
|
15
|
-
}
|
|
16
|
-
const value = input;
|
|
17
|
-
const probability = numberInRange(value.heartbeat_probability, 0, 1, DEFAULT_CONFIG.heartbeatProbability, "heartbeat_probability");
|
|
18
|
-
const parallel = positiveInteger(value.max_parallel_shadows, DEFAULT_CONFIG.maxParallelShadows, "max_parallel_shadows");
|
|
19
|
-
const timeout = positiveNumber(value.default_shadow_timeout_seconds, DEFAULT_CONFIG.defaultShadowTimeoutSeconds, "default_shadow_timeout_seconds");
|
|
20
|
-
const drainTimeout = positiveNumber(value.headless_drain_timeout_seconds, DEFAULT_CONFIG.headlessDrainTimeoutSeconds, "headless_drain_timeout_seconds");
|
|
21
|
-
const windowMs = nonNegativeInteger(value.result_batch_window_ms, DEFAULT_CONFIG.resultBatchWindowMs, "result_batch_window_ms");
|
|
22
|
-
const model = optionalNonEmptyString(value.default_shadow_model, "default_shadow_model");
|
|
23
|
-
const randomSeed = optionalSeed(value.random_seed);
|
|
24
|
-
const thinking = value.default_thinking_level ?? DEFAULT_CONFIG.defaultThinkingLevel;
|
|
25
|
-
if (!isThinkingLevel(thinking)) {
|
|
26
|
-
throw new Error("default_thinking_level is invalid");
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
heartbeatProbability: probability,
|
|
30
|
-
maxParallelShadows: parallel,
|
|
31
|
-
defaultShadowTimeoutSeconds: timeout,
|
|
32
|
-
headlessDrainTimeoutSeconds: drainTimeout,
|
|
33
|
-
resultBatchWindowMs: windowMs,
|
|
34
|
-
defaultShadowModel: model,
|
|
35
|
-
defaultThinkingLevel: thinking,
|
|
36
|
-
randomSeed,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
export function serializeConfig(config) {
|
|
40
|
-
return `${JSON.stringify({
|
|
41
|
-
heartbeat_probability: config.heartbeatProbability,
|
|
42
|
-
max_parallel_shadows: config.maxParallelShadows,
|
|
43
|
-
default_shadow_timeout_seconds: config.defaultShadowTimeoutSeconds,
|
|
44
|
-
headless_drain_timeout_seconds: config.headlessDrainTimeoutSeconds,
|
|
45
|
-
result_batch_window_ms: config.resultBatchWindowMs,
|
|
46
|
-
...(config.defaultShadowModel ? { default_shadow_model: config.defaultShadowModel } : {}),
|
|
47
|
-
default_thinking_level: config.defaultThinkingLevel,
|
|
48
|
-
...(config.randomSeed !== undefined ? { random_seed: config.randomSeed } : {}),
|
|
49
|
-
}, null, 2)}\n`;
|
|
50
|
-
}
|
|
51
|
-
export class ConfigStore {
|
|
52
|
-
agentDir;
|
|
53
|
-
configPath;
|
|
54
|
-
lastGood = DEFAULT_CONFIG;
|
|
55
|
-
lastError;
|
|
56
|
-
constructor(agentDir) {
|
|
57
|
-
this.agentDir = agentDir;
|
|
58
|
-
this.configPath = join(agentDir, "shadow-minds", "config.json");
|
|
59
|
-
}
|
|
60
|
-
async initialize() {
|
|
61
|
-
await mkdir(dirname(this.configPath), { recursive: true });
|
|
62
|
-
try {
|
|
63
|
-
await readFile(this.configPath, "utf8");
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
if (error.code !== "ENOENT")
|
|
67
|
-
throw error;
|
|
68
|
-
await writeFile(this.configPath, serializeConfig(DEFAULT_CONFIG), "utf8");
|
|
69
|
-
}
|
|
70
|
-
await this.reload();
|
|
71
|
-
}
|
|
72
|
-
async reload() {
|
|
73
|
-
try {
|
|
74
|
-
const raw = await readFile(this.configPath, "utf8");
|
|
75
|
-
this.lastGood = parseConfig(JSON.parse(raw));
|
|
76
|
-
this.lastError = undefined;
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
this.lastError = error instanceof Error ? error.message : String(error);
|
|
80
|
-
}
|
|
81
|
-
return { config: this.lastGood, error: this.lastError };
|
|
82
|
-
}
|
|
83
|
-
get current() {
|
|
84
|
-
return this.lastGood;
|
|
85
|
-
}
|
|
86
|
-
get error() {
|
|
87
|
-
return this.lastError;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
function numberInRange(value, min, max, fallback, name) {
|
|
91
|
-
if (value === undefined)
|
|
92
|
-
return fallback;
|
|
93
|
-
if (!isFiniteNumber(value) || !inRange(value, min, max))
|
|
94
|
-
throw new Error(`${name} must be between ${min} and ${max}`);
|
|
95
|
-
return value;
|
|
96
|
-
}
|
|
97
|
-
function positiveNumber(value, fallback, name) {
|
|
98
|
-
if (value === undefined)
|
|
99
|
-
return fallback;
|
|
100
|
-
if (!isFiniteNumber(value) || value <= 0)
|
|
101
|
-
throw new Error(`${name} must be positive`);
|
|
102
|
-
return value;
|
|
103
|
-
}
|
|
104
|
-
function positiveInteger(value, fallback, name) {
|
|
105
|
-
const parsed = positiveNumber(value, fallback, name);
|
|
106
|
-
if (!Number.isInteger(parsed))
|
|
107
|
-
throw new Error(`${name} must be an integer`);
|
|
108
|
-
return parsed;
|
|
109
|
-
}
|
|
110
|
-
function nonNegativeInteger(value, fallback, name) {
|
|
111
|
-
if (value === undefined)
|
|
112
|
-
return fallback;
|
|
113
|
-
if (!isFiniteNumber(value) || !Number.isInteger(value) || value < 0)
|
|
114
|
-
throw new Error(`${name} must be a non-negative integer`);
|
|
115
|
-
return value;
|
|
116
|
-
}
|
|
117
|
-
function optionalNonEmptyString(value, name) {
|
|
118
|
-
if (value === undefined)
|
|
119
|
-
return undefined;
|
|
120
|
-
if (!isNonEmptyString(value))
|
|
121
|
-
throw new Error(`${name} must be a non-empty string`);
|
|
122
|
-
return value.trim();
|
|
123
|
-
}
|
|
124
|
-
function optionalSeed(value) {
|
|
125
|
-
if (value === undefined)
|
|
126
|
-
return undefined;
|
|
127
|
-
if (!isFiniteNumber(value) || !Number.isInteger(value) || value < 0 || value > 0xffff_ffff) {
|
|
128
|
-
throw new Error("random_seed must be an integer between 0 and 4294967295");
|
|
129
|
-
}
|
|
130
|
-
return value;
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/entity-store.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ShadowRegistry } from "./registry.js";
|
|
2
|
-
import type { ShadowConfig, ShadowDefinition } from "./types.js";
|
|
3
|
-
export type ShadowDraft = Partial<Omit<ShadowDefinition, "filePath">> & {
|
|
4
|
-
id: string;
|
|
5
|
-
prompt?: string;
|
|
6
|
-
};
|
|
7
|
-
export declare class EntityStore {
|
|
8
|
-
readonly registry: ShadowRegistry;
|
|
9
|
-
private readonly configPath;
|
|
10
|
-
constructor(registry: ShadowRegistry, configPath: string);
|
|
11
|
-
list(): Promise<ShadowDefinition[]>;
|
|
12
|
-
get(id: string): Promise<ShadowDefinition>;
|
|
13
|
-
create(draft: ShadowDraft): Promise<ShadowDefinition>;
|
|
14
|
-
update(id: string, patch: Partial<Omit<ShadowDraft, "id">>): Promise<ShadowDefinition>;
|
|
15
|
-
private writeParsed;
|
|
16
|
-
setEnabled(id: string, enabled: boolean): Promise<ShadowDefinition>;
|
|
17
|
-
delete(id: string): Promise<void>;
|
|
18
|
-
readConfig(): Promise<string>;
|
|
19
|
-
writeConfig(config: ShadowConfig): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
export declare function serializeShadow(shadow: ShadowDraft): string;
|
|
22
|
-
export declare function describeShadow(shadow: ShadowDefinition): string;
|
package/dist/entity-store.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { readFile, unlink, writeFile } from "node:fs/promises";
|
|
2
|
-
import { basename, join } from "node:path";
|
|
3
|
-
import YAML from "yaml";
|
|
4
|
-
import { serializeConfig } from "./config.js";
|
|
5
|
-
import { parseShadowMarkdown } from "./registry.js";
|
|
6
|
-
export class EntityStore {
|
|
7
|
-
registry;
|
|
8
|
-
configPath;
|
|
9
|
-
constructor(registry, configPath) {
|
|
10
|
-
this.registry = registry;
|
|
11
|
-
this.configPath = configPath;
|
|
12
|
-
}
|
|
13
|
-
async list() {
|
|
14
|
-
return (await this.registry.load()).shadows;
|
|
15
|
-
}
|
|
16
|
-
async get(id) {
|
|
17
|
-
const shadow = (await this.list()).find((candidate) => candidate.id === id);
|
|
18
|
-
if (!shadow)
|
|
19
|
-
throw new Error(`shadow not found: ${id}`);
|
|
20
|
-
return shadow;
|
|
21
|
-
}
|
|
22
|
-
async create(draft) {
|
|
23
|
-
if ((await this.list()).some((shadow) => shadow.id === draft.id))
|
|
24
|
-
throw new Error(`shadow already exists: ${draft.id}`);
|
|
25
|
-
return this.writeParsed(join(this.registry.directory, `${draft.id}.md`), draft, { overwrite: false });
|
|
26
|
-
}
|
|
27
|
-
async update(id, patch) {
|
|
28
|
-
const current = await this.get(id);
|
|
29
|
-
return this.writeParsed(current.filePath, { ...current, ...definedOnly(patch), id, prompt: patch.prompt ?? current.prompt }, { overwrite: true });
|
|
30
|
-
}
|
|
31
|
-
async writeParsed(filePath, draft, options) {
|
|
32
|
-
const source = serializeShadow({ ...draft, prompt: draft.prompt ?? "Describe this Shadow Mind's responsibility." });
|
|
33
|
-
const parsed = parseShadowMarkdown(source, filePath);
|
|
34
|
-
await writeFile(filePath, source, { encoding: "utf8", ...(options.overwrite ? {} : { flag: "wx" }) });
|
|
35
|
-
return parsed;
|
|
36
|
-
}
|
|
37
|
-
async setEnabled(id, enabled) {
|
|
38
|
-
return this.update(id, { enabled });
|
|
39
|
-
}
|
|
40
|
-
async delete(id) {
|
|
41
|
-
await unlink((await this.get(id)).filePath);
|
|
42
|
-
}
|
|
43
|
-
async readConfig() {
|
|
44
|
-
return readFile(this.configPath, "utf8");
|
|
45
|
-
}
|
|
46
|
-
async writeConfig(config) {
|
|
47
|
-
await writeFile(this.configPath, serializeConfig(config), "utf8");
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
export function serializeShadow(shadow) {
|
|
51
|
-
const frontmatter = {
|
|
52
|
-
id: shadow.id,
|
|
53
|
-
...(shadow.name !== undefined ? { name: shadow.name } : {}),
|
|
54
|
-
enabled: shadow.enabled ?? true,
|
|
55
|
-
debug: shadow.debug ?? false,
|
|
56
|
-
activation_probability: shadow.activationProbability ?? 0.3,
|
|
57
|
-
active_for_models: shadow.activeForModels ?? ["*"],
|
|
58
|
-
...(shadow.runWithModel ? { run_with_model: shadow.runWithModel } : {}),
|
|
59
|
-
...(shadow.thinkingLevel ? { thinking_level: shadow.thinkingLevel } : {}),
|
|
60
|
-
...(shadow.timeoutSeconds !== undefined ? { timeout_seconds: shadow.timeoutSeconds } : {}),
|
|
61
|
-
tools: shadow.tools ?? [],
|
|
62
|
-
};
|
|
63
|
-
return `---\n${YAML.stringify(frontmatter).trimEnd()}\n---\n\n${(shadow.prompt ?? "").trim()}\n`;
|
|
64
|
-
}
|
|
65
|
-
export function describeShadow(shadow) {
|
|
66
|
-
return `${shadow.enabled ? "enabled" : "disabled"} ${shadow.id} (${shadow.name}) p=${shadow.activationProbability} models=${shadow.activeForModels.join(",")} tools=${shadow.tools.join(",") || "default"} file=${basename(shadow.filePath)}`;
|
|
67
|
-
}
|
|
68
|
-
function definedOnly(value) {
|
|
69
|
-
return Object.fromEntries(Object.entries(value).filter(([, item]) => item !== undefined));
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=entity-store.js.map
|
package/dist/entity-store.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity-store.js","sourceRoot":"","sources":["../src/entity-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
2
|
-
import type { ShadowConfig } from "./types.js";
|
|
3
|
-
import { type EntityStore } from "./entity-store.js";
|
|
4
|
-
export declare function registerManagementTools(pi: ExtensionAPI, store: EntityStore, getConfig: () => ShadowConfig): void;
|
package/dist/management-tools.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { Type } from "typebox";
|
|
2
|
-
import { parseConfig } from "./config.js";
|
|
3
|
-
import { describeShadow } from "./entity-store.js";
|
|
4
|
-
const ID = Type.String({ pattern: "^[a-z0-9][a-z0-9_-]*$" });
|
|
5
|
-
const THINKING = Type.Union([Type.Literal("minimal"), Type.Literal("low"), Type.Literal("medium"), Type.Literal("high"), Type.Literal("xhigh"), Type.Literal("max")]);
|
|
6
|
-
const SHADOW_FIELDS = {
|
|
7
|
-
name: Type.Optional(Type.String()),
|
|
8
|
-
enabled: Type.Optional(Type.Boolean()),
|
|
9
|
-
debug: Type.Optional(Type.Boolean()),
|
|
10
|
-
activation_probability: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })),
|
|
11
|
-
active_for_models: Type.Optional(Type.Array(Type.String())),
|
|
12
|
-
run_with_model: Type.Optional(Type.String()),
|
|
13
|
-
thinking_level: Type.Optional(THINKING),
|
|
14
|
-
timeout_seconds: Type.Optional(Type.Number({ exclusiveMinimum: 0 })),
|
|
15
|
-
tools: Type.Optional(Type.Array(Type.String())),
|
|
16
|
-
prompt: Type.Optional(Type.String()),
|
|
17
|
-
};
|
|
18
|
-
export function registerManagementTools(pi, store, getConfig) {
|
|
19
|
-
pi.registerTool(listTool(store));
|
|
20
|
-
pi.registerTool(createTool(store));
|
|
21
|
-
pi.registerTool(updateTool(store));
|
|
22
|
-
pi.registerTool(toggleTool(store, true));
|
|
23
|
-
pi.registerTool(toggleTool(store, false));
|
|
24
|
-
pi.registerTool(deleteTool(store));
|
|
25
|
-
pi.registerTool(configReadTool(store));
|
|
26
|
-
pi.registerTool(configWriteTool(store, getConfig));
|
|
27
|
-
}
|
|
28
|
-
function listTool(store) {
|
|
29
|
-
return tool("list_shadows", "List Shadows", "List all valid globally configured Shadow Minds.", Type.Object({}), async () => {
|
|
30
|
-
const shadows = await store.list();
|
|
31
|
-
return textResult(shadows.length ? shadows.map(describeShadow).join("\n") : "No Shadow Minds configured.");
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
function createTool(store) {
|
|
35
|
-
return tool("create_shadow", "Create Shadow", "Create a global Shadow Mind definition after user confirmation.", Type.Object({ id: ID, ...SHADOW_FIELDS, prompt: Type.String() }), async (_id, params, _signal, _update, ctx) => {
|
|
36
|
-
const raw = params;
|
|
37
|
-
if (!(await confirm(ctx, "Create Shadow Mind", `Create ${String(raw.id)} in the global registry?`)))
|
|
38
|
-
return textResult("Cancelled.");
|
|
39
|
-
const shadow = await store.create(toDraft(raw));
|
|
40
|
-
return textResult(`Created ${describeShadow(shadow)}`);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
function updateTool(store) {
|
|
44
|
-
return tool("update_shadow", "Update Shadow", "Update a global Shadow Mind definition after user confirmation. The id is immutable.", Type.Object({ id: ID, ...SHADOW_FIELDS }), async (_id, params, _signal, _update, ctx) => {
|
|
45
|
-
const raw = params;
|
|
46
|
-
if (!(await confirm(ctx, "Update Shadow Mind", `Apply changes to ${String(raw.id)}?`)))
|
|
47
|
-
return textResult("Cancelled.");
|
|
48
|
-
const shadow = await store.update(String(raw.id), toPatch(raw));
|
|
49
|
-
return textResult(`Updated ${describeShadow(shadow)}`);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
function toggleTool(store, enabled) {
|
|
53
|
-
const action = enabled ? "enable" : "disable";
|
|
54
|
-
return tool(`${action}_shadow`, `${enabled ? "Enable" : "Disable"} Shadow`, `${enabled ? "Enable" : "Disable"} a global Shadow Mind after user confirmation.`, Type.Object({ id: ID }), async (_id, params, _signal, _update, ctx) => {
|
|
55
|
-
const id = String(params.id);
|
|
56
|
-
if (!(await confirm(ctx, `${enabled ? "Enable" : "Disable"} Shadow Mind`, `${action} ${id}?`)))
|
|
57
|
-
return textResult("Cancelled.");
|
|
58
|
-
return textResult(describeShadow(await store.setEnabled(id, enabled)));
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
function deleteTool(store) {
|
|
62
|
-
return tool("delete_shadow", "Delete Shadow", "Delete a Shadow Mind definition after user confirmation. Debug logs are retained.", Type.Object({ id: ID }), async (_id, params, _signal, _update, ctx) => {
|
|
63
|
-
const id = String(params.id);
|
|
64
|
-
if (!(await confirm(ctx, "Delete Shadow Mind", `Delete ${id}? Its debug logs will be kept.`)))
|
|
65
|
-
return textResult("Cancelled.");
|
|
66
|
-
await store.delete(id);
|
|
67
|
-
return textResult(`Deleted ${id}; logs were retained.`);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
function configReadTool(store) {
|
|
71
|
-
return tool("get_shadow_config", "Get Shadow Config", "Read the global Shadow Mind runtime configuration.", Type.Object({}), async () => textResult(await store.readConfig()));
|
|
72
|
-
}
|
|
73
|
-
function configWriteTool(store, getConfig) {
|
|
74
|
-
return tool("update_shadow_config", "Update Shadow Config", "Update global Shadow Mind runtime configuration after user confirmation.", Type.Object({
|
|
75
|
-
heartbeat_probability: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })),
|
|
76
|
-
max_parallel_shadows: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
77
|
-
default_shadow_timeout_seconds: Type.Optional(Type.Number({ exclusiveMinimum: 0 })),
|
|
78
|
-
headless_drain_timeout_seconds: Type.Optional(Type.Number({ exclusiveMinimum: 0 })),
|
|
79
|
-
result_batch_window_ms: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
80
|
-
default_shadow_model: Type.Optional(Type.String()),
|
|
81
|
-
default_thinking_level: Type.Optional(THINKING),
|
|
82
|
-
random_seed: Type.Optional(Type.Integer({ minimum: 0, maximum: 0xffff_ffff })),
|
|
83
|
-
}), async (_id, params, _signal, _update, ctx) => {
|
|
84
|
-
const current = getConfig();
|
|
85
|
-
const raw = params;
|
|
86
|
-
const next = parseConfig({
|
|
87
|
-
heartbeat_probability: raw.heartbeat_probability ?? current.heartbeatProbability,
|
|
88
|
-
max_parallel_shadows: raw.max_parallel_shadows ?? current.maxParallelShadows,
|
|
89
|
-
default_shadow_timeout_seconds: raw.default_shadow_timeout_seconds ?? current.defaultShadowTimeoutSeconds,
|
|
90
|
-
headless_drain_timeout_seconds: raw.headless_drain_timeout_seconds ?? current.headlessDrainTimeoutSeconds,
|
|
91
|
-
result_batch_window_ms: raw.result_batch_window_ms ?? current.resultBatchWindowMs,
|
|
92
|
-
default_shadow_model: raw.default_shadow_model ?? current.defaultShadowModel,
|
|
93
|
-
default_thinking_level: raw.default_thinking_level ?? current.defaultThinkingLevel,
|
|
94
|
-
random_seed: raw.random_seed ?? current.randomSeed,
|
|
95
|
-
});
|
|
96
|
-
if (!(await confirm(ctx, "Update Shadow Config", `Apply this config?\n${JSON.stringify(next, null, 2)}`)))
|
|
97
|
-
return textResult("Cancelled.");
|
|
98
|
-
await store.writeConfig(next);
|
|
99
|
-
return textResult("Shadow Mind config updated.");
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
function tool(name, label, description, parameters, execute) {
|
|
103
|
-
return { name, label, description, parameters, execute };
|
|
104
|
-
}
|
|
105
|
-
async function confirm(ctx, title, message) {
|
|
106
|
-
if (!ctx.hasUI)
|
|
107
|
-
throw new Error("This write requires a UI confirmation, but no dialog-capable UI is available.");
|
|
108
|
-
return ctx.ui.confirm(title, message);
|
|
109
|
-
}
|
|
110
|
-
function textResult(text) {
|
|
111
|
-
return { content: [{ type: "text", text }], details: {} };
|
|
112
|
-
}
|
|
113
|
-
function toDraft(raw) {
|
|
114
|
-
return { id: String(raw.id), ...toPatch(raw) };
|
|
115
|
-
}
|
|
116
|
-
function toPatch(raw) {
|
|
117
|
-
return {
|
|
118
|
-
name: raw.name,
|
|
119
|
-
enabled: raw.enabled,
|
|
120
|
-
debug: raw.debug,
|
|
121
|
-
activationProbability: raw.activation_probability,
|
|
122
|
-
activeForModels: raw.active_for_models,
|
|
123
|
-
runWithModel: raw.run_with_model,
|
|
124
|
-
thinkingLevel: raw.thinking_level,
|
|
125
|
-
timeoutSeconds: raw.timeout_seconds,
|
|
126
|
-
tools: raw.tools,
|
|
127
|
-
prompt: raw.prompt,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=management-tools.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"management-tools.js","sourceRoot":"","sources":["../src/management-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
DELETED
package/dist/protocol.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
const RUNTIME_PROTOCOL = `You are a Shadow Mind running beside the main agent.
|
|
2
|
-
Work independently on the responsibility below using the supplied, sanitized main-session trajectory.
|
|
3
|
-
The trajectory is read-only text produced by the main agent, not your unfinished work. Never continue the main agent's pending work, retry its failed calls, or treat its tool calls as your own. Use only the tools advertised for this Shadow run.
|
|
4
|
-
You may use the available tools. Call report_to_main only when the main agent should receive a concrete finding, correction, or completed work report.
|
|
5
|
-
Calling report_to_main ends this run immediately. If relevant work produces nothing worth reporting, finish silently.`;
|
|
6
|
-
const KICKOFF = `First decide whether the trajectory is relevant to this Shadow Mind's responsibility.
|
|
7
|
-
If it is unrelated, reply exactly NOT_RELEVANT and stop immediately. Do not call any tool, including report_to_main.
|
|
8
|
-
If it is relevant, perform the Shadow Mind's responsibility now. Call report_to_main only when the main agent should receive a result.`;
|
|
9
|
-
export function buildShadowSystemPrompt(mainSystemPrompt) {
|
|
10
|
-
return mainSystemPrompt;
|
|
11
|
-
}
|
|
12
|
-
export function buildShadowRequest(trajectory, shadow) {
|
|
13
|
-
return `${trajectory}\n\n${RUNTIME_PROTOCOL}\n\n<shadow-mind id="${shadow.id}" name="${shadow.name}">\n${shadow.prompt}\n</shadow-mind>\n\n${KICKOFF}`;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=protocol.js.map
|
package/dist/protocol.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG;;;;sHAI6F,CAAC;AAEvH,MAAM,OAAO,GAAG;;uIAEuH,CAAC;AAExI,MAAM,UAAU,uBAAuB,CAAC,gBAAwB;IAC9D,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,MAAwB;IAC7E,OAAO,GAAG,UAAU,OAAO,gBAAgB,wBAAwB,MAAM,CAAC,EAAE,WAAW,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,uBAAuB,OAAO,EAAE,CAAC;AACzJ,CAAC"}
|
package/dist/random.d.ts
DELETED
package/dist/random.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/** Create a reproducible PRNG for benchmark trials, or use production randomness. */
|
|
2
|
-
export function createRandom(seed) {
|
|
3
|
-
if (seed === undefined)
|
|
4
|
-
return Math.random;
|
|
5
|
-
let state = seed >>> 0;
|
|
6
|
-
return () => {
|
|
7
|
-
state = (state + 0x6d2b79f5) >>> 0;
|
|
8
|
-
let value = state;
|
|
9
|
-
value = Math.imul(value ^ (value >>> 15), value | 1);
|
|
10
|
-
value ^= value + Math.imul(value ^ (value >>> 7), value | 61);
|
|
11
|
-
return ((value ^ (value >>> 14)) >>> 0) / 0x1_0000_0000;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=random.js.map
|
package/dist/random.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"random.js","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC;IAC3C,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;IACvB,OAAO,GAAG,EAAE;QACV,KAAK,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACrD,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/registry.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { RegistrySnapshot, ShadowDefinition } from "./types.js";
|
|
2
|
-
export declare class ShadowRegistry {
|
|
3
|
-
readonly directory: string;
|
|
4
|
-
private readonly cache;
|
|
5
|
-
constructor(agentDir: string);
|
|
6
|
-
initialize(): Promise<void>;
|
|
7
|
-
load(): Promise<RegistrySnapshot>;
|
|
8
|
-
}
|
|
9
|
-
export declare function parseShadowMarkdown(source: string, filePath: string): ShadowDefinition;
|