@pickle-pee/runtime 0.0.0 → 0.0.2

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 (64) hide show
  1. package/dist/adapters/pi-mono-event-bridge.d.ts +7 -2
  2. package/dist/adapters/pi-mono-event-bridge.js +86 -2
  3. package/dist/adapters/pi-mono-event-bridge.js.map +1 -1
  4. package/dist/adapters/pi-mono-session-adapter.d.ts +29 -0
  5. package/dist/adapters/pi-mono-session-adapter.js +20 -6
  6. package/dist/adapters/pi-mono-session-adapter.js.map +1 -1
  7. package/dist/events/runtime-event.d.ts +15 -1
  8. package/dist/services/event-normalizer.js +14 -0
  9. package/dist/services/event-normalizer.js.map +1 -1
  10. package/package.json +3 -3
  11. package/dist/test/aggregation.test.d.ts +0 -1
  12. package/dist/test/aggregation.test.js +0 -201
  13. package/dist/test/aggregation.test.js.map +0 -1
  14. package/dist/test/create-app-runtime.test.d.ts +0 -1
  15. package/dist/test/create-app-runtime.test.js +0 -286
  16. package/dist/test/create-app-runtime.test.js.map +0 -1
  17. package/dist/test/event-bus.test.d.ts +0 -1
  18. package/dist/test/event-bus.test.js +0 -81
  19. package/dist/test/event-bus.test.js.map +0 -1
  20. package/dist/test/event-normalizer.test.d.ts +0 -1
  21. package/dist/test/event-normalizer.test.js +0 -143
  22. package/dist/test/event-normalizer.test.js.map +0 -1
  23. package/dist/test/path-scope.test.d.ts +0 -1
  24. package/dist/test/path-scope.test.js +0 -71
  25. package/dist/test/path-scope.test.js.map +0 -1
  26. package/dist/test/pi-mono-event-bridge.test.d.ts +0 -1
  27. package/dist/test/pi-mono-event-bridge.test.js +0 -125
  28. package/dist/test/pi-mono-event-bridge.test.js.map +0 -1
  29. package/dist/test/pi-mono-live.test.d.ts +0 -1
  30. package/dist/test/pi-mono-live.test.js +0 -289
  31. package/dist/test/pi-mono-live.test.js.map +0 -1
  32. package/dist/test/pi-mono-session-adapter.test.d.ts +0 -1
  33. package/dist/test/pi-mono-session-adapter.test.js +0 -260
  34. package/dist/test/pi-mono-session-adapter.test.js.map +0 -1
  35. package/dist/test/plan-engine.test.d.ts +0 -1
  36. package/dist/test/plan-engine.test.js +0 -235
  37. package/dist/test/plan-engine.test.js.map +0 -1
  38. package/dist/test/plan-events.test.d.ts +0 -1
  39. package/dist/test/plan-events.test.js +0 -81
  40. package/dist/test/plan-events.test.js.map +0 -1
  41. package/dist/test/plan-orchestrator.test.d.ts +0 -1
  42. package/dist/test/plan-orchestrator.test.js +0 -324
  43. package/dist/test/plan-orchestrator.test.js.map +0 -1
  44. package/dist/test/runtime-context.test.d.ts +0 -1
  45. package/dist/test/runtime-context.test.js +0 -70
  46. package/dist/test/runtime-context.test.js.map +0 -1
  47. package/dist/test/session-facade.test.d.ts +0 -1
  48. package/dist/test/session-facade.test.js +0 -1011
  49. package/dist/test/session-facade.test.js.map +0 -1
  50. package/dist/test/session-state.test.d.ts +0 -1
  51. package/dist/test/session-state.test.js +0 -118
  52. package/dist/test/session-state.test.js.map +0 -1
  53. package/dist/test/stop-condition.test.d.ts +0 -1
  54. package/dist/test/stop-condition.test.js +0 -105
  55. package/dist/test/stop-condition.test.js.map +0 -1
  56. package/dist/test/stubs/stub-kernel-session-adapter.d.ts +0 -45
  57. package/dist/test/stubs/stub-kernel-session-adapter.js +0 -186
  58. package/dist/test/stubs/stub-kernel-session-adapter.js.map +0 -1
  59. package/dist/test/task-validator.test.d.ts +0 -1
  60. package/dist/test/task-validator.test.js +0 -97
  61. package/dist/test/task-validator.test.js.map +0 -1
  62. package/dist/test/tool-governor.test.d.ts +0 -1
  63. package/dist/test/tool-governor.test.js +0 -379
  64. package/dist/test/tool-governor.test.js.map +0 -1
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const path_scope_js_1 = require("../subagent/path-scope.js");
5
- // ---------------------------------------------------------------------------
6
- // Helpers
7
- // ---------------------------------------------------------------------------
8
- const scope = {
9
- allowedPaths: ["packages/app-runtime/**", "packages/app-tools/**"],
10
- forbiddenPaths: ["packages/app-runtime/src/test/**", "packages/app-ui/**"],
11
- };
12
- // ---------------------------------------------------------------------------
13
- // Tests
14
- // ---------------------------------------------------------------------------
15
- (0, vitest_1.describe)("PathScope", () => {
16
- (0, vitest_1.describe)("isPathAllowed", () => {
17
- (0, vitest_1.it)("returns true for path under allowed prefix", () => {
18
- (0, vitest_1.expect)((0, path_scope_js_1.isPathAllowed)(scope, "packages/app-runtime/src/session.ts")).toBe(true);
19
- });
20
- (0, vitest_1.it)("returns true for exact match with allowed path", () => {
21
- (0, vitest_1.expect)((0, path_scope_js_1.isPathAllowed)(scope, "packages/app-runtime/**")).toBe(true);
22
- });
23
- (0, vitest_1.it)("returns false for path outside all allowed paths", () => {
24
- (0, vitest_1.expect)((0, path_scope_js_1.isPathAllowed)(scope, "packages/app-cli/src/index.ts")).toBe(false);
25
- });
26
- (0, vitest_1.it)("handles dot segments via normalization", () => {
27
- (0, vitest_1.expect)((0, path_scope_js_1.isPathAllowed)(scope, "packages/./app-runtime/src/x.ts")).toBe(true);
28
- });
29
- });
30
- (0, vitest_1.describe)("isPathForbidden", () => {
31
- (0, vitest_1.it)("returns true for explicitly forbidden path", () => {
32
- (0, vitest_1.expect)((0, path_scope_js_1.isPathForbidden)(scope, "packages/app-runtime/src/test/foo.test.ts")).toBe(true);
33
- });
34
- (0, vitest_1.it)("returns true for child of forbidden path", () => {
35
- (0, vitest_1.expect)((0, path_scope_js_1.isPathForbidden)(scope, "packages/app-ui/src/index.ts")).toBe(true);
36
- });
37
- (0, vitest_1.it)("returns false for non-forbidden path", () => {
38
- (0, vitest_1.expect)((0, path_scope_js_1.isPathForbidden)(scope, "packages/app-runtime/src/session.ts")).toBe(false);
39
- });
40
- });
41
- (0, vitest_1.describe)("wouldViolateBoundary", () => {
42
- (0, vitest_1.it)("returns false for allowed non-forbidden path", () => {
43
- (0, vitest_1.expect)((0, path_scope_js_1.wouldViolateBoundary)(scope, "packages/app-runtime/src/engine.ts")).toBe(false);
44
- });
45
- (0, vitest_1.it)("returns true for path outside allowed scope", () => {
46
- (0, vitest_1.expect)((0, path_scope_js_1.wouldViolateBoundary)(scope, "packages/app-cli/src/index.ts")).toBe(true);
47
- });
48
- (0, vitest_1.it)("returns true for forbidden path within allowed scope", () => {
49
- // Path is under allowedPaths but also under forbiddenPaths
50
- (0, vitest_1.expect)((0, path_scope_js_1.wouldViolateBoundary)(scope, "packages/app-runtime/src/test/x.test.ts")).toBe(true);
51
- });
52
- });
53
- (0, vitest_1.describe)("scopesOverlap", () => {
54
- (0, vitest_1.it)("returns true when allowed paths overlap", () => {
55
- const a = { allowedPaths: ["packages/a/**"], forbiddenPaths: [] };
56
- const b = { allowedPaths: ["packages/a/**"], forbiddenPaths: [] };
57
- (0, vitest_1.expect)((0, path_scope_js_1.scopesOverlap)(a, b)).toBe(true);
58
- });
59
- (0, vitest_1.it)("returns true for nested paths", () => {
60
- const a = { allowedPaths: ["packages/**"], forbiddenPaths: [] };
61
- const b = { allowedPaths: ["packages/a/**"], forbiddenPaths: [] };
62
- (0, vitest_1.expect)((0, path_scope_js_1.scopesOverlap)(a, b)).toBe(true);
63
- });
64
- (0, vitest_1.it)("returns false for disjoint scopes", () => {
65
- const a = { allowedPaths: ["packages/a/**"], forbiddenPaths: [] };
66
- const b = { allowedPaths: ["packages/b/**"], forbiddenPaths: [] };
67
- (0, vitest_1.expect)((0, path_scope_js_1.scopesOverlap)(a, b)).toBe(false);
68
- });
69
- });
70
- });
71
- //# sourceMappingURL=path-scope.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-scope.test.js","sourceRoot":"","sources":["../../src/test/path-scope.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,125 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const pi_mono_event_bridge_js_1 = require("../adapters/pi-mono-event-bridge.js");
5
- (0, vitest_1.describe)("PiMonoEventBridge", () => {
6
- (0, vitest_1.it)("maps text deltas into raw message updates", () => {
7
- const state = (0, pi_mono_event_bridge_js_1.createInitialBridgeState)({
8
- model: { id: "glm-5.1", provider: "zai", displayName: "GLM 5.1" },
9
- toolSet: ["read", "bash"],
10
- });
11
- const result = (0, pi_mono_event_bridge_js_1.bridgePiMonoEvent)({
12
- type: "message_update",
13
- message: {},
14
- assistantMessageEvent: {
15
- type: "text_delta",
16
- contentIndex: 0,
17
- delta: "hello",
18
- partial: {},
19
- },
20
- }, state);
21
- (0, vitest_1.expect)(result.rawEvents).toEqual([
22
- vitest_1.expect.objectContaining({
23
- type: "message_update",
24
- payload: {
25
- kind: "text",
26
- content: "hello",
27
- },
28
- }),
29
- ]);
30
- });
31
- (0, vitest_1.it)("maps thinking deltas into thinking updates", () => {
32
- const state = (0, pi_mono_event_bridge_js_1.createInitialBridgeState)({
33
- model: { id: "glm-5.1", provider: "zai" },
34
- toolSet: [],
35
- });
36
- const result = (0, pi_mono_event_bridge_js_1.bridgePiMonoEvent)({
37
- type: "message_update",
38
- message: {},
39
- assistantMessageEvent: {
40
- type: "thinking_delta",
41
- contentIndex: 0,
42
- delta: "reasoning",
43
- partial: {},
44
- },
45
- }, state);
46
- (0, vitest_1.expect)(result.rawEvents).toEqual([
47
- vitest_1.expect.objectContaining({
48
- type: "message_update",
49
- payload: {
50
- kind: "thinking",
51
- content: "reasoning",
52
- },
53
- }),
54
- ]);
55
- });
56
- (0, vitest_1.it)("tracks tool execution lifecycle", () => {
57
- const state = (0, pi_mono_event_bridge_js_1.createInitialBridgeState)({
58
- model: { id: "glm-5.1", provider: "zai" },
59
- toolSet: ["read"],
60
- });
61
- const started = (0, pi_mono_event_bridge_js_1.bridgePiMonoEvent)({
62
- type: "tool_execution_start",
63
- toolCallId: "call-1",
64
- toolName: "read",
65
- args: { file_path: "/tmp/file.txt" },
66
- }, state);
67
- const completed = (0, pi_mono_event_bridge_js_1.bridgePiMonoEvent)({
68
- type: "tool_execution_end",
69
- toolCallId: "call-1",
70
- toolName: "read",
71
- result: {
72
- content: [{ type: "text", text: "done" }],
73
- details: {},
74
- },
75
- isError: false,
76
- }, started.nextState);
77
- (0, vitest_1.expect)(started.rawEvents[0]).toEqual(vitest_1.expect.objectContaining({
78
- type: "tool_execution_start",
79
- payload: {
80
- toolName: "read",
81
- toolCallId: "call-1",
82
- parameters: { file_path: "/tmp/file.txt" },
83
- },
84
- }));
85
- (0, vitest_1.expect)(completed.rawEvents[0]).toEqual(vitest_1.expect.objectContaining({
86
- type: "tool_execution_end",
87
- payload: vitest_1.expect.objectContaining({
88
- toolName: "read",
89
- toolCallId: "call-1",
90
- status: "success",
91
- result: "done",
92
- }),
93
- }));
94
- });
95
- (0, vitest_1.it)("maps tool errors to failure status", () => {
96
- const state = (0, pi_mono_event_bridge_js_1.createInitialBridgeState)({
97
- model: { id: "glm-5.1", provider: "zai" },
98
- toolSet: ["bash"],
99
- });
100
- const started = (0, pi_mono_event_bridge_js_1.bridgePiMonoEvent)({
101
- type: "tool_execution_start",
102
- toolCallId: "call-err",
103
- toolName: "bash",
104
- args: { command: "false" },
105
- }, state);
106
- const completed = (0, pi_mono_event_bridge_js_1.bridgePiMonoEvent)({
107
- type: "tool_execution_end",
108
- toolCallId: "call-err",
109
- toolName: "bash",
110
- result: {
111
- content: [{ type: "text", text: "boom" }],
112
- details: {},
113
- },
114
- isError: true,
115
- }, started.nextState);
116
- (0, vitest_1.expect)(completed.rawEvents[0]).toEqual(vitest_1.expect.objectContaining({
117
- type: "tool_execution_end",
118
- payload: vitest_1.expect.objectContaining({
119
- status: "failure",
120
- result: "boom",
121
- }),
122
- }));
123
- });
124
- });
125
- //# sourceMappingURL=pi-mono-event-bridge.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pi-mono-event-bridge.test.js","sourceRoot":"","sources":["../../src/test/pi-mono-event-bridge.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,289 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const promises_1 = require("node:fs/promises");
4
- const node_os_1 = require("node:os");
5
- const node_path_1 = require("node:path");
6
- const node_url_1 = require("node:url");
7
- const vitest_1 = require("vitest");
8
- const pi_mono_session_adapter_js_1 = require("../adapters/pi-mono-session-adapter.js");
9
- const hasLiveOpenAiConfig = Boolean(process.env.GENESIS_API_KEY) &&
10
- Boolean(process.env.GENESIS_LIVE_OPENAI_BASE_URL) &&
11
- Boolean(process.env.GENESIS_MODEL_PROVIDER) &&
12
- Boolean(process.env.GENESIS_MODEL_ID);
13
- const hasLiveAnthropicConfig = Boolean(process.env.GENESIS_API_KEY) &&
14
- Boolean(process.env.GENESIS_LIVE_ANTHROPIC_BASE_URL) &&
15
- Boolean(process.env.GENESIS_MODEL_PROVIDER) &&
16
- Boolean(process.env.GENESIS_MODEL_ID);
17
- const liveDescribe = hasLiveOpenAiConfig ? vitest_1.describe : vitest_1.describe.skip;
18
- const anthropicDescribe = hasLiveAnthropicConfig ? vitest_1.describe : vitest_1.describe.skip;
19
- let resolvedModelIdPromise = null;
20
- let piMonoSessionAvailabilityPromise = null;
21
- let anthropicAvailabilityPromise = null;
22
- liveDescribe("PiMono live adapter", () => {
23
- (0, vitest_1.it)("sends a non-streaming OpenAI-compatible request", async () => {
24
- const modelId = await resolveLiveModelId();
25
- const response = await requestOpenAiCompletion(modelId, "Reply exactly LIVE_OPENAI_OK");
26
- (0, vitest_1.expect)(response.status).toBe(200);
27
- const payload = (await response.json());
28
- (0, vitest_1.expect)(payload.choices?.[0]?.message?.content).toContain("LIVE_OPENAI_OK");
29
- }, 30_000);
30
- (0, vitest_1.it)("streams a real conversation with thinking off and remembers context across turns", async () => {
31
- if (!(await ensurePiMonoSessionAvailable())) {
32
- return;
33
- }
34
- const adapter = await createLiveAdapter({ thinkingLevel: "off" });
35
- try {
36
- const firstTurn = await collectEvents(adapter.sendPrompt("Remember the codeword BANANA and reply exactly ACK."));
37
- const secondTurn = await collectEvents(adapter.sendPrompt("What is the codeword I asked you to remember? Reply exactly BANANA."));
38
- (0, vitest_1.expect)(extractAssistantText(firstTurn)).toContain("ACK");
39
- (0, vitest_1.expect)(extractAssistantText(secondTurn)).toContain("BANANA");
40
- (0, vitest_1.expect)(firstTurn.some((event) => event.type === "message_update")).toBe(true);
41
- (0, vitest_1.expect)(secondTurn.some((event) => event.type === "message_update")).toBe(true);
42
- }
43
- finally {
44
- await adapter.close();
45
- }
46
- }, 90_000);
47
- (0, vitest_1.it)("streams a real conversation with thinking enabled", async () => {
48
- if (!(await ensurePiMonoSessionAvailable())) {
49
- return;
50
- }
51
- const adapter = await createLiveAdapter({ thinkingLevel: "minimal" });
52
- try {
53
- const events = await collectEvents(adapter.sendPrompt("Reply exactly THINKING_ON_OK."));
54
- (0, vitest_1.expect)(extractAssistantText(events)).toContain("THINKING_ON_OK");
55
- }
56
- finally {
57
- await adapter.close();
58
- }
59
- }, 90_000);
60
- });
61
- anthropicDescribe("Anthropic live adapter", () => {
62
- (0, vitest_1.it)("sends a non-streaming Anthropic-compatible request", async () => {
63
- const availability = await ensureAnthropicAvailable();
64
- if (!availability.available || !availability.modelId) {
65
- console.warn(`Skipping Anthropic direct request checks: ${availability.reason}`);
66
- return;
67
- }
68
- const response = await requestAnthropicCompletion(availability.modelId, "Reply exactly LIVE_ANTHROPIC_OK", false, false);
69
- (0, vitest_1.expect)(response.status).toBe(200);
70
- const payload = (await response.json());
71
- const text = (payload.content ?? [])
72
- .filter((item) => item.type === "text")
73
- .map((item) => item.text ?? "")
74
- .join("");
75
- (0, vitest_1.expect)(text).toContain("LIVE_ANTHROPIC_OK");
76
- }, 30_000);
77
- (0, vitest_1.it)("streams a real Anthropic-compatible conversation with thinking enabled", async () => {
78
- const availability = await ensureAnthropicAvailable();
79
- if (!availability.available || !availability.modelId) {
80
- console.warn(`Skipping Anthropic session checks: ${availability.reason}`);
81
- return;
82
- }
83
- const adapter = await createLiveAdapter({
84
- thinkingLevel: "minimal",
85
- baseUrl: process.env.GENESIS_LIVE_ANTHROPIC_BASE_URL,
86
- api: "anthropic-messages",
87
- authHeader: false,
88
- modelId: availability.modelId,
89
- });
90
- try {
91
- const events = await collectEvents(adapter.sendPrompt("Reply exactly ANTHROPIC_SESSION_OK."));
92
- (0, vitest_1.expect)(extractAssistantText(events)).toContain("ANTHROPIC_SESSION_OK");
93
- }
94
- finally {
95
- await adapter.close();
96
- }
97
- }, 90_000);
98
- });
99
- async function createLiveAdapter(options) {
100
- const modelId = options.modelId ?? (await resolveLiveModelId());
101
- const agentDir = await (0, promises_1.mkdtemp)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "genesis-pi-live-"));
102
- await (0, promises_1.mkdir)(agentDir, { recursive: true });
103
- await (0, promises_1.writeFile)((0, node_path_1.join)(agentDir, "models.json"), `${JSON.stringify(createModelsJson({
104
- modelId,
105
- baseUrl: options.baseUrl ?? process.env.GENESIS_LIVE_OPENAI_BASE_URL,
106
- api: options.api ?? "openai-completions",
107
- authHeader: options.authHeader ?? true,
108
- }), null, 2)}\n`, "utf8");
109
- return new pi_mono_session_adapter_js_1.PiMonoSessionAdapter({
110
- workingDirectory: process.cwd(),
111
- agentDir,
112
- model: {
113
- provider: process.env.GENESIS_MODEL_PROVIDER,
114
- id: modelId,
115
- displayName: process.env.GENESIS_MODEL_DISPLAY_NAME ?? modelId,
116
- },
117
- toolSet: ["read", "bash", "edit", "write"],
118
- thinkingLevel: options.thinkingLevel,
119
- });
120
- }
121
- function createModelsJson(options) {
122
- return {
123
- providers: {
124
- [process.env.GENESIS_MODEL_PROVIDER]: {
125
- baseUrl: options.baseUrl,
126
- api: options.api,
127
- apiKey: "GENESIS_API_KEY",
128
- authHeader: options.authHeader,
129
- models: [
130
- {
131
- id: options.modelId,
132
- name: process.env.GENESIS_MODEL_DISPLAY_NAME ?? options.modelId,
133
- reasoning: true,
134
- input: ["text"],
135
- contextWindow: 128000,
136
- maxTokens: 16384,
137
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
138
- },
139
- ],
140
- },
141
- },
142
- };
143
- }
144
- async function resolveLiveModelId() {
145
- if (!resolvedModelIdPromise) {
146
- resolvedModelIdPromise = (async () => {
147
- let lastError = "No model candidates tried";
148
- for (const modelId of getModelCandidates()) {
149
- const response = await requestOpenAiCompletion(modelId, "Reply exactly MODEL_READY");
150
- if (response.status === 200) {
151
- return modelId;
152
- }
153
- const text = await response.text();
154
- lastError = `${response.status}: ${text}`;
155
- if (response.status === 403 && text.includes("No permission")) {
156
- continue;
157
- }
158
- throw new Error(`Live model probe failed for ${modelId}: ${lastError}`);
159
- }
160
- throw new Error(`No live model is accessible. Last error: ${lastError}`);
161
- })();
162
- }
163
- return await resolvedModelIdPromise;
164
- }
165
- async function ensurePiMonoSessionAvailable() {
166
- if (!piMonoSessionAvailabilityPromise) {
167
- piMonoSessionAvailabilityPromise = (async () => {
168
- const modelId = await resolveLiveModelId();
169
- const agentDir = await (0, promises_1.mkdtemp)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "genesis-pi-probe-"));
170
- await (0, promises_1.mkdir)(agentDir, { recursive: true });
171
- await (0, promises_1.writeFile)((0, node_path_1.join)(agentDir, "models.json"), `${JSON.stringify(createModelsJson({
172
- modelId,
173
- baseUrl: process.env.GENESIS_LIVE_OPENAI_BASE_URL,
174
- api: "openai-completions",
175
- authHeader: true,
176
- }), null, 2)}\n`, "utf8");
177
- const kernelModulePath = (0, node_url_1.pathToFileURL)((0, node_path_1.resolve)(process.cwd(), "packages/kernel/src/index.ts")).href;
178
- const sdk = (await import(kernelModulePath));
179
- const authStorage = sdk.AuthStorage.create((0, node_path_1.join)(agentDir, "auth.json"));
180
- const modelRegistry = sdk.ModelRegistry.create(authStorage, (0, node_path_1.join)(agentDir, "models.json"));
181
- const model = modelRegistry.find(process.env.GENESIS_MODEL_PROVIDER, modelId);
182
- const { session } = await sdk.createAgentSession({
183
- cwd: process.cwd(),
184
- agentDir,
185
- authStorage,
186
- modelRegistry,
187
- model,
188
- thinkingLevel: "off",
189
- tools: [],
190
- });
191
- const events = [];
192
- const unsubscribe = session.subscribe((event) => {
193
- events.push(event);
194
- });
195
- await session.prompt("Reply exactly SESSION_READY.");
196
- unsubscribe();
197
- const assistantError = events.find((event) => {
198
- return (typeof event === "object" &&
199
- event !== null &&
200
- event.type === "message_end" &&
201
- event.message?.role === "assistant" &&
202
- typeof event.message?.errorMessage === "string");
203
- });
204
- if (assistantError?.message?.errorMessage?.includes("GLM Coding Plan")) {
205
- return {
206
- available: false,
207
- reason: assistantError.message.errorMessage,
208
- };
209
- }
210
- return { available: true };
211
- })();
212
- }
213
- const availability = await piMonoSessionAvailabilityPromise;
214
- if (!availability.available) {
215
- console.warn(`Skipping Genesis kernel live session checks: ${availability.reason}`);
216
- }
217
- return availability.available;
218
- }
219
- async function ensureAnthropicAvailable() {
220
- if (!anthropicAvailabilityPromise) {
221
- anthropicAvailabilityPromise = (async () => {
222
- let lastError = "No model candidates tried";
223
- for (const modelId of getModelCandidates()) {
224
- const response = await requestAnthropicCompletion(modelId, "Reply exactly ANTHROPIC_READY", false, false);
225
- if (response.status === 200) {
226
- return { available: true, modelId };
227
- }
228
- const text = await response.text();
229
- lastError = `${response.status}: ${text}`;
230
- if (response.status === 403 && text.includes("No permission")) {
231
- continue;
232
- }
233
- return { available: false, reason: `Anthropic probe failed for ${modelId}: ${lastError}` };
234
- }
235
- return { available: false, reason: `No Anthropic-compatible model is accessible. Last error: ${lastError}` };
236
- })();
237
- }
238
- return await anthropicAvailabilityPromise;
239
- }
240
- function getModelCandidates() {
241
- const candidates = [process.env.GENESIS_MODEL_ID, "glm-5", "glm-4.7"].filter((value) => typeof value === "string" && value.length > 0);
242
- return [...new Set(candidates)];
243
- }
244
- async function requestOpenAiCompletion(modelId, prompt) {
245
- return await fetch(new URL("chat/completions", process.env.GENESIS_LIVE_OPENAI_BASE_URL).toString(), {
246
- method: "POST",
247
- headers: {
248
- "content-type": "application/json",
249
- authorization: `Bearer ${process.env.GENESIS_API_KEY}`,
250
- },
251
- body: JSON.stringify({
252
- model: modelId,
253
- messages: [{ role: "user", content: prompt }],
254
- stream: false,
255
- }),
256
- });
257
- }
258
- async function requestAnthropicCompletion(modelId, prompt, thinkingEnabled, stream) {
259
- return await fetch(new URL("v1/messages", process.env.GENESIS_LIVE_ANTHROPIC_BASE_URL).toString(), {
260
- method: "POST",
261
- headers: {
262
- "content-type": "application/json",
263
- "x-api-key": process.env.GENESIS_API_KEY,
264
- "anthropic-version": "2023-06-01",
265
- },
266
- body: JSON.stringify({
267
- model: modelId,
268
- max_tokens: 1024,
269
- stream,
270
- messages: [{ role: "user", content: prompt }],
271
- thinking: thinkingEnabled ? { type: "enabled", budget_tokens: 1024 } : { type: "disabled" },
272
- }),
273
- });
274
- }
275
- async function collectEvents(stream) {
276
- const events = [];
277
- for await (const event of stream) {
278
- events.push(event);
279
- }
280
- return events;
281
- }
282
- function extractAssistantText(events) {
283
- return events
284
- .filter((event) => event.type === "message_update" && event.payload?.kind === "text")
285
- .map((event) => event.payload?.content)
286
- .filter((content) => typeof content === "string")
287
- .join("");
288
- }
289
- //# sourceMappingURL=pi-mono-live.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pi-mono-live.test.js","sourceRoot":"","sources":["../../src/test/pi-mono-live.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};