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.
Files changed (51) hide show
  1. package/dist/index.js +6441 -7194
  2. package/dist/index.js.map +4 -4
  3. package/package.json +11 -3
  4. package/dist/config.d.ts +0 -18
  5. package/dist/config.js +0 -132
  6. package/dist/config.js.map +0 -1
  7. package/dist/entity-store.d.ts +0 -22
  8. package/dist/entity-store.js +0 -71
  9. package/dist/entity-store.js.map +0 -1
  10. package/dist/management-tools.d.ts +0 -4
  11. package/dist/management-tools.js +0 -130
  12. package/dist/management-tools.js.map +0 -1
  13. package/dist/protocol.d.ts +0 -3
  14. package/dist/protocol.js +0 -15
  15. package/dist/protocol.js.map +0 -1
  16. package/dist/random.d.ts +0 -2
  17. package/dist/random.js +0 -14
  18. package/dist/random.js.map +0 -1
  19. package/dist/registry.d.ts +0 -9
  20. package/dist/registry.js +0 -139
  21. package/dist/registry.js.map +0 -1
  22. package/dist/report-batcher.d.ts +0 -15
  23. package/dist/report-batcher.js +0 -49
  24. package/dist/report-batcher.js.map +0 -1
  25. package/dist/runtime.d.ts +0 -38
  26. package/dist/runtime.js +0 -312
  27. package/dist/runtime.js.map +0 -1
  28. package/dist/scheduler.d.ts +0 -16
  29. package/dist/scheduler.js +0 -54
  30. package/dist/scheduler.js.map +0 -1
  31. package/dist/session-lifetime.d.ts +0 -8
  32. package/dist/session-lifetime.js +0 -31
  33. package/dist/session-lifetime.js.map +0 -1
  34. package/dist/shadow-runner.d.ts +0 -93
  35. package/dist/shadow-runner.js +0 -248
  36. package/dist/shadow-runner.js.map +0 -1
  37. package/dist/shutdown-drain.d.ts +0 -12
  38. package/dist/shutdown-drain.js +0 -22
  39. package/dist/shutdown-drain.js.map +0 -1
  40. package/dist/summaries.d.ts +0 -9
  41. package/dist/summaries.js +0 -56
  42. package/dist/summaries.js.map +0 -1
  43. package/dist/trajectory.d.ts +0 -8
  44. package/dist/trajectory.js +0 -107
  45. package/dist/trajectory.js.map +0 -1
  46. package/dist/types.d.ts +0 -64
  47. package/dist/types.js +0 -2
  48. package/dist/types.js.map +0 -1
  49. package/dist/validation.d.ts +0 -8
  50. package/dist/validation.js +0 -18
  51. package/dist/validation.js.map +0 -1
@@ -1,107 +0,0 @@
1
- import { summarizeToolResult } from "./summaries.js";
2
- export function serializeTrajectory(messages) {
3
- const results = new Map();
4
- for (const message of messages) {
5
- if (message.role === "toolResult" && typeof message.toolCallId === "string") {
6
- results.set(message.toolCallId, summarizeToolResult(message));
7
- }
8
- }
9
- const lines = [];
10
- for (const message of messages) {
11
- if (message.role === "user") {
12
- appendText(lines, "USER", message.content);
13
- continue;
14
- }
15
- if (message.role === "assistant") {
16
- if (!Array.isArray(message.content)) {
17
- appendText(lines, "MAIN", message.content);
18
- continue;
19
- }
20
- for (const block of message.content) {
21
- if (!block || typeof block !== "object" || isThinkingBlock(block))
22
- continue;
23
- const item = block;
24
- if (item.type === "text" && item.text)
25
- lines.push(`MAIN: ${item.text}`);
26
- if (item.type === "toolCall" && item.name) {
27
- const call = `${item.name}(${compactJson(item.arguments)})`;
28
- const result = item.id ? results.get(item.id) : undefined;
29
- lines.push(`TOOL: ${call}${result ? ` · ${result}` : ""}`);
30
- }
31
- }
32
- continue;
33
- }
34
- if (message.role === "toolResult") {
35
- if (typeof message.toolCallId !== "string" || !results.has(message.toolCallId)) {
36
- lines.push(`TOOL RESULT: ${summarizeToolResult(message)}`);
37
- }
38
- continue;
39
- }
40
- if (message.role === "custom" && message.customType === "shadow-report") {
41
- appendText(lines, "SHADOW FEEDBACK", message.content);
42
- continue;
43
- }
44
- if (message.role === "compactionSummary" || message.role === "branchSummary") {
45
- appendText(lines, "SUMMARY", message.content);
46
- }
47
- }
48
- return `<main-agent-trajectory>\n${lines.join("\n")}\n</main-agent-trajectory>`;
49
- }
50
- export function sanitizeTrajectory(messages) {
51
- return messages.flatMap((message) => {
52
- if (message.role === "assistant") {
53
- const content = Array.isArray(message.content)
54
- ? message.content.filter((block) => !isThinkingBlock(block)).map(clone)
55
- : message.content;
56
- return [{ ...clone(message), content }];
57
- }
58
- if (message.role === "toolResult") {
59
- return [{
60
- ...clone(message),
61
- content: [{ type: "text", text: summarizeToolResult(message) }],
62
- details: undefined,
63
- usage: undefined,
64
- }];
65
- }
66
- if (message.role === "custom") {
67
- return message.customType === "shadow-report" ? [clone(message)] : [];
68
- }
69
- if (message.role === "user" || message.role === "compactionSummary" || message.role === "branchSummary") {
70
- return [clone(message)];
71
- }
72
- return [];
73
- });
74
- }
75
- function isThinkingBlock(value) {
76
- return Boolean(value) && typeof value === "object" && value.type === "thinking";
77
- }
78
- function clone(value) {
79
- return structuredClone(value);
80
- }
81
- function appendText(lines, label, content) {
82
- const text = extractText(content);
83
- if (text)
84
- lines.push(`${label}: ${text}`);
85
- }
86
- function extractText(content) {
87
- if (typeof content === "string")
88
- return content;
89
- if (!Array.isArray(content))
90
- return "";
91
- return content
92
- .filter((item) => Boolean(item) && typeof item === "object")
93
- .filter((item) => item.type === "text" && typeof item.text === "string")
94
- .map((item) => item.text)
95
- .join("\n");
96
- }
97
- function compactJson(value) {
98
- if (value === undefined)
99
- return "";
100
- try {
101
- return JSON.stringify(value);
102
- }
103
- catch {
104
- return "[unserializable]";
105
- }
106
- }
107
- //# sourceMappingURL=trajectory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trajectory.js","sourceRoot":"","sources":["../src/trajectory.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts DELETED
@@ -1,64 +0,0 @@
1
- import type { ThinkingLevel } from "@earendil-works/pi-agent-core";
2
- export declare const DEFAULT_READ_TOOLS: readonly ["read", "grep", "find", "ls"];
3
- export interface ShadowConfig {
4
- heartbeatProbability: number;
5
- maxParallelShadows: number;
6
- defaultShadowTimeoutSeconds: number;
7
- headlessDrainTimeoutSeconds: number;
8
- resultBatchWindowMs: number;
9
- defaultShadowModel?: string;
10
- defaultThinkingLevel: ThinkingLevel;
11
- randomSeed?: number;
12
- }
13
- export interface ShadowDefinition {
14
- id: string;
15
- name: string;
16
- enabled: boolean;
17
- debug: boolean;
18
- activationProbability: number;
19
- activeForModels: string[];
20
- runWithModel?: string;
21
- thinkingLevel?: ThinkingLevel;
22
- timeoutSeconds?: number;
23
- tools: string[];
24
- prompt: string;
25
- filePath: string;
26
- }
27
- export interface RegistryDiagnostic {
28
- filePath: string;
29
- message: string;
30
- }
31
- export interface RegistrySnapshot {
32
- shadows: ShadowDefinition[];
33
- diagnostics: RegistryDiagnostic[];
34
- }
35
- export type RunEndReason = "report" | "silent" | "timeout" | "aborted" | "error";
36
- export interface ShadowReport {
37
- shadowId: string;
38
- shadowName: string;
39
- content: string;
40
- epoch: number;
41
- runId: string;
42
- }
43
- export interface RuntimeEvent {
44
- at: string;
45
- kind: string;
46
- epoch: number;
47
- data?: Record<string, unknown>;
48
- }
49
- export interface HeartbeatDecision {
50
- heartbeatRoll: number;
51
- activated: Array<{
52
- shadow: ShadowDefinition;
53
- roll: number;
54
- }>;
55
- candidates: Array<{
56
- shadowId: string;
57
- roll: number;
58
- selected: boolean;
59
- }>;
60
- /** Shadow ids excluded because active_for_models did not match the main model. */
61
- modelFiltered: string[];
62
- /** Shadow ids excluded because the same shadow is already running. */
63
- runningExcluded: string[];
64
- }
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- export const DEFAULT_READ_TOOLS = ["read", "grep", "find", "ls"];
2
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAU,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { ThinkingLevel } from "@earendil-works/pi-agent-core";
2
- /** Canonical set of valid pi thinking levels, shared by config and registry. */
3
- export declare const THINKING_LEVELS: ReadonlySet<ThinkingLevel>;
4
- export declare function isFiniteNumber(value: unknown): value is number;
5
- export declare function inRange(value: number, min: number, max: number): boolean;
6
- export declare function isNonEmptyString(value: unknown): value is string;
7
- export declare function isStringArray(value: unknown): value is string[];
8
- export declare function isThinkingLevel(value: unknown): value is ThinkingLevel;
@@ -1,18 +0,0 @@
1
- /** Canonical set of valid pi thinking levels, shared by config and registry. */
2
- export const THINKING_LEVELS = new Set(["off", "minimal", "low", "medium", "high", "xhigh", "max"]);
3
- export function isFiniteNumber(value) {
4
- return typeof value === "number" && Number.isFinite(value);
5
- }
6
- export function inRange(value, min, max) {
7
- return value >= min && value <= max;
8
- }
9
- export function isNonEmptyString(value) {
10
- return typeof value === "string" && value.trim() !== "";
11
- }
12
- export function isStringArray(value) {
13
- return Array.isArray(value) && value.every((item) => isNonEmptyString(item));
14
- }
15
- export function isThinkingLevel(value) {
16
- return typeof value === "string" && THINKING_LEVELS.has(value);
17
- }
18
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAA+B,IAAI,GAAG,CAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAE/I,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAC7D,OAAO,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,KAAsB,CAAC,CAAC;AAClF,CAAC"}