@shivaedev/agent-codex 0.1.0 → 0.3.0

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 (188) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +47 -1
  3. package/dist/adapters/Request.d.ts +4 -0
  4. package/dist/adapters/Request.d.ts.map +1 -0
  5. package/dist/adapters/Request.js +2 -0
  6. package/dist/adapters/Request.js.map +1 -0
  7. package/dist/adapters/UserMessageItem.d.ts +22 -0
  8. package/dist/adapters/UserMessageItem.d.ts.map +1 -0
  9. package/dist/adapters/UserMessageItem.js +24 -0
  10. package/dist/adapters/UserMessageItem.js.map +1 -0
  11. package/dist/adapters/attributed.d.ts +6 -0
  12. package/dist/adapters/attributed.d.ts.map +1 -0
  13. package/dist/adapters/attributed.js +17 -0
  14. package/dist/adapters/attributed.js.map +1 -0
  15. package/dist/adapters/backend.d.ts +5 -0
  16. package/dist/adapters/backend.d.ts.map +1 -0
  17. package/dist/adapters/backend.js +23 -0
  18. package/dist/adapters/backend.js.map +1 -0
  19. package/dist/adapters/census.d.ts +4 -0
  20. package/dist/adapters/census.d.ts.map +1 -0
  21. package/dist/adapters/census.js +10 -0
  22. package/dist/adapters/census.js.map +1 -0
  23. package/dist/adapters/codexFailure.d.ts +3 -0
  24. package/dist/adapters/codexFailure.d.ts.map +1 -0
  25. package/dist/adapters/codexFailure.js +5 -0
  26. package/dist/adapters/codexFailure.js.map +1 -0
  27. package/dist/adapters/configuredBackend.d.ts +6 -0
  28. package/dist/adapters/configuredBackend.d.ts.map +1 -0
  29. package/dist/adapters/configuredBackend.js +3 -0
  30. package/dist/adapters/configuredBackend.js.map +1 -0
  31. package/dist/adapters/connect.d.ts +11 -0
  32. package/dist/adapters/connect.d.ts.map +1 -0
  33. package/dist/adapters/connect.js +100 -0
  34. package/dist/adapters/connect.js.map +1 -0
  35. package/dist/adapters/delivery.d.ts +18 -0
  36. package/dist/adapters/delivery.d.ts.map +1 -0
  37. package/dist/adapters/delivery.js +115 -0
  38. package/dist/adapters/delivery.js.map +1 -0
  39. package/dist/adapters/deliveryState.d.ts +31 -0
  40. package/dist/adapters/deliveryState.d.ts.map +1 -0
  41. package/dist/adapters/deliveryState.js +29 -0
  42. package/dist/adapters/deliveryState.js.map +1 -0
  43. package/dist/adapters/engine.d.ts +8 -0
  44. package/dist/adapters/engine.d.ts.map +1 -0
  45. package/dist/adapters/engine.js +9 -0
  46. package/dist/adapters/engine.js.map +1 -0
  47. package/dist/adapters/features.d.ts +726 -0
  48. package/dist/adapters/features.d.ts.map +1 -0
  49. package/dist/adapters/features.js +46 -0
  50. package/dist/adapters/features.js.map +1 -0
  51. package/dist/adapters/handshake.d.ts +5 -0
  52. package/dist/adapters/handshake.d.ts.map +1 -0
  53. package/dist/adapters/handshake.js +30 -0
  54. package/dist/adapters/handshake.js.map +1 -0
  55. package/dist/adapters/initializeCodex.d.ts +770 -0
  56. package/dist/adapters/initializeCodex.d.ts.map +1 -0
  57. package/dist/adapters/initializeCodex.js +8 -0
  58. package/dist/adapters/initializeCodex.js.map +1 -0
  59. package/dist/adapters/initializeEngine.d.ts +774 -0
  60. package/dist/adapters/initializeEngine.d.ts.map +1 -0
  61. package/dist/adapters/initializeEngine.js +63 -0
  62. package/dist/adapters/initializeEngine.js.map +1 -0
  63. package/dist/adapters/items.d.ts +7 -0
  64. package/dist/adapters/items.d.ts.map +1 -0
  65. package/dist/adapters/items.js +105 -0
  66. package/dist/adapters/items.js.map +1 -0
  67. package/dist/adapters/mapping.d.ts +9 -0
  68. package/dist/adapters/mapping.d.ts.map +1 -0
  69. package/dist/adapters/mapping.js +57 -0
  70. package/dist/adapters/mapping.js.map +1 -0
  71. package/dist/adapters/process.d.ts +15 -0
  72. package/dist/adapters/process.d.ts.map +1 -0
  73. package/dist/adapters/process.js +55 -0
  74. package/dist/adapters/process.js.map +1 -0
  75. package/dist/adapters/protocol.d.ts +178 -0
  76. package/dist/adapters/protocol.d.ts.map +1 -0
  77. package/dist/adapters/protocol.js +97 -0
  78. package/dist/adapters/protocol.js.map +1 -0
  79. package/dist/adapters/protocolItems.d.ts +89 -0
  80. package/dist/adapters/protocolItems.d.ts.map +1 -0
  81. package/dist/adapters/protocolItems.js +100 -0
  82. package/dist/adapters/protocolItems.js.map +1 -0
  83. package/dist/adapters/rateLimits.d.ts +7 -0
  84. package/dist/adapters/rateLimits.d.ts.map +1 -0
  85. package/dist/adapters/rateLimits.js +40 -0
  86. package/dist/adapters/rateLimits.js.map +1 -0
  87. package/dist/adapters/reads.d.ts +324 -0
  88. package/dist/adapters/reads.d.ts.map +1 -0
  89. package/dist/adapters/reads.js +83 -0
  90. package/dist/adapters/reads.js.map +1 -0
  91. package/dist/adapters/recovery.d.ts +324 -0
  92. package/dist/adapters/recovery.d.ts.map +1 -0
  93. package/dist/adapters/recovery.js +39 -0
  94. package/dist/adapters/recovery.js.map +1 -0
  95. package/dist/adapters/residualApproval.d.ts +4 -0
  96. package/dist/adapters/residualApproval.d.ts.map +1 -0
  97. package/dist/adapters/residualApproval.js +21 -0
  98. package/dist/adapters/residualApproval.js.map +1 -0
  99. package/dist/adapters/rpc.d.ts +8 -0
  100. package/dist/adapters/rpc.d.ts.map +1 -0
  101. package/dist/adapters/rpc.js +2 -0
  102. package/dist/adapters/rpc.js.map +1 -0
  103. package/dist/adapters/rpcProtocol.d.ts +11 -0
  104. package/dist/adapters/rpcProtocol.d.ts.map +1 -0
  105. package/dist/adapters/rpcProtocol.js +29 -0
  106. package/dist/adapters/rpcProtocol.js.map +1 -0
  107. package/dist/adapters/server.d.ts +30 -0
  108. package/dist/adapters/server.d.ts.map +1 -0
  109. package/dist/adapters/server.js +68 -0
  110. package/dist/adapters/server.js.map +1 -0
  111. package/dist/adapters/session.d.ts +312 -0
  112. package/dist/adapters/session.d.ts.map +1 -0
  113. package/dist/adapters/session.js +45 -0
  114. package/dist/adapters/session.js.map +1 -0
  115. package/dist/adapters/subagentItems.d.ts +16 -0
  116. package/dist/adapters/subagentItems.d.ts.map +1 -0
  117. package/dist/adapters/subagentItems.js +58 -0
  118. package/dist/adapters/subagentItems.js.map +1 -0
  119. package/dist/adapters/tellCliVersionOnce.d.ts +5 -0
  120. package/dist/adapters/tellCliVersionOnce.d.ts.map +1 -0
  121. package/dist/adapters/tellCliVersionOnce.js +13 -0
  122. package/dist/adapters/tellCliVersionOnce.js.map +1 -0
  123. package/dist/adapters/threadClaims.d.ts +8 -0
  124. package/dist/adapters/threadClaims.d.ts.map +1 -0
  125. package/dist/adapters/threadClaims.js +20 -0
  126. package/dist/adapters/threadClaims.js.map +1 -0
  127. package/dist/adapters/threadSweep.d.ts +15 -0
  128. package/dist/adapters/threadSweep.d.ts.map +1 -0
  129. package/dist/adapters/threadSweep.js +57 -0
  130. package/dist/adapters/threadSweep.js.map +1 -0
  131. package/dist/adapters/threadTree.d.ts +8 -0
  132. package/dist/adapters/threadTree.d.ts.map +1 -0
  133. package/dist/adapters/threadTree.js +125 -0
  134. package/dist/adapters/threadTree.js.map +1 -0
  135. package/dist/adapters/turnRequests.d.ts +13 -0
  136. package/dist/adapters/turnRequests.d.ts.map +1 -0
  137. package/dist/adapters/turnRequests.js +27 -0
  138. package/dist/adapters/turnRequests.js.map +1 -0
  139. package/dist/adapters/userMessageEvent.d.ts +7 -0
  140. package/dist/adapters/userMessageEvent.d.ts.map +1 -0
  141. package/dist/adapters/userMessageEvent.js +19 -0
  142. package/dist/adapters/userMessageEvent.js.map +1 -0
  143. package/dist/codex.d.ts +10 -1
  144. package/dist/codex.d.ts.map +1 -1
  145. package/dist/codex.js +15 -1
  146. package/dist/codex.js.map +1 -1
  147. package/dist/config.d.ts +24 -0
  148. package/dist/config.d.ts.map +1 -0
  149. package/dist/config.js +4 -0
  150. package/dist/config.js.map +1 -0
  151. package/package.json +23 -6
  152. package/src/adapters/Request.ts +3 -0
  153. package/src/adapters/UserMessageItem.ts +28 -0
  154. package/src/adapters/attributed.ts +21 -0
  155. package/src/adapters/backend.ts +29 -0
  156. package/src/adapters/census.ts +17 -0
  157. package/src/adapters/codexFailure.ts +4 -0
  158. package/src/adapters/configuredBackend.ts +6 -0
  159. package/src/adapters/connect.ts +129 -0
  160. package/src/adapters/delivery.ts +137 -0
  161. package/src/adapters/deliveryState.ts +43 -0
  162. package/src/adapters/engine.ts +11 -0
  163. package/src/adapters/features.ts +62 -0
  164. package/src/adapters/handshake.ts +35 -0
  165. package/src/adapters/initializeCodex.ts +8 -0
  166. package/src/adapters/initializeEngine.ts +75 -0
  167. package/src/adapters/items.ts +133 -0
  168. package/src/adapters/mapping.ts +66 -0
  169. package/src/adapters/process.ts +69 -0
  170. package/src/adapters/protocol.ts +125 -0
  171. package/src/adapters/protocolItems.ts +113 -0
  172. package/src/adapters/rateLimits.ts +55 -0
  173. package/src/adapters/reads.ts +93 -0
  174. package/src/adapters/recovery.ts +44 -0
  175. package/src/adapters/residualApproval.ts +23 -0
  176. package/src/adapters/rpc.ts +8 -0
  177. package/src/adapters/rpcProtocol.ts +28 -0
  178. package/src/adapters/server.ts +96 -0
  179. package/src/adapters/session.ts +71 -0
  180. package/src/adapters/subagentItems.ts +73 -0
  181. package/src/adapters/tellCliVersionOnce.ts +20 -0
  182. package/src/adapters/threadClaims.ts +26 -0
  183. package/src/adapters/threadSweep.ts +79 -0
  184. package/src/adapters/threadTree.ts +149 -0
  185. package/src/adapters/turnRequests.ts +45 -0
  186. package/src/adapters/userMessageEvent.ts +22 -0
  187. package/src/codex.ts +15 -1
  188. package/src/config.ts +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializeEngine.d.ts","sourceRoot":"","sources":["../../src/adapters/initializeEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,eAAO,MAAM,gBAAgB,8CAA4F,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAyD/G,OAAO;;;;;;;mBACX,MAAM,UAAU,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAhBf,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;KAAE,YAAY;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;mLAqBjI,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { Effect, Semaphore } from "effect";
2
+ import { Rejected, UnknownAcceptance } from "@shivaedev/agent/failures.ts";
3
+ import { features } from "#adapters/features.ts";
4
+ import { observe, readRequest } from "#adapters/reads.ts";
5
+ import { receiptOf, recovery } from "#adapters/recovery.ts";
6
+ import { AppServer, openServer } from "#adapters/server.ts";
7
+ import { openSession } from "#adapters/session.ts";
8
+ export const initializeEngine = Effect.fn("Codex.initializeEngine")(function* (config, spawn) {
9
+ const server = yield* openServer(config, spawn);
10
+ const sessions = new Map();
11
+ const { operations, refusals, reconcile } = yield* recovery(sessions).pipe(Effect.provideService(AppServer, server));
12
+ const submissionGate = yield* Semaphore.make(1);
13
+ const submit = Effect.fn("Codex.submit")(function* (request, reference) {
14
+ if (operations.has(request.operationId)) {
15
+ const result = yield* reconcile(request.operationId);
16
+ if (result.type === "accepted") {
17
+ return result.receipt;
18
+ }
19
+ if (result.type === "not-accepted") {
20
+ return yield* new Rejected({ backend: "codex", message: result.evidence });
21
+ }
22
+ return yield* new UnknownAcceptance({
23
+ backend: "codex",
24
+ message: result.reason,
25
+ operationId: request.operationId,
26
+ });
27
+ }
28
+ if (reference !== undefined && (reference.version !== 1 || server.claims.isNode(reference.value))) {
29
+ return yield* new Rejected({ backend: "codex", message: "Child threads are observed passively and cannot be resumed" });
30
+ }
31
+ operations.set(request.operationId, reference?.value);
32
+ const session = yield* openSession(config, request, reference?.value, (operationId, threadId) => {
33
+ operations.set(operationId, threadId);
34
+ }).pipe(Effect.provideService(AppServer, server));
35
+ operations.set(request.operationId, session.threadId);
36
+ sessions.set(session.threadId, session);
37
+ yield* Effect.addFinalizer(() => Effect.sync(() => {
38
+ if (sessions.get(session.threadId) === session) {
39
+ sessions.delete(session.threadId);
40
+ }
41
+ }));
42
+ const turnId = yield* session.driver.start(request.input, request.operationId);
43
+ return receiptOf(request.operationId, session.threadId, turnId);
44
+ });
45
+ function start(request, session) {
46
+ return Semaphore.withPermit(submissionGate)(submit(request, session)).pipe(Effect.tapError((error) => Effect.sync(() => {
47
+ if (error._tag === "Rejected") {
48
+ refusals.set(request.operationId, error.message);
49
+ }
50
+ })));
51
+ }
52
+ return {
53
+ claims: server.claims,
54
+ exited: server.exited,
55
+ features: yield* features(sessions, start).pipe(Effect.provideService(AppServer, server)),
56
+ inspect: (receipt) => observe(receipt).pipe(Effect.provideService(AppServer, server)),
57
+ read: (method, params) => readRequest(method, params).pipe(Effect.provideService(AppServer, server)),
58
+ reconcile,
59
+ sessions,
60
+ start,
61
+ };
62
+ });
63
+ //# sourceMappingURL=initializeEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializeEngine.js","sourceRoot":"","sources":["../../src/adapters/initializeEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Raw as RawSchema } from "@shivaedev/agent/eventData.ts";
2
+ import type { RunEvent as AgentEvent } from "@shivaedev/agent/events.ts";
3
+ type RawPayload = typeof RawSchema.Type;
4
+ export declare const itemStarted: (raw: RawPayload, item: unknown) => AgentEvent[];
5
+ export declare const itemCompleted: (raw: RawPayload, item: unknown) => AgentEvent[];
6
+ export {};
7
+ //# sourceMappingURL=items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../src/adapters/items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEzE,KAAK,UAAU,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC;AAgIxC,eAAO,MAAM,WAAW,QAPV,UAAU,QAAQ,OAAO,KAAG,UAAU,EAOA,CAAC;AACrD,eAAO,MAAM,aAAa,QARZ,UAAU,QAAQ,OAAO,KAAG,UAAU,EAQI,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { Option, Schema } from "effect";
2
+ import { KnownItem } from "#adapters/protocolItems.ts";
3
+ import { userMessageEvent } from "#adapters/userMessageEvent.ts";
4
+ const decodeItem = Schema.decodeUnknownOption(KnownItem);
5
+ function toolIdentity(item) {
6
+ if (item.type === "mcpToolCall") {
7
+ return { name: `${item.server}: ${item.tool}`, providerName: `${item.server}/${item.tool}` };
8
+ }
9
+ return item.type === "dynamicToolCall" ? { name: item.tool } : { name: item.type };
10
+ }
11
+ function toolInput(item) {
12
+ switch (item.type) {
13
+ case "commandExecution":
14
+ return item.command;
15
+ case "dynamicToolCall":
16
+ return JSON.stringify(item.arguments);
17
+ case "fileChange":
18
+ return item.changes.map((change) => change.path).join("\n");
19
+ case "mcpToolCall":
20
+ return JSON.stringify(item.arguments);
21
+ case "webSearch":
22
+ return item.query;
23
+ default:
24
+ return "";
25
+ }
26
+ }
27
+ function isTool(item) {
28
+ return (item.type === "commandExecution"
29
+ || item.type === "dynamicToolCall"
30
+ || item.type === "fileChange"
31
+ || item.type === "mcpToolCall"
32
+ || item.type === "webSearch");
33
+ }
34
+ function commandOk(item) {
35
+ return item.status === "completed" && (item.exitCode ?? 0) === 0;
36
+ }
37
+ function dynamicOutcome(item) {
38
+ return {
39
+ ok: item.success ?? item.status === "completed",
40
+ output: (item.contentItems ?? []).map((part) => part.text ?? "").join("\n"),
41
+ };
42
+ }
43
+ function toolOutcome(item) {
44
+ switch (item.type) {
45
+ case "commandExecution":
46
+ return { ok: commandOk(item), output: item.aggregatedOutput ?? "" };
47
+ case "dynamicToolCall":
48
+ return dynamicOutcome(item);
49
+ case "fileChange":
50
+ return {
51
+ ok: item.status === "completed",
52
+ output: item.changes.map((change) => change.diff).join("\n"),
53
+ };
54
+ case "mcpToolCall":
55
+ return {
56
+ ok: item.status === "completed",
57
+ output: JSON.stringify(item.error ?? item.result ?? null),
58
+ };
59
+ case "webSearch":
60
+ return { ok: true, output: "" };
61
+ }
62
+ }
63
+ function reasoningText(item) {
64
+ return [...(item.summary ?? []), ...(item.content ?? [])].join("\n");
65
+ }
66
+ function knownStarted(raw, item) {
67
+ if (isTool(item)) {
68
+ return [
69
+ {
70
+ input: toolInput(item),
71
+ ...toolIdentity(item),
72
+ raw,
73
+ toolId: item.id,
74
+ type: "tool.started",
75
+ },
76
+ ];
77
+ }
78
+ return item.type === "agentMessage" || item.type === "reasoning" || item.type === "userMessage" ? [] : [{ raw, type: "raw" }];
79
+ }
80
+ function knownCompleted(raw, item) {
81
+ if (isTool(item)) {
82
+ return [{ ...toolOutcome(item), raw, toolId: item.id, type: "tool.completed" }];
83
+ }
84
+ switch (item.type) {
85
+ case "agentMessage":
86
+ return [{ parts: [{ text: item.text, type: "text" }], raw, role: "agent", type: "message" }];
87
+ case "userMessage":
88
+ return [userMessageEvent(item, raw)];
89
+ case "reasoning": {
90
+ const text = reasoningText(item);
91
+ return text.length === 0 ? [] : [{ raw, text, type: "thinking" }];
92
+ }
93
+ default:
94
+ return [{ raw, type: "raw" }];
95
+ }
96
+ }
97
+ function projectItem(project) {
98
+ return (raw, item) => Option.match(decodeItem(item), {
99
+ onNone: () => [{ raw, type: "raw" }],
100
+ onSome: (known) => project(raw, known),
101
+ });
102
+ }
103
+ export const itemStarted = projectItem(knownStarted);
104
+ export const itemCompleted = projectItem(knownCompleted);
105
+ //# sourceMappingURL=items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"items.js","sourceRoot":"","sources":["../../src/adapters/items.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { RunEvent } from "@shivaedev/agent/events.ts";
2
+ import type { RpcNotification } from "#adapters/rpc.ts";
3
+ export declare function rawOf(kind: string, payload: unknown): {
4
+ kind: string;
5
+ payload: string;
6
+ source: string;
7
+ };
8
+ export declare function toAgentEvents(notification: RpcNotification, model: string): RunEvent[];
9
+ //# sourceMappingURL=mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/adapters/mapping.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAU3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;;;;EAEnD;AAOD,wBAAgB,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CA4CtF"}
@@ -0,0 +1,57 @@
1
+ import { Option, Schema } from "effect";
2
+ import { itemCompleted, itemStarted } from "#adapters/items.ts";
3
+ import { ItemNotification, ModelReroutedNotification, ThreadStatusNotification, TokenUsageNotification, TurnNotification, } from "#adapters/protocol.ts";
4
+ import { RATE_LIMITS_METHOD, rateLimitEvents } from "#adapters/rateLimits.ts";
5
+ export function rawOf(kind, payload) {
6
+ return { kind, payload: JSON.stringify(payload), source: "codex" };
7
+ }
8
+ function mapped(schema, notification, project) {
9
+ return Option.match(Schema.decodeUnknownOption(schema)(notification.params), {
10
+ onNone: () => [{ raw: rawOf(notification.method, notification.params), type: "raw" }],
11
+ onSome: project,
12
+ });
13
+ }
14
+ export function toAgentEvents(notification, model) {
15
+ const { method, params } = notification;
16
+ const raw = rawOf(method, params);
17
+ switch (method) {
18
+ case RATE_LIMITS_METHOD:
19
+ return rateLimitEvents(raw, params);
20
+ case "item/started":
21
+ return mapped(ItemNotification, notification, ({ item }) => itemStarted(raw, item));
22
+ case "item/completed":
23
+ return mapped(ItemNotification, notification, ({ item }) => itemCompleted(raw, item));
24
+ case "turn/started":
25
+ return mapped(TurnNotification, notification, () => [{ raw, state: "running", type: "execution" }]);
26
+ case "turn/completed":
27
+ return mapped(TurnNotification, notification, ({ turn }) => [
28
+ { raw, state: turn.status === "inProgress" ? "running" : turn.status, type: "execution" },
29
+ ]);
30
+ case "thread/status/changed":
31
+ return mapped(ThreadStatusNotification, notification, ({ status }) => status.type === "active"
32
+ ? [{ raw, state: status.activeFlags.length > 0 ? "awaiting-input" : "running", type: "execution" }]
33
+ : [{ raw, type: "raw" }]);
34
+ case "thread/tokenUsage/updated":
35
+ return mapped(TokenUsageNotification, notification, ({ tokenUsage }) => {
36
+ const tokens = tokenUsage.total;
37
+ return [
38
+ {
39
+ cacheReadTokens: tokens.cachedInputTokens,
40
+ inputTokens: tokens.inputTokens,
41
+ outputTokens: tokens.outputTokens,
42
+ scope: "cumulative",
43
+ type: "usage",
44
+ unit: "session",
45
+ ...(model.length === 0 ? {} : { model }),
46
+ ...(tokens.cacheWriteInputTokens === undefined ? {} : { cacheWriteTokens: tokens.cacheWriteInputTokens }),
47
+ raw,
48
+ },
49
+ ];
50
+ });
51
+ case "model/rerouted":
52
+ return mapped(ModelReroutedNotification, notification, ({ toModel, reason }) => [{ model: toModel, raw, reason, type: "model.changed" }]);
53
+ default:
54
+ return [{ raw, type: "raw" }];
55
+ }
56
+ }
57
+ //# sourceMappingURL=mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/adapters/mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface LineProcess {
2
+ readonly kill: () => void;
3
+ readonly onExit: (listener: (code: number | null) => void) => void;
4
+ readonly onLine: (listener: (line: string) => void) => void;
5
+ readonly onStderr: (listener: (text: string) => void) => void;
6
+ readonly write: (line: string) => void;
7
+ }
8
+ interface SpawnLineProcessOptions {
9
+ readonly args: readonly string[];
10
+ readonly command: string;
11
+ readonly cwd: string;
12
+ }
13
+ export declare function spawnLineProcess(options: SpawnLineProcessOptions): LineProcess;
14
+ export {};
15
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/adapters/process.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,UAAU,uBAAuB;IAChC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,WAAW,CAmD9E"}
@@ -0,0 +1,55 @@
1
+ import { spawn } from "node:child_process";
2
+ // Codex app-server uses newline-delimited JSON over stdio.
3
+ export function spawnLineProcess(options) {
4
+ const child = spawn(options.command, [...options.args], {
5
+ cwd: options.cwd,
6
+ stdio: ["pipe", "pipe", "pipe"],
7
+ });
8
+ let lineListener = null;
9
+ let stderrListener = null;
10
+ const exitListeners = [];
11
+ function emitExit(code) {
12
+ for (const listener of exitListeners) {
13
+ listener(code);
14
+ }
15
+ }
16
+ let buffer = "";
17
+ child.stdout.setEncoding("utf8");
18
+ child.stdout.on("data", (chunk) => {
19
+ buffer += chunk;
20
+ let newline = buffer.indexOf("\n");
21
+ while (newline >= 0) {
22
+ const line = buffer.slice(0, newline).trim();
23
+ buffer = buffer.slice(newline + 1);
24
+ if (line.length > 0) {
25
+ lineListener?.(line);
26
+ }
27
+ newline = buffer.indexOf("\n");
28
+ }
29
+ });
30
+ child.stderr.setEncoding("utf8");
31
+ child.stderr.on("data", (chunk) => stderrListener?.(chunk));
32
+ child.on("exit", (code) => emitExit(code));
33
+ child.on("error", () => emitExit(null));
34
+ child.stdin.on("error", () => emitExit(null));
35
+ return {
36
+ // Closing stdin lets app-server exit cleanly; SIGTERM handles a child that remains alive.
37
+ kill: () => {
38
+ child.stdin.end();
39
+ child.kill("SIGTERM");
40
+ },
41
+ onExit: (listener) => {
42
+ exitListeners.push(listener);
43
+ },
44
+ onLine: (listener) => {
45
+ lineListener = listener;
46
+ },
47
+ onStderr: (listener) => {
48
+ stderrListener = listener;
49
+ },
50
+ write: (line) => {
51
+ child.stdin.write(`${line}\n`);
52
+ },
53
+ };
54
+ }
55
+ //# sourceMappingURL=process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/adapters/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAgB3C,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE;QACvD,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAC/B,CAAC,CAAC;IACH,IAAI,YAAY,GAAoC,IAAI,CAAC;IACzD,IAAI,cAAc,GAAoC,IAAI,CAAC;IAC3D,MAAM,aAAa,GAAsC,EAAE,CAAC;IAC5D,SAAS,QAAQ,CAAC,IAAmB;QACpC,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACF,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC;QAChB,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,OAAO,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACF,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,OAAO;QACN,0FAA0F;QAC1F,IAAI,EAAE,GAAG,EAAE;YACV,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;YACpB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;YACpB,YAAY,GAAG,QAAQ,CAAC;QACzB,CAAC;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACtB,cAAc,GAAG,QAAQ,CAAC;QAC3B,CAAC;QACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QAChC,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,178 @@
1
+ import { Schema } from "effect";
2
+ export declare const PINNED_CLI_VERSION = "0.154.0-alpha.6.2";
3
+ export declare const InitializeResponse: Schema.Struct<{
4
+ readonly userAgent: Schema.String;
5
+ }>;
6
+ export declare const ThreadResponse: Schema.Struct<{
7
+ readonly thread: Schema.Struct<{
8
+ readonly id: Schema.String;
9
+ }>;
10
+ }>;
11
+ export declare const TurnStatus: Schema.Literals<readonly ["completed", "interrupted", "failed", "inProgress"]>;
12
+ export declare const TurnError: Schema.Struct<{
13
+ readonly message: Schema.String;
14
+ }>;
15
+ export declare const Turn: Schema.Struct<{
16
+ readonly durationMs: Schema.optional<Schema.NullOr<Schema.Number>>;
17
+ readonly error: Schema.optional<Schema.NullOr<Schema.Struct<{
18
+ readonly message: Schema.String;
19
+ }>>>;
20
+ readonly id: Schema.String;
21
+ readonly status: Schema.Literals<readonly ["completed", "interrupted", "failed", "inProgress"]>;
22
+ }>;
23
+ export declare const TurnResponse: Schema.Struct<{
24
+ readonly turn: Schema.Struct<{
25
+ readonly durationMs: Schema.optional<Schema.NullOr<Schema.Number>>;
26
+ readonly error: Schema.optional<Schema.NullOr<Schema.Struct<{
27
+ readonly message: Schema.String;
28
+ }>>>;
29
+ readonly id: Schema.String;
30
+ readonly status: Schema.Literals<readonly ["completed", "interrupted", "failed", "inProgress"]>;
31
+ }>;
32
+ }>;
33
+ export declare const ModelListResponse: Schema.Struct<{
34
+ readonly data: Schema.$Array<Schema.Struct<{
35
+ readonly defaultReasoningEffort: Schema.NonEmptyString;
36
+ readonly displayName: Schema.String;
37
+ readonly isDefault: Schema.Boolean;
38
+ readonly model: Schema.String;
39
+ readonly supportedReasoningEfforts: Schema.$Array<Schema.Struct<{
40
+ readonly reasoningEffort: Schema.NonEmptyString;
41
+ }>>;
42
+ }>>;
43
+ }>;
44
+ export declare const DynamicToolCallParams: Schema.Struct<{
45
+ readonly arguments: Schema.Unknown;
46
+ readonly callId: Schema.String;
47
+ readonly threadId: Schema.String;
48
+ readonly tool: Schema.String;
49
+ }>;
50
+ export declare const ItemNotification: Schema.Struct<{
51
+ readonly item: Schema.Unknown;
52
+ readonly threadId: Schema.String;
53
+ readonly turnId: Schema.String;
54
+ }>;
55
+ export declare const TurnNotification: Schema.Struct<{
56
+ readonly threadId: Schema.String;
57
+ readonly turn: Schema.Struct<{
58
+ readonly durationMs: Schema.optional<Schema.NullOr<Schema.Number>>;
59
+ readonly error: Schema.optional<Schema.NullOr<Schema.Struct<{
60
+ readonly message: Schema.String;
61
+ }>>>;
62
+ readonly id: Schema.String;
63
+ readonly status: Schema.Literals<readonly ["completed", "interrupted", "failed", "inProgress"]>;
64
+ }>;
65
+ }>;
66
+ export declare const TokenUsageNotification: Schema.Struct<{
67
+ readonly threadId: Schema.String;
68
+ readonly tokenUsage: Schema.Struct<{
69
+ readonly last: Schema.Struct<{
70
+ readonly cachedInputTokens: Schema.Number;
71
+ readonly cacheWriteInputTokens: Schema.optional<Schema.Number>;
72
+ readonly inputTokens: Schema.Number;
73
+ readonly outputTokens: Schema.Number;
74
+ }>;
75
+ readonly total: Schema.Struct<{
76
+ readonly cachedInputTokens: Schema.Number;
77
+ readonly cacheWriteInputTokens: Schema.optional<Schema.Number>;
78
+ readonly inputTokens: Schema.Number;
79
+ readonly outputTokens: Schema.Number;
80
+ }>;
81
+ }>;
82
+ readonly turnId: Schema.String;
83
+ }>;
84
+ export declare const ModelReroutedNotification: Schema.Struct<{
85
+ readonly fromModel: Schema.String;
86
+ readonly reason: Schema.String;
87
+ readonly threadId: Schema.String;
88
+ readonly toModel: Schema.String;
89
+ readonly turnId: Schema.String;
90
+ }>;
91
+ export declare const ThreadSettingsUpdatedNotification: Schema.Struct<{
92
+ readonly threadId: Schema.String;
93
+ readonly threadSettings: Schema.Struct<{
94
+ readonly model: Schema.String;
95
+ }>;
96
+ }>;
97
+ export declare const ThreadScoped: Schema.Struct<{
98
+ readonly threadId: Schema.String;
99
+ }>;
100
+ export declare const SpawnedThread: Schema.Struct<{
101
+ readonly thread: Schema.Struct<{
102
+ readonly id: Schema.String;
103
+ readonly source: Schema.Struct<{
104
+ readonly subAgent: Schema.encodeKeys<Schema.Struct<{
105
+ readonly threadSpawn: Schema.encodeKeys<Schema.Struct<{
106
+ readonly agentNickname: Schema.optional<Schema.NullOr<Schema.String>>;
107
+ readonly agentPath: Schema.optional<Schema.NullOr<Schema.String>>;
108
+ readonly agentRole: Schema.optional<Schema.NullOr<Schema.String>>;
109
+ readonly parentThreadId: Schema.String;
110
+ }>, {
111
+ readonly agentNickname: "agent_nickname";
112
+ readonly agentPath: "agent_path";
113
+ readonly agentRole: "agent_role";
114
+ readonly parentThreadId: "parent_thread_id";
115
+ }>;
116
+ }>, {
117
+ readonly threadSpawn: "thread_spawn";
118
+ }>;
119
+ }>;
120
+ }>;
121
+ }>;
122
+ export declare const ThreadStatus: Schema.Union<readonly [Schema.Struct<{
123
+ readonly activeFlags: Schema.$Array<Schema.String>;
124
+ readonly type: Schema.Literal<"active">;
125
+ }>, Schema.Struct<{
126
+ readonly type: Schema.Literal<"idle">;
127
+ }>, Schema.Struct<{
128
+ readonly type: Schema.Literal<"notLoaded">;
129
+ }>, Schema.Struct<{
130
+ readonly type: Schema.Literal<"systemError">;
131
+ }>]>;
132
+ export declare const ThreadListResponse: Schema.Struct<{
133
+ readonly data: Schema.$Array<Schema.Struct<{
134
+ readonly id: Schema.String;
135
+ readonly source: Schema.Struct<{
136
+ readonly subAgent: Schema.encodeKeys<Schema.Struct<{
137
+ readonly threadSpawn: Schema.encodeKeys<Schema.Struct<{
138
+ readonly agentNickname: Schema.optional<Schema.NullOr<Schema.String>>;
139
+ readonly agentPath: Schema.optional<Schema.NullOr<Schema.String>>;
140
+ readonly agentRole: Schema.optional<Schema.NullOr<Schema.String>>;
141
+ readonly parentThreadId: Schema.String;
142
+ }>, {
143
+ readonly agentNickname: "agent_nickname";
144
+ readonly agentPath: "agent_path";
145
+ readonly agentRole: "agent_role";
146
+ readonly parentThreadId: "parent_thread_id";
147
+ }>;
148
+ }>, {
149
+ readonly threadSpawn: "thread_spawn";
150
+ }>;
151
+ }>;
152
+ readonly status: Schema.Union<readonly [Schema.Struct<{
153
+ readonly activeFlags: Schema.$Array<Schema.String>;
154
+ readonly type: Schema.Literal<"active">;
155
+ }>, Schema.Struct<{
156
+ readonly type: Schema.Literal<"idle">;
157
+ }>, Schema.Struct<{
158
+ readonly type: Schema.Literal<"notLoaded">;
159
+ }>, Schema.Struct<{
160
+ readonly type: Schema.Literal<"systemError">;
161
+ }>]>;
162
+ }>>;
163
+ readonly nextCursor: Schema.optional<Schema.NullOr<Schema.String>>;
164
+ }>;
165
+ export declare const ThreadStatusNotification: Schema.Struct<{
166
+ readonly status: Schema.Union<readonly [Schema.Struct<{
167
+ readonly activeFlags: Schema.$Array<Schema.String>;
168
+ readonly type: Schema.Literal<"active">;
169
+ }>, Schema.Struct<{
170
+ readonly type: Schema.Literal<"idle">;
171
+ }>, Schema.Struct<{
172
+ readonly type: Schema.Literal<"notLoaded">;
173
+ }>, Schema.Struct<{
174
+ readonly type: Schema.Literal<"systemError">;
175
+ }>]>;
176
+ readonly threadId: Schema.String;
177
+ }>;
178
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/adapters/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,eAAO,MAAM,kBAAkB;;EAA8C,CAAC;AAI9E,eAAO,MAAM,cAAc;;;;EAAuC,CAAC;AAInE,eAAO,MAAM,UAAU,gFAAwE,CAAC;AAEhG,eAAO,MAAM,SAAS;;EAA4C,CAAC;AAEnE,eAAO,MAAM,IAAI;;;;;;;EAKf,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;EAAgC,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;;;;;;;;;EAU5B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;EAKhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;EAI3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;EAG3B,CAAC;AASH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;EAIjC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;EAMpC,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;EAG5C,CAAC;AAEH,eAAO,MAAM,YAAY;;EAA6C,CAAC;AAevE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;EAExB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;IAQvB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAGnC,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { Schema } from "effect";
2
+ export const PINNED_CLI_VERSION = "0.154.0-alpha.6.2";
3
+ export const InitializeResponse = Schema.Struct({ userAgent: Schema.String });
4
+ const ThreadRef = Schema.Struct({ id: Schema.String });
5
+ export const ThreadResponse = Schema.Struct({ thread: ThreadRef });
6
+ const ReasoningEffort = Schema.NonEmptyString;
7
+ export const TurnStatus = Schema.Literals(["completed", "interrupted", "failed", "inProgress"]);
8
+ export const TurnError = Schema.Struct({ message: Schema.String });
9
+ export const Turn = Schema.Struct({
10
+ durationMs: Schema.optional(Schema.NullOr(Schema.Number)),
11
+ error: Schema.optional(Schema.NullOr(TurnError)),
12
+ id: Schema.String,
13
+ status: TurnStatus,
14
+ });
15
+ export const TurnResponse = Schema.Struct({ turn: Turn });
16
+ export const ModelListResponse = Schema.Struct({
17
+ data: Schema.Array(Schema.Struct({
18
+ defaultReasoningEffort: ReasoningEffort,
19
+ displayName: Schema.String,
20
+ isDefault: Schema.Boolean,
21
+ model: Schema.String,
22
+ supportedReasoningEfforts: Schema.Array(Schema.Struct({ reasoningEffort: ReasoningEffort })),
23
+ })),
24
+ });
25
+ export const DynamicToolCallParams = Schema.Struct({
26
+ arguments: Schema.Unknown,
27
+ callId: Schema.String,
28
+ threadId: Schema.String,
29
+ tool: Schema.String,
30
+ });
31
+ export const ItemNotification = Schema.Struct({
32
+ item: Schema.Unknown,
33
+ threadId: Schema.String,
34
+ turnId: Schema.String,
35
+ });
36
+ export const TurnNotification = Schema.Struct({
37
+ threadId: Schema.String,
38
+ turn: Turn,
39
+ });
40
+ const TokenBreakdown = Schema.Struct({
41
+ cachedInputTokens: Schema.Number,
42
+ cacheWriteInputTokens: Schema.optional(Schema.Number),
43
+ inputTokens: Schema.Number,
44
+ outputTokens: Schema.Number,
45
+ });
46
+ export const TokenUsageNotification = Schema.Struct({
47
+ threadId: Schema.String,
48
+ tokenUsage: Schema.Struct({ last: TokenBreakdown, total: TokenBreakdown }),
49
+ turnId: Schema.String,
50
+ });
51
+ export const ModelReroutedNotification = Schema.Struct({
52
+ fromModel: Schema.String,
53
+ reason: Schema.String,
54
+ threadId: Schema.String,
55
+ toModel: Schema.String,
56
+ turnId: Schema.String,
57
+ });
58
+ export const ThreadSettingsUpdatedNotification = Schema.Struct({
59
+ threadId: Schema.String,
60
+ threadSettings: Schema.Struct({ model: Schema.String }),
61
+ });
62
+ export const ThreadScoped = Schema.Struct({ threadId: Schema.String });
63
+ const SpawnSource = Schema.Struct({
64
+ subAgent: Schema.Struct({
65
+ threadSpawn: Schema.Struct({
66
+ agentNickname: Schema.optional(Schema.NullOr(Schema.String)),
67
+ agentPath: Schema.optional(Schema.NullOr(Schema.String)),
68
+ agentRole: Schema.optional(Schema.NullOr(Schema.String)),
69
+ parentThreadId: Schema.String,
70
+ }).pipe(Schema.encodeKeys({ agentNickname: "agent_nickname", agentPath: "agent_path", agentRole: "agent_role", parentThreadId: "parent_thread_id" })),
71
+ }).pipe(Schema.encodeKeys({ threadSpawn: "thread_spawn" })),
72
+ });
73
+ export const SpawnedThread = Schema.Struct({
74
+ thread: Schema.Struct({ id: Schema.String, source: SpawnSource }),
75
+ });
76
+ export const ThreadStatus = Schema.Union([
77
+ Schema.Struct({
78
+ activeFlags: Schema.Array(Schema.String),
79
+ type: Schema.Literal("active"),
80
+ }),
81
+ Schema.Struct({ type: Schema.Literal("idle") }),
82
+ Schema.Struct({ type: Schema.Literal("notLoaded") }),
83
+ Schema.Struct({ type: Schema.Literal("systemError") }),
84
+ ]);
85
+ export const ThreadListResponse = Schema.Struct({
86
+ data: Schema.Array(Schema.Struct({
87
+ id: Schema.String,
88
+ source: SpawnSource,
89
+ status: ThreadStatus,
90
+ })),
91
+ nextCursor: Schema.optional(Schema.NullOr(Schema.String)),
92
+ });
93
+ export const ThreadStatusNotification = Schema.Struct({
94
+ status: ThreadStatus,
95
+ threadId: Schema.String,
96
+ });
97
+ //# sourceMappingURL=protocol.js.map