@iam-brain/opencode-codex-auth 0.3.1 → 1.0.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 (215) hide show
  1. package/README.md +4 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +45 -6
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/accounts-tools.d.ts.map +1 -1
  6. package/dist/lib/accounts-tools.js +88 -4
  7. package/dist/lib/accounts-tools.js.map +1 -1
  8. package/dist/lib/auth-refresh.d.ts +2 -0
  9. package/dist/lib/auth-refresh.d.ts.map +1 -0
  10. package/dist/lib/auth-refresh.js +2 -0
  11. package/dist/lib/auth-refresh.js.map +1 -0
  12. package/dist/lib/cache-io.d.ts +24 -0
  13. package/dist/lib/cache-io.d.ts.map +1 -0
  14. package/dist/lib/cache-io.js +95 -0
  15. package/dist/lib/cache-io.js.map +1 -0
  16. package/dist/lib/cache-lock.d.ts +7 -0
  17. package/dist/lib/cache-lock.d.ts.map +1 -0
  18. package/dist/lib/cache-lock.js +37 -0
  19. package/dist/lib/cache-lock.js.map +1 -0
  20. package/dist/lib/claims.d.ts.map +1 -1
  21. package/dist/lib/claims.js +4 -1
  22. package/dist/lib/claims.js.map +1 -1
  23. package/dist/lib/codex-cache-layout.d.ts +15 -0
  24. package/dist/lib/codex-cache-layout.d.ts.map +1 -0
  25. package/dist/lib/codex-cache-layout.js +52 -0
  26. package/dist/lib/codex-cache-layout.js.map +1 -0
  27. package/dist/lib/codex-native/accounts.d.ts +21 -0
  28. package/dist/lib/codex-native/accounts.d.ts.map +1 -0
  29. package/dist/lib/codex-native/accounts.js +203 -0
  30. package/dist/lib/codex-native/accounts.js.map +1 -0
  31. package/dist/lib/codex-native/acquire-auth.d.ts +22 -0
  32. package/dist/lib/codex-native/acquire-auth.d.ts.map +1 -0
  33. package/dist/lib/codex-native/acquire-auth.js +389 -0
  34. package/dist/lib/codex-native/acquire-auth.js.map +1 -0
  35. package/dist/lib/codex-native/auth-menu-flow.d.ts +9 -0
  36. package/dist/lib/codex-native/auth-menu-flow.d.ts.map +1 -0
  37. package/dist/lib/codex-native/auth-menu-flow.js +304 -0
  38. package/dist/lib/codex-native/auth-menu-flow.js.map +1 -0
  39. package/dist/lib/codex-native/auth-menu-quotas.d.ts +9 -0
  40. package/dist/lib/codex-native/auth-menu-quotas.d.ts.map +1 -0
  41. package/dist/lib/codex-native/auth-menu-quotas.js +213 -0
  42. package/dist/lib/codex-native/auth-menu-quotas.js.map +1 -0
  43. package/dist/lib/codex-native/catalog-auth.d.ts.map +1 -1
  44. package/dist/lib/codex-native/catalog-auth.js +4 -1
  45. package/dist/lib/codex-native/catalog-auth.js.map +1 -1
  46. package/dist/lib/codex-native/catalog-sync.d.ts +28 -0
  47. package/dist/lib/codex-native/catalog-sync.d.ts.map +1 -0
  48. package/dist/lib/codex-native/catalog-sync.js +36 -0
  49. package/dist/lib/codex-native/catalog-sync.js.map +1 -0
  50. package/dist/lib/codex-native/chat-hooks.d.ts +85 -0
  51. package/dist/lib/codex-native/chat-hooks.d.ts.map +1 -0
  52. package/dist/lib/codex-native/chat-hooks.js +175 -0
  53. package/dist/lib/codex-native/chat-hooks.js.map +1 -0
  54. package/dist/lib/codex-native/client-identity.d.ts.map +1 -1
  55. package/dist/lib/codex-native/client-identity.js +55 -40
  56. package/dist/lib/codex-native/client-identity.js.map +1 -1
  57. package/dist/lib/codex-native/collaboration.d.ts +25 -0
  58. package/dist/lib/codex-native/collaboration.d.ts.map +1 -0
  59. package/dist/lib/codex-native/collaboration.js +306 -0
  60. package/dist/lib/codex-native/collaboration.js.map +1 -0
  61. package/dist/lib/codex-native/oauth-auth-methods.d.ts +45 -0
  62. package/dist/lib/codex-native/oauth-auth-methods.d.ts.map +1 -0
  63. package/dist/lib/codex-native/oauth-auth-methods.js +182 -0
  64. package/dist/lib/codex-native/oauth-auth-methods.js.map +1 -0
  65. package/dist/lib/codex-native/oauth-persistence.d.ts +4 -0
  66. package/dist/lib/codex-native/oauth-persistence.d.ts.map +1 -0
  67. package/dist/lib/codex-native/oauth-persistence.js +28 -0
  68. package/dist/lib/codex-native/oauth-persistence.js.map +1 -0
  69. package/dist/lib/codex-native/oauth-server.d.ts.map +1 -1
  70. package/dist/lib/codex-native/oauth-server.js +63 -5
  71. package/dist/lib/codex-native/oauth-server.js.map +1 -1
  72. package/dist/lib/codex-native/oauth-utils.d.ts +51 -0
  73. package/dist/lib/codex-native/oauth-utils.d.ts.map +1 -0
  74. package/dist/lib/codex-native/oauth-utils.js +265 -0
  75. package/dist/lib/codex-native/oauth-utils.js.map +1 -0
  76. package/dist/lib/codex-native/openai-loader-fetch.d.ts +39 -0
  77. package/dist/lib/codex-native/openai-loader-fetch.d.ts.map +1 -0
  78. package/dist/lib/codex-native/openai-loader-fetch.js +337 -0
  79. package/dist/lib/codex-native/openai-loader-fetch.js.map +1 -0
  80. package/dist/lib/codex-native/rate-limit-snapshots.d.ts +2 -0
  81. package/dist/lib/codex-native/rate-limit-snapshots.d.ts.map +1 -0
  82. package/dist/lib/codex-native/rate-limit-snapshots.js +28 -0
  83. package/dist/lib/codex-native/rate-limit-snapshots.js.map +1 -0
  84. package/dist/lib/codex-native/request-routing.d.ts +3 -0
  85. package/dist/lib/codex-native/request-routing.d.ts.map +1 -0
  86. package/dist/lib/codex-native/request-routing.js +41 -0
  87. package/dist/lib/codex-native/request-routing.js.map +1 -0
  88. package/dist/lib/codex-native/request-transform-pipeline.d.ts +20 -0
  89. package/dist/lib/codex-native/request-transform-pipeline.d.ts.map +1 -0
  90. package/dist/lib/codex-native/request-transform-pipeline.js +25 -0
  91. package/dist/lib/codex-native/request-transform-pipeline.js.map +1 -0
  92. package/dist/lib/codex-native/request-transform.d.ts +28 -4
  93. package/dist/lib/codex-native/request-transform.d.ts.map +1 -1
  94. package/dist/lib/codex-native/request-transform.js +347 -41
  95. package/dist/lib/codex-native/request-transform.js.map +1 -1
  96. package/dist/lib/codex-native/session-affinity-state.d.ts +17 -0
  97. package/dist/lib/codex-native/session-affinity-state.d.ts.map +1 -0
  98. package/dist/lib/codex-native/session-affinity-state.js +56 -0
  99. package/dist/lib/codex-native/session-affinity-state.js.map +1 -0
  100. package/dist/lib/codex-native/session-messages.d.ts +8 -0
  101. package/dist/lib/codex-native/session-messages.d.ts.map +1 -0
  102. package/dist/lib/codex-native/session-messages.js +58 -0
  103. package/dist/lib/codex-native/session-messages.js.map +1 -0
  104. package/dist/lib/codex-native.d.ts +12 -30
  105. package/dist/lib/codex-native.d.ts.map +1 -1
  106. package/dist/lib/codex-native.js +141 -1644
  107. package/dist/lib/codex-native.js.map +1 -1
  108. package/dist/lib/codex-prompts-cache.d.ts +17 -0
  109. package/dist/lib/codex-prompts-cache.d.ts.map +1 -0
  110. package/dist/lib/codex-prompts-cache.js +184 -0
  111. package/dist/lib/codex-prompts-cache.js.map +1 -0
  112. package/dist/lib/codex-status-storage.d.ts.map +1 -1
  113. package/dist/lib/codex-status-storage.js +8 -43
  114. package/dist/lib/codex-status-storage.js.map +1 -1
  115. package/dist/lib/codex-status-tool.js +1 -1
  116. package/dist/lib/codex-status-tool.js.map +1 -1
  117. package/dist/lib/codex-status-ui.d.ts.map +1 -1
  118. package/dist/lib/codex-status-ui.js +14 -8
  119. package/dist/lib/codex-status-ui.js.map +1 -1
  120. package/dist/lib/codex-status.d.ts.map +1 -1
  121. package/dist/lib/codex-status.js +28 -2
  122. package/dist/lib/codex-status.js.map +1 -1
  123. package/dist/lib/compat-sanitizer.d.ts.map +1 -1
  124. package/dist/lib/compat-sanitizer.js +5 -4
  125. package/dist/lib/compat-sanitizer.js.map +1 -1
  126. package/dist/lib/config-dir-gitignore.d.ts +3 -0
  127. package/dist/lib/config-dir-gitignore.d.ts.map +1 -0
  128. package/dist/lib/config-dir-gitignore.js +45 -0
  129. package/dist/lib/config-dir-gitignore.js.map +1 -0
  130. package/dist/lib/config.d.ts +30 -11
  131. package/dist/lib/config.d.ts.map +1 -1
  132. package/dist/lib/config.js +359 -153
  133. package/dist/lib/config.js.map +1 -1
  134. package/dist/lib/fetch-orchestrator.d.ts +19 -0
  135. package/dist/lib/fetch-orchestrator.d.ts.map +1 -1
  136. package/dist/lib/fetch-orchestrator.js +33 -6
  137. package/dist/lib/fetch-orchestrator.js.map +1 -1
  138. package/dist/lib/installer-cli.d.ts.map +1 -1
  139. package/dist/lib/installer-cli.js +14 -1
  140. package/dist/lib/installer-cli.js.map +1 -1
  141. package/dist/lib/logger.d.ts.map +1 -1
  142. package/dist/lib/logger.js +4 -1
  143. package/dist/lib/logger.js.map +1 -1
  144. package/dist/lib/model-catalog.d.ts +1 -0
  145. package/dist/lib/model-catalog.d.ts.map +1 -1
  146. package/dist/lib/model-catalog.js +198 -103
  147. package/dist/lib/model-catalog.js.map +1 -1
  148. package/dist/lib/opencode-install.d.ts.map +1 -1
  149. package/dist/lib/opencode-install.js +30 -6
  150. package/dist/lib/opencode-install.js.map +1 -1
  151. package/dist/lib/orchestrator-agent.d.ts +31 -0
  152. package/dist/lib/orchestrator-agent.d.ts.map +1 -0
  153. package/dist/lib/orchestrator-agent.js +268 -0
  154. package/dist/lib/orchestrator-agent.js.map +1 -0
  155. package/dist/lib/paths.d.ts +1 -1
  156. package/dist/lib/paths.d.ts.map +1 -1
  157. package/dist/lib/paths.js +1 -1
  158. package/dist/lib/paths.js.map +1 -1
  159. package/dist/lib/persona-tool-cli.d.ts.map +1 -1
  160. package/dist/lib/persona-tool-cli.js +4 -1
  161. package/dist/lib/persona-tool-cli.js.map +1 -1
  162. package/dist/lib/personalities.d.ts.map +1 -1
  163. package/dist/lib/personalities.js +9 -2
  164. package/dist/lib/personalities.js.map +1 -1
  165. package/dist/lib/personality-command.d.ts.map +1 -1
  166. package/dist/lib/personality-command.js +4 -1
  167. package/dist/lib/personality-command.js.map +1 -1
  168. package/dist/lib/personality-create.d.ts.map +1 -1
  169. package/dist/lib/personality-create.js +5 -1
  170. package/dist/lib/personality-create.js.map +1 -1
  171. package/dist/lib/personality-skill.d.ts.map +1 -1
  172. package/dist/lib/personality-skill.js +4 -1
  173. package/dist/lib/personality-skill.js.map +1 -1
  174. package/dist/lib/prompt-cache-key.d.ts +7 -0
  175. package/dist/lib/prompt-cache-key.d.ts.map +1 -0
  176. package/dist/lib/prompt-cache-key.js +17 -0
  177. package/dist/lib/prompt-cache-key.js.map +1 -0
  178. package/dist/lib/quarantine.d.ts.map +1 -1
  179. package/dist/lib/quarantine.js +22 -5
  180. package/dist/lib/quarantine.js.map +1 -1
  181. package/dist/lib/quota-threshold-alerts.d.ts +31 -0
  182. package/dist/lib/quota-threshold-alerts.d.ts.map +1 -0
  183. package/dist/lib/quota-threshold-alerts.js +97 -0
  184. package/dist/lib/quota-threshold-alerts.js.map +1 -0
  185. package/dist/lib/refresh-queue.d.ts.map +1 -1
  186. package/dist/lib/refresh-queue.js +9 -2
  187. package/dist/lib/refresh-queue.js.map +1 -1
  188. package/dist/lib/remote-cache-fetch.d.ts +28 -0
  189. package/dist/lib/remote-cache-fetch.d.ts.map +1 -0
  190. package/dist/lib/remote-cache-fetch.js +67 -0
  191. package/dist/lib/remote-cache-fetch.js.map +1 -0
  192. package/dist/lib/request-snapshots.d.ts +3 -0
  193. package/dist/lib/request-snapshots.d.ts.map +1 -1
  194. package/dist/lib/request-snapshots.js +88 -13
  195. package/dist/lib/request-snapshots.js.map +1 -1
  196. package/dist/lib/rotation.d.ts +4 -0
  197. package/dist/lib/rotation.d.ts.map +1 -1
  198. package/dist/lib/rotation.js +57 -10
  199. package/dist/lib/rotation.js.map +1 -1
  200. package/dist/lib/session-affinity.d.ts.map +1 -1
  201. package/dist/lib/session-affinity.js +22 -36
  202. package/dist/lib/session-affinity.js.map +1 -1
  203. package/dist/lib/storage.d.ts +8 -5
  204. package/dist/lib/storage.d.ts.map +1 -1
  205. package/dist/lib/storage.js +50 -39
  206. package/dist/lib/storage.js.map +1 -1
  207. package/dist/lib/ui/tty/select.d.ts.map +1 -1
  208. package/dist/lib/ui/tty/select.js +8 -2
  209. package/dist/lib/ui/tty/select.js.map +1 -1
  210. package/dist/lib/util.d.ts +2 -0
  211. package/dist/lib/util.d.ts.map +1 -0
  212. package/dist/lib/util.js +4 -0
  213. package/dist/lib/util.js.map +1 -0
  214. package/package.json +8 -5
  215. package/schemas/codex-config.schema.json +29 -43
@@ -0,0 +1,36 @@
1
+ import { applyCodexCatalogToProviderModels, getCodexModelCatalog } from "../model-catalog";
2
+ import { selectCatalogAuthCandidate } from "./catalog-auth";
3
+ export async function initializeCatalogSync(input) {
4
+ const catalogAuth = await selectCatalogAuthCandidate(input.authMode, input.pidOffsetEnabled, input.rotationStrategy);
5
+ const applyCatalogModels = (models) => {
6
+ if (models) {
7
+ input.setLastCatalogModels(models);
8
+ }
9
+ applyCodexCatalogToProviderModels({
10
+ providerModels: input.providerModels,
11
+ catalogModels: models ?? input.getLastCatalogModels(),
12
+ fallbackModels: input.fallbackModels,
13
+ personality: input.personality
14
+ });
15
+ };
16
+ const initialCatalog = await getCodexModelCatalog({
17
+ accessToken: catalogAuth.accessToken,
18
+ accountId: catalogAuth.accountId,
19
+ ...input.resolveCatalogHeaders(),
20
+ onEvent: (event) => input.log?.debug("codex model catalog", event)
21
+ });
22
+ applyCatalogModels(initialCatalog);
23
+ return async (auth) => {
24
+ if (!auth.accessToken)
25
+ return undefined;
26
+ const refreshedCatalog = await getCodexModelCatalog({
27
+ accessToken: auth.accessToken,
28
+ accountId: auth.accountId,
29
+ ...input.resolveCatalogHeaders(),
30
+ onEvent: (event) => input.log?.debug("codex model catalog", event)
31
+ });
32
+ applyCatalogModels(refreshedCatalog);
33
+ return refreshedCatalog;
34
+ };
35
+ }
36
+ //# sourceMappingURL=catalog-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-sync.js","sourceRoot":"","sources":["../../../lib/codex-native/catalog-sync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,oBAAoB,EAAuB,MAAM,kBAAkB,CAAA;AAE/G,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAU3D,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAW3C;IACC,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAEpH,MAAM,kBAAkB,GAAG,CAAC,MAAoC,EAAQ,EAAE;QACxE,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QACpC,CAAC;QACD,iCAAiC,CAAC;YAChC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,aAAa,EAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE;YACrD,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC;QAChD,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,GAAG,KAAK,CAAC,qBAAqB,EAAE;QAChC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC;KACnE,CAAC,CAAA;IAEF,kBAAkB,CAAC,cAAc,CAAC,CAAA;IAElC,OAAO,KAAK,EAAE,IAAkD,EAAyC,EAAE;QACzG,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAA;QACvC,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC;YAClD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,KAAK,CAAC,qBAAqB,EAAE;YAChC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC;SACnE,CAAC,CAAA;QACF,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;QACpC,OAAO,gBAAgB,CAAA;IACzB,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,85 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ import type { BehaviorSettings, CodexSpoofMode, PersonalityOption } from "../config";
3
+ import type { CodexModelInfo } from "../model-catalog";
4
+ import { applyCodexRuntimeDefaultsToParams } from "./request-transform";
5
+ import { type CollaborationToolProfile } from "./collaboration";
6
+ export declare function handleChatMessageHook(input: {
7
+ hookInput: {
8
+ model?: {
9
+ providerID?: string;
10
+ };
11
+ sessionID: string;
12
+ };
13
+ output: {
14
+ parts: unknown[];
15
+ };
16
+ client: PluginInput["client"] | undefined;
17
+ }): Promise<void>;
18
+ export declare function handleChatParamsHook(input: {
19
+ hookInput: {
20
+ model: {
21
+ providerID?: string;
22
+ options?: unknown;
23
+ id: string;
24
+ api?: {
25
+ id?: string;
26
+ };
27
+ capabilities?: {
28
+ toolcall?: boolean;
29
+ };
30
+ };
31
+ agent?: unknown;
32
+ message: unknown;
33
+ };
34
+ output: Parameters<typeof applyCodexRuntimeDefaultsToParams>[0]["output"];
35
+ lastCatalogModels: CodexModelInfo[] | undefined;
36
+ behaviorSettings?: BehaviorSettings;
37
+ fallbackPersonality?: PersonalityOption;
38
+ spoofMode: CodexSpoofMode;
39
+ collaborationProfileEnabled: boolean;
40
+ orchestratorSubagentsEnabled: boolean;
41
+ collaborationToolProfile: CollaborationToolProfile;
42
+ }): Promise<void>;
43
+ export declare function handleChatHeadersHook(input: {
44
+ hookInput: {
45
+ model: {
46
+ providerID?: string;
47
+ };
48
+ sessionID: string;
49
+ agent?: unknown;
50
+ };
51
+ output: {
52
+ headers: Record<string, unknown>;
53
+ };
54
+ spoofMode: CodexSpoofMode;
55
+ internalCollaborationModeHeader: string;
56
+ internalCollaborationAgentHeader: string;
57
+ collaborationProfileEnabled: boolean;
58
+ orchestratorSubagentsEnabled: boolean;
59
+ }): Promise<void>;
60
+ export declare function handleSessionCompactingHook(input: {
61
+ enabled: boolean;
62
+ hookInput: {
63
+ sessionID: string;
64
+ };
65
+ output: {
66
+ prompt?: string;
67
+ };
68
+ client: PluginInput["client"] | undefined;
69
+ summaryPrefixSessions: Set<string>;
70
+ compactPrompt: string;
71
+ }): Promise<void>;
72
+ export declare function handleTextCompleteHook(input: {
73
+ enabled: boolean;
74
+ hookInput: {
75
+ sessionID: string;
76
+ messageID: string;
77
+ };
78
+ output: {
79
+ text: string;
80
+ };
81
+ client: PluginInput["client"] | undefined;
82
+ summaryPrefixSessions: Set<string>;
83
+ compactSummaryPrefix: string;
84
+ }): Promise<void>;
85
+ //# sourceMappingURL=chat-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-hooks.d.ts","sourceRoot":"","sources":["../../../lib/codex-native/chat-hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import { getRuntimeDefaultsForModel, resolveInstructionsForModel } from "../model-catalog";
2
+ import { applyCodexRuntimeDefaultsToParams, findCatalogModelForCandidates, getModelLookupCandidates, getModelThinkingSummariesOverride, getModelVerbosityEnabledOverride, getModelVerbosityOverride, getVariantLookupCandidates, resolvePersonalityForModel } from "./request-transform";
3
+ import { resolveRequestUserAgent } from "./client-identity";
4
+ import { resolveCodexOriginator } from "./originator";
5
+ import { asString, getMessageProviderID, isRecord, readSessionMessageInfo, sessionUsesOpenAIProvider } from "./session-messages";
6
+ import { CODEX_CODE_MODE_INSTRUCTIONS, CODEX_ORCHESTRATOR_INSTRUCTIONS, getCodexPlanModeInstructions, isOrchestratorInstructions, mergeInstructions, resolveCollaborationInstructions, resolveCollaborationProfile, resolveSubagentHeaderValue, resolveToolingInstructions } from "./collaboration";
7
+ function normalizeVerbositySetting(value) {
8
+ if (typeof value !== "string")
9
+ return undefined;
10
+ const normalized = value.trim().toLowerCase();
11
+ if (normalized === "default" || normalized === "low" || normalized === "medium" || normalized === "high") {
12
+ return normalized;
13
+ }
14
+ return undefined;
15
+ }
16
+ export async function handleChatMessageHook(input) {
17
+ const directProviderID = input.hookInput.model?.providerID;
18
+ const isOpenAI = directProviderID === "openai" ||
19
+ (directProviderID === undefined && (await sessionUsesOpenAIProvider(input.client, input.hookInput.sessionID)));
20
+ if (!isOpenAI)
21
+ return;
22
+ for (const part of input.output.parts) {
23
+ const partRecord = part;
24
+ if (asString(partRecord.type) !== "subtask")
25
+ continue;
26
+ if ((asString(partRecord.command) ?? "").trim().toLowerCase() !== "review")
27
+ continue;
28
+ partRecord.agent = "Codex Review";
29
+ }
30
+ }
31
+ export async function handleChatParamsHook(input) {
32
+ if (input.hookInput.model.providerID !== "openai")
33
+ return;
34
+ const modelOptions = isRecord(input.hookInput.model.options) ? input.hookInput.model.options : {};
35
+ const modelCandidates = getModelLookupCandidates({
36
+ id: input.hookInput.model.id,
37
+ api: { id: input.hookInput.model.api?.id }
38
+ });
39
+ const variantCandidates = getVariantLookupCandidates({
40
+ message: input.hookInput.message,
41
+ modelCandidates
42
+ });
43
+ const catalogModelFallback = findCatalogModelForCandidates(input.lastCatalogModels, modelCandidates);
44
+ const effectivePersonality = resolvePersonalityForModel({
45
+ behaviorSettings: input.behaviorSettings,
46
+ modelCandidates,
47
+ variantCandidates,
48
+ fallback: input.fallbackPersonality
49
+ });
50
+ const modelThinkingSummariesOverride = getModelThinkingSummariesOverride(input.behaviorSettings, modelCandidates, variantCandidates);
51
+ const modelVerbosityEnabledOverride = getModelVerbosityEnabledOverride(input.behaviorSettings, modelCandidates, variantCandidates);
52
+ const modelVerbosityOverride = getModelVerbosityOverride(input.behaviorSettings, modelCandidates, variantCandidates);
53
+ const globalBehavior = input.behaviorSettings?.global;
54
+ const globalVerbosityEnabled = typeof globalBehavior?.verbosityEnabled === "boolean" ? globalBehavior.verbosityEnabled : undefined;
55
+ const globalVerbosity = normalizeVerbositySetting(globalBehavior?.verbosity);
56
+ const catalogModelFromOptions = isRecord(modelOptions.codexCatalogModel)
57
+ ? modelOptions.codexCatalogModel
58
+ : undefined;
59
+ let renderedCatalogInstructions = catalogModelFromOptions
60
+ ? resolveInstructionsForModel(catalogModelFromOptions, effectivePersonality)
61
+ : undefined;
62
+ if (!renderedCatalogInstructions && catalogModelFallback) {
63
+ if (!catalogModelFromOptions) {
64
+ modelOptions.codexCatalogModel = catalogModelFallback;
65
+ }
66
+ renderedCatalogInstructions = resolveInstructionsForModel(catalogModelFallback, effectivePersonality);
67
+ const defaults = getRuntimeDefaultsForModel(catalogModelFallback);
68
+ if (defaults) {
69
+ modelOptions.codexRuntimeDefaults = defaults;
70
+ }
71
+ }
72
+ if (renderedCatalogInstructions) {
73
+ modelOptions.codexInstructions = renderedCatalogInstructions;
74
+ }
75
+ else {
76
+ const directModelInstructions = asString(input.hookInput.model.instructions);
77
+ if (directModelInstructions) {
78
+ modelOptions.codexInstructions = directModelInstructions;
79
+ }
80
+ else if (asString(modelOptions.codexInstructions) === undefined) {
81
+ delete modelOptions.codexInstructions;
82
+ }
83
+ }
84
+ const profile = resolveCollaborationProfile(input.hookInput.agent);
85
+ const preserveOrchestratorInstructions = profile.isOrchestrator === true && isOrchestratorInstructions(asString(input.output.options.instructions));
86
+ applyCodexRuntimeDefaultsToParams({
87
+ modelOptions,
88
+ modelToolCallCapable: input.hookInput.model.capabilities?.toolcall,
89
+ thinkingSummariesOverride: modelThinkingSummariesOverride ?? globalBehavior?.thinkingSummaries,
90
+ verbosityEnabledOverride: modelVerbosityEnabledOverride ?? globalVerbosityEnabled,
91
+ verbosityOverride: modelVerbosityOverride ?? globalVerbosity,
92
+ preferCodexInstructions: input.spoofMode === "codex" && !preserveOrchestratorInstructions,
93
+ output: input.output
94
+ });
95
+ if (!input.collaborationProfileEnabled)
96
+ return;
97
+ if (!profile.enabled || !profile.kind)
98
+ return;
99
+ const collaborationInstructions = resolveCollaborationInstructions(profile.kind, {
100
+ plan: getCodexPlanModeInstructions(),
101
+ code: CODEX_CODE_MODE_INSTRUCTIONS
102
+ });
103
+ let mergedInstructions = mergeInstructions(asString(input.output.options.instructions), collaborationInstructions);
104
+ if (profile.isOrchestrator && input.orchestratorSubagentsEnabled) {
105
+ mergedInstructions = mergeInstructions(mergedInstructions, CODEX_ORCHESTRATOR_INSTRUCTIONS);
106
+ }
107
+ mergedInstructions = mergeInstructions(mergedInstructions, resolveToolingInstructions(input.collaborationToolProfile));
108
+ input.output.options.instructions = mergedInstructions;
109
+ }
110
+ export async function handleChatHeadersHook(input) {
111
+ if (input.hookInput.model.providerID !== "openai")
112
+ return;
113
+ const originator = resolveCodexOriginator(input.spoofMode);
114
+ input.output.headers.originator = originator;
115
+ input.output.headers["User-Agent"] = resolveRequestUserAgent(input.spoofMode, originator);
116
+ input.output.headers.session_id = input.hookInput.sessionID;
117
+ delete input.output.headers["OpenAI-Beta"];
118
+ delete input.output.headers.conversation_id;
119
+ if (!input.collaborationProfileEnabled) {
120
+ delete input.output.headers["x-openai-subagent"];
121
+ delete input.output.headers[input.internalCollaborationModeHeader];
122
+ delete input.output.headers[input.internalCollaborationAgentHeader];
123
+ return;
124
+ }
125
+ const profile = resolveCollaborationProfile(input.hookInput.agent);
126
+ if (!profile.enabled || !profile.kind) {
127
+ delete input.output.headers["x-openai-subagent"];
128
+ delete input.output.headers[input.internalCollaborationModeHeader];
129
+ delete input.output.headers[input.internalCollaborationAgentHeader];
130
+ return;
131
+ }
132
+ input.output.headers[input.internalCollaborationModeHeader] = profile.kind;
133
+ input.output.headers[input.internalCollaborationAgentHeader] = profile.isOrchestrator ? "orchestrator" : profile.kind;
134
+ if (input.orchestratorSubagentsEnabled) {
135
+ const subagentHeader = resolveSubagentHeaderValue(input.hookInput.agent);
136
+ if (subagentHeader) {
137
+ input.output.headers["x-openai-subagent"] = subagentHeader;
138
+ }
139
+ else {
140
+ delete input.output.headers["x-openai-subagent"];
141
+ }
142
+ return;
143
+ }
144
+ delete input.output.headers["x-openai-subagent"];
145
+ }
146
+ export async function handleSessionCompactingHook(input) {
147
+ if (!input.enabled)
148
+ return;
149
+ if (await sessionUsesOpenAIProvider(input.client, input.hookInput.sessionID)) {
150
+ input.output.prompt = input.compactPrompt;
151
+ input.summaryPrefixSessions.add(input.hookInput.sessionID);
152
+ }
153
+ }
154
+ export async function handleTextCompleteHook(input) {
155
+ if (!input.enabled)
156
+ return;
157
+ if (!input.summaryPrefixSessions.has(input.hookInput.sessionID))
158
+ return;
159
+ const info = await readSessionMessageInfo(input.client, input.hookInput.sessionID, input.hookInput.messageID);
160
+ input.summaryPrefixSessions.delete(input.hookInput.sessionID);
161
+ if (!info)
162
+ return;
163
+ if (asString(info.role) !== "assistant")
164
+ return;
165
+ if (asString(info.agent) !== "compaction")
166
+ return;
167
+ if (info.summary !== true)
168
+ return;
169
+ if (getMessageProviderID(info) !== "openai")
170
+ return;
171
+ if (input.output.text.startsWith(input.compactSummaryPrefix))
172
+ return;
173
+ input.output.text = `${input.compactSummaryPrefix}\n${input.output.text.trimStart()}`;
174
+ }
175
+ //# sourceMappingURL=chat-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-hooks.js","sourceRoot":"","sources":["../../../lib/codex-native/chat-hooks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client-identity.d.ts","sourceRoot":"","sources":["../../../lib/codex-native/client-identity.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAkQnD,wBAAsB,mCAAmC,CACvD,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;CACjB,GACL,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAED,wBAAgB,yBAAyB,CAAC,aAAa,GAAE,MAAwC,GAAG,MAAM,CAYzG;AAiCD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAMvE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,GAAG,MAAM,CAGtG"}
1
+ {"version":3,"file":"client-identity.d.ts","sourceRoot":"","sources":["../../../lib/codex-native/client-identity.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAIvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AA4RnD,wBAAsB,mCAAmC,CACvD,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;CACjB,GACL,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAED,wBAAgB,yBAAyB,CAAC,aAAa,GAAE,MAAwC,GAAG,MAAM,CAYzG;AAoCD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAMvE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,GAAG,MAAM,CAGtG"}
@@ -3,11 +3,12 @@ import path from "node:path";
3
3
  import { execFileSync } from "node:child_process";
4
4
  import { chmodSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
5
5
  import { defaultOpencodeCachePath } from "../paths";
6
+ import { fetchRemoteText } from "../remote-cache-fetch";
7
+ import { isFsErrorCode } from "../cache-io";
6
8
  const DEFAULT_PLUGIN_VERSION = "0.1.0";
7
9
  const DEFAULT_CODEX_CLIENT_VERSION = "0.97.0";
8
10
  const CODEX_CLIENT_VERSION_CACHE_FILE = path.join(defaultOpencodeCachePath(), "codex-client-version.json");
9
11
  const CODEX_CLIENT_VERSION_TTL_MS = 60 * 60 * 1000;
10
- const CODEX_CLIENT_VERSION_FETCH_TIMEOUT_MS = 5000;
11
12
  const CODEX_GITHUB_RELEASES_API = "https://api.github.com/repos/openai/codex/releases/latest";
12
13
  const CODEX_GITHUB_RELEASES_HTML = "https://github.com/openai/codex/releases/latest";
13
14
  let cachedPluginVersion;
@@ -63,7 +64,10 @@ function tmuxDisplayMessage(format) {
63
64
  const value = execFileSync("tmux", ["display-message", "-p", format], { encoding: "utf8" }).trim();
64
65
  return value || undefined;
65
66
  }
66
- catch {
67
+ catch (error) {
68
+ if (error instanceof Error) {
69
+ // tmux may be unavailable outside tmux sessions.
70
+ }
67
71
  return undefined;
68
72
  }
69
73
  }
@@ -153,7 +157,10 @@ function resolvePluginVersion() {
153
157
  return cachedPluginVersion;
154
158
  }
155
159
  }
156
- catch {
160
+ catch (error) {
161
+ if (!(error instanceof SyntaxError) && !isFsErrorCode(error, "ENOENT")) {
162
+ // Use fallback version below.
163
+ }
157
164
  // Use fallback version below.
158
165
  }
159
166
  cachedPluginVersion = DEFAULT_PLUGIN_VERSION;
@@ -178,7 +185,10 @@ function readCodexClientVersionCache(cacheFilePath) {
178
185
  fetchedAt: fetchedAt ?? 0
179
186
  };
180
187
  }
181
- catch {
188
+ catch (error) {
189
+ if (!(error instanceof SyntaxError) && !isFsErrorCode(error, "ENOENT")) {
190
+ // Ignore unreadable cache.
191
+ }
182
192
  return undefined;
183
193
  }
184
194
  }
@@ -190,7 +200,10 @@ function writeCodexClientVersionCache(entry, cacheFilePath = CODEX_CLIENT_VERSIO
190
200
  renameSync(tempFilePath, cacheFilePath);
191
201
  chmodSync(cacheFilePath, 0o600);
192
202
  }
193
- catch {
203
+ catch (error) {
204
+ if (!isFsErrorCode(error, "EACCES") && !isFsErrorCode(error, "EPERM")) {
205
+ // best-effort cache persistence
206
+ }
194
207
  // best-effort cache persistence
195
208
  }
196
209
  }
@@ -199,29 +212,36 @@ function extractSemverFromTag(tag) {
199
212
  return match?.[1];
200
213
  }
201
214
  async function fetchLatestCodexReleaseTag(fetchImpl = fetch) {
202
- try {
203
- const apiResponse = await fetchImpl(CODEX_GITHUB_RELEASES_API);
204
- if (apiResponse.ok) {
205
- const payload = (await apiResponse.json());
206
- const tagName = normalizeCodexClientVersion(payload.tag_name);
207
- if (tagName)
208
- return tagName;
209
- }
210
- }
211
- catch {
212
- // fallback to HTML release page
213
- }
214
- const htmlResponse = await fetchImpl(CODEX_GITHUB_RELEASES_HTML, { redirect: "follow" });
215
- if (!htmlResponse.ok) {
216
- throw new Error(`failed to fetch codex release tag: ${htmlResponse.status}`);
215
+ const apiResult = await fetchRemoteText({
216
+ key: "codex-release-api",
217
+ url: CODEX_GITHUB_RELEASES_API
218
+ }, {
219
+ fetchImpl,
220
+ timeoutMs: 5000
221
+ });
222
+ if (apiResult.status === "ok") {
223
+ const payload = JSON.parse(apiResult.text);
224
+ const tagName = normalizeCodexClientVersion(payload.tag_name);
225
+ if (tagName)
226
+ return tagName;
227
+ }
228
+ const htmlResult = await fetchRemoteText({
229
+ key: "codex-release-html",
230
+ url: CODEX_GITHUB_RELEASES_HTML
231
+ }, {
232
+ fetchImpl,
233
+ timeoutMs: 5000
234
+ });
235
+ if (htmlResult.status !== "ok") {
236
+ throw new Error("failed to fetch codex release tag");
217
237
  }
218
- const finalUrl = htmlResponse.url;
238
+ const finalUrl = htmlResult.finalUrl ?? CODEX_GITHUB_RELEASES_HTML;
219
239
  if (finalUrl.includes("/tag/")) {
220
240
  const tag = finalUrl.split("/tag/").pop();
221
241
  if (tag && !tag.includes("/"))
222
242
  return tag;
223
243
  }
224
- const html = await htmlResponse.text();
244
+ const html = htmlResult.text;
225
245
  const match = html.match(/\/openai\/codex\/releases\/tag\/([^"'/]+)/);
226
246
  if (match?.[1])
227
247
  return match[1];
@@ -243,24 +263,16 @@ export async function refreshCodexClientVersionFromGitHub(log, options = {}) {
243
263
  }
244
264
  const run = async () => {
245
265
  try {
246
- const controller = new AbortController();
247
- const timeout = setTimeout(() => controller.abort(), CODEX_CLIENT_VERSION_FETCH_TIMEOUT_MS);
248
- try {
249
- const fetchWithTimeout = (input, init) => (options.fetchImpl ?? fetch)(input, { ...(init ?? {}), signal: controller.signal });
250
- const releaseTag = await fetchLatestCodexReleaseTag(fetchWithTimeout);
251
- const semver = extractSemverFromTag(releaseTag);
252
- if (!semver)
253
- throw new Error(`invalid_codex_release_tag:${releaseTag}`);
254
- const nextEntry = { version: semver, fetchedAt: now() };
255
- writeCodexClientVersionCache(nextEntry, cacheFilePath);
256
- if (cacheFilePath === CODEX_CLIENT_VERSION_CACHE_FILE) {
257
- cachedCodexClientVersion = semver;
258
- }
259
- return semver;
260
- }
261
- finally {
262
- clearTimeout(timeout);
266
+ const releaseTag = await fetchLatestCodexReleaseTag(options.fetchImpl ?? fetch);
267
+ const semver = extractSemverFromTag(releaseTag);
268
+ if (!semver)
269
+ throw new Error(`invalid_codex_release_tag:${releaseTag}`);
270
+ const nextEntry = { version: semver, fetchedAt: now() };
271
+ writeCodexClientVersionCache(nextEntry, cacheFilePath);
272
+ if (cacheFilePath === CODEX_CLIENT_VERSION_CACHE_FILE) {
273
+ cachedCodexClientVersion = semver;
263
274
  }
275
+ return semver;
264
276
  }
265
277
  catch (error) {
266
278
  log?.debug("codex client version refresh failed", {
@@ -301,7 +313,10 @@ function resolveMacProductVersion() {
301
313
  const value = execFileSync("sw_vers", ["-productVersion"], { encoding: "utf8" }).trim();
302
314
  cachedMacProductVersion = value || os.release();
303
315
  }
304
- catch {
316
+ catch (error) {
317
+ if (error instanceof Error) {
318
+ // fallback to kernel release
319
+ }
305
320
  cachedMacProductVersion = os.release();
306
321
  }
307
322
  return cachedMacProductVersion;
@@ -1 +1 @@
1
- {"version":3,"file":"client-identity.js","sourceRoot":"","sources":["../../../lib/codex-native/client-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-identity.js","sourceRoot":"","sources":["../../../lib/codex-native/client-identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export type CodexCollaborationModeKind = "plan" | "code";
2
+ export type CollaborationToolProfile = "opencode" | "codex";
3
+ export type CodexCollaborationProfile = {
4
+ enabled: boolean;
5
+ kind?: CodexCollaborationModeKind;
6
+ normalizedAgentName?: string;
7
+ isOrchestrator?: boolean;
8
+ };
9
+ export type CollaborationInstructionsByKind = {
10
+ plan: string;
11
+ code: string;
12
+ };
13
+ export declare const CODEX_PLAN_MODE_INSTRUCTIONS_FALLBACK = "# Plan Mode (Conversational)\n\nYou work in 3 phases, and you should *chat your way* to a great plan before finalizing it. A great plan is very detailed-intent- and implementation-wise-so that it can be handed to another engineer or agent to be implemented right away. It must be **decision complete**, where the implementer does not need to make any decisions.\n\n## Mode rules (strict)\n\nYou are in **Plan Mode** until a developer message explicitly ends it.\n\nPlan Mode is not changed by user intent, tone, or imperative language. If a user asks for execution while still in Plan Mode, treat it as a request to **plan the execution**, not perform it.\n\n## Plan Mode vs update_plan tool\n\nPlan Mode is a collaboration mode that can involve requesting user input and eventually issuing a <proposed_plan> block.\n\nSeparately, `update_plan` is a checklist/progress/TODOs tool; it does not enter or exit Plan Mode. Do not confuse it with Plan mode or try to use it while in Plan mode. If you try to use `update_plan` in Plan mode, it will return an error.\n\n## Execution vs. mutation in Plan Mode\n\nYou may explore and execute **non-mutating** actions that improve the plan. You must not perform **mutating** actions.\n\n### Allowed (non-mutating, plan-improving)\n\nActions that gather truth, reduce ambiguity, or validate feasibility without changing repo-tracked state. Examples:\n\n* Reading or searching files, configs, schemas, types, manifests, and docs\n* Static analysis, inspection, and repo exploration\n* Dry-run style commands when they do not edit repo-tracked files\n* Tests, builds, or checks that may write to caches or build artifacts (for example, `target/`, `.cache/`, or snapshots) so long as they do not edit repo-tracked files\n\n### Not allowed (mutating, plan-executing)\n\nActions that implement the plan or change repo-tracked state. Examples:\n\n* Editing or writing files\n* Running formatters or linters that rewrite files\n* Applying patches, migrations, or codegen that updates repo-tracked files\n* Side-effectful commands whose purpose is to carry out the plan rather than refine it\n\nWhen in doubt: if the action would reasonably be described as \"doing the work\" rather than \"planning the work,\" do not do it.\n\n## PHASE 1 - Ground in the environment (explore first, ask second)\n\nBegin by grounding yourself in the actual environment. Eliminate unknowns in the prompt by discovering facts, not by asking the user. Resolve all questions that can be answered through exploration or inspection. Identify missing or ambiguous details only if they cannot be derived from the environment. Silent exploration between turns is allowed and encouraged.\n\nBefore asking the user any question, perform at least one targeted non-mutating exploration pass (for example: search relevant files, inspect likely entrypoints/configs, confirm current implementation shape), unless no local environment/repo is available.\n\nException: you may ask clarifying questions about the user's prompt before exploring, ONLY if there are obvious ambiguities or contradictions in the prompt itself. However, if ambiguity might be resolved by exploring, always prefer exploring first.\n\nDo not ask questions that can be answered from the repo or system (for example, \"where is this struct?\" or \"which UI component should we use?\" when exploration can make it clear). Only ask once you have exhausted reasonable non-mutating exploration.\n\n## PHASE 2 - Intent chat (what they actually want)\n\n* Keep asking until you can clearly state: goal + success criteria, audience, in/out of scope, constraints, current state, and the key preferences/tradeoffs.\n* Bias toward questions over guessing: if any high-impact ambiguity remains, do NOT plan yet-ask.\n\n## PHASE 3 - Implementation chat (what/how we'll build)\n\n* Once intent is stable, keep asking until the spec is decision complete: approach, interfaces (APIs/schemas/I/O), data flow, edge cases/failure modes, testing + acceptance criteria, rollout/monitoring, and any migrations/compat constraints.\n\n## Asking questions\n\nCritical rules:\n\n* Strongly prefer using the `request_user_input` tool to ask any questions.\n* Offer only meaningful multiple-choice options; don't include filler choices that are obviously wrong or irrelevant.\n* In rare cases where an unavoidable, important question can't be expressed with reasonable multiple-choice options (due to extreme ambiguity), you may ask it directly without the tool.\n\nYou SHOULD ask many questions, but each question must:\n\n* materially change the spec/plan, OR\n* confirm/lock an assumption, OR\n* choose between meaningful tradeoffs.\n* not be answerable by non-mutating commands.\n\nUse the `request_user_input` tool only for decisions that materially change the plan, for confirming important assumptions, or for information that cannot be discovered via non-mutating exploration.\n\n## Two kinds of unknowns (treat differently)\n\n1. **Discoverable facts** (repo/system truth): explore first.\n\n * Before asking, run targeted searches and check likely sources of truth (configs/manifests/entrypoints/schemas/types/constants).\n * Ask only if: multiple plausible candidates; nothing found but you need a missing identifier/context; or ambiguity is actually product intent.\n * If asking, present concrete candidates (paths/service names) + recommend one.\n * Never ask questions you can answer from your environment (e.g., \"where is this struct\").\n\n2. **Preferences/tradeoffs** (not discoverable): ask early.\n\n * These are intent or implementation preferences that cannot be derived from exploration.\n * Provide 2-4 mutually exclusive options + a recommended default.\n * If unanswered, proceed with the recommended option and record it as an assumption in the final plan.\n\n## Finalization rule\n\nOnly output the final plan when it is decision complete and leaves no decisions to the implementer.\n\nWhen you present the official plan, wrap it in a <proposed_plan> block so the client can render it specially:\n\n1) The opening tag must be on its own line.\n2) Start the plan content on the next line (no text on the same line as the tag).\n3) The closing tag must be on its own line.\n4) Use Markdown inside the block.\n5) Keep the tags exactly as <proposed_plan> and </proposed_plan> (do not translate or rename them), even if the plan content is in another language.\n\nExample:\n\n<proposed_plan>\nplan content\n</proposed_plan>\n\nplan content should be human and agent digestible. The final plan must be plan-only and include:\n\n* A clear title\n* A brief summary section\n* Important changes or additions to public APIs/interfaces/types\n* Test cases and scenarios\n* Explicit assumptions and defaults chosen where needed\n\nDo not ask \"should I proceed?\" in the final output. The user can easily switch out of Plan mode and request implementation if you have included a <proposed_plan> block in your response. Alternatively, they can decide to stay in Plan mode and continue refining the plan.\n\nOnly produce at most one <proposed_plan> block per turn, and only when you are presenting a complete spec.";
14
+ export declare function getCodexPlanModeInstructions(): string;
15
+ export declare function setCodexPlanModeInstructions(next: string | undefined): void;
16
+ export declare const CODEX_CODE_MODE_INSTRUCTIONS = "you are now in code mode.";
17
+ export declare const CODEX_ORCHESTRATOR_INSTRUCTIONS = "# Sub-agents\n\nIf subagent tools are unavailable, proceed solo and ignore subagent-specific guidance.\n\nWhen subagents are available, delegate independent work in parallel, coordinate them with wait/send_input-style flow, and synthesize results before finalizing.\n\nWhen subagents are active, your primary role is coordination and synthesis; avoid doing worker implementation in parallel with active workers unless needed for unblock/fallback.";
18
+ export declare function resolveHookAgentName(agent: unknown): string | undefined;
19
+ export declare function resolveCollaborationProfile(agent: unknown): CodexCollaborationProfile;
20
+ export declare function resolveCollaborationInstructions(kind: CodexCollaborationModeKind, instructions: CollaborationInstructionsByKind): string;
21
+ export declare function resolveToolingInstructions(profile: CollaborationToolProfile): string;
22
+ export declare function mergeInstructions(base: string | undefined, extra: string): string;
23
+ export declare function isOrchestratorInstructions(instructions: string | undefined): boolean;
24
+ export declare function resolveSubagentHeaderValue(agent: unknown): string | undefined;
25
+ //# sourceMappingURL=collaboration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collaboration.d.ts","sourceRoot":"","sources":["../../../lib/codex-native/collaboration.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,MAAM,CAAA;AACxD,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,OAAO,CAAA;AAE3D,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,0BAA0B,CAAA;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,qCAAqC,qhOAuHyD,CAAA;AAI3G,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAG3E;AAED,eAAO,MAAM,4BAA4B,8BAA8B,CAAA;AAEvE,eAAO,MAAM,+BAA+B,mcAMsI,CAAA;AA8BlL,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKvE;AAyBD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,CA6CrF;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,0BAA0B,EAChC,YAAY,EAAE,+BAA+B,GAC5C,MAAM,CAGR;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAEpF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjF;AAED,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAiCpF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CA2B7E"}