@ai0x0/codex-ts 0.7.0 → 0.8.1

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 (61) hide show
  1. package/dist/core/src/codex_thread.d.ts +7 -0
  2. package/dist/core/src/codex_thread.d.ts.map +1 -1
  3. package/dist/core/src/codex_thread.js +26 -2
  4. package/dist/core/src/codex_thread.js.map +1 -1
  5. package/dist/core/src/session/retry.d.ts.map +1 -1
  6. package/dist/core/src/session/retry.js +10 -3
  7. package/dist/core/src/session/retry.js.map +1 -1
  8. package/dist/core/src/session/turn.d.ts +19 -1
  9. package/dist/core/src/session/turn.d.ts.map +1 -1
  10. package/dist/core/src/session/turn.js +61 -20
  11. package/dist/core/src/session/turn.js.map +1 -1
  12. package/dist/core/src/state/token_state.d.ts +3 -3
  13. package/dist/core/src/state/token_state.d.ts.map +1 -1
  14. package/dist/core/src/state/token_state.js +36 -8
  15. package/dist/core/src/state/token_state.js.map +1 -1
  16. package/dist/core/src/tools/handlers/request_user_input_spec.d.ts +2 -7
  17. package/dist/core/src/tools/handlers/request_user_input_spec.d.ts.map +1 -1
  18. package/dist/core/src/tools/handlers/request_user_input_spec.js +3 -25
  19. package/dist/core/src/tools/handlers/request_user_input_spec.js.map +1 -1
  20. package/dist/core/src/tools/router.d.ts.map +1 -1
  21. package/dist/core/src/tools/router.js +1 -9
  22. package/dist/core/src/tools/router.js.map +1 -1
  23. package/dist/core/tests/suite/goal.test.js +16 -3
  24. package/dist/core/tests/suite/goal.test.js.map +1 -1
  25. package/dist/core/tests/suite/inject_user_input.test.d.ts +12 -0
  26. package/dist/core/tests/suite/inject_user_input.test.d.ts.map +1 -0
  27. package/dist/core/tests/suite/inject_user_input.test.js +184 -0
  28. package/dist/core/tests/suite/inject_user_input.test.js.map +1 -0
  29. package/dist/core/tests/suite/request_user_input.test.js +21 -76
  30. package/dist/core/tests/suite/request_user_input.test.js.map +1 -1
  31. package/dist/ext/goal/src/spec.js +1 -1
  32. package/dist/ext/goal/src/spec.js.map +1 -1
  33. package/dist/ext/goal/src/tool.d.ts +1 -1
  34. package/dist/ext/goal/src/tool.d.ts.map +1 -1
  35. package/dist/ext/goal/src/tool.js +37 -10
  36. package/dist/ext/goal/src/tool.js.map +1 -1
  37. package/dist/host/src/approvals/policy.d.ts +37 -0
  38. package/dist/host/src/approvals/policy.d.ts.map +1 -0
  39. package/dist/host/src/approvals/policy.js +26 -0
  40. package/dist/host/src/approvals/policy.js.map +1 -0
  41. package/dist/host/src/backend/types.d.ts +58 -0
  42. package/dist/host/src/backend/types.d.ts.map +1 -0
  43. package/dist/host/src/backend/types.js +25 -0
  44. package/dist/host/src/backend/types.js.map +1 -0
  45. package/dist/host/src/exec/spec.d.ts +27 -0
  46. package/dist/host/src/exec/spec.d.ts.map +1 -0
  47. package/dist/host/src/exec/spec.js +74 -0
  48. package/dist/host/src/exec/spec.js.map +1 -0
  49. package/dist/host/src/exec/tools.d.ts +15 -0
  50. package/dist/host/src/exec/tools.d.ts.map +1 -0
  51. package/dist/host/src/exec/tools.js +89 -0
  52. package/dist/host/src/exec/tools.js.map +1 -0
  53. package/dist/host/src/index.d.ts +8 -0
  54. package/dist/host/src/index.d.ts.map +1 -0
  55. package/dist/host/src/index.js +5 -0
  56. package/dist/host/src/index.js.map +1 -0
  57. package/dist/protocol/src/protocol.d.ts +43 -0
  58. package/dist/protocol/src/protocol.d.ts.map +1 -1
  59. package/dist/protocol/src/request_user_input.d.ts +0 -15
  60. package/dist/protocol/src/request_user_input.d.ts.map +1 -1
  61. package/package.json +5 -1
@@ -3,9 +3,6 @@
3
3
  */
4
4
  import * as S from "../../../../tools/src/json_schema.js";
5
5
  export const REQUEST_USER_INPUT_TOOL_NAME = "request_user_input";
6
- /** mirrors MIN/MAX_AUTO_RESOLUTION_MS (request_user_input_spec.rs:9-10) */
7
- export const MIN_AUTO_RESOLUTION_MS = 60_000;
8
- export const MAX_AUTO_RESOLUTION_MS = 240_000;
9
6
  export function createRequestUserInputTool() {
10
7
  const optionSchema = S.object({
11
8
  label: S.string("User-facing label (1-5 words)."),
@@ -19,12 +16,6 @@ export function createRequestUserInputTool() {
19
16
  question: S.string("Single-sentence prompt shown to the user."),
20
17
  options: optionsSchema,
21
18
  }, ["id", "header", "question", "options"], false);
22
- // mirrors auto_resolution_ms_schema (request_user_input_spec.rs:71)
23
- const autoResolutionMsSchema = S.number(`Optional auto-resolution window in milliseconds, from ${MIN_AUTO_RESOLUTION_MS} to ${MAX_AUTO_RESOLUTION_MS}. ` +
24
- "Include this only when the question is useful but non-blocking and continuing with best judgment is acceptable " +
25
- "if the user does not answer; omit it when explicit user input is required before continuing. " +
26
- `Use ${MIN_AUTO_RESOLUTION_MS} for lightly helpful context and up to ${MAX_AUTO_RESOLUTION_MS} when the answer ` +
27
- "would materially unblock better work.");
28
19
  return {
29
20
  type: "function",
30
21
  tool: {
@@ -32,22 +23,17 @@ export function createRequestUserInputTool() {
32
23
  // mirrors request_user_input_tool_description (request_user_input_spec.rs:138).
33
24
  // The rs "only available in {allowed_modes}" clause is dropped: codex-ts has
34
25
  // no collaboration modes, so the tool is always available.
35
- description: "Request user input for one to three short questions and wait for the response. " +
36
- `Set autoResolutionMs, from ${MIN_AUTO_RESOLUTION_MS} to ${MAX_AUTO_RESOLUTION_MS} milliseconds, only when ` +
37
- "the question is useful but non-blocking and continuing with best judgment is acceptable if the user does " +
38
- "not answer; omit it when explicit user input is required.",
26
+ description: "Request user input for one to three short questions and wait for the response.",
39
27
  parameters: S.object({
40
28
  questions: S.array(questionSchema, "Questions to show the user. Prefer 1 and do not exceed 3."),
41
- autoResolutionMs: autoResolutionMsSchema,
42
29
  }, ["questions"], false),
43
30
  strict: false,
44
31
  },
45
32
  };
46
33
  }
47
34
  /**
48
- * Normalise args from the model: ensure options exist, set isOther = true, and
49
- * clamp autoResolutionMs into the supported range.
50
- * mirrors normalize_request_user_input_args (request_user_input_spec.rs:104).
35
+ * Normalise args from the model: ensure options exist and set isOther = true.
36
+ * mirrors normalize_request_user_input_tool_args (request_user_input_spec.rs:104).
51
37
  */
52
38
  export function normalizeRequestUserInputArgs(args) {
53
39
  // The model can omit `questions` (or send a non-array) under strict:false;
@@ -65,13 +51,6 @@ export function normalizeRequestUserInputArgs(args) {
65
51
  };
66
52
  }
67
53
  }
68
- // mirrors the auto_resolution_ms clamp (request_user_input_spec.rs:123): an
69
- // out-of-range window is pulled into [MIN, MAX] rather than rejected. A
70
- // non-numeric value (strict:false lets the model send anything) is dropped.
71
- const rawAutoResolutionMs = args.autoResolutionMs;
72
- const autoResolutionMs = typeof rawAutoResolutionMs === "number" && Number.isFinite(rawAutoResolutionMs)
73
- ? Math.min(MAX_AUTO_RESOLUTION_MS, Math.max(MIN_AUTO_RESOLUTION_MS, Math.trunc(rawAutoResolutionMs)))
74
- : undefined;
75
54
  return {
76
55
  questions: args.questions.map((q) => ({
77
56
  id: q.id,
@@ -81,7 +60,6 @@ export function normalizeRequestUserInputArgs(args) {
81
60
  isOther: true,
82
61
  isSecret: q.isSecret ?? false,
83
62
  })),
84
- ...(autoResolutionMs !== undefined ? { autoResolutionMs } : {}),
85
63
  };
86
64
  }
87
65
  //# sourceMappingURL=request_user_input_spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request_user_input_spec.js","sourceRoot":"","sources":["../../../../../core/src/tools/handlers/request_user_input_spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request_user_input_spec.js","sourceRoot":"","sources":["../../../../../core/src/tools/handlers/request_user_input_spec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,CAAC,MAAM,sCAAsC,CAAC;AAE1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AACjE,MAAM,UAAU,0BAA0B;IACxC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAC3B;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC;QACjD,WAAW,EAAE,CAAC,CAAC,MAAM,CACnB,4DAA4D,CAC7D;KACF,EACD,CAAC,OAAO,EAAE,aAAa,CAAC,EACxB,KAAK,CACN,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAC3B,YAAY,EACZ,sHAAsH;QACpH,sEAAsE,CACzE,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAC7B;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,qDAAqD,CAAC;QACnE,MAAM,EAAE,CAAC,CAAC,MAAM,CACd,yDAAyD,CAC1D;QACD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,2CAA2C,CAAC;QAC/D,OAAO,EAAE,aAAa;KACvB,EACD,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,EACvC,KAAK,CACN,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,4BAA4B;YAClC,gFAAgF;YAChF,6EAA6E;YAC7E,2DAA2D;YAC3D,WAAW,EACT,gFAAgF;YAClF,UAAU,EAAE,CAAC,CAAC,MAAM,CAClB;gBACE,SAAS,EAAE,CAAC,CAAC,KAAK,CAChB,cAAc,EACd,2DAA2D,CAC5D;aACF,EACD,CAAC,WAAW,CAAC,EACb,KAAK,CACN;YACD,MAAM,EAAE,KAAK;SACd;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAU7C;IAKC,2EAA2E;IAC3E,uEAAuE;IACvE,8DAA8D;IAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO;YACL,KAAK,EAAE,2DAA2D;SACnE,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO;gBACL,KAAK,EACH,kEAAkE;aACrE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,KAAK;SAC9B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../core/src/tools/router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAkBjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAOtE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,mFAAmF;IACnF,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;CACpC;AAUD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,IAAI,QAAQ,CAAC;IACjB,2EAA2E;IAC3E,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjE;AAED,sCAAsC;AACtC,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;gBAE1C,YAAY,EAAE,gBAAgB,EAAE,WAAW,GAAE,UAAU,EAAO;IAK1E,0DAA0D;IAC1D,SAAS,IAAI,QAAQ,EAAE;IAWvB;;;;OAIG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,MAAM,CAAC;CAmFnB"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../core/src/tools/router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAkBjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAOtE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,mFAAmF;IACnF,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;CACpC;AAUD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,IAAI,QAAQ,CAAC;IACjB,2EAA2E;IAC3E,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjE;AAED,sCAAsC;AACtC,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;gBAE1C,YAAY,EAAE,gBAAgB,EAAE,WAAW,GAAE,UAAU,EAAO;IAK1E,0DAA0D;IAC1D,SAAS,IAAI,QAAQ,EAAE;IAWvB;;;;OAIG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,MAAM,CAAC;CA6EnB"}
@@ -33,9 +33,7 @@ export class ToolRouter {
33
33
  * returned, so RequestUserInput fires before the turn suspends.
34
34
  */
35
35
  async dispatch(toolName, callId, rawArgs, ctx) {
36
- const args = (typeof rawArgs === "object" && rawArgs !== null
37
- ? rawArgs
38
- : {});
36
+ const args = (typeof rawArgs === "object" && rawArgs !== null ? rawArgs : {});
39
37
  switch (toolName) {
40
38
  case GET_GOAL_TOOL_NAME: {
41
39
  const { output } = await this.goalExecutor.get();
@@ -59,18 +57,12 @@ export class ToolRouter {
59
57
  return JSON.stringify({ error: normalized.error });
60
58
  }
61
59
  // Emit BEFORE suspending so the client can see the event and answer.
62
- // autoResolutionMs rides along (mirrors RequestUserInputEvent
63
- // .auto_resolution_ms) so the host can decide whether the question is
64
- // blocking or may be auto-resolved after that window.
65
60
  ctx.emitEvent({
66
61
  type: "RequestUserInput",
67
62
  event: {
68
63
  call_id: callId,
69
64
  turn_id: ctx.turnId,
70
65
  questions: normalized.questions,
71
- ...(normalized.autoResolutionMs !== undefined
72
- ? { autoResolutionMs: normalized.autoResolutionMs }
73
- : {}),
74
66
  },
75
67
  });
76
68
  const response = await handleRequestUserInput({ turnId: ctx.turnId, pendingInputs: ctx.pendingInputs }, normalized.questions);
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../core/src/tools/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../core/src/tools/router.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,9 @@ import { waitForEvent, waitForEventMatch, sseFlat, evFunctionCall, evAssistantMe
9
9
  // ─── GoalToolExecutor unit tests ──────────────────────────────────────────────
10
10
  describe("GoalToolExecutor", () => {
11
11
  let ex;
12
- beforeEach(() => { ex = new GoalToolExecutor("thread-1"); });
12
+ beforeEach(() => {
13
+ ex = new GoalToolExecutor("thread-1");
14
+ });
13
15
  it("get returns null goal when none exists", async () => {
14
16
  const r = JSON.parse((await ex.get()).output);
15
17
  expect(r.goal).toBeNull();
@@ -54,6 +56,12 @@ describe("GoalToolExecutor", () => {
54
56
  const r = JSON.parse((await ex.update("blocked")).output);
55
57
  expect(r.goal.status).toBe("Blocked");
56
58
  });
59
+ // mirrors ext/goal/src/tool.rs update_goal accepting ThreadGoalStatus::Paused.
60
+ it("update marks goal Paused", async () => {
61
+ await ex.create("finish");
62
+ const r = JSON.parse((await ex.update("paused")).output);
63
+ expect(r.goal.status).toBe("Paused");
64
+ });
57
65
  it("update fails with no goal", async () => {
58
66
  const r = JSON.parse((await ex.update("complete")).output);
59
67
  expect(r.error).toMatch(/No active goal/);
@@ -74,7 +82,9 @@ describe("GoalToolExecutor", () => {
74
82
  });
75
83
  // ─── Integration: create_goal tool call through CodexThread ───────────────────
76
84
  describe("create_goal tool call", () => {
77
- beforeEach(() => { vi.unstubAllGlobals(); });
85
+ beforeEach(() => {
86
+ vi.unstubAllGlobals();
87
+ });
78
88
  it("emits ThreadGoalUpdated event and TurnComplete", async () => {
79
89
  const fetchMock = vi.fn();
80
90
  // Turn 1: model calls create_goal
@@ -91,7 +101,10 @@ describe("create_goal tool call", () => {
91
101
  ])));
92
102
  vi.stubGlobal("fetch", fetchMock);
93
103
  const codex = new CodexThread({ apiKey: "test", model: "gpt-4o" });
94
- await codex.submit({ type: "UserInput", items: [{ type: "text", text: "create a goal" }] });
104
+ await codex.submit({
105
+ type: "UserInput",
106
+ items: [{ type: "text", text: "create a goal" }],
107
+ });
95
108
  const goalUpdated = await waitForEventMatch(codex, (msg) => msg.type === "ThreadGoalUpdated" ? msg.event : null);
96
109
  expect(goalUpdated.goal.objective).toBe("test goal");
97
110
  expect(goalUpdated.goal.status).toBe("Active");
@@ -1 +1 @@
1
- {"version":3,"file":"goal.test.js","sourceRoot":"","sources":["../../../../core/tests/suite/goal.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"goal.test.js","sourceRoot":"","sources":["../../../../core/tests/suite/goal.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Op::InjectUserInput — steering a running turn (mirrors codex-rs inject_input).
3
+ *
4
+ * The case it exists for: a tool returns text, but what it produced is a picture
5
+ * (a previz contact sheet, a screenshot). The tool output channel is a string,
6
+ * so the host injects the picture as a user-role message. It has to land AFTER
7
+ * that tool's function_call_output and BEFORE the next request — a user message
8
+ * between two tool outputs would break the tool_use/tool_result pairing on
9
+ * Chat-Completions-shaped upstreams.
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=inject_user_input.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject_user_input.test.d.ts","sourceRoot":"","sources":["../../../../core/tests/suite/inject_user_input.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Op::InjectUserInput — steering a running turn (mirrors codex-rs inject_input).
3
+ *
4
+ * The case it exists for: a tool returns text, but what it produced is a picture
5
+ * (a previz contact sheet, a screenshot). The tool output channel is a string,
6
+ * so the host injects the picture as a user-role message. It has to land AFTER
7
+ * that tool's function_call_output and BEFORE the next request — a user message
8
+ * between two tool outputs would break the tool_use/tool_result pairing on
9
+ * Chat-Completions-shaped upstreams.
10
+ */
11
+ import { beforeEach, describe, expect, it, vi } from "vitest";
12
+ import { CodexThread } from "../../src/codex_thread.js";
13
+ import { evAssistantMessage, evCompleted, evFunctionCall, evResponseCreated, makeSseResponse, sseFlat, waitForEvent, } from "../common/lib.js";
14
+ const SHEET_URL = "https://example.test/contact-sheet.jpg";
15
+ function describeItem(item) {
16
+ if (item.type === "message") {
17
+ const parts = Array.isArray(item.content)
18
+ ? item.content.map((part) => part.type).join("+")
19
+ : "text";
20
+ return `${item.role}:${parts}`;
21
+ }
22
+ return item.type;
23
+ }
24
+ describe("Op::InjectUserInput", () => {
25
+ beforeEach(() => {
26
+ vi.unstubAllGlobals();
27
+ });
28
+ it("injected while a tool runs: lands after that tool's output, before the next request", async () => {
29
+ let codexRef;
30
+ const lookTool = {
31
+ name: "record_previz",
32
+ spec: () => ({
33
+ type: "function",
34
+ tool: {
35
+ name: "record_previz",
36
+ description: "Records a previz clip and produces a contact sheet.",
37
+ parameters: {
38
+ type: "object",
39
+ properties: {},
40
+ additionalProperties: false,
41
+ },
42
+ strict: false,
43
+ },
44
+ }),
45
+ execute: async () => {
46
+ // The host injects the picture the tool produced before returning its
47
+ // text output — the drain must still order it behind the output.
48
+ await codexRef.submit({
49
+ type: "InjectUserInput",
50
+ items: [
51
+ { type: "text", text: "[stage] contact sheet of the shot just recorded" },
52
+ { type: "image", image_url: SHEET_URL },
53
+ ],
54
+ });
55
+ return "Recorded the previz clip. Contact sheet attached.";
56
+ },
57
+ };
58
+ const captured = [];
59
+ const fetchMock = vi.fn().mockImplementation(async (_url, init) => {
60
+ captured.push(JSON.parse(init.body));
61
+ if (captured.length === 1) {
62
+ return makeSseResponse(sseFlat([
63
+ evResponseCreated("r1"),
64
+ evFunctionCall("call-1", "record_previz", {}),
65
+ evCompleted("r1"),
66
+ ]));
67
+ }
68
+ return makeSseResponse(sseFlat([
69
+ evResponseCreated("r2"),
70
+ evAssistantMessage("Looked at it: both figures stand on the floor."),
71
+ evCompleted("r2"),
72
+ ]));
73
+ });
74
+ vi.stubGlobal("fetch", fetchMock);
75
+ const codex = new CodexThread({
76
+ apiKey: "test",
77
+ model: "gpt-4o",
78
+ customTools: [lookTool],
79
+ });
80
+ codexRef = codex;
81
+ await codex.submit({
82
+ type: "UserInput",
83
+ items: [{ type: "text", text: "record shot 1" }],
84
+ });
85
+ await waitForEvent(codex, (m) => m.type === "TurnComplete");
86
+ expect(captured).toHaveLength(2);
87
+ const second = captured[1].input;
88
+ const shapes = second.map(describeItem);
89
+ const outputAt = second.findIndex((item) => item.type === "function_call_output");
90
+ const injectedAt = second.findIndex((item) => item.type === "message" &&
91
+ item.role === "user" &&
92
+ Array.isArray(item.content) &&
93
+ item.content.some((part) => part.type === "input_image" && part.image_url === SHEET_URL));
94
+ expect(outputAt, shapes.join(" | ")).toBeGreaterThan(0);
95
+ expect(injectedAt, shapes.join(" | ")).toBe(outputAt + 1);
96
+ // Nothing but the injection sits between the tool output and the end of the input.
97
+ expect(injectedAt).toBe(second.length - 1);
98
+ // The first request never saw it (it did not exist yet).
99
+ expect(captured[0].input.some((item) => describeItem(item) === "user:input_text+input_image")).toBe(false);
100
+ });
101
+ it("injected while idle: recorded now, carried by the next turn ahead of its own message", async () => {
102
+ const captured = [];
103
+ const fetchMock = vi.fn().mockImplementation(async (_url, init) => {
104
+ captured.push(JSON.parse(init.body));
105
+ const id = `r${captured.length}`;
106
+ return makeSseResponse(sseFlat([evResponseCreated(id), evAssistantMessage("ok"), evCompleted(id)]));
107
+ });
108
+ vi.stubGlobal("fetch", fetchMock);
109
+ const codex = new CodexThread({ apiKey: "test", model: "gpt-4o" });
110
+ await codex.submit({
111
+ type: "UserInput",
112
+ items: [{ type: "text", text: "first" }],
113
+ });
114
+ await waitForEvent(codex, (m) => m.type === "TurnComplete");
115
+ await codex.submit({
116
+ type: "InjectUserInput",
117
+ items: [{ type: "image", image_url: SHEET_URL }],
118
+ });
119
+ await codex.submit({
120
+ type: "UserInput",
121
+ items: [{ type: "text", text: "second" }],
122
+ });
123
+ await waitForEvent(codex, (m) => m.type === "TurnComplete");
124
+ const shapes = captured[1].input.map(describeItem);
125
+ const injectedAt = shapes.indexOf("user:input_image");
126
+ const secondAt = captured[1].input.findIndex((item) => item.type === "message" &&
127
+ item.role === "user" &&
128
+ Array.isArray(item.content) &&
129
+ item.content.some((part) => part.type === "input_text" && part.text === "second"));
130
+ expect(injectedAt, shapes.join(" | ")).toBeGreaterThan(0);
131
+ expect(secondAt, shapes.join(" | ")).toBe(injectedAt + 1);
132
+ });
133
+ it("injected while the model is answering (no tool calls): the turn samples once more", async () => {
134
+ let codexRef;
135
+ const captured = [];
136
+ const fetchMock = vi.fn().mockImplementation(async (_url, init) => {
137
+ captured.push(JSON.parse(init.body));
138
+ if (captured.length === 1) {
139
+ // Arrives while the first (final-looking) sampling round is in flight —
140
+ // mirrors codex-rs `needs_follow_up = model_needs_follow_up || has_pending_input`.
141
+ await codexRef.submit({
142
+ type: "InjectUserInput",
143
+ items: [{ type: "image", image_url: SHEET_URL }],
144
+ });
145
+ }
146
+ const id = `r${captured.length}`;
147
+ return makeSseResponse(sseFlat([evResponseCreated(id), evAssistantMessage(`answer ${id}`), evCompleted(id)]));
148
+ });
149
+ vi.stubGlobal("fetch", fetchMock);
150
+ const codex = new CodexThread({ apiKey: "test", model: "gpt-4o" });
151
+ codexRef = codex;
152
+ await codex.submit({
153
+ type: "UserInput",
154
+ items: [{ type: "text", text: "go" }],
155
+ });
156
+ const done = await waitForEvent(codex, (m) => m.type === "TurnComplete");
157
+ expect(captured).toHaveLength(2);
158
+ const shapes = captured[1].input.map(describeItem);
159
+ // history: user "go", assistant "answer r1" (recorded as a text message), injected
160
+ // picture → sampled again with the picture last.
161
+ expect(shapes.slice(-2), shapes.join(" | ")).toEqual([
162
+ "assistant:text",
163
+ "user:input_image",
164
+ ]);
165
+ expect(done.type === "TurnComplete" && done.event.last_agent_message).toBe("answer r2");
166
+ });
167
+ it("an empty injection records nothing", async () => {
168
+ const captured = [];
169
+ // Stub fetch BEFORE constructing: the thread captures `fetch` at construction.
170
+ vi.stubGlobal("fetch", vi.fn().mockImplementation(async (_url, init) => {
171
+ captured.push(JSON.parse(init.body));
172
+ return makeSseResponse(sseFlat([evResponseCreated("r1"), evAssistantMessage("ok"), evCompleted("r1")]));
173
+ }));
174
+ const codex = new CodexThread({ apiKey: "test", model: "gpt-4o" });
175
+ await codex.submit({ type: "InjectUserInput", items: [] });
176
+ await codex.submit({
177
+ type: "UserInput",
178
+ items: [{ type: "text", text: "only" }],
179
+ });
180
+ await waitForEvent(codex, (m) => m.type === "TurnComplete");
181
+ expect(captured[0].input.filter((item) => item.type === "message" && item.role === "user")).toHaveLength(1);
182
+ });
183
+ });
184
+ //# sourceMappingURL=inject_user_input.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject_user_input.test.js","sourceRoot":"","sources":["../../../../core/tests/suite/inject_user_input.test.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,11 @@
3
3
  */
4
4
  import { describe, it, expect, vi, beforeEach } from "vitest";
5
5
  import { CodexThread } from "../../src/codex_thread.js";
6
- import { MAX_AUTO_RESOLUTION_MS, MIN_AUTO_RESOLUTION_MS, normalizeRequestUserInputArgs, } from "../../src/tools/handlers/request_user_input_spec.js";
6
+ import { createRequestUserInputTool, normalizeRequestUserInputArgs, } from "../../src/tools/handlers/request_user_input_spec.js";
7
7
  import { waitForEvent, waitForEventMatch, sseFlat, evFunctionCall, evAssistantMessage, evCompleted, evResponseCreated, makeSseResponse, } from "../common/lib.js";
8
- beforeEach(() => { vi.unstubAllGlobals(); });
8
+ beforeEach(() => {
9
+ vi.unstubAllGlobals();
10
+ });
9
11
  // ─── Helpers ──────────────────────────────────────────────────────────────────
10
12
  function makeRequestUserInputArgs(callId) {
11
13
  return sseFlat([
@@ -44,7 +46,7 @@ describe("request_user_input_round_trip_resolves_pending", () => {
44
46
  items: [{ type: "text", text: "please confirm" }],
45
47
  });
46
48
  // Wait for the agent to request user input
47
- const request = await waitForEventMatch(codex, (msg) => msg.type === "RequestUserInput" ? msg.event : null);
49
+ const request = await waitForEventMatch(codex, (msg) => (msg.type === "RequestUserInput" ? msg.event : null));
48
50
  expect(request.call_id).toBe(callId);
49
51
  expect(request.questions).toHaveLength(1);
50
52
  expect(request.questions[0]?.id).toBe("confirm_path");
@@ -180,82 +182,25 @@ describe("normalizeRequestUserInputArgs guards a malformed questions field", ()
180
182
  });
181
183
  expect("questions" in result && result.questions[0]?.isOther).toBe(true);
182
184
  });
183
- });
184
- // mirrors the auto_resolution_ms clamp (request_user_input_spec.rs:123)
185
- describe("normalizeRequestUserInputArgs clamps autoResolutionMs", () => {
186
- const question = {
187
- id: "q1",
188
- header: "Q",
189
- question: "Pick?",
190
- options: [{ label: "A", description: "a" }],
191
- };
192
- it("keeps an in-range window", () => {
185
+ // Upstream removed autoResolutionMs from the tool schema and event contract.
186
+ it("omits autoResolutionMs even when an older model sends it", () => {
187
+ const spec = createRequestUserInputTool().tool;
188
+ expect(Object.keys(spec.parameters.properties ?? {})).not.toContain("autoResolutionMs");
193
189
  const result = normalizeRequestUserInputArgs({
194
- questions: [question],
190
+ questions: [
191
+ {
192
+ id: "q1",
193
+ header: "Q",
194
+ question: "Pick?",
195
+ options: [{ label: "A", description: "a" }],
196
+ },
197
+ ],
195
198
  autoResolutionMs: 90_000,
196
199
  });
197
- expect("questions" in result && result.autoResolutionMs).toBe(90_000);
198
- });
199
- it("clamps below MIN and above MAX", () => {
200
- const low = normalizeRequestUserInputArgs({
201
- questions: [question],
202
- autoResolutionMs: 1_000,
203
- });
204
- expect("questions" in low && low.autoResolutionMs).toBe(MIN_AUTO_RESOLUTION_MS);
205
- const high = normalizeRequestUserInputArgs({
206
- questions: [question],
207
- autoResolutionMs: 999_999,
208
- });
209
- expect("questions" in high && high.autoResolutionMs).toBe(MAX_AUTO_RESOLUTION_MS);
210
- });
211
- it("omits the field when absent or non-numeric", () => {
212
- const absent = normalizeRequestUserInputArgs({ questions: [question] });
213
- expect("questions" in absent && absent.autoResolutionMs).toBeUndefined();
214
- const bogus = normalizeRequestUserInputArgs({
215
- questions: [question],
216
- autoResolutionMs: "soon",
217
- });
218
- expect("questions" in bogus && bogus.autoResolutionMs).toBeUndefined();
219
- });
220
- });
221
- describe("request_user_input forwards autoResolutionMs to the event", () => {
222
- it("emits the clamped window on RequestUserInput", async () => {
223
- const callId = "call-rui-auto";
224
- const fetchMock = vi.fn();
225
- fetchMock.mockResolvedValueOnce(makeSseResponse(sseFlat([
226
- evResponseCreated("resp-1"),
227
- evFunctionCall(callId, "request_user_input", {
228
- questions: [
229
- {
230
- id: "confirm_path",
231
- header: "Confirm",
232
- question: "Proceed?",
233
- options: [{ label: "Yes", description: "Continue." }],
234
- },
235
- ],
236
- autoResolutionMs: 10,
237
- }),
238
- evCompleted("resp-1"),
239
- ])));
240
- fetchMock.mockResolvedValue(makeSseResponse(sseFlat([
241
- evResponseCreated("resp-2"),
242
- evAssistantMessage("done"),
243
- evCompleted("resp-2"),
244
- ])));
245
- vi.stubGlobal("fetch", fetchMock);
246
- const codex = new CodexThread({ apiKey: "k", model: "m" });
247
- await codex.submit({
248
- type: "UserInput",
249
- items: [{ type: "text", text: "deploy" }],
250
- });
251
- const event = await waitForEventMatch(codex, (msg) => (msg.type === "RequestUserInput" ? msg.event : null));
252
- expect(event.autoResolutionMs).toBe(MIN_AUTO_RESOLUTION_MS);
253
- await codex.submit({
254
- type: "UserInputAnswer",
255
- id: event.turn_id,
256
- response: { answers: { confirm_path: { answers: ["Yes"] } } },
257
- });
258
- await waitForEvent(codex, (m) => m.type === "TurnComplete");
200
+ expect("questions" in result).toBe(true);
201
+ if ("questions" in result) {
202
+ expect("autoResolutionMs" in result).toBe(false);
203
+ }
259
204
  });
260
205
  });
261
206
  //# sourceMappingURL=request_user_input.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request_user_input.test.js","sourceRoot":"","sources":["../../../../core/tests/suite/request_user_input.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request_user_input.test.js","sourceRoot":"","sources":["../../../../core/tests/suite/request_user_input.test.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ export function createUpdateGoalTool() {
54
54
  "When marking a budgeted goal achieved with status `complete`, report the final token usage from the tool result to the user.",
55
55
  ].join("\n"),
56
56
  parameters: S.object({
57
- status: S.stringEnum(["complete", "blocked"], "Required. Set to `complete` only when the objective is achieved and no required work remains. " +
57
+ status: S.stringEnum(["complete", "blocked", "paused"], "Required. Set to `complete` only when the objective is achieved and no required work remains. " +
58
58
  "Set to `blocked` only after the same blocking condition has recurred for at least three consecutive " +
59
59
  "goal turns and the agent is at an impasse. After a previously blocked goal is resumed, the resumed " +
60
60
  "run starts a fresh blocked audit."),
@@ -1 +1 @@
1
- {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../../ext/goal/src/spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,CAAC,MAAM,mCAAmC,CAAC;AAEvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACT,4HAA4H;YAC9H,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC;YACnC,MAAM,EAAE,KAAK;SACd;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE;gBACX,oIAAoI;gBACpI,6GAA6G,qBAAqB,mBAAmB;aACtJ,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,CAAC,CAAC,MAAM,CAClB;gBACE,SAAS,EAAE,CAAC,CAAC,MAAM,CACjB,sDAAsD;oBACpD,qGAAqG,CACxG;gBACD,YAAY,EAAE,CAAC,CAAC,OAAO,CACrB,2EAA2E,CAC5E;aACF,EACD,CAAC,WAAW,CAAC,EACb,KAAK,CACN;YACD,MAAM,EAAE,KAAK;SACd;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE;gBACX,2BAA2B;gBAC3B,oEAAoE;gBACpE,2GAA2G;gBAC3G,gSAAgS;gBAChS,gPAAgP;gBAChP,mJAAmJ;gBACnJ,yHAAyH;gBACzH,6GAA6G;gBAC7G,4IAA4I;gBAC5I,8HAA8H;aAC/H,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,CAAC,CAAC,MAAM,CAClB;gBACE,MAAM,EAAE,CAAC,CAAC,UAAU,CAClB,CAAC,UAAU,EAAE,SAAS,CAAC,EACvB,gGAAgG;oBAC9F,sGAAsG;oBACtG,qGAAqG;oBACrG,mCAAmC,CACtC;aACF,EACD,CAAC,QAAQ,CAAC,EACV,KAAK,CACN;YACD,MAAM,EAAE,KAAK;SACd;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../../ext/goal/src/spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,CAAC,MAAM,mCAAmC,CAAC;AAEvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACT,4HAA4H;YAC9H,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC;YACnC,MAAM,EAAE,KAAK;SACd;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE;gBACX,oIAAoI;gBACpI,6GAA6G,qBAAqB,mBAAmB;aACtJ,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,CAAC,CAAC,MAAM,CAClB;gBACE,SAAS,EAAE,CAAC,CAAC,MAAM,CACjB,sDAAsD;oBACpD,qGAAqG,CACxG;gBACD,YAAY,EAAE,CAAC,CAAC,OAAO,CACrB,2EAA2E,CAC5E;aACF,EACD,CAAC,WAAW,CAAC,EACb,KAAK,CACN;YACD,MAAM,EAAE,KAAK;SACd;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE;gBACX,2BAA2B;gBAC3B,oEAAoE;gBACpE,2GAA2G;gBAC3G,gSAAgS;gBAChS,gPAAgP;gBAChP,mJAAmJ;gBACnJ,yHAAyH;gBACzH,6GAA6G;gBAC7G,4IAA4I;gBAC5I,8HAA8H;aAC/H,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,CAAC,CAAC,MAAM,CAClB;gBACE,MAAM,EAAE,CAAC,CAAC,UAAU,CAClB,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EACjC,gGAAgG;oBAC9F,sGAAsG;oBACtG,qGAAqG;oBACrG,mCAAmC,CACtC;aACF,EACD,CAAC,QAAQ,CAAC,EACV,KAAK,CACN;YACD,MAAM,EAAE,KAAK;SACd;KACF,CAAC;AACJ,CAAC"}