@adonis-agora/agent 0.41.0 → 0.43.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 (55) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/providers/agent_provider.d.ts.map +1 -1
  3. package/dist/providers/agent_provider.js +70 -4
  4. package/dist/providers/agent_provider.js.map +1 -1
  5. package/dist/src/agent-service.d.ts +30 -1
  6. package/dist/src/agent-service.d.ts.map +1 -1
  7. package/dist/src/agent-service.js +75 -0
  8. package/dist/src/agent-service.js.map +1 -1
  9. package/dist/src/elicitation-input.d.ts +69 -0
  10. package/dist/src/elicitation-input.d.ts.map +1 -0
  11. package/dist/src/elicitation-input.js +227 -0
  12. package/dist/src/elicitation-input.js.map +1 -0
  13. package/dist/src/elicitation.d.ts +14 -1
  14. package/dist/src/elicitation.d.ts.map +1 -1
  15. package/dist/src/elicitation.js +69 -10
  16. package/dist/src/elicitation.js.map +1 -1
  17. package/dist/src/in-process-sink.d.ts +1 -0
  18. package/dist/src/in-process-sink.d.ts.map +1 -1
  19. package/dist/src/in-process-sink.js +3 -0
  20. package/dist/src/in-process-sink.js.map +1 -1
  21. package/dist/src/index.d.ts +3 -2
  22. package/dist/src/index.d.ts.map +1 -1
  23. package/dist/src/index.js +3 -2
  24. package/dist/src/index.js.map +1 -1
  25. package/dist/src/redis-token-stream-sink.d.ts +1 -0
  26. package/dist/src/redis-token-stream-sink.d.ts.map +1 -1
  27. package/dist/src/redis-token-stream-sink.js +5 -0
  28. package/dist/src/redis-token-stream-sink.js.map +1 -1
  29. package/dist/src/spi/agent-store.d.ts +20 -1
  30. package/dist/src/spi/agent-store.d.ts.map +1 -1
  31. package/dist/src/spi/token-stream-sink.d.ts +7 -0
  32. package/dist/src/spi/token-stream-sink.d.ts.map +1 -1
  33. package/dist/src/spi/token-stream-sink.js.map +1 -1
  34. package/dist/src/sse.d.ts +16 -1
  35. package/dist/src/sse.d.ts.map +1 -1
  36. package/dist/src/sse.js +33 -4
  37. package/dist/src/sse.js.map +1 -1
  38. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  39. package/dist/src/stores/lucid-schema.js +2 -0
  40. package/dist/src/stores/lucid-schema.js.map +1 -1
  41. package/dist/src/stores/lucid.d.ts +4 -1
  42. package/dist/src/stores/lucid.d.ts.map +1 -1
  43. package/dist/src/stores/lucid.js +21 -0
  44. package/dist/src/stores/lucid.js.map +1 -1
  45. package/dist/src/testing/in-memory-sink.d.ts +1 -0
  46. package/dist/src/testing/in-memory-sink.d.ts.map +1 -1
  47. package/dist/src/testing/in-memory-sink.js +3 -0
  48. package/dist/src/testing/in-memory-sink.js.map +1 -1
  49. package/dist/src/testing/in-memory-store.d.ts +4 -1
  50. package/dist/src/testing/in-memory-store.d.ts.map +1 -1
  51. package/dist/src/testing/in-memory-store.js +19 -1
  52. package/dist/src/testing/in-memory-store.js.map +1 -1
  53. package/dist/src/types.d.ts +14 -0
  54. package/dist/src/types.d.ts.map +1 -1
  55. package/package.json +1 -1
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Typed answers for a question set: a question that asks for a number, a date, an email or a
3
+ * sentence instead of offering options to pick.
4
+ *
5
+ * Answers stay `string[]` on the wire whatever the type — the signal that carries them, the row that
6
+ * records them and the model that reads them back all see strings — so this module fixes ONE
7
+ * canonical string per type and validates against it:
8
+ *
9
+ * | `type` | canonical value |
10
+ * |------------|----------------------------------------------|
11
+ * | `text` | the text |
12
+ * | `textarea` | the text (newlines kept) |
13
+ * | `number` | a finite decimal, e.g. `"42"`, `"-1.5"` |
14
+ * | `boolean` | `"true"` or `"false"` |
15
+ * | `date` | `YYYY-MM-DD` |
16
+ * | `email` | an address with one `@` and a dotted domain |
17
+ * | `url` | an absolute `http:`/`https:` URL |
18
+ * | `select` | one of the question's `options[].value` |
19
+ *
20
+ * Pure and dependency-free, so the loop (which filters what it settles on), the HTTP surface (which
21
+ * refuses what it cannot settle) and a client (which says so before sending) all agree.
22
+ */
23
+ import type { ElicitationOption, ElicitationQuestion } from './elicitation.js';
24
+ export declare const ELICITATION_INPUT_TYPES: readonly ['text', 'textarea', 'number', 'boolean', 'date', 'email', 'url', 'select'];
25
+ export type ElicitationInputType = (typeof ELICITATION_INPUT_TYPES)[number];
26
+ /** How a question takes its answer when it is not (only) a pick from `options`. */
27
+ export interface ElicitationInput {
28
+ type: ElicitationInputType;
29
+ /** Hint shown in an empty field. Advisory. */
30
+ placeholder?: string;
31
+ /** Submitting without a value is refused. Skipping the whole set is still allowed. */
32
+ required?: boolean;
33
+ /**
34
+ * Lower bound: the smallest number for `number`, the shortest length for `text`/`textarea`, the
35
+ * earliest `YYYY-MM-DD` for `date`. Ignored for the other types.
36
+ */
37
+ min?: number | string;
38
+ /** Upper bound, read like {@link min}. */
39
+ max?: number | string;
40
+ /** A regular expression the WHOLE value must match (`text`, `textarea`, `email`, `url`). */
41
+ pattern?: string;
42
+ }
43
+ /** The question's options, or none — `options` may be omitted on a typed question. */
44
+ export declare function questionOptions(question: ElicitationQuestion): ElicitationOption[];
45
+ /** A question answered by a typed value rather than by picking one of its options. */
46
+ export declare function isTypedQuestion(question: ElicitationQuestion): boolean;
47
+ /**
48
+ * Why `value` is not an acceptable answer to `question`, or `null` when it is. Checks ONE value;
49
+ * {@link validateElicitationAnswer} checks the list (required, single choice).
50
+ */
51
+ export declare function validateElicitationValue(question: ElicitationQuestion, value: string): string | null;
52
+ /**
53
+ * Why `values` is not an acceptable answer to `question`, or `null` when it is: a `required`
54
+ * question left empty, more than one value for a single-choice question, or any value
55
+ * {@link validateElicitationValue} refuses. An empty string counts as no value.
56
+ */
57
+ export declare function validateElicitationAnswer(question: ElicitationQuestion, values: readonly string[]): string | null;
58
+ /**
59
+ * Read an {@link ElicitationInput} from untrusted JSON, or `undefined` when it is not one. Unknown
60
+ * keys are dropped; a malformed optional field is dropped rather than failing the input.
61
+ */
62
+ export declare function readElicitationInput(raw: unknown): ElicitationInput | undefined;
63
+ /**
64
+ * The questions a parked call carries, read leniently from its recorded input (`{ questions }` —
65
+ * what both an intake and an `ask` persist). Used where a reply is checked against the questions it
66
+ * answers; a question that cannot be read is left out rather than failing the rest.
67
+ */
68
+ export declare function readElicitationQuestions(input: unknown): ElicitationQuestion[];
69
+ //# sourceMappingURL=elicitation-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elicitation-input.d.ts","sourceRoot":"","sources":["../../src/elicitation-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,eAAO,MAAM,uBAAuB,YAClC,MAAM,EACN,UAAU,EACV,QAAQ,EACR,SAAS,EACT,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,CACA,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,mBAAmB,GAAG,iBAAiB,EAAE,CAElF;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAEtE;AAgDD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAmEf;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,MAAM,GAAG,IAAI,CAef;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAuB/E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,EAAE,CAyC9E"}
@@ -0,0 +1,227 @@
1
+ export const ELICITATION_INPUT_TYPES = [
2
+ 'text',
3
+ 'textarea',
4
+ 'number',
5
+ 'boolean',
6
+ 'date',
7
+ 'email',
8
+ 'url',
9
+ 'select',
10
+ ];
11
+ /** The question's options, or none — `options` may be omitted on a typed question. */
12
+ export function questionOptions(question) {
13
+ return question.options ?? [];
14
+ }
15
+ /** A question answered by a typed value rather than by picking one of its options. */
16
+ export function isTypedQuestion(question) {
17
+ return question.input !== undefined && question.input.type !== 'select';
18
+ }
19
+ const DATE_PATTERN = /^(\d{4})-(\d{2})-(\d{2})$/;
20
+ const EMAIL_PATTERN = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
21
+ const NUMBER_PATTERN = /^-?(\d+\.?\d*|\.\d+)(e[+-]?\d+)?$/i;
22
+ function isDate(value) {
23
+ const match = DATE_PATTERN.exec(value);
24
+ if (match === null) {
25
+ return false;
26
+ }
27
+ const [, year, month, day] = match;
28
+ const date = new Date(Date.UTC(Number(year), Number(month) - 1, Number(day)));
29
+ return (date.getUTCFullYear() === Number(year) &&
30
+ date.getUTCMonth() === Number(month) - 1 &&
31
+ date.getUTCDate() === Number(day));
32
+ }
33
+ function isHttpUrl(value) {
34
+ try {
35
+ const url = new URL(value);
36
+ return url.protocol === 'http:' || url.protocol === 'https:';
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ function fullMatch(pattern, value) {
43
+ try {
44
+ return new RegExp(`^(?:${pattern})$`, 'u').test(value);
45
+ }
46
+ catch {
47
+ // An author's unreadable pattern constrains nothing rather than refusing every answer.
48
+ return undefined;
49
+ }
50
+ }
51
+ function asNumber(bound) {
52
+ if (typeof bound === 'number' && Number.isFinite(bound)) {
53
+ return bound;
54
+ }
55
+ if (typeof bound === 'string' && NUMBER_PATTERN.test(bound.trim())) {
56
+ return Number(bound);
57
+ }
58
+ return undefined;
59
+ }
60
+ /**
61
+ * Why `value` is not an acceptable answer to `question`, or `null` when it is. Checks ONE value;
62
+ * {@link validateElicitationAnswer} checks the list (required, single choice).
63
+ */
64
+ export function validateElicitationValue(question, value) {
65
+ const input = question.input;
66
+ if (input === undefined || input.type === 'select') {
67
+ if (question.allowFreeText === true) {
68
+ return null;
69
+ }
70
+ return questionOptions(question).some((option) => option.value === value)
71
+ ? null
72
+ : 'must be one of the offered options';
73
+ }
74
+ switch (input.type) {
75
+ case 'number': {
76
+ if (!NUMBER_PATTERN.test(value.trim()) || !Number.isFinite(Number(value))) {
77
+ return 'must be a number';
78
+ }
79
+ const number = Number(value);
80
+ const min = asNumber(input.min);
81
+ const max = asNumber(input.max);
82
+ if (min !== undefined && number < min) {
83
+ return `must be at least ${min}`;
84
+ }
85
+ if (max !== undefined && number > max) {
86
+ return `must be at most ${max}`;
87
+ }
88
+ return null;
89
+ }
90
+ case 'boolean':
91
+ return value === 'true' || value === 'false' ? null : 'must be "true" or "false"';
92
+ case 'date': {
93
+ if (!isDate(value)) {
94
+ return 'must be a date as YYYY-MM-DD';
95
+ }
96
+ if (typeof input.min === 'string' && isDate(input.min) && value < input.min) {
97
+ return `must be on or after ${input.min}`;
98
+ }
99
+ if (typeof input.max === 'string' && isDate(input.max) && value > input.max) {
100
+ return `must be on or before ${input.max}`;
101
+ }
102
+ return null;
103
+ }
104
+ case 'email':
105
+ if (!EMAIL_PATTERN.test(value)) {
106
+ return 'must be an email address';
107
+ }
108
+ break;
109
+ case 'url':
110
+ if (!isHttpUrl(value)) {
111
+ return 'must be an http(s) URL';
112
+ }
113
+ break;
114
+ case 'text':
115
+ case 'textarea': {
116
+ const min = asNumber(input.min);
117
+ const max = asNumber(input.max);
118
+ if (min !== undefined && value.length < min) {
119
+ return `must be at least ${min} characters`;
120
+ }
121
+ if (max !== undefined && value.length > max) {
122
+ return `must be at most ${max} characters`;
123
+ }
124
+ break;
125
+ }
126
+ }
127
+ if (input.pattern !== undefined && fullMatch(input.pattern, value) === false) {
128
+ return 'does not match the expected format';
129
+ }
130
+ return null;
131
+ }
132
+ /**
133
+ * Why `values` is not an acceptable answer to `question`, or `null` when it is: a `required`
134
+ * question left empty, more than one value for a single-choice question, or any value
135
+ * {@link validateElicitationValue} refuses. An empty string counts as no value.
136
+ */
137
+ export function validateElicitationAnswer(question, values) {
138
+ const present = values.filter((value) => value !== '');
139
+ if (present.length === 0) {
140
+ return question.input?.required === true ? 'requires an answer' : null;
141
+ }
142
+ if (question.multiple !== true && present.length > 1) {
143
+ return 'takes a single value';
144
+ }
145
+ for (const value of present) {
146
+ const problem = validateElicitationValue(question, value);
147
+ if (problem !== null) {
148
+ return problem;
149
+ }
150
+ }
151
+ return null;
152
+ }
153
+ /**
154
+ * Read an {@link ElicitationInput} from untrusted JSON, or `undefined` when it is not one. Unknown
155
+ * keys are dropped; a malformed optional field is dropped rather than failing the input.
156
+ */
157
+ export function readElicitationInput(raw) {
158
+ if (typeof raw !== 'object' || raw === null) {
159
+ return undefined;
160
+ }
161
+ const candidate = raw;
162
+ const type = candidate.type;
163
+ if (typeof type !== 'string' || !ELICITATION_INPUT_TYPES.includes(type)) {
164
+ return undefined;
165
+ }
166
+ const bound = (value) => (typeof value === 'number' && Number.isFinite(value)) || typeof value === 'string'
167
+ ? value
168
+ : undefined;
169
+ const min = bound(candidate.min);
170
+ const max = bound(candidate.max);
171
+ return {
172
+ type: type,
173
+ ...(typeof candidate.placeholder === 'string' ? { placeholder: candidate.placeholder } : {}),
174
+ ...(candidate.required === true ? { required: true } : {}),
175
+ ...(min !== undefined ? { min } : {}),
176
+ ...(max !== undefined ? { max } : {}),
177
+ ...(typeof candidate.pattern === 'string' ? { pattern: candidate.pattern } : {}),
178
+ };
179
+ }
180
+ /**
181
+ * The questions a parked call carries, read leniently from its recorded input (`{ questions }` —
182
+ * what both an intake and an `ask` persist). Used where a reply is checked against the questions it
183
+ * answers; a question that cannot be read is left out rather than failing the rest.
184
+ */
185
+ export function readElicitationQuestions(input) {
186
+ if (typeof input !== 'object' || input === null) {
187
+ return [];
188
+ }
189
+ const raw = input.questions;
190
+ if (!Array.isArray(raw)) {
191
+ return [];
192
+ }
193
+ const questions = [];
194
+ for (const item of raw) {
195
+ if (typeof item !== 'object' || item === null) {
196
+ continue;
197
+ }
198
+ const candidate = item;
199
+ if (typeof candidate.id !== 'string' || typeof candidate.prompt !== 'string') {
200
+ continue;
201
+ }
202
+ const options = Array.isArray(candidate.options)
203
+ ? candidate.options.flatMap((option) => {
204
+ if (typeof option !== 'object' || option === null) {
205
+ return [];
206
+ }
207
+ const { value, label } = option;
208
+ return typeof value === 'string' && typeof label === 'string' ? [{ value, label }] : [];
209
+ })
210
+ : [];
211
+ const typed = readElicitationInput(candidate.input);
212
+ const defaults = Array.isArray(candidate.defaults)
213
+ ? candidate.defaults.filter((value) => typeof value === 'string')
214
+ : [];
215
+ questions.push({
216
+ id: candidate.id,
217
+ prompt: candidate.prompt,
218
+ options,
219
+ ...(typed !== undefined ? { input: typed } : {}),
220
+ ...(defaults.length > 0 ? { defaults } : {}),
221
+ ...(candidate.multiple === true ? { multiple: true } : {}),
222
+ ...(candidate.allowFreeText === true ? { allowFreeText: true } : {}),
223
+ });
224
+ }
225
+ return questions;
226
+ }
227
+ //# sourceMappingURL=elicitation-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elicitation-input.js","sourceRoot":"","sources":["../../src/elicitation-input.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  * `tool:<runId>:<callId>` signal. A consumer cannot tell which one asked, and should not have to.
9
9
  */
10
10
  import type { StandardSchemaV1 } from '@standard-schema/spec';
11
+ import { type ElicitationInput } from './elicitation-input.js';
11
12
  import type { Decision, ToolDefinition } from './types.js';
12
13
  /**
13
14
  * Whatever a human sent into a parked run. One channel carries both, because a question set is
@@ -53,7 +54,19 @@ export interface ElicitationQuestion {
53
54
  /** Unique within its request; the key answers come back under. */
54
55
  id: string;
55
56
  prompt: string;
56
- options: ElicitationOption[];
57
+ /** A line of help under the prompt. */
58
+ description?: string;
59
+ /**
60
+ * The choices. Required unless {@link input} asks for a typed value — then optional, and a UI may
61
+ * offer them as suggestions. An `input` of type `select` still picks from these.
62
+ */
63
+ options?: ElicitationOption[];
64
+ /**
65
+ * Ask for a typed value (a number, a date, a sentence…) instead of — or, for `select`, on top of —
66
+ * a pick from `options`. The answer is still a `string[]`, in the type's canonical form; see
67
+ * `elicitation-input.ts`.
68
+ */
69
+ input?: ElicitationInput;
57
70
  /** More than one option may be chosen. Omit → single choice. */
58
71
  multiple?: boolean;
59
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"elicitation.d.ts","sourceRoot":"","sources":["../../src/elicitation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elicitation.d.ts","sourceRoot":"","sources":["../../src/elicitation.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  * ElicitationRequest}, persist through the same tool-call row, and resume through the same
8
8
  * `tool:<runId>:<callId>` signal. A consumer cannot tell which one asked, and should not have to.
9
9
  */
10
+ import { ELICITATION_INPUT_TYPES, questionOptions, readElicitationInput, validateElicitationValue, } from './elicitation-input.js';
10
11
  /**
11
12
  * Thrown when a reply is the wrong shape for the wait it was delivered to: answers to a question
12
13
  * set, addressed to a tool call that is waiting on an approve/reject.
@@ -36,9 +37,6 @@ export function isHumanDecision(reply) {
36
37
  reply !== null &&
37
38
  typeof reply.approved === 'boolean');
38
39
  }
39
- function optionValues(question) {
40
- return new Set(question.options.map((option) => option.value));
41
- }
42
40
  /**
43
41
  * Read whatever the human channel delivered as an {@link ElicitationReply}.
44
42
  *
@@ -93,8 +91,10 @@ export function resolveElicitation(args) {
93
91
  defaulted.push(question.id);
94
92
  continue;
95
93
  }
96
- const allowed = optionValues(question);
97
- const valid = question.allowFreeText === true ? submitted : submitted.filter((value) => allowed.has(value));
94
+ // What cannot be settled is dropped, never guessed at: a value off the offered options, or one a
95
+ // typed question's own rules refuse. The HTTP surface refuses both before they are signalled; this
96
+ // is the same rule applied where the loop settles, so a reply from anywhere reads the same.
97
+ const valid = submitted.filter((value) => value !== '' && validateElicitationValue(question, value) === null);
98
98
  answers[question.id] = question.multiple === true ? valid : valid.slice(0, 1);
99
99
  }
100
100
  return { answers, skipped: reply.skipped === true, defaulted };
@@ -112,7 +112,7 @@ export function renderElicitationAnswers(args) {
112
112
  const { request, outcome } = args;
113
113
  const lines = request.questions.map((question) => {
114
114
  const chosen = outcome.answers[question.id] ?? [];
115
- const labels = chosen.map((value) => question.options.find((option) => option.value === value)?.label ?? value);
115
+ const labels = chosen.map((value) => questionOptions(question).find((option) => option.value === value)?.label ?? value);
116
116
  return `${question.prompt} → ${labels.length > 0 ? labels.join(', ') : '(no answer)'}`;
117
117
  });
118
118
  const preface = outcome.skipped
@@ -161,17 +161,53 @@ function parseQuestion(raw, path, issues) {
161
161
  issues.push(issue([...path, 'prompt'], 'must be a non-empty string'));
162
162
  return undefined;
163
163
  }
164
- if (!Array.isArray(candidate.options) || candidate.options.length === 0) {
164
+ let input;
165
+ if (candidate.input !== undefined) {
166
+ input = readElicitationInput(candidate.input);
167
+ if (input === undefined) {
168
+ issues.push(issue([...path, 'input', 'type'], `must be one of ${ELICITATION_INPUT_TYPES.join(', ')}`));
169
+ return undefined;
170
+ }
171
+ }
172
+ const described = typeof candidate.description === 'string' && candidate.description.length > 0
173
+ ? { description: candidate.description }
174
+ : {};
175
+ const typed = input !== undefined && input.type !== 'select';
176
+ if (!typed && (!Array.isArray(candidate.options) || candidate.options.length === 0)) {
165
177
  issues.push(issue([...path, 'options'], 'must be a non-empty array'));
166
178
  return undefined;
167
179
  }
168
180
  const options = [];
169
- for (const [index, rawOption] of candidate.options.entries()) {
181
+ for (const [index, rawOption] of (Array.isArray(candidate.options)
182
+ ? candidate.options
183
+ : []).entries()) {
170
184
  const option = parseOption(rawOption, [...path, 'options', index], issues);
171
185
  if (option !== undefined) {
172
186
  options.push(option);
173
187
  }
174
188
  }
189
+ if (typed) {
190
+ // A typed question pre-picks when it can (a sensible date, a default count) but need not: there
191
+ // is no honest default for "what is your email". What it does pre-pick has to be an answer its
192
+ // own rules accept, or confirming would submit something the form would refuse.
193
+ const question = {
194
+ id: candidate.id,
195
+ prompt: candidate.prompt,
196
+ ...described,
197
+ ...(options.length > 0 ? { options } : {}),
198
+ input: input,
199
+ ...(candidate.multiple === true ? { multiple: true } : {}),
200
+ };
201
+ const offered = Array.isArray(candidate.defaults)
202
+ ? candidate.defaults.filter((value) => typeof value === 'string')
203
+ : [];
204
+ const defaults = offered.filter((value) => validateElicitationValue(question, value) === null);
205
+ if (offered.length > 0 && defaults.length === 0) {
206
+ issues.push(issue([...path, 'defaults'], `must be valid ${input.type} values`));
207
+ return undefined;
208
+ }
209
+ return defaults.length > 0 ? { ...question, defaults } : question;
210
+ }
175
211
  // The one rule that carries the design: a question with no pre-picked answer is a question the
176
212
  // user has to stop and think about, and this surface exists to avoid that.
177
213
  if (!Array.isArray(candidate.defaults) || candidate.defaults.length === 0) {
@@ -187,7 +223,9 @@ function parseQuestion(raw, path, issues) {
187
223
  return {
188
224
  id: candidate.id,
189
225
  prompt: candidate.prompt,
226
+ ...described,
190
227
  options,
228
+ ...(input !== undefined ? { input } : {}),
191
229
  defaults,
192
230
  ...(candidate.multiple === true ? { multiple: true } : {}),
193
231
  ...(candidate.allowFreeText === true ? { allowFreeText: true } : {}),
@@ -208,13 +246,34 @@ const ASK_JSON_SCHEMA = {
208
246
  items: {
209
247
  type: 'object',
210
248
  additionalProperties: false,
211
- required: ['id', 'prompt', 'options', 'defaults'],
249
+ required: ['id', 'prompt'],
212
250
  properties: {
213
251
  id: {
214
252
  type: 'string',
215
253
  description: 'Unique within this call; answers come back under it.',
216
254
  },
217
255
  prompt: { type: 'string' },
256
+ description: { type: 'string', description: 'A line of help under the prompt.' },
257
+ input: {
258
+ type: 'object',
259
+ additionalProperties: false,
260
+ required: ['type'],
261
+ description: 'Ask for a typed value instead of offering options. Omit for a pick from options. Answers come back as strings: numbers as decimals, booleans as "true"/"false", dates as YYYY-MM-DD.',
262
+ properties: {
263
+ type: { type: 'string', enum: [...ELICITATION_INPUT_TYPES] },
264
+ placeholder: { type: 'string' },
265
+ required: { type: 'boolean' },
266
+ min: {
267
+ type: ['number', 'string'],
268
+ description: 'number: minimum; text: minimum length; date: earliest YYYY-MM-DD.',
269
+ },
270
+ max: {
271
+ type: ['number', 'string'],
272
+ description: 'number: maximum; text: maximum length; date: latest YYYY-MM-DD.',
273
+ },
274
+ pattern: { type: 'string', description: 'A regex the whole value must match.' },
275
+ },
276
+ },
218
277
  multiple: { type: 'boolean', description: 'Allow more than one option to be chosen.' },
219
278
  allowFreeText: {
220
279
  type: 'boolean',
@@ -224,7 +283,7 @@ const ASK_JSON_SCHEMA = {
224
283
  type: 'array',
225
284
  minItems: 1,
226
285
  items: { type: 'string' },
227
- description: 'REQUIRED. The option values you would pick yourself, so the user can confirm rather than decide.',
286
+ description: 'REQUIRED for a pick from options: the option values you would pick yourself, so the user can confirm rather than decide. For a typed input, the value you would enter, when there is a sensible one.',
228
287
  },
229
288
  options: {
230
289
  type: 'array',
@@ -1 +1 @@
1
- {"version":3,"file":"elicitation.js","sourceRoot":"","sources":["../../src/elicitation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elicitation.js","sourceRoot":"","sources":["../../src/elicitation.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare class InProcessTokenStreamSink implements TokenStreamSink {
11
11
  private wake;
12
12
  open(runId: string): SinkWriter;
13
13
  subscribe(runId: string): AsyncIterable<StreamFrame>;
14
+ has(runId: string): boolean;
14
15
  close(runId: string): void;
15
16
  }
16
17
  //# sourceMappingURL=in-process-sink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-process-sink.d.ts","sourceRoot":"","sources":["../../src/in-process-sink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAQ3F;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAErD,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,IAAI;IAOZ,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAY9B;IAEM,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAgB1D;IAED,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEzB;CACF"}
1
+ {"version":3,"file":"in-process-sink.d.ts","sourceRoot":"","sources":["../../src/in-process-sink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAQ3F;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAErD,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,IAAI;IAOZ,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAY9B;IAEM,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAgB1D;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1B;IAED,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEzB;CACF"}
@@ -50,6 +50,9 @@ export class InProcessTokenStreamSink {
50
50
  await new Promise((resolve) => buf.notify.add(resolve));
51
51
  }
52
52
  }
53
+ has(runId) {
54
+ return this.runs.has(runId);
55
+ }
53
56
  close(runId) {
54
57
  this.runs.delete(runId);
55
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-process-sink.js","sourceRoot":"","sources":["../../src/in-process-sink.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,MAAM,OAAO,wBAAwB;IAClB,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE7C,MAAM,CAAC,KAAa;QAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,IAAI,CAAC,GAAc;QACzB,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO;YACL,KAAK,EAAE,CAAC,KAAkB,EAAE,EAAE;gBAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;gBACR,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,SAAS,CAAC,KAAa;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,EAAE,CAAC;YACZ,OAAO,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,KAAK,IAAI,CAAC,CAAC;gBACX,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAa;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"in-process-sink.js","sourceRoot":"","sources":["../../src/in-process-sink.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,MAAM,OAAO,wBAAwB;IAClB,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE7C,MAAM,CAAC,KAAa;QAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,IAAI,CAAC,GAAc;QACzB,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO;YACL,KAAK,EAAE,CAAC,KAAkB,EAAE,EAAE;gBAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;gBACR,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,SAAS,CAAC,KAAa;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,EAAE,CAAC;YACZ,OAAO,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,KAAK,IAAI,CAAC,CAAC;gBACX,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAa;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "0.41.0";
1
+ export declare const VERSION = "0.43.0";
2
2
  export { configure } from '../configure.js';
3
3
  export * from './actor-labels.js';
4
4
  export type { AuthActorResolverOptions } from './actor-resolver.js';
@@ -21,6 +21,7 @@ export type { ActorDirectoryFactory, AgentConfig, AttachmentStagingContext, Atta
21
21
  export { actorDirectories, attachmentStores, defineConfig, governanceQueries, pricingStores, quotas, retrievers, stores, streamTransports, tokenSinks, } from './define_config.js';
22
22
  export * from './diagnostics.js';
23
23
  export { type AgentIntake, ASK_TOOL_DESCRIPTION, ASK_TOOL_NAME, type AskToolInput, askInputSchema, askToolDefinition, DEFAULT_INTAKE_PREAMBLE, type ElicitationOption, type ElicitationOutcome, type ElicitationQuestion, type ElicitationReply, type ElicitationRequest, type ElicitationResult, type HumanReply, HumanReplyMismatchError, isHumanDecision, MAX_ASK_QUESTIONS, normalizeElicitationReply, renderElicitationAnswers, resolveElicitation, settleElicitation, } from './elicitation.js';
24
+ export { ELICITATION_INPUT_TYPES, type ElicitationInput, type ElicitationInputType, isTypedQuestion, questionOptions, readElicitationInput, readElicitationQuestions, validateElicitationAnswer, validateElicitationValue, } from './elicitation-input.js';
24
25
  export type { AgentGovernanceAuthorize, GovernanceGateVerdict } from './governance-gate.js';
25
26
  export { evaluateGovernanceGate } from './governance-gate.js';
26
27
  export * from './history-window.js';
@@ -60,7 +61,7 @@ export type { RolesPolicy as ToolAuthorizer } from './spi/roles-policy.js';
60
61
  export * from './spi/roles-policy.js';
61
62
  export * from './spi/token-stream-sink.js';
62
63
  export * from './spi/tool.js';
63
- export { AgentSseEncoder, frameToEvents, frameToSse, type StreamProtocol } from './sse.js';
64
+ export { AgentSseEncoder, frameToEvents, frameToSse, parseStreamCursor, type StreamProtocol, } from './sse.js';
64
65
  export type { QdrantRetrieverConfig } from './stores/factory.js';
65
66
  export { lucidStoreConnection } from './stores/factory.js';
66
67
  export { LedgerQuotaStore } from './stores/ledger-quota.js';