@code-yeongyu/senpi 2026.7.22-2 → 2026.7.23

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 (91) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
  3. package/dist/core/extensions/builtin/compaction/index.js +14 -6
  4. package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
  5. package/dist/core/extensions/builtin/compaction/openai-remote-convert.d.ts +26 -0
  6. package/dist/core/extensions/builtin/compaction/openai-remote-convert.d.ts.map +1 -0
  7. package/dist/core/extensions/builtin/compaction/openai-remote-convert.js +194 -0
  8. package/dist/core/extensions/builtin/compaction/openai-remote-convert.js.map +1 -0
  9. package/dist/core/extensions/builtin/compaction/openai-remote-model.d.ts +22 -0
  10. package/dist/core/extensions/builtin/compaction/openai-remote-model.d.ts.map +1 -0
  11. package/dist/core/extensions/builtin/compaction/openai-remote-model.js +92 -0
  12. package/dist/core/extensions/builtin/compaction/openai-remote-model.js.map +1 -0
  13. package/dist/core/extensions/builtin/compaction/openai-remote-schema.d.ts +92 -0
  14. package/dist/core/extensions/builtin/compaction/openai-remote-schema.d.ts.map +1 -0
  15. package/dist/core/extensions/builtin/compaction/openai-remote-schema.js +56 -0
  16. package/dist/core/extensions/builtin/compaction/openai-remote-schema.js.map +1 -0
  17. package/dist/core/extensions/builtin/compaction/openai-remote.d.ts +7 -84
  18. package/dist/core/extensions/builtin/compaction/openai-remote.d.ts.map +1 -1
  19. package/dist/core/extensions/builtin/compaction/openai-remote.js +55 -271
  20. package/dist/core/extensions/builtin/compaction/openai-remote.js.map +1 -1
  21. package/dist/core/extensions/builtin/prompt-preset/gpt-5.2.d.ts.map +1 -1
  22. package/dist/core/extensions/builtin/prompt-preset/gpt-5.2.js +3 -0
  23. package/dist/core/extensions/builtin/prompt-preset/gpt-5.2.js.map +1 -1
  24. package/dist/core/extensions/builtin/prompt-preset/gpt-5.3-codex.d.ts.map +1 -1
  25. package/dist/core/extensions/builtin/prompt-preset/gpt-5.3-codex.js +3 -0
  26. package/dist/core/extensions/builtin/prompt-preset/gpt-5.3-codex.js.map +1 -1
  27. package/dist/core/extensions/builtin/prompt-preset/gpt-5.4.d.ts.map +1 -1
  28. package/dist/core/extensions/builtin/prompt-preset/gpt-5.4.js +3 -0
  29. package/dist/core/extensions/builtin/prompt-preset/gpt-5.4.js.map +1 -1
  30. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.d.ts.map +1 -1
  31. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.js +3 -0
  32. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.js.map +1 -1
  33. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts.map +1 -1
  34. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js +3 -0
  35. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js.map +1 -1
  36. package/dist/core/extensions/builtin/prompt-preset/gpt-5.d.ts.map +1 -1
  37. package/dist/core/extensions/builtin/prompt-preset/gpt-5.js +3 -0
  38. package/dist/core/extensions/builtin/prompt-preset/gpt-5.js.map +1 -1
  39. package/dist/core/extensions/builtin/prompt-preset/gpt-eval-routing.d.ts +3 -0
  40. package/dist/core/extensions/builtin/prompt-preset/gpt-eval-routing.d.ts.map +1 -0
  41. package/dist/core/extensions/builtin/prompt-preset/gpt-eval-routing.js +6 -0
  42. package/dist/core/extensions/builtin/prompt-preset/gpt-eval-routing.js.map +1 -0
  43. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  44. package/dist/modes/interactive/components/assistant-message.js +34 -4
  45. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  46. package/dist/modes/interactive/tool-progress.js +1 -1
  47. package/dist/modes/interactive/tool-progress.js.map +1 -1
  48. package/dist/utils/duration.d.ts +2 -0
  49. package/dist/utils/duration.d.ts.map +1 -0
  50. package/dist/utils/duration.js +16 -0
  51. package/dist/utils/duration.js.map +1 -0
  52. package/docs/session-format.md +4 -0
  53. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +14 -0
  54. package/node_modules/@code-yeongyu/senpi-codemode/README.md +15 -6
  55. package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
  56. package/node_modules/@code-yeongyu/senpi-codemode/src/codemode/runtime.ts +258 -0
  57. package/node_modules/@code-yeongyu/senpi-codemode/src/codemode/tools.ts +106 -0
  58. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/runtime-factory.ts +114 -0
  59. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/session-manager-proxy.ts +116 -0
  60. package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +73 -204
  61. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/worker-runtime.js +1 -0
  62. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  63. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +34 -0
  64. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  65. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  66. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +20 -0
  67. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  68. package/node_modules/@earendil-works/pi-ai/dist/providers/data/google-vertex.json +1 -1
  69. package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
  70. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  71. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  72. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  73. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.d.ts +8 -0
  74. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.d.ts.map +1 -1
  75. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js.map +1 -1
  76. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.d.ts +4 -0
  77. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.d.ts.map +1 -1
  78. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js.map +1 -1
  79. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.d.ts +4 -0
  80. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.d.ts.map +1 -1
  81. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js.map +1 -1
  82. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts +4 -0
  83. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  84. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  85. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +4 -0
  86. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  87. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  88. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  89. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  90. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  91. package/package.json +6 -6
@@ -0,0 +1,92 @@
1
+ const OPENAI_CODEX_INSTALLATION_ID = crypto.randomUUID();
2
+ function isTrustedOpenAiCodexBaseUrl(baseUrl) {
3
+ try {
4
+ const url = new URL(baseUrl || "https://chatgpt.com/backend-api");
5
+ if (url.protocol === "https:" && url.hostname === "chatgpt.com")
6
+ return true;
7
+ return ["127.0.0.1", "[::1]", "localhost"].includes(url.hostname);
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ }
13
+ export function parseOpenAiRemoteCompactionIdentity(provider, api) {
14
+ if (provider === "openai" && api === "openai-responses") {
15
+ return { provider, api };
16
+ }
17
+ if (provider === "openai-codex" && api === "openai-codex-responses") {
18
+ return { provider, api };
19
+ }
20
+ return undefined;
21
+ }
22
+ export function isOpenAiRemoteCompactionModel(model) {
23
+ const identity = parseOpenAiRemoteCompactionIdentity(model?.provider, model?.api);
24
+ if (!identity || !model)
25
+ return false;
26
+ return identity.api !== "openai-codex-responses" || isTrustedOpenAiCodexBaseUrl(model.baseUrl);
27
+ }
28
+ export function matchesOpenAiRemoteCompactionIdentity(model, identity) {
29
+ return model.provider === identity.provider && model.api === identity.api;
30
+ }
31
+ export function openAiRemoteCompactionIdentity(model) {
32
+ return model.api === "openai-codex-responses"
33
+ ? { provider: "openai-codex", api: "openai-codex-responses" }
34
+ : { provider: "openai", api: "openai-responses" };
35
+ }
36
+ export function openAiRemoteCompactionEndpointPath(model) {
37
+ return model.api === "openai-codex-responses" ? "codex/responses/compact" : "responses/compact";
38
+ }
39
+ export function openAiRemoteCompactionEndpointUrl(model) {
40
+ const defaultBaseUrl = model.api === "openai-codex-responses" ? "https://chatgpt.com/backend-api" : "https://api.openai.com/v1";
41
+ const baseUrl = model.baseUrl || defaultBaseUrl;
42
+ return new URL(openAiRemoteCompactionEndpointPath(model), baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`).toString();
43
+ }
44
+ function extractCodexAccountId(token) {
45
+ try {
46
+ const parts = token.split(".");
47
+ if (parts.length !== 3 || !parts[1])
48
+ return undefined;
49
+ const base64 = parts[1].replaceAll("-", "+").replaceAll("_", "/");
50
+ const payload = JSON.parse(atob(base64.padEnd(Math.ceil(base64.length / 4) * 4, "=")));
51
+ if (typeof payload !== "object" || payload === null)
52
+ return undefined;
53
+ const auth = Reflect.get(payload, "https://api.openai.com/auth");
54
+ if (typeof auth !== "object" || auth === null)
55
+ return undefined;
56
+ const accountId = Reflect.get(auth, "chatgpt_account_id");
57
+ return typeof accountId === "string" && accountId.length > 0 ? accountId : undefined;
58
+ }
59
+ catch {
60
+ return undefined;
61
+ }
62
+ }
63
+ export function createOpenAiRemoteCompactionHeaders(model, auth, sessionId) {
64
+ const headers = new Headers(auth.headers);
65
+ headers.set("content-type", "application/json");
66
+ if (model.api === "openai-codex-responses" && auth.apiKey) {
67
+ headers.set("authorization", `Bearer ${auth.apiKey}`);
68
+ }
69
+ else if (!headers.has("authorization") && auth.apiKey) {
70
+ headers.set("authorization", `Bearer ${auth.apiKey}`);
71
+ }
72
+ if (!headers.has("authorization"))
73
+ return undefined;
74
+ if (model.api === "openai-codex-responses") {
75
+ const accountId = auth.apiKey ? extractCodexAccountId(auth.apiKey) : undefined;
76
+ if (accountId && !headers.has("chatgpt-account-id")) {
77
+ headers.set("chatgpt-account-id", accountId);
78
+ }
79
+ if (sessionId) {
80
+ headers.set("session_id", sessionId);
81
+ headers.set("session-id", sessionId);
82
+ headers.set("thread-id", sessionId);
83
+ headers.set("x-codex-installation-id", OPENAI_CODEX_INSTALLATION_ID);
84
+ headers.set("x-codex-window-id", `${sessionId}:0`);
85
+ }
86
+ headers.set("originator", "senpi");
87
+ headers.set("user-agent", "senpi");
88
+ headers.set("OpenAI-Beta", "responses=experimental");
89
+ }
90
+ return headers;
91
+ }
92
+ //# sourceMappingURL=openai-remote-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-remote-model.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/compaction/openai-remote-model.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Api, Model } from \"@earendil-works/pi-ai\";\n\nexport type OpenAiRemoteCompactionModel = Model<\"openai-responses\"> | Model<\"openai-codex-responses\">;\n\nexport type OpenAiRemoteCompactionIdentity =\n\t| { provider: \"openai\"; api: \"openai-responses\" }\n\t| { provider: \"openai-codex\"; api: \"openai-codex-responses\" };\n\ntype RemoteCompactionAuth = {\n\tapiKey?: string;\n\theaders?: Record<string, string>;\n};\n\nconst OPENAI_CODEX_INSTALLATION_ID = crypto.randomUUID();\n\nfunction isTrustedOpenAiCodexBaseUrl(baseUrl: string | undefined): boolean {\n\ttry {\n\t\tconst url = new URL(baseUrl || \"https://chatgpt.com/backend-api\");\n\t\tif (url.protocol === \"https:\" && url.hostname === \"chatgpt.com\") return true;\n\t\treturn [\"127.0.0.1\", \"[::1]\", \"localhost\"].includes(url.hostname);\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function parseOpenAiRemoteCompactionIdentity(\n\tprovider: unknown,\n\tapi: unknown,\n): OpenAiRemoteCompactionIdentity | undefined {\n\tif (provider === \"openai\" && api === \"openai-responses\") {\n\t\treturn { provider, api };\n\t}\n\tif (provider === \"openai-codex\" && api === \"openai-codex-responses\") {\n\t\treturn { provider, api };\n\t}\n\treturn undefined;\n}\n\nexport function isOpenAiRemoteCompactionModel(model: Model<Api> | undefined): model is OpenAiRemoteCompactionModel {\n\tconst identity = parseOpenAiRemoteCompactionIdentity(model?.provider, model?.api);\n\tif (!identity || !model) return false;\n\treturn identity.api !== \"openai-codex-responses\" || isTrustedOpenAiCodexBaseUrl(model.baseUrl);\n}\n\nexport function matchesOpenAiRemoteCompactionIdentity(\n\tmodel: OpenAiRemoteCompactionModel,\n\tidentity: OpenAiRemoteCompactionIdentity,\n): boolean {\n\treturn model.provider === identity.provider && model.api === identity.api;\n}\n\nexport function openAiRemoteCompactionIdentity(model: OpenAiRemoteCompactionModel): OpenAiRemoteCompactionIdentity {\n\treturn model.api === \"openai-codex-responses\"\n\t\t? { provider: \"openai-codex\", api: \"openai-codex-responses\" }\n\t\t: { provider: \"openai\", api: \"openai-responses\" };\n}\n\nexport function openAiRemoteCompactionEndpointPath(model: OpenAiRemoteCompactionModel): string {\n\treturn model.api === \"openai-codex-responses\" ? \"codex/responses/compact\" : \"responses/compact\";\n}\n\nexport function openAiRemoteCompactionEndpointUrl(model: OpenAiRemoteCompactionModel): string {\n\tconst defaultBaseUrl =\n\t\tmodel.api === \"openai-codex-responses\" ? \"https://chatgpt.com/backend-api\" : \"https://api.openai.com/v1\";\n\tconst baseUrl = model.baseUrl || defaultBaseUrl;\n\treturn new URL(\n\t\topenAiRemoteCompactionEndpointPath(model),\n\t\tbaseUrl.endsWith(\"/\") ? baseUrl : `${baseUrl}/`,\n\t).toString();\n}\n\nfunction extractCodexAccountId(token: string): string | undefined {\n\ttry {\n\t\tconst parts = token.split(\".\");\n\t\tif (parts.length !== 3 || !parts[1]) return undefined;\n\t\tconst base64 = parts[1].replaceAll(\"-\", \"+\").replaceAll(\"_\", \"/\");\n\t\tconst payload: unknown = JSON.parse(atob(base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\")));\n\t\tif (typeof payload !== \"object\" || payload === null) return undefined;\n\t\tconst auth = Reflect.get(payload, \"https://api.openai.com/auth\");\n\t\tif (typeof auth !== \"object\" || auth === null) return undefined;\n\t\tconst accountId = Reflect.get(auth, \"chatgpt_account_id\");\n\t\treturn typeof accountId === \"string\" && accountId.length > 0 ? accountId : undefined;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport function createOpenAiRemoteCompactionHeaders(\n\tmodel: OpenAiRemoteCompactionModel,\n\tauth: RemoteCompactionAuth,\n\tsessionId?: string,\n): Headers | undefined {\n\tconst headers = new Headers(auth.headers);\n\theaders.set(\"content-type\", \"application/json\");\n\tif (model.api === \"openai-codex-responses\" && auth.apiKey) {\n\t\theaders.set(\"authorization\", `Bearer ${auth.apiKey}`);\n\t} else if (!headers.has(\"authorization\") && auth.apiKey) {\n\t\theaders.set(\"authorization\", `Bearer ${auth.apiKey}`);\n\t}\n\tif (!headers.has(\"authorization\")) return undefined;\n\n\tif (model.api === \"openai-codex-responses\") {\n\t\tconst accountId = auth.apiKey ? extractCodexAccountId(auth.apiKey) : undefined;\n\t\tif (accountId && !headers.has(\"chatgpt-account-id\")) {\n\t\t\theaders.set(\"chatgpt-account-id\", accountId);\n\t\t}\n\t\tif (sessionId) {\n\t\t\theaders.set(\"session_id\", sessionId);\n\t\t\theaders.set(\"session-id\", sessionId);\n\t\t\theaders.set(\"thread-id\", sessionId);\n\t\t\theaders.set(\"x-codex-installation-id\", OPENAI_CODEX_INSTALLATION_ID);\n\t\t\theaders.set(\"x-codex-window-id\", `${sessionId}:0`);\n\t\t}\n\t\theaders.set(\"originator\", \"senpi\");\n\t\theaders.set(\"user-agent\", \"senpi\");\n\t\theaders.set(\"OpenAI-Beta\", \"responses=experimental\");\n\t}\n\treturn headers;\n}\n"]}
@@ -0,0 +1,92 @@
1
+ import type { ServiceTier } from "../../types.ts";
2
+ import { type OpenAiRemoteCompactionIdentity } from "./openai-remote-model.ts";
3
+ export declare const OPENAI_REMOTE_COMPACTION_SCHEMA = "senpi.compaction.openai-remote.v1";
4
+ export type OpenAiInputText = {
5
+ type: "input_text";
6
+ text: string;
7
+ };
8
+ export type OpenAiInputImage = {
9
+ type: "input_image";
10
+ detail: "auto";
11
+ image_url: string;
12
+ };
13
+ export type OpenAiInputContent = OpenAiInputText | OpenAiInputImage;
14
+ export type OpenAiOutputText = {
15
+ type: "output_text";
16
+ text: string;
17
+ annotations: [];
18
+ };
19
+ export type OpenAiMessageInputItem = {
20
+ type?: "message";
21
+ id?: string;
22
+ role: "user" | "system" | "developer";
23
+ content: string | OpenAiInputContent[];
24
+ status?: "in_progress" | "completed" | "incomplete";
25
+ };
26
+ export type OpenAiAssistantMessageItem = {
27
+ type: "message";
28
+ id: string;
29
+ role: "assistant";
30
+ status: "completed";
31
+ content: OpenAiOutputText[];
32
+ phase?: "commentary" | "final_answer";
33
+ };
34
+ export type OpenAiFunctionCallItem = {
35
+ type: "function_call";
36
+ id?: string;
37
+ call_id: string;
38
+ name: string;
39
+ arguments: string;
40
+ };
41
+ export type OpenAiFunctionCallOutputItem = {
42
+ type: "function_call_output";
43
+ call_id: string;
44
+ output: string | OpenAiInputContent[];
45
+ };
46
+ export type OpenAiRemoteTransport = "websocket" | "compact-endpoint";
47
+ export type OpenAiCompactionItem = {
48
+ type: "compaction";
49
+ encrypted_content: string;
50
+ id?: string | null;
51
+ created_by?: string;
52
+ };
53
+ export type OpenAiContextCompactionItem = {
54
+ type: "context_compaction";
55
+ encrypted_content: string;
56
+ id?: string | null;
57
+ created_by?: string;
58
+ };
59
+ export type OpenAiContextCompactionTriggerItem = {
60
+ type: "context_compaction";
61
+ };
62
+ export type OpenAiProviderNativeItem = Record<string, unknown> & {
63
+ type: string;
64
+ };
65
+ export type OpenAiRemoteInputItem = OpenAiMessageInputItem | OpenAiAssistantMessageItem | OpenAiFunctionCallItem | OpenAiFunctionCallOutputItem | OpenAiCompactionItem | OpenAiContextCompactionItem | OpenAiProviderNativeItem;
66
+ export type OpenAiCompactBody = {
67
+ model: string;
68
+ input: OpenAiRemoteInputItem[];
69
+ instructions?: string;
70
+ prompt_cache_key?: string;
71
+ service_tier?: ServiceTier;
72
+ };
73
+ export type OpenAiRemoteCompactionDetails = OpenAiRemoteCompactionIdentity & {
74
+ schema: typeof OPENAI_REMOTE_COMPACTION_SCHEMA;
75
+ mode: "openai-remote";
76
+ transport: OpenAiRemoteTransport;
77
+ modelId: string;
78
+ responseId: string;
79
+ createdAt: number;
80
+ requestInputItemCount: number;
81
+ retainedInputItemCount: number;
82
+ replacementInput: OpenAiRemoteInputItem[];
83
+ usage?: Record<string, unknown>;
84
+ };
85
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
86
+ export declare function getOpenAiRemoteCompactionDetails(value: unknown): OpenAiRemoteCompactionDetails | undefined;
87
+ export declare function isOpenAiCompactionItem(item: OpenAiRemoteInputItem): item is OpenAiCompactionItem;
88
+ export declare function isOpenAiContextCompactionItem(item: OpenAiRemoteInputItem): item is OpenAiContextCompactionItem;
89
+ export declare function isOpenAiRemoteCompactionOutputItem(item: OpenAiRemoteInputItem): item is OpenAiCompactionItem | OpenAiContextCompactionItem;
90
+ export declare function isRetainedRemoteOutputItem(item: OpenAiRemoteInputItem): boolean;
91
+ export declare function isRetainedResponsesStreamInputItem(item: OpenAiRemoteInputItem): boolean;
92
+ //# sourceMappingURL=openai-remote-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-remote-schema.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/compaction/openai-remote-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { parseOpenAiRemoteCompactionIdentity } from "./openai-remote-model.js";
2
+ export const OPENAI_REMOTE_COMPACTION_SCHEMA = "senpi.compaction.openai-remote.v1";
3
+ export function isRecord(value) {
4
+ return typeof value === "object" && value !== null && !Array.isArray(value);
5
+ }
6
+ export function getOpenAiRemoteCompactionDetails(value) {
7
+ if (!isRecord(value))
8
+ return undefined;
9
+ if (value.schema !== OPENAI_REMOTE_COMPACTION_SCHEMA || value.mode !== "openai-remote")
10
+ return undefined;
11
+ const identity = parseOpenAiRemoteCompactionIdentity(value.provider, value.api);
12
+ if (!identity)
13
+ return undefined;
14
+ if (typeof value.modelId !== "string" || typeof value.responseId !== "string")
15
+ return undefined;
16
+ if (typeof value.createdAt !== "number")
17
+ return undefined;
18
+ if (typeof value.requestInputItemCount !== "number" || typeof value.retainedInputItemCount !== "number") {
19
+ return undefined;
20
+ }
21
+ if (!Array.isArray(value.replacementInput))
22
+ return undefined;
23
+ return {
24
+ schema: OPENAI_REMOTE_COMPACTION_SCHEMA,
25
+ mode: "openai-remote",
26
+ ...identity,
27
+ transport: value.transport === "websocket" ? "websocket" : "compact-endpoint",
28
+ modelId: value.modelId,
29
+ responseId: value.responseId,
30
+ createdAt: value.createdAt,
31
+ requestInputItemCount: value.requestInputItemCount,
32
+ retainedInputItemCount: value.retainedInputItemCount,
33
+ replacementInput: value.replacementInput.filter((item) => isRecord(item)),
34
+ ...(isRecord(value.usage) ? { usage: value.usage } : {}),
35
+ };
36
+ }
37
+ export function isOpenAiCompactionItem(item) {
38
+ return item.type === "compaction" && typeof item.encrypted_content === "string";
39
+ }
40
+ export function isOpenAiContextCompactionItem(item) {
41
+ return item.type === "context_compaction" && typeof item.encrypted_content === "string";
42
+ }
43
+ export function isOpenAiRemoteCompactionOutputItem(item) {
44
+ return isOpenAiCompactionItem(item) || isOpenAiContextCompactionItem(item);
45
+ }
46
+ export function isRetainedRemoteOutputItem(item) {
47
+ if (isOpenAiRemoteCompactionOutputItem(item))
48
+ return true;
49
+ return item.type === "message" && (item.role === "user" || item.role === "system" || item.role === "developer");
50
+ }
51
+ export function isRetainedResponsesStreamInputItem(item) {
52
+ if (item.type === "message")
53
+ return item.role === "user";
54
+ return "role" in item && item.role === "user";
55
+ }
56
+ //# sourceMappingURL=openai-remote-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-remote-schema.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/compaction/openai-remote-schema.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ServiceTier } from \"../../types.ts\";\nimport { type OpenAiRemoteCompactionIdentity, parseOpenAiRemoteCompactionIdentity } from \"./openai-remote-model.ts\";\n\nexport const OPENAI_REMOTE_COMPACTION_SCHEMA = \"senpi.compaction.openai-remote.v1\";\n\nexport type OpenAiInputText = { type: \"input_text\"; text: string };\nexport type OpenAiInputImage = { type: \"input_image\"; detail: \"auto\"; image_url: string };\nexport type OpenAiInputContent = OpenAiInputText | OpenAiInputImage;\nexport type OpenAiOutputText = { type: \"output_text\"; text: string; annotations: [] };\nexport type OpenAiMessageInputItem = {\n\ttype?: \"message\";\n\tid?: string;\n\trole: \"user\" | \"system\" | \"developer\";\n\tcontent: string | OpenAiInputContent[];\n\tstatus?: \"in_progress\" | \"completed\" | \"incomplete\";\n};\nexport type OpenAiAssistantMessageItem = {\n\ttype: \"message\";\n\tid: string;\n\trole: \"assistant\";\n\tstatus: \"completed\";\n\tcontent: OpenAiOutputText[];\n\tphase?: \"commentary\" | \"final_answer\";\n};\nexport type OpenAiFunctionCallItem = {\n\ttype: \"function_call\";\n\tid?: string;\n\tcall_id: string;\n\tname: string;\n\targuments: string;\n};\nexport type OpenAiFunctionCallOutputItem = {\n\ttype: \"function_call_output\";\n\tcall_id: string;\n\toutput: string | OpenAiInputContent[];\n};\nexport type OpenAiRemoteTransport = \"websocket\" | \"compact-endpoint\";\nexport type OpenAiCompactionItem = {\n\ttype: \"compaction\";\n\tencrypted_content: string;\n\tid?: string | null;\n\tcreated_by?: string;\n};\nexport type OpenAiContextCompactionItem = {\n\ttype: \"context_compaction\";\n\tencrypted_content: string;\n\tid?: string | null;\n\tcreated_by?: string;\n};\nexport type OpenAiContextCompactionTriggerItem = {\n\ttype: \"context_compaction\";\n};\nexport type OpenAiProviderNativeItem = Record<string, unknown> & { type: string };\nexport type OpenAiRemoteInputItem =\n\t| OpenAiMessageInputItem\n\t| OpenAiAssistantMessageItem\n\t| OpenAiFunctionCallItem\n\t| OpenAiFunctionCallOutputItem\n\t| OpenAiCompactionItem\n\t| OpenAiContextCompactionItem\n\t| OpenAiProviderNativeItem;\n\nexport type OpenAiCompactBody = {\n\tmodel: string;\n\tinput: OpenAiRemoteInputItem[];\n\tinstructions?: string;\n\tprompt_cache_key?: string;\n\tservice_tier?: ServiceTier;\n};\n\nexport type OpenAiRemoteCompactionDetails = OpenAiRemoteCompactionIdentity & {\n\tschema: typeof OPENAI_REMOTE_COMPACTION_SCHEMA;\n\tmode: \"openai-remote\";\n\ttransport: OpenAiRemoteTransport;\n\tmodelId: string;\n\tresponseId: string;\n\tcreatedAt: number;\n\trequestInputItemCount: number;\n\tretainedInputItemCount: number;\n\treplacementInput: OpenAiRemoteInputItem[];\n\tusage?: Record<string, unknown>;\n};\n\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function getOpenAiRemoteCompactionDetails(value: unknown): OpenAiRemoteCompactionDetails | undefined {\n\tif (!isRecord(value)) return undefined;\n\tif (value.schema !== OPENAI_REMOTE_COMPACTION_SCHEMA || value.mode !== \"openai-remote\") return undefined;\n\tconst identity = parseOpenAiRemoteCompactionIdentity(value.provider, value.api);\n\tif (!identity) return undefined;\n\tif (typeof value.modelId !== \"string\" || typeof value.responseId !== \"string\") return undefined;\n\tif (typeof value.createdAt !== \"number\") return undefined;\n\tif (typeof value.requestInputItemCount !== \"number\" || typeof value.retainedInputItemCount !== \"number\") {\n\t\treturn undefined;\n\t}\n\tif (!Array.isArray(value.replacementInput)) return undefined;\n\treturn {\n\t\tschema: OPENAI_REMOTE_COMPACTION_SCHEMA,\n\t\tmode: \"openai-remote\",\n\t\t...identity,\n\t\ttransport: value.transport === \"websocket\" ? \"websocket\" : \"compact-endpoint\",\n\t\tmodelId: value.modelId,\n\t\tresponseId: value.responseId,\n\t\tcreatedAt: value.createdAt,\n\t\trequestInputItemCount: value.requestInputItemCount,\n\t\tretainedInputItemCount: value.retainedInputItemCount,\n\t\treplacementInput: value.replacementInput.filter((item): item is OpenAiRemoteInputItem => isRecord(item)),\n\t\t...(isRecord(value.usage) ? { usage: value.usage } : {}),\n\t};\n}\n\nexport function isOpenAiCompactionItem(item: OpenAiRemoteInputItem): item is OpenAiCompactionItem {\n\treturn item.type === \"compaction\" && typeof item.encrypted_content === \"string\";\n}\n\nexport function isOpenAiContextCompactionItem(item: OpenAiRemoteInputItem): item is OpenAiContextCompactionItem {\n\treturn item.type === \"context_compaction\" && typeof item.encrypted_content === \"string\";\n}\n\nexport function isOpenAiRemoteCompactionOutputItem(\n\titem: OpenAiRemoteInputItem,\n): item is OpenAiCompactionItem | OpenAiContextCompactionItem {\n\treturn isOpenAiCompactionItem(item) || isOpenAiContextCompactionItem(item);\n}\n\nexport function isRetainedRemoteOutputItem(item: OpenAiRemoteInputItem): boolean {\n\tif (isOpenAiRemoteCompactionOutputItem(item)) return true;\n\treturn item.type === \"message\" && (item.role === \"user\" || item.role === \"system\" || item.role === \"developer\");\n}\n\nexport function isRetainedResponsesStreamInputItem(item: OpenAiRemoteInputItem): boolean {\n\tif (item.type === \"message\") return item.role === \"user\";\n\treturn \"role\" in item && item.role === \"user\";\n}\n"]}
@@ -1,89 +1,13 @@
1
+ import type { AgentMessage } from "@earendil-works/pi-agent-core";
1
2
  import type { Api, AssistantMessage, Context, Model, SimpleStreamOptions } from "@earendil-works/pi-ai";
2
3
  import type { CompactionResult } from "../../../compaction/index.ts";
3
4
  import type { SessionEntry } from "../../../session-manager.ts";
4
5
  import type { ServiceTier, SessionBeforeCompactEvent } from "../../types.ts";
5
- export declare const OPENAI_REMOTE_COMPACTION_SCHEMA = "senpi.compaction.openai-remote.v1";
6
+ import type { OpenAiCompactBody, OpenAiRemoteCompactionDetails, OpenAiRemoteInputItem, OpenAiRemoteTransport } from "./openai-remote-convert.ts";
7
+ import { type OpenAiRemoteCompactionModel } from "./openai-remote-model.ts";
8
+ export type { OpenAiRemoteCompactionDetails, OpenAiRemoteInputItem, } from "./openai-remote-convert.ts";
9
+ export { getOpenAiRemoteCompactionDetails, OPENAI_REMOTE_COMPACTION_SCHEMA } from "./openai-remote-convert.ts";
6
10
  export declare const SENPI_COMPACTION_EVENT = "senpi:compaction";
7
- type OpenAiInputText = {
8
- type: "input_text";
9
- text: string;
10
- };
11
- type OpenAiInputImage = {
12
- type: "input_image";
13
- detail: "auto";
14
- image_url: string;
15
- };
16
- type OpenAiInputContent = OpenAiInputText | OpenAiInputImage;
17
- type OpenAiOutputText = {
18
- type: "output_text";
19
- text: string;
20
- annotations: [];
21
- };
22
- type OpenAiMessageInputItem = {
23
- type?: "message";
24
- id?: string;
25
- role: "user" | "system" | "developer";
26
- content: string | OpenAiInputContent[];
27
- status?: "in_progress" | "completed" | "incomplete";
28
- };
29
- type OpenAiAssistantMessageItem = {
30
- type: "message";
31
- id: string;
32
- role: "assistant";
33
- status: "completed";
34
- content: OpenAiOutputText[];
35
- phase?: "commentary" | "final_answer";
36
- };
37
- type OpenAiFunctionCallItem = {
38
- type: "function_call";
39
- id?: string;
40
- call_id: string;
41
- name: string;
42
- arguments: string;
43
- };
44
- type OpenAiFunctionCallOutputItem = {
45
- type: "function_call_output";
46
- call_id: string;
47
- output: string;
48
- };
49
- type OpenAiRemoteTransport = "websocket" | "compact-endpoint";
50
- type OpenAiCompactionItem = {
51
- type: "compaction";
52
- encrypted_content: string;
53
- id?: string | null;
54
- created_by?: string;
55
- };
56
- type OpenAiContextCompactionItem = {
57
- type: "context_compaction";
58
- encrypted_content: string;
59
- id?: string | null;
60
- created_by?: string;
61
- };
62
- type OpenAiProviderNativeItem = Record<string, unknown> & {
63
- type: string;
64
- };
65
- export type OpenAiRemoteInputItem = OpenAiMessageInputItem | OpenAiAssistantMessageItem | OpenAiFunctionCallItem | OpenAiFunctionCallOutputItem | OpenAiCompactionItem | OpenAiContextCompactionItem | OpenAiProviderNativeItem;
66
- type OpenAiCompactBody = {
67
- model: string;
68
- input: OpenAiRemoteInputItem[];
69
- instructions?: string;
70
- prompt_cache_key?: string;
71
- service_tier?: ServiceTier;
72
- };
73
- export type OpenAiRemoteCompactionDetails = {
74
- schema: typeof OPENAI_REMOTE_COMPACTION_SCHEMA;
75
- mode: "openai-remote";
76
- provider: "openai";
77
- api: "openai-responses";
78
- transport: OpenAiRemoteTransport;
79
- modelId: string;
80
- responseId: string;
81
- createdAt: number;
82
- requestInputItemCount: number;
83
- retainedInputItemCount: number;
84
- replacementInput: OpenAiRemoteInputItem[];
85
- usage?: Record<string, unknown>;
86
- };
87
11
  export type OpenAiRemoteCompactionRequest = {
88
12
  body: OpenAiCompactBody;
89
13
  inputItemCount: number;
@@ -164,7 +88,6 @@ type OpenAiRemoteCompactionEvent = {
164
88
  inputItemCount: number;
165
89
  };
166
90
  type EmitCompactionEvent = (event: OpenAiRemoteCompactionEvent) => void;
167
- export declare function getOpenAiRemoteCompactionDetails(value: unknown): OpenAiRemoteCompactionDetails | undefined;
168
91
  export declare function createOpenAiRemoteCompactionRequest(options: {
169
92
  model: Model<Api> | undefined;
170
93
  systemPrompt: string;
@@ -174,7 +97,7 @@ export declare function createOpenAiRemoteCompactionRequest(options: {
174
97
  serviceTier?: ServiceTier;
175
98
  }): OpenAiRemoteCompactionRequest | undefined;
176
99
  export declare function buildOpenAiRemoteCompactionResult(options: {
177
- model: Model<"openai-responses">;
100
+ model: OpenAiRemoteCompactionModel;
178
101
  firstKeptEntryId: string;
179
102
  tokensBefore: number;
180
103
  requestInputItemCount: number;
@@ -193,6 +116,6 @@ export declare function runOpenAiRemoteCompaction(ctx: OpenAiRemoteCompactionCon
193
116
  export declare function rewriteOpenAiPayloadWithRemoteCompaction(payload: unknown, options: {
194
117
  model: Model<Api> | undefined;
195
118
  branchEntries: SessionEntry[];
119
+ pendingMessages?: AgentMessage[];
196
120
  }, emit?: EmitCompactionEvent): unknown | undefined;
197
- export {};
198
121
  //# sourceMappingURL=openai-remote.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai-remote.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/compaction/openai-remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-remote.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/compaction/openai-remote.ts"],"names":[],"mappings":"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"}