@agents-ensemble/core 0.10.0 → 0.11.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 (110) hide show
  1. package/dist/conductor/conductor-session.d.ts.map +1 -1
  2. package/dist/conductor/conductor-session.js +35 -4
  3. package/dist/conductor/conductor-session.js.map +1 -1
  4. package/dist/conductor/session/events/session-log-event.d.ts +2 -0
  5. package/dist/conductor/session/events/session-log-event.d.ts.map +1 -1
  6. package/dist/config/defaults.d.ts.map +1 -1
  7. package/dist/config/defaults.js +2 -1
  8. package/dist/config/defaults.js.map +1 -1
  9. package/dist/config/parse-config.d.ts.map +1 -1
  10. package/dist/config/parse-config.js +6 -1
  11. package/dist/config/parse-config.js.map +1 -1
  12. package/dist/config/types.d.ts +2 -0
  13. package/dist/config/types.d.ts.map +1 -1
  14. package/dist/dispatch/prompt-worker-tool.js +2 -2
  15. package/dist/dispatch/prompt-worker-tool.js.map +1 -1
  16. package/dist/dispatch/worker-status-tool.js +2 -2
  17. package/dist/dispatch/worker-status-tool.js.map +1 -1
  18. package/dist/escalation/answer-open-question-tool.d.ts.map +1 -1
  19. package/dist/escalation/answer-open-question-tool.js +24 -5
  20. package/dist/escalation/answer-open-question-tool.js.map +1 -1
  21. package/dist/escalation/ask-human-tool.d.ts.map +1 -1
  22. package/dist/escalation/ask-human-tool.js +41 -4
  23. package/dist/escalation/ask-human-tool.js.map +1 -1
  24. package/dist/escalation/format-registry-update.d.ts.map +1 -1
  25. package/dist/escalation/format-registry-update.js +9 -2
  26. package/dist/escalation/format-registry-update.js.map +1 -1
  27. package/dist/escalation/human-inquiry.d.ts +9 -1
  28. package/dist/escalation/human-inquiry.d.ts.map +1 -1
  29. package/dist/escalation/index.d.ts +3 -2
  30. package/dist/escalation/index.d.ts.map +1 -1
  31. package/dist/escalation/index.js +2 -1
  32. package/dist/escalation/index.js.map +1 -1
  33. package/dist/escalation/open-question-list-tools.js +4 -0
  34. package/dist/escalation/open-question-list-tools.js.map +1 -1
  35. package/dist/escalation/open-question-to-escalation.d.ts.map +1 -1
  36. package/dist/escalation/open-question-to-escalation.js +3 -0
  37. package/dist/escalation/open-question-to-escalation.js.map +1 -1
  38. package/dist/escalation/open-question.d.ts +9 -1
  39. package/dist/escalation/open-question.d.ts.map +1 -1
  40. package/dist/escalation/open-question.js +18 -1
  41. package/dist/escalation/open-question.js.map +1 -1
  42. package/dist/escalation/record-open-question-answer.d.ts +2 -0
  43. package/dist/escalation/record-open-question-answer.d.ts.map +1 -1
  44. package/dist/escalation/record-open-question-answer.js +13 -5
  45. package/dist/escalation/record-open-question-answer.js.map +1 -1
  46. package/dist/escalation/resolve-human-inquiry.d.ts +3 -1
  47. package/dist/escalation/resolve-human-inquiry.d.ts.map +1 -1
  48. package/dist/escalation/resolve-human-inquiry.js +28 -9
  49. package/dist/escalation/resolve-human-inquiry.js.map +1 -1
  50. package/dist/escalation/yes-no-assent.d.ts +13 -0
  51. package/dist/escalation/yes-no-assent.d.ts.map +1 -0
  52. package/dist/escalation/yes-no-assent.js +136 -0
  53. package/dist/escalation/yes-no-assent.js.map +1 -0
  54. package/dist/github/format-issue-context-prompt.d.ts +1 -1
  55. package/dist/github/format-issue-context-prompt.js +2 -2
  56. package/dist/github/format-issue-context-prompt.js.map +1 -1
  57. package/dist/profile/profile-paths.d.ts +1 -1
  58. package/dist/profile/profile-paths.d.ts.map +1 -1
  59. package/dist/profile/profile-paths.js +1 -1
  60. package/dist/profile/profile-paths.js.map +1 -1
  61. package/dist/profiles/implementer-and-reviewer/conductor.prompt.yaml +2 -2
  62. package/dist/profiles/implementer-and-reviewer/implementer.prompt.yaml +1 -1
  63. package/dist/profiles/implementer-and-reviewer/profile.yaml +1 -1
  64. package/dist/profiles/implementer-and-reviewer/team.md +22 -21
  65. package/dist/profiles/implementer-and-reviewer-v2/team-common.md +11 -10
  66. package/dist/profiles/implementer-and-reviewer-v2/team-conductor.md +4 -5
  67. package/dist/profiles/implementer-and-reviewer-v2/team-implementer.md +3 -3
  68. package/dist/profiles/implementer-and-reviewer-v2/team-reviewer.md +1 -1
  69. package/dist/prompt/compile-system-prompt.d.ts +3 -1
  70. package/dist/prompt/compile-system-prompt.d.ts.map +1 -1
  71. package/dist/prompt/compile-system-prompt.js +5 -3
  72. package/dist/prompt/compile-system-prompt.js.map +1 -1
  73. package/dist/prompt/index.d.ts +2 -0
  74. package/dist/prompt/index.d.ts.map +1 -1
  75. package/dist/prompt/index.js +1 -0
  76. package/dist/prompt/index.js.map +1 -1
  77. package/dist/prompt/load-user-instructions.d.ts +12 -0
  78. package/dist/prompt/load-user-instructions.d.ts.map +1 -0
  79. package/dist/prompt/load-user-instructions.js +39 -0
  80. package/dist/prompt/load-user-instructions.js.map +1 -0
  81. package/dist/prompt/modules/ensemble/base-module.d.ts.map +1 -1
  82. package/dist/prompt/modules/ensemble/base-module.js +6 -4
  83. package/dist/prompt/modules/ensemble/base-module.js.map +1 -1
  84. package/dist/prompt/modules/ensemble/conductor-base-module.d.ts.map +1 -1
  85. package/dist/prompt/modules/ensemble/conductor-base-module.js +42 -49
  86. package/dist/prompt/modules/ensemble/conductor-base-module.js.map +1 -1
  87. package/dist/prompt/modules/ensemble/worker-base-module.js +1 -1
  88. package/dist/prompt/modules/ensemble/worker-base-module.js.map +1 -1
  89. package/dist/prompt/modules/shared/profile-prompt-module.js +1 -1
  90. package/dist/prompt/modules/shared/profile-prompt-module.js.map +1 -1
  91. package/dist/runtime/map-worker-lifecycle.d.ts.map +1 -1
  92. package/dist/runtime/map-worker-lifecycle.js +2 -0
  93. package/dist/runtime/map-worker-lifecycle.js.map +1 -1
  94. package/dist/runtime/worker-display-state.d.ts +1 -1
  95. package/dist/runtime/worker-display-state.d.ts.map +1 -1
  96. package/dist/runtime/worker-lifecycle-state.d.ts +1 -1
  97. package/dist/runtime/worker-lifecycle-state.d.ts.map +1 -1
  98. package/dist/runtime/worker-runtime.d.ts +7 -3
  99. package/dist/runtime/worker-runtime.d.ts.map +1 -1
  100. package/dist/runtime/worker-runtime.js +182 -32
  101. package/dist/runtime/worker-runtime.js.map +1 -1
  102. package/dist/runtime/worker-session.d.ts +4 -2
  103. package/dist/runtime/worker-session.d.ts.map +1 -1
  104. package/dist/runtime/worker-session.js +4 -2
  105. package/dist/runtime/worker-session.js.map +1 -1
  106. package/dist/session/session-sidecar.d.ts +2 -0
  107. package/dist/session/session-sidecar.d.ts.map +1 -1
  108. package/dist/session/session-sidecar.js +7 -0
  109. package/dist/session/session-sidecar.js.map +1 -1
  110. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"answer-open-question-tool.js","sourceRoot":"","sources":["../../src/escalation/answer-open-question-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAO5E,MAAM,UAAU,4BAA4B,CAC1C,OAAsC;IAEtC,OAAO;QACL,oBAAoB,EAAE;YACpB,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE;gBACX,8DAA8D;gBAC9D,mIAAmI;gBACnI,wFAAwF;gBACxF,qFAAqF;gBACrF,mFAAmF;aACpF,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6CAA6C;qBAC3D;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,uBAAuB;qBACrC;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,mEAAmE;qBACjF;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,8DAA8D;qBACjE;iBACF;gBACD,QAAQ,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;aACnC;YACD,KAAK,CAAC,OAAO,CAAC,IAAI;gBAChB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC9D,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBAC1D,CAAC;gBAED,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEtE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAC1D,EAAE,EAAE,UAAU;oBACd,MAAM;oBACN,QAAQ;oBACR,UAAU,EAAE,WAAW;oBACvB,SAAS;iBACV,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CACb,iEAAiE,UAAU,EAAE,CAC9E,CAAC;gBACJ,CAAC;gBAED,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAE/B,MAAM,MAAM,GAAG,gCAAgC,CAAC,QAAQ,CAAC,CAAC;gBAE1D,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,UAAU,EAAE,QAAQ,CAAC,EAAE;gCACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;gCACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;gCACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gCAC/B,MAAM;gCACN,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;oCACjC,CAAC,CAAC,EAAE;oCACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;6BACrC,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;oBACD,iBAAiB,EAAE;wBACjB,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,WAAW;qBAC/C;iBACF,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"answer-open-question-tool.js","sourceRoot":"","sources":["../../src/escalation/answer-open-question-tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ask-human-tool.d.ts","sourceRoot":"","sources":["../../src/escalation/ask-human-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,GAC3B,gBAAgB,CAkFlB"}
1
+ {"version":3,"file":"ask-human-tool.d.ts","sourceRoot":"","sources":["../../src/escalation/ask-human-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAMvE,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,GAC3B,gBAAgB,CAmGlB"}
@@ -8,7 +8,7 @@ export function createAskHumanTool(options) {
8
8
  'The operator answers in chat on a later turn; you can continue without waiting.',
9
9
  'DO NOT use if the operator already answered in chat — use answer_open_question to record their answer instead.',
10
10
  'DO NOT use answer_open_question and ask_human for the same decision in one turn.',
11
- 'Use yes_no for binary choices or text for open guidance.',
11
+ 'Use yes_no for binary choices, choice for a fixed list of options, or text for open guidance.',
12
12
  ].join(' '),
13
13
  inputSchema: {
14
14
  type: 'object',
@@ -19,8 +19,20 @@ export function createAskHumanTool(options) {
19
19
  },
20
20
  responseType: {
21
21
  type: 'string',
22
- enum: ['yes_no', 'text'],
23
- description: 'yes_no for y/n, text for free-form answer',
22
+ enum: ['yes_no', 'text', 'choice'],
23
+ description: 'yes_no for binary assent, choice for a fixed option list, text for free-form guidance',
24
+ },
25
+ choices: {
26
+ type: 'array',
27
+ items: {
28
+ type: 'object',
29
+ properties: {
30
+ id: { type: 'string' },
31
+ label: { type: 'string' },
32
+ },
33
+ required: ['id', 'label'],
34
+ },
35
+ description: 'Required for choice: options the operator can select by id, label, or one-based number',
24
36
  },
25
37
  context: {
26
38
  type: 'string',
@@ -39,6 +51,7 @@ export function createAskHumanTool(options) {
39
51
  throw new Error('ask_human requires a non-empty question');
40
52
  }
41
53
  const responseType = parseResponseType(args.responseType);
54
+ const choices = responseType === 'choice' ? parseChoices(args.choices) : undefined;
42
55
  const context = args.context ? String(args.context) : undefined;
43
56
  const relatedPermissionId = args.relatedPermissionId
44
57
  ? String(args.relatedPermissionId)
@@ -46,6 +59,7 @@ export function createAskHumanTool(options) {
46
59
  const entry = options.registry.enqueue({
47
60
  question,
48
61
  responseType,
62
+ choices,
49
63
  context,
50
64
  relatedPermissionId,
51
65
  source: 'conductor',
@@ -75,6 +89,29 @@ export function createAskHumanTool(options) {
75
89
  }
76
90
  function parseResponseType(value) {
77
91
  const normalized = String(value ?? 'text').trim().toLowerCase();
78
- return normalized === 'yes_no' ? 'yes_no' : 'text';
92
+ if (normalized === 'yes_no' || normalized === 'choice')
93
+ return normalized;
94
+ return 'text';
95
+ }
96
+ function parseChoices(value) {
97
+ if (!Array.isArray(value) || value.length === 0) {
98
+ throw new Error('ask_human requires non-empty choices for responseType choice');
99
+ }
100
+ const choices = value.map((choice) => {
101
+ if (!choice || typeof choice !== 'object') {
102
+ throw new Error('ask_human choices must have string id and label fields');
103
+ }
104
+ const candidate = choice;
105
+ const id = String(candidate.id ?? '').trim();
106
+ const label = String(candidate.label ?? '').trim();
107
+ if (!id || !label) {
108
+ throw new Error('ask_human choices must have non-empty id and label fields');
109
+ }
110
+ return { id, label };
111
+ });
112
+ if (new Set(choices.map(({ id }) => id)).size !== choices.length) {
113
+ throw new Error('ask_human choice ids must be unique');
114
+ }
115
+ return choices;
79
116
  }
80
117
  //# sourceMappingURL=ask-human-tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ask-human-tool.js","sourceRoot":"","sources":["../../src/escalation/ask-human-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAS/E,MAAM,UAAU,kBAAkB,CAChC,OAA4B;IAE5B,OAAO;QACL,SAAS,EAAE;YACT,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE;gBACX,6EAA6E;gBAC7E,iFAAiF;gBACjF,gHAAgH;gBAChH,kFAAkF;gBAClF,0DAA0D;aAC3D,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,qCAAqC;qBACnD;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;wBACxB,WAAW,EAAE,2CAA2C;qBACzD;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+CAA+C;qBAC7D;oBACD,mBAAmB,EAAE;wBACnB,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,gFAAgF;qBACnF;iBACF;gBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB;YACD,KAAK,CAAC,OAAO,CAAC,IAAI;gBAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC7D,CAAC;gBAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChE,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB;oBAClD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;oBAClC,CAAC,CAAC,SAAS,CAAC;gBAEd,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACrC,QAAQ;oBACR,YAAY;oBACZ,OAAO;oBACP,mBAAmB;oBACnB,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,gCAAgC,CAAC,KAAK,CAAC,CAAC;gBACvD,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;gBAE5B,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,EAAE,EAAE,KAAK,CAAC,EAAE;gCACZ,MAAM,EAAE,KAAK,CAAC,MAAM;gCACpB,MAAM;gCACN,OAAO,EACL,oLAAoL;6BACvL,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;oBACD,iBAAiB,EAAE;wBACjB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;qBACrB;iBACF,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"ask-human-tool.js","sourceRoot":"","sources":["../../src/escalation/ask-human-tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"format-registry-update.d.ts","sourceRoot":"","sources":["../../src/escalation/format-registry-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAM/E;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAI/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAGtF"}
1
+ {"version":3,"file":"format-registry-update.d.ts","sourceRoot":"","sources":["../../src/escalation/format-registry-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAS/E;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAU/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAGtF"}
@@ -1,13 +1,20 @@
1
1
  export function formatOpenQuestionEnqueuedReport(question) {
2
+ const choices = question.choices?.length
3
+ ? `\nchoices: ${question.choices.map(({ id, label }) => `${id}: ${label}`).join(', ')}`
4
+ : '';
2
5
  const context = question.context ? `\ncontext: ${question.context}` : '';
3
6
  const permission = question.relatedPermissionId
4
7
  ? `\npermission: ${question.relatedPermissionId}`
5
8
  : '';
6
- return `【open question 登録】${question.id} [${question.responseType}]: ${question.question}${context}${permission}`;
9
+ return `【open question 登録】${question.id} [${question.responseType}]: ${question.question}${choices}${context}${permission}`;
7
10
  }
8
11
  export function formatOpenQuestionAnsweredReport(question) {
12
+ const assent = question.assent === undefined ? '' : `\nassent: ${question.assent}`;
13
+ const selectedChoice = question.selectedChoice === undefined
14
+ ? ''
15
+ : `\nselectedChoice: ${question.selectedChoice}`;
9
16
  const approved = question.approved === undefined ? '' : `\napproved: ${question.approved}`;
10
- return `【open question 回答】${question.id}: ${question.question} → ${question.answer} (by ${question.answeredBy})${approved}`;
17
+ return `【open question 回答】${question.id}: ${question.question} → ${question.answer} (by ${question.answeredBy})${assent}${selectedChoice}${approved}`;
11
18
  }
12
19
  export function joinOperatorInput(parts) {
13
20
  const lines = parts.map((part) => part?.trim()).filter((part) => part);
@@ -1 +1 @@
1
- {"version":3,"file":"format-registry-update.js","sourceRoot":"","sources":["../../src/escalation/format-registry-update.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gCAAgC,CAAC,QAAsB;IACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,UAAU,GAAG,QAAQ,CAAC,mBAAmB;QAC7C,CAAC,CAAC,iBAAiB,QAAQ,CAAC,mBAAmB,EAAE;QACjD,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,qBAAqB,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,YAAY,MAAM,QAAQ,CAAC,QAAQ,GAAG,OAAO,GAAG,UAAU,EAAE,CAAC;AACpH,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,QAAsB;IACrE,MAAM,QAAQ,GACZ,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC5E,OAAO,qBAAqB,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,QAAQ,MAAM,QAAQ,CAAC,MAAM,QAAQ,QAAQ,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC;AAC9H,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAgC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"format-registry-update.js","sourceRoot":"","sources":["../../src/escalation/format-registry-update.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gCAAgC,CAAC,QAAsB;IACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM;QACtC,CAAC,CAAC,cAAc,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,UAAU,GAAG,QAAQ,CAAC,mBAAmB;QAC7C,CAAC,CAAC,iBAAiB,QAAQ,CAAC,mBAAmB,EAAE;QACjD,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,qBAAqB,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,YAAY,MAAM,QAAQ,CAAC,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,EAAE,CAAC;AAC9H,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,QAAsB;IACrE,MAAM,MAAM,GACV,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,QAAQ,CAAC,MAAM,EAAE,CAAC;IACtE,MAAM,cAAc,GAClB,QAAQ,CAAC,cAAc,KAAK,SAAS;QACnC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,qBAAqB,QAAQ,CAAC,cAAc,EAAE,CAAC;IACrD,MAAM,QAAQ,GACZ,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC5E,OAAO,qBAAqB,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,QAAQ,MAAM,QAAQ,CAAC,MAAM,QAAQ,QAAQ,CAAC,UAAU,IAAI,MAAM,GAAG,cAAc,GAAG,QAAQ,EAAE,CAAC;AACxJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAgC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC"}
@@ -1,23 +1,31 @@
1
+ import type { ChoiceOption, YesNoAssent } from './yes-no-assent.js';
1
2
  export type HumanInquiryKind = 'permission' | 'escalation';
2
- export type HumanInquiryResponseType = 'yes_no' | 'text';
3
+ export type HumanInquiryResponseType = 'yes_no' | 'text' | 'choice';
4
+ export type { ChoiceOption, YesNoAssent } from './yes-no-assent.js';
3
5
  export interface HumanInquiryRequest {
4
6
  kind: HumanInquiryKind;
5
7
  question: string;
6
8
  responseType: HumanInquiryResponseType;
9
+ choices?: ChoiceOption[];
7
10
  context?: string;
8
11
  sessionId?: string;
9
12
  toolName?: string;
10
13
  }
11
14
  export interface HumanInquiryResponse {
12
15
  answer: string;
16
+ assent?: YesNoAssent;
17
+ selectedChoice?: string;
13
18
  approved?: boolean;
14
19
  }
15
20
  export type HumanInquiryHandler = (request: HumanInquiryRequest) => HumanInquiryResponse | Promise<HumanInquiryResponse>;
16
21
  export interface EscalationRecord {
17
22
  question: string;
18
23
  responseType: HumanInquiryResponseType;
24
+ choices?: ChoiceOption[];
19
25
  context?: string;
20
26
  answer: string;
27
+ assent?: YesNoAssent;
28
+ selectedChoice?: string;
21
29
  approved?: boolean;
22
30
  }
23
31
  //# sourceMappingURL=human-inquiry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"human-inquiry.d.ts","sourceRoot":"","sources":["../../src/escalation/human-inquiry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,YAAY,CAAC;AAE3D,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,wBAAwB,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,mBAAmB,KACzB,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,wBAAwB,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"human-inquiry.d.ts","sourceRoot":"","sources":["../../src/escalation/human-inquiry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,YAAY,CAAC;AAE3D,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,wBAAwB,CAAC;IACvC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,mBAAmB,KACzB,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,wBAAwB,CAAC;IACvC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
@@ -1,6 +1,7 @@
1
1
  export { EscalationUnavailableError, } from './escalation-unavailable-error.js';
2
- export type { HumanInquiryKind, HumanInquiryResponseType, HumanInquiryRequest, HumanInquiryResponse, HumanInquiryHandler, EscalationRecord, } from './human-inquiry.js';
3
- export { ESCALATION_RESPONSE_ENV, readEscalationEnvFallback, parseEnvInquiryResponse, resolveHumanInquiryFromEnv, escalationUnavailableMessage, createEnvFallbackHumanInquiryHandler, } from './resolve-human-inquiry.js';
2
+ export type { HumanInquiryKind, HumanInquiryResponseType, ChoiceOption, YesNoAssent, HumanInquiryRequest, HumanInquiryResponse, HumanInquiryHandler, EscalationRecord, } from './human-inquiry.js';
3
+ export { parseYesNoAssent, parseChoiceSelection } from './yes-no-assent.js';
4
+ export { ESCALATION_RESPONSE_ENV, readEscalationEnvFallback, parseEnvInquiryResponse, parseHumanInquiryAnswer, resolveHumanInquiryFromEnv, escalationUnavailableMessage, createEnvFallbackHumanInquiryHandler, } from './resolve-human-inquiry.js';
4
5
  export { permissionRequestToHumanInquiry } from './permission-inquiry.js';
5
6
  export { createPermissionAskHandler } from './create-permission-ask-handler.js';
6
7
  export { createAskHumanTool } from './ask-human-tool.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/escalation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,YAAY,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAEpF,OAAO,EACL,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC3G,YAAY,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/escalation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,YAAY,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAEpF,OAAO,EACL,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC3G,YAAY,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { EscalationUnavailableError, } from './escalation-unavailable-error.js';
2
- export { ESCALATION_RESPONSE_ENV, readEscalationEnvFallback, parseEnvInquiryResponse, resolveHumanInquiryFromEnv, escalationUnavailableMessage, createEnvFallbackHumanInquiryHandler, } from './resolve-human-inquiry.js';
2
+ export { parseYesNoAssent, parseChoiceSelection } from './yes-no-assent.js';
3
+ export { ESCALATION_RESPONSE_ENV, readEscalationEnvFallback, parseEnvInquiryResponse, parseHumanInquiryAnswer, resolveHumanInquiryFromEnv, escalationUnavailableMessage, createEnvFallbackHumanInquiryHandler, } from './resolve-human-inquiry.js';
3
4
  export { permissionRequestToHumanInquiry } from './permission-inquiry.js';
4
5
  export { createPermissionAskHandler } from './create-permission-ask-handler.js';
5
6
  export { createAskHumanTool } from './ask-human-tool.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/escalation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAW3C,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAG9E,OAAO,EACL,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/escalation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAa3C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAG9E,OAAO,EACL,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC"}
@@ -92,7 +92,11 @@ function summarizeListItem(entry) {
92
92
  status: entry.status,
93
93
  question: entry.question,
94
94
  responseType: entry.responseType,
95
+ ...(entry.choices ? { choices: entry.choices } : {}),
95
96
  ...(entry.answer ? { answer: entry.answer } : {}),
97
+ ...(entry.assent ? { assent: entry.assent } : {}),
98
+ ...(entry.selectedChoice ? { selectedChoice: entry.selectedChoice } : {}),
99
+ ...(entry.approved === undefined ? {} : { approved: entry.approved }),
96
100
  ...(entry.answeredBy ? { answeredBy: entry.answeredBy } : {}),
97
101
  ...(entry.relatedPermissionId
98
102
  ? { relatedPermissionId: entry.relatedPermissionId }
@@ -1 +1 @@
1
- {"version":3,"file":"open-question-list-tools.js","sourceRoot":"","sources":["../../src/escalation/open-question-list-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-question-list-tools.js","sourceRoot":"","sources":["../../src/escalation/open-question-list-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"open-question-to-escalation.d.ts","sourceRoot":"","sources":["../../src/escalation/open-question-to-escalation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,YAAY,GACrB,gBAAgB,GAAG,SAAS,CAY9B"}
1
+ {"version":3,"file":"open-question-to-escalation.d.ts","sourceRoot":"","sources":["../../src/escalation/open-question-to-escalation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,YAAY,GACrB,gBAAgB,GAAG,SAAS,CAe9B"}
@@ -5,8 +5,11 @@ export function openQuestionToEscalationRecord(question) {
5
5
  return {
6
6
  question: question.question,
7
7
  responseType: question.responseType,
8
+ choices: question.choices,
8
9
  context: question.context,
9
10
  answer: question.answer,
11
+ assent: question.assent,
12
+ selectedChoice: question.selectedChoice,
10
13
  approved: question.approved,
11
14
  };
12
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"open-question-to-escalation.js","sourceRoot":"","sources":["../../src/escalation/open-question-to-escalation.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,8BAA8B,CAC5C,QAAsB;IAEtB,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"open-question-to-escalation.js","sourceRoot":"","sources":["../../src/escalation/open-question-to-escalation.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,8BAA8B,CAC5C,QAAsB;IAEtB,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { HumanInquiryResponseType } from './human-inquiry.js';
1
+ import type { ChoiceOption, HumanInquiryResponseType } from './human-inquiry.js';
2
+ import type { YesNoAssent } from './yes-no-assent.js';
2
3
  export type OpenQuestionStatus = 'open' | 'answered';
3
4
  export type OpenQuestionAnsweredBy = 'operator' | 'conductor';
4
5
  export type OpenQuestionSource = 'conductor' | 'max_turns';
@@ -6,11 +7,14 @@ export interface OpenQuestion {
6
7
  id: string;
7
8
  question: string;
8
9
  responseType: HumanInquiryResponseType;
10
+ choices?: ChoiceOption[];
9
11
  context?: string;
10
12
  source: OpenQuestionSource;
11
13
  status: OpenQuestionStatus;
12
14
  askedAt: number;
13
15
  answer?: string;
16
+ assent?: YesNoAssent;
17
+ selectedChoice?: string;
14
18
  approved?: boolean;
15
19
  answeredAt?: number;
16
20
  answeredBy?: OpenQuestionAnsweredBy;
@@ -21,12 +25,16 @@ export interface OpenQuestion {
21
25
  export interface EnqueueOpenQuestionInput {
22
26
  question: string;
23
27
  responseType: HumanInquiryResponseType;
28
+ choices?: ChoiceOption[];
24
29
  context?: string;
25
30
  relatedPermissionId?: string;
26
31
  source?: OpenQuestionSource;
27
32
  }
28
33
  export interface AnswerOpenQuestionInput {
29
34
  answer: string;
35
+ assent?: YesNoAssent;
36
+ selectedChoice?: string;
37
+ /** @deprecated Approval is derived from assent for permission-linked yes_no questions. */
30
38
  approved?: boolean;
31
39
  answeredBy: OpenQuestionAnsweredBy;
32
40
  sourceMessage?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"open-question.d.ts","sourceRoot":"","sources":["../../src/escalation/open-question.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,UAAU,CAAC;AAErD,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,wBAAwB,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,wBAAwB,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,sBAAsB,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,yDAAyD;AACzD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY;IAgBtD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,YAAY,GAAG,SAAS;IAkB5E,IAAI,IAAI,YAAY,EAAE;IAItB,QAAQ,IAAI,YAAY,EAAE;IAI1B,YAAY,IAAI,YAAY,EAAE;IAI9B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,QAAQ,IAAI,4BAA4B;IAOxC,OAAO,CAAC,QAAQ,EAAE,4BAA4B,GAAG,IAAI;CAOtD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B"}
1
+ {"version":3,"file":"open-question.d.ts","sourceRoot":"","sources":["../../src/escalation/open-question.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,UAAU,CAAC;AAErD,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,wBAAwB,CAAC;IACvC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,wBAAwB,CAAC;IACvC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,sBAAsB,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,yDAAyD;AACzD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY;IAmBtD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,YAAY,GAAG,SAAS;IAoC5E,IAAI,IAAI,YAAY,EAAE;IAItB,QAAQ,IAAI,YAAY,EAAE;IAI1B,YAAY,IAAI,YAAY,EAAE;IAI9B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,QAAQ,IAAI,4BAA4B;IAOxC,OAAO,CAAC,QAAQ,EAAE,4BAA4B,GAAG,IAAI;CAOtD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B"}
@@ -8,6 +8,9 @@ export class OpenQuestionRegistry {
8
8
  id,
9
9
  question: input.question,
10
10
  responseType: input.responseType,
11
+ ...(input.choices
12
+ ? { choices: input.choices.map((choice) => ({ ...choice })) }
13
+ : {}),
11
14
  context: input.context,
12
15
  relatedPermissionId: input.relatedPermissionId,
13
16
  source: input.source ?? 'conductor',
@@ -24,11 +27,25 @@ export class OpenQuestionRegistry {
24
27
  const entry = this.entries.get(id);
25
28
  if (!entry || entry.status !== 'open')
26
29
  return undefined;
30
+ if (entry.responseType === 'choice' &&
31
+ !entry.choices?.some((choice) => choice.id === input.selectedChoice)) {
32
+ return undefined;
33
+ }
27
34
  const updated = {
28
35
  ...entry,
29
36
  status: 'answered',
30
37
  answer: input.answer,
31
- approved: input.approved,
38
+ assent: entry.responseType === 'yes_no' ? input.assent : undefined,
39
+ selectedChoice: entry.responseType === 'choice' &&
40
+ entry.choices?.some((choice) => choice.id === input.selectedChoice)
41
+ ? input.selectedChoice
42
+ : undefined,
43
+ approved: entry.responseType === 'yes_no' &&
44
+ entry.relatedPermissionId &&
45
+ input.assent !== undefined &&
46
+ input.assent !== 'unclear'
47
+ ? input.assent === 'yes'
48
+ : undefined,
32
49
  answeredAt: Date.now(),
33
50
  answeredBy: input.answeredBy,
34
51
  sourceMessage: input.sourceMessage,
@@ -1 +1 @@
1
- {"version":3,"file":"open-question.js","sourceRoot":"","sources":["../../src/escalation/open-question.ts"],"names":[],"mappings":"AAyCA,yDAAyD;AACzD,MAAM,OAAO,oBAAoB;IACvB,QAAQ,GAAG,CAAC,CAAC;IACJ,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE3D,OAAO,CAAC,KAA+B;QACrC,MAAM,EAAE,GAAG,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,KAAK,GAAiB;YAC1B,EAAE;YACF,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,WAAW;YACnC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;SACpB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,KAA8B;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QAExD,MAAM,OAAO,GAAiB;YAC5B,GAAG,KAAK;YACR,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,QAAQ;QACN,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,QAAsC;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"open-question.js","sourceRoot":"","sources":["../../src/escalation/open-question.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import type { OpenQuestion, OpenQuestionRegistry } from './open-question.js';
2
2
  export interface RecordOpenQuestionAnswerInput {
3
3
  id: string;
4
4
  answer: string;
5
+ selectedChoice?: string;
6
+ /** @deprecated Approval is derived from assent for permission-linked yes_no questions. */
5
7
  approved?: boolean;
6
8
  answeredBy: 'operator' | 'conductor';
7
9
  sourceMessage?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"record-open-question-answer.d.ts","sourceRoot":"","sources":["../../src/escalation/record-open-question-answer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,WAAW,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,6BAA6B,GACnC,YAAY,GAAG,SAAS,CAiB1B"}
1
+ {"version":3,"file":"record-open-question-answer.d.ts","sourceRoot":"","sources":["../../src/escalation/record-open-question-answer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG7E,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,WAAW,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,6BAA6B,GACnC,YAAY,GAAG,SAAS,CAwB1B"}
@@ -1,17 +1,25 @@
1
+ import { parseChoiceSelection, parseYesNoAssent } from './yes-no-assent.js';
1
2
  export function recordOpenQuestionAnswer(registry, input) {
2
3
  const entry = registry.get(input.id);
3
4
  if (!entry || entry.status !== 'open')
4
5
  return undefined;
5
- const approved = input.approved ??
6
- (entry.responseType === 'yes_no'
7
- ? input.answer.trim().toLowerCase().startsWith('y')
8
- : undefined);
6
+ const assent = entry.responseType === 'yes_no'
7
+ ? parseYesNoAssent(input.answer)
8
+ : undefined;
9
+ const selectedChoice = entry.responseType === 'choice'
10
+ ? resolveSelectedChoice(input.selectedChoice, input.answer, entry.choices ?? [])
11
+ : undefined;
9
12
  return registry.answer(input.id, {
10
13
  answer: input.answer,
11
- approved,
14
+ assent,
15
+ selectedChoice,
12
16
  answeredBy: input.answeredBy,
13
17
  sourceMessage: input.sourceMessage,
14
18
  rationale: input.rationale,
15
19
  });
16
20
  }
21
+ function resolveSelectedChoice(selectedChoice, answer, choices) {
22
+ const explicitChoice = choices.find((choice) => choice.id === selectedChoice?.trim());
23
+ return explicitChoice?.id ?? parseChoiceSelection(answer, choices);
24
+ }
17
25
  //# sourceMappingURL=record-open-question-answer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record-open-question-answer.js","sourceRoot":"","sources":["../../src/escalation/record-open-question-answer.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,wBAAwB,CACtC,QAA8B,EAC9B,KAAoC;IAEpC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IAExD,MAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ;QACd,CAAC,KAAK,CAAC,YAAY,KAAK,QAAQ;YAC9B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;QAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ;QACR,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"record-open-question-answer.js","sourceRoot":"","sources":["../../src/escalation/record-open-question-answer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAa5E,MAAM,UAAU,wBAAwB,CACtC,QAA8B,EAC9B,KAAoC;IAEpC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IAExD,MAAM,MAAM,GACV,KAAK,CAAC,YAAY,KAAK,QAAQ;QAC7B,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,cAAc,GAClB,KAAK,CAAC,YAAY,KAAK,QAAQ;QAC7B,CAAC,CAAC,qBAAqB,CACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,OAAO,IAAI,EAAE,CACpB;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;QAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM;QACN,cAAc;QACd,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAC5B,cAAkC,EAClC,MAAc,EACd,OAA6C;IAE7C,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,cAAc,EAAE,IAAI,EAAE,CACjD,CAAC;IACF,OAAO,cAAc,EAAE,EAAE,IAAI,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import type { HumanInquiryRequest, HumanInquiryResponse } from './human-inquiry.js';
2
2
  export declare const ESCALATION_RESPONSE_ENV = "ENSEMBLE_ESCALATION_RESPONSE";
3
3
  export declare function readEscalationEnvFallback(): string | undefined;
4
- export declare function parseEnvInquiryResponse(raw: string, responseType: HumanInquiryRequest['responseType']): HumanInquiryResponse;
4
+ export declare function parseEnvInquiryResponse(raw: string, responseType: HumanInquiryRequest['responseType'], choices?: HumanInquiryRequest['choices']): HumanInquiryResponse;
5
+ /** Parse a TTY or environment answer while preserving its text. */
6
+ export declare function parseHumanInquiryAnswer(raw: string, request: HumanInquiryRequest): HumanInquiryResponse;
5
7
  export declare function resolveHumanInquiryFromEnv(request: HumanInquiryRequest): HumanInquiryResponse | undefined;
6
8
  export declare function escalationUnavailableMessage(): string;
7
9
  export declare function createEnvFallbackHumanInquiryHandler(): (request: HumanInquiryRequest) => HumanInquiryResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-human-inquiry.d.ts","sourceRoot":"","sources":["../../src/escalation/resolve-human-inquiry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAG5B,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AAEtE,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,SAAS,CAG9D;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAChD,oBAAoB,CAYtB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,mBAAmB,GAC3B,oBAAoB,GAAG,SAAS,CAIlC;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAKrD;AAED,wBAAgB,oCAAoC,IAAI,CACtD,OAAO,EAAE,mBAAmB,KACzB,oBAAoB,CAMxB"}
1
+ {"version":3,"file":"resolve-human-inquiry.d.ts","sourceRoot":"","sources":["../../src/escalation/resolve-human-inquiry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAI5B,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AAEtE,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,SAAS,CAG9D;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,EACjD,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,GACvC,oBAAoB,CAOtB;AAED,mEAAmE;AACnE,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,mBAAmB,GAC3B,oBAAoB,CAoBtB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,mBAAmB,GAC3B,oBAAoB,GAAG,SAAS,CAIlC;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAKrD;AAED,wBAAgB,oCAAoC,IAAI,CACtD,OAAO,EAAE,mBAAmB,KACzB,oBAAoB,CAMxB"}
@@ -1,18 +1,37 @@
1
1
  import { EscalationUnavailableError } from './escalation-unavailable-error.js';
2
+ import { parseChoiceSelection, parseYesNoAssent } from './yes-no-assent.js';
2
3
  export const ESCALATION_RESPONSE_ENV = 'ENSEMBLE_ESCALATION_RESPONSE';
3
4
  export function readEscalationEnvFallback() {
4
5
  const value = process.env[ESCALATION_RESPONSE_ENV]?.trim();
5
6
  return value || undefined;
6
7
  }
7
- export function parseEnvInquiryResponse(raw, responseType) {
8
+ export function parseEnvInquiryResponse(raw, responseType, choices) {
9
+ return parseHumanInquiryAnswer(raw, {
10
+ kind: 'escalation',
11
+ question: '',
12
+ responseType,
13
+ choices,
14
+ });
15
+ }
16
+ /** Parse a TTY or environment answer while preserving its text. */
17
+ export function parseHumanInquiryAnswer(raw, request) {
8
18
  const answer = raw.trim();
9
- if (responseType === 'yes_no') {
10
- const normalized = answer.toLowerCase();
11
- const approved = normalized === 'y' ||
12
- normalized === 'yes' ||
13
- normalized === 'true' ||
14
- normalized === '1';
15
- return { answer, approved };
19
+ if (request.responseType === 'yes_no') {
20
+ const assent = parseYesNoAssent(answer);
21
+ return {
22
+ answer,
23
+ assent,
24
+ ...(request.kind === 'permission' && assent !== 'unclear'
25
+ ? { approved: assent === 'yes' }
26
+ : {}),
27
+ };
28
+ }
29
+ if (request.responseType === 'choice') {
30
+ const selectedChoice = parseChoiceSelection(answer, request.choices ?? []);
31
+ return {
32
+ answer,
33
+ ...(selectedChoice === undefined ? {} : { selectedChoice }),
34
+ };
16
35
  }
17
36
  return { answer };
18
37
  }
@@ -20,7 +39,7 @@ export function resolveHumanInquiryFromEnv(request) {
20
39
  const fallback = readEscalationEnvFallback();
21
40
  if (fallback === undefined)
22
41
  return undefined;
23
- return parseEnvInquiryResponse(fallback, request.responseType);
42
+ return parseHumanInquiryAnswer(fallback, request);
24
43
  }
25
44
  export function escalationUnavailableMessage() {
26
45
  return ('Human inquiry is unavailable in non-interactive mode. ' +
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-human-inquiry.js","sourceRoot":"","sources":["../../src/escalation/resolve-human-inquiry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAEtE,MAAM,UAAU,yBAAyB;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3D,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAW,EACX,YAAiD;IAEjD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,QAAQ,GACZ,UAAU,KAAK,GAAG;YAClB,UAAU,KAAK,KAAK;YACpB,UAAU,KAAK,MAAM;YACrB,UAAU,KAAK,GAAG,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA4B;IAE5B,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,CACL,wDAAwD;QACxD,OAAO,uBAAuB,kCAAkC,CACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC;IAGlD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5B,MAAM,IAAI,0BAA0B,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"resolve-human-inquiry.js","sourceRoot":"","sources":["../../src/escalation/resolve-human-inquiry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAEtE,MAAM,UAAU,yBAAyB;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3D,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAW,EACX,YAAiD,EACjD,OAAwC;IAExC,OAAO,uBAAuB,CAAC,GAAG,EAAE;QAClC,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,EAAE;QACZ,YAAY;QACZ,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,uBAAuB,CACrC,GAAW,EACX,OAA4B;IAE5B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO;YACL,MAAM;YACN,MAAM;YACN,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,KAAK,SAAS;gBACvD,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,KAAK,EAAE;gBAChC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC3E,OAAO;YACL,MAAM;YACN,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;SAC5D,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA4B;IAE5B,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,CACL,wDAAwD;QACxD,OAAO,uBAAuB,kCAAkC,CACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC;IAGlD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5B,MAAM,IAAI,0BAA0B,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type YesNoAssent = 'yes' | 'no' | 'unclear';
2
+ /**
3
+ * Parse an operator's binary assent without collapsing an unrecognized answer
4
+ * into a denial. The original answer remains the caller's source text.
5
+ */
6
+ export declare function parseYesNoAssent(answer: string): YesNoAssent;
7
+ export interface ChoiceOption {
8
+ id: string;
9
+ label: string;
10
+ }
11
+ /** Resolve an answer to an option id while leaving the answer text untouched. */
12
+ export declare function parseChoiceSelection(answer: string, choices: ChoiceOption[]): string | undefined;
13
+ //# sourceMappingURL=yes-no-assent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yes-no-assent.d.ts","sourceRoot":"","sources":["../../src/escalation/yes-no-assent.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;AAoFnD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CA2C5D;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EAAE,GACtB,MAAM,GAAG,SAAS,CAsBpB"}