@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,29 @@
1
+ import { Deferred, Effect, Semaphore } from "effect";
2
+ import { BackendUnavailable } from "@shivaedev/agent/failures.ts";
3
+ export const deliveryState = Effect.gen(function* () {
4
+ const gate = yield* Semaphore.make(1);
5
+ const state = { active: undefined, closed: false, finished: new Map(), pending: [], uncertain: undefined };
6
+ const close = Effect.gen(function* () {
7
+ state.closed = true;
8
+ const error = new BackendUnavailable({ backend: "codex", message: "Session closed before delivery reached Codex" });
9
+ for (const next of state.pending.splice(0)) {
10
+ yield* Deferred.fail(next.accepted, error);
11
+ }
12
+ for (const signal of state.finished.values()) {
13
+ yield* Deferred.fail(signal, error);
14
+ }
15
+ });
16
+ const queue = Effect.fn("Codex.queue")(function* (input, flush) {
17
+ const accepted = yield* Deferred.make();
18
+ yield* Semaphore.withPermit(gate)(Effect.gen(function* () {
19
+ if (state.closed) {
20
+ return yield* new BackendUnavailable({ backend: "codex", message: "Session closed before delivery reached Codex" });
21
+ }
22
+ state.pending.push({ accepted, input });
23
+ yield* flush;
24
+ }));
25
+ yield* Deferred.await(accepted);
26
+ });
27
+ return { close, gate, queue, state };
28
+ });
29
+ //# sourceMappingURL=deliveryState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliveryState.js","sourceRoot":"","sources":["../../src/adapters/deliveryState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAuB,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAcvF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,KAAK,GAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAClH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACjC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;QACpH,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACF,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAY,EAAE,KAA0B;QACzF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAwB,CAAC;QAC9D,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,KAAK,CAAC,CAAC,IAAI,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;YACrH,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACxC,KAAK,CAAC,CAAC,KAAK,CAAC;QACd,CAAC,CAAC,CACF,CAAC;QACF,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Effect } from "effect";
2
+ import type { LineProcess } from "#adapters/process.ts";
3
+ import type { CodexConfiguration } from "#config.ts";
4
+ export declare const engine: (config: CodexConfiguration, spawn?: (() => LineProcess) | undefined) => Effect.Effect<{
5
+ backend: () => Effect.Effect<import("@shivaedev/agent/backend.ts").ConfiguredBackend, never, never>;
6
+ census: (rootThreadId: string) => Effect.Effect<import("./threadSweep.ts").CensusSweep, import("@shivaedev/agent/failures.ts").ReadFailure, never>;
7
+ }, import("@shivaedev/agent/failures.ts").BackendUnavailable | import("@shivaedev/agent/failures.ts").ProtocolFailure | import("@shivaedev/agent/failures.ts").Rejected | import("@shivaedev/agent/failures.ts").UnknownAcceptance, import("effect/Scope").Scope>;
8
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/adapters/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,eAAO,MAAM,MAAM,8CAAkF,WAAW;;;iQAG9G,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Effect } from "effect";
2
+ import { backend } from "#adapters/backend.ts";
3
+ import { census } from "#adapters/census.ts";
4
+ import { initializeEngine } from "#adapters/initializeEngine.ts";
5
+ export const engine = Effect.fn("Codex.engine")(function* (config, spawn) {
6
+ const state = yield* initializeEngine(config, spawn);
7
+ return { backend: backend(state), census: census(state) };
8
+ });
9
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/adapters/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,MAA0B,EAAE,KAAyB;IAC/G,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrD,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3D,CAAC,CAAC,CAAC"}