@ouispec/agent-core 0.13.1 → 0.15.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.
package/dist/browser.d.ts CHANGED
@@ -8,4 +8,5 @@ export * from './approvals/index.js';
8
8
  export * from './turns/index.js';
9
9
  export * from './attachments/index.js';
10
10
  export * from './message-input/index.js';
11
+ export * from './work/index.js';
11
12
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC"}
package/dist/browser.js CHANGED
@@ -11,4 +11,5 @@ export * from './approvals/index.js';
11
11
  export * from './turns/index.js';
12
12
  export * from './attachments/index.js';
13
13
  export * from './message-input/index.js';
14
+ export * from './work/index.js';
14
15
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,wEAAwE;AACxE,yDAAyD;AACzD,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,wEAAwE;AACxE,yDAAyD;AACzD,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -9,4 +9,5 @@ export * from './approvals/index.js';
9
9
  export * from './turns/index.js';
10
10
  export * from './attachments/index.js';
11
11
  export * from './message-input/index.js';
12
+ export * from './work/index.js';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -9,4 +9,5 @@ export * from './approvals/index.js';
9
9
  export * from './turns/index.js';
10
10
  export * from './attachments/index.js';
11
11
  export * from './message-input/index.js';
12
+ export * from './work/index.js';
12
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * How the person entered a message.
2
+ * How the person entered a message, and how the reply reaches them.
3
3
  *
4
4
  * A message the person spoke, and the tab transcribed with speech
5
5
  * recognition, carries `{ mode: 'voice', language }` on its turn's context,
@@ -8,8 +8,13 @@
8
8
  * sense of may be a mis-hearing; the host stores it on the user's message so
9
9
  * the chat can show the message was spoken.
10
10
  *
11
- * It arrives from a browser, so every reader takes it through
12
- * `readMessageInput`, which keeps only what it recognises.
11
+ * A reply that will be spoken rather than shown (a live call, where a voice
12
+ * reads the reply out) carries `{ mode: 'voice' }` under `output`. The worker
13
+ * then tells the model to write for the ear.
14
+ *
15
+ * Both arrive from outside the worker, so every reader takes them through
16
+ * `readMessageInput` and `readReplyOutput`, which keep only what they
17
+ * recognise.
13
18
  */
14
19
  /** The key under a turn's context that carries how its message was entered. */
15
20
  export declare const MESSAGE_INPUT_CONTEXT_KEY = "input";
@@ -39,4 +44,19 @@ export declare function readMessageInputLanguage(value: unknown): string | null;
39
44
  * is left out, and the message is still read as spoken.
40
45
  */
41
46
  export declare function readMessageInput(value: unknown): MessageInput | null;
47
+ /** The key under a turn's context that carries how its reply reaches the person. */
48
+ export declare const REPLY_OUTPUT_CONTEXT_KEY = "output";
49
+ /** The ways a reply can reach the person besides being shown as text. A shown reply carries no `output`. */
50
+ export declare const REPLY_OUTPUT_MODES: readonly ["voice"];
51
+ export type ReplyOutputMode = (typeof REPLY_OUTPUT_MODES)[number];
52
+ /** A reply that will be spoken: a voice reads its text out, and nothing of it is shown. */
53
+ export interface ReplyOutput {
54
+ mode: ReplyOutputMode;
55
+ }
56
+ /**
57
+ * How a reply reaches the person, when `value` says so in a way this runtime
58
+ * knows; else null, and the reply is shown as text. Anything but the mode is
59
+ * left out.
60
+ */
61
+ export declare function readReplyOutput(value: unknown): ReplyOutput | null;
42
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/message-input/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,UAAU,CAAC;AAEjD,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,oBAAqB,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,kFAAkF;AAClF,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAStE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAMpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/message-input/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,UAAU,CAAC;AAEjD,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,oBAAqB,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,kFAAkF;AAClF,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAStE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAMpE;AAED,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD,4GAA4G;AAC5G,eAAO,MAAM,kBAAkB,oBAAqB,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,2FAA2F;AAC3F,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAKlE"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * How the person entered a message.
2
+ * How the person entered a message, and how the reply reaches them.
3
3
  *
4
4
  * A message the person spoke, and the tab transcribed with speech
5
5
  * recognition, carries `{ mode: 'voice', language }` on its turn's context,
@@ -8,8 +8,13 @@
8
8
  * sense of may be a mis-hearing; the host stores it on the user's message so
9
9
  * the chat can show the message was spoken.
10
10
  *
11
- * It arrives from a browser, so every reader takes it through
12
- * `readMessageInput`, which keeps only what it recognises.
11
+ * A reply that will be spoken rather than shown (a live call, where a voice
12
+ * reads the reply out) carries `{ mode: 'voice' }` under `output`. The worker
13
+ * then tells the model to write for the ear.
14
+ *
15
+ * Both arrive from outside the worker, so every reader takes them through
16
+ * `readMessageInput` and `readReplyOutput`, which keep only what they
17
+ * recognise.
13
18
  */
14
19
  /** The key under a turn's context that carries how its message was entered. */
15
20
  export const MESSAGE_INPUT_CONTEXT_KEY = 'input';
@@ -51,4 +56,21 @@ export function readMessageInput(value) {
51
56
  const tag = readMessageInputLanguage(language);
52
57
  return { mode: mode, ...(tag ? { language: tag } : {}) };
53
58
  }
59
+ /** The key under a turn's context that carries how its reply reaches the person. */
60
+ export const REPLY_OUTPUT_CONTEXT_KEY = 'output';
61
+ /** The ways a reply can reach the person besides being shown as text. A shown reply carries no `output`. */
62
+ export const REPLY_OUTPUT_MODES = ['voice'];
63
+ /**
64
+ * How a reply reaches the person, when `value` says so in a way this runtime
65
+ * knows; else null, and the reply is shown as text. Anything but the mode is
66
+ * left out.
67
+ */
68
+ export function readReplyOutput(value) {
69
+ if (!value || typeof value !== 'object' || Array.isArray(value))
70
+ return null;
71
+ const { mode } = value;
72
+ if (typeof mode !== 'string' || !REPLY_OUTPUT_MODES.includes(mode))
73
+ return null;
74
+ return { mode: mode };
75
+ }
54
76
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/message-input/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAEjD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAO,CAAU,CAAC;AAItD,kFAAkF;AAClF,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAYnD,uFAAuF;AACvF,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,gCAAgC;QAAE,OAAO,IAAI,CAAC;IACpH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,8EAA8E;QAC9E,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAgC,CAAC;IAC5D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAE,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxG,MAAM,GAAG,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC/C,OAAO,EAAE,IAAI,EAAE,IAAwB,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/message-input/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAEjD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAO,CAAU,CAAC;AAItD,kFAAkF;AAClF,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAYnD,uFAAuF;AACvF,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,gCAAgC;QAAE,OAAO,IAAI,CAAC;IACpH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,8EAA8E;QAC9E,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAgC,CAAC;IAC5D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAE,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxG,MAAM,GAAG,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC/C,OAAO,EAAE,IAAI,EAAE,IAAwB,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AAEjD,4GAA4G;AAC5G,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAU,CAAC;AASrD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,EAAE,IAAI,EAAE,GAAG,KAAgC,CAAC;IAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAE,kBAAwC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvG,OAAO,EAAE,IAAI,EAAE,IAAuB,EAAE,CAAC;AAC3C,CAAC"}
@@ -16,6 +16,9 @@ export declare const AGENT_SOCKET_EVENTS: {
16
16
  readonly TURN_ERROR: "agent:turn_error";
17
17
  readonly ERROR: "agent:error";
18
18
  readonly APPROVAL_REQUIRED: "agent:approval_required";
19
+ readonly REASONING_STARTED: "agent:reasoning_started";
20
+ readonly REASONING_DELTA: "agent:reasoning_delta";
21
+ readonly REASONING_ENDED: "agent:reasoning_ended";
19
22
  };
20
23
  export type AgentSocketEventName = (typeof AGENT_SOCKET_EVENTS)[keyof typeof AGENT_SOCKET_EVENTS];
21
24
  export declare const ALL_AGENT_SOCKET_EVENTS: AgentSocketEventName[];
@@ -41,7 +44,7 @@ export declare function displayedToolCall(call: {
41
44
  name: string;
42
45
  arguments?: Record<string, unknown>;
43
46
  };
44
- export type AgentProtocolEvent = TokenEvent | TokenClearEvent | IntentCallEvent | IntentResultEvent | UICommandEvent | ContextSyncEvent | LearningSignalEvent | SessionUpdateEvent | ErrorEvent | DoneEvent | ApprovalRequiredProtocolEvent;
47
+ export type AgentProtocolEvent = TokenEvent | TokenClearEvent | IntentCallEvent | IntentResultEvent | UICommandEvent | ContextSyncEvent | LearningSignalEvent | SessionUpdateEvent | ErrorEvent | DoneEvent | ApprovalRequiredProtocolEvent | ReasoningEvent;
45
48
  export interface TokenEvent {
46
49
  type: 'token';
47
50
  content: string;
@@ -167,6 +170,24 @@ export interface ErrorEvent {
167
170
  export interface ApprovalRequiredProtocolEvent extends Omit<ApprovalRequiredEvent, 'timestamp'> {
168
171
  type: 'approval_required';
169
172
  }
173
+ /**
174
+ * The model's thinking: `start` when it begins, `delta` with the next piece of
175
+ * its summary (sent only when the model returns one), `end` when it stops.
176
+ * Until `end`, the turn is planning rather than acting.
177
+ */
178
+ export interface ReasoningEvent {
179
+ type: 'reasoning';
180
+ phase: 'start' | 'delta' | 'end';
181
+ /** The thinking block: its deltas and end repeat it. */
182
+ id: string;
183
+ /** The next piece of the summary, on a `delta`. */
184
+ text?: string;
185
+ turnId: string;
186
+ }
187
+ /** How a turn that ended by itself ended (`DoneEvent.endReason`). */
188
+ export type TurnEndReason = 'complete' | 'present_options' | 'awaiting_approval' | 'time_limit' | 'output_limit' | 'step_count';
189
+ export declare const TURN_END_REASONS: readonly TurnEndReason[];
190
+ export declare function isTurnEndReason(value: unknown): value is TurnEndReason;
170
191
  export interface DoneEvent {
171
192
  type: 'done';
172
193
  turnId: string;
@@ -183,6 +204,12 @@ export interface DoneEvent {
183
204
  * is stored.
184
205
  */
185
206
  stopReason?: TurnStoppedReason;
207
+ /**
208
+ * How a turn that ended by itself ended: it answered, asked the person to
209
+ * choose or approve, handed back for time, was cut off at the output limit,
210
+ * or used every step. Absent from a worker that does not say.
211
+ */
212
+ endReason?: TurnEndReason;
186
213
  }
187
214
  /**
188
215
  * Maps a raw Socket.IO event (name + payload) to an AgentProtocolEvent.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,17 @@ export function displayedToolCall(call) {
30
30
  const input = call.arguments?.input;
31
31
  return { name: action, ...(input && typeof input === 'object' ? { arguments: input } : {}) };
32
32
  }
33
+ export const TURN_END_REASONS = [
34
+ 'complete',
35
+ 'present_options',
36
+ 'awaiting_approval',
37
+ 'time_limit',
38
+ 'output_limit',
39
+ 'step_count',
40
+ ];
41
+ export function isTurnEndReason(value) {
42
+ return typeof value === 'string' && TURN_END_REASONS.includes(value);
43
+ }
33
44
  /**
34
45
  * Maps a raw Socket.IO event (name + payload) to an AgentProtocolEvent.
35
46
  * This is the canonical mapping — platforms never need to write their own.
@@ -81,7 +92,22 @@ export function parseSocketEvent(event, data, fallbackTurnId) {
81
92
  messageId: payload.messageId,
82
93
  usage: payload.usage,
83
94
  ...(isTurnStoppedReason(payload.stopReason) ? { stopReason: payload.stopReason } : {}),
95
+ ...(isTurnEndReason(payload.endReason) ? { endReason: payload.endReason } : {}),
84
96
  };
97
+ case AGENT_SOCKET_EVENTS.REASONING_STARTED:
98
+ case AGENT_SOCKET_EVENTS.REASONING_ENDED: {
99
+ const id = payload.reasoningId;
100
+ if (typeof id !== 'string' || !id)
101
+ return null;
102
+ return { type: 'reasoning', phase: event === AGENT_SOCKET_EVENTS.REASONING_STARTED ? 'start' : 'end', id, turnId };
103
+ }
104
+ case AGENT_SOCKET_EVENTS.REASONING_DELTA: {
105
+ const id = payload.reasoningId;
106
+ const text = payload.text;
107
+ if (typeof id !== 'string' || !id || typeof text !== 'string' || !text)
108
+ return null;
109
+ return { type: 'reasoning', phase: 'delta', id, text, turnId };
110
+ }
85
111
  case AGENT_SOCKET_EVENTS.TURN_ERROR: {
86
112
  const errObj = (payload.error ?? payload);
87
113
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAA0B,MAAM,mBAAmB,CAAC;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAIrD,MAAM,CAAC,MAAM,uBAAuB,GAA2B,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAElG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC;AAEnG;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA2D;IAI3F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;IACtC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,GAAG,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAgC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1H,CAAC;AA2HD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,IAAa,EAAE,cAAsB;IACnF,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;IACxD,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,cAAc,CAAC;IAE5D,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,mBAAmB,CAAC,YAAY;YACnC,+DAA+D;YAC/D,OAAO,IAAI,CAAC;QAEd,KAAK,mBAAmB,CAAC,KAAK;YAC5B,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,OAAO,EAAG,OAAO,CAAC,IAAe,IAAK,OAAO,CAAC,KAAgB,IAAK,OAAO,CAAC,OAAkB,IAAI,EAAE;gBACnG,MAAM;aACP,CAAC;QAEJ,KAAK,mBAAmB,CAAC,WAAW;YAClC,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,MAAM;aACP,CAAC;QAEJ,KAAK,mBAAmB,CAAC,iBAAiB;YACxC,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAG,OAAO,CAAC,MAAiB,IAAK,OAAO,CAAC,SAAoB,IAAI,MAAM,CAAC,UAAU,EAAE;gBACtF,QAAQ,EAAG,OAAO,CAAC,QAAmB,IAAK,OAAO,CAAC,IAAe,IAAI,SAAS;gBAC/E,oDAAoD;gBACpD,UAAU,EACP,OAAO,CAAC,KAAiC;oBACzC,OAAO,CAAC,UAAsC;oBAC9C,OAAO,CAAC,IAAgC;oBACzC,EAAE;gBACJ,MAAM;aACP,CAAC;QAEJ,KAAK,mBAAmB,CAAC,kBAAkB;YACzC,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAG,OAAO,CAAC,MAAiB,IAAK,OAAO,CAAC,SAAoB,IAAI,EAAE;gBACzE,QAAQ,EAAG,OAAO,CAAC,QAAmB,IAAK,OAAO,CAAC,IAAe,IAAI,SAAS;gBAC/E,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI;gBAChD,OAAO,EAAG,OAAO,CAAC,OAAmB,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;gBACzD,UAAU,EAAG,OAAO,CAAC,UAAqB,IAAI,CAAC;gBAC/C,MAAM;aACP,CAAC;QAEJ,KAAK,mBAAmB,CAAC,aAAa;YACpC,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAA+B;gBAClD,KAAK,EAAE,OAAO,CAAC,KAA4F;gBAC3G,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvF,CAAC;QAEJ,KAAK,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAA4B,CAAC;YACrE,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAG,MAAM,CAAC,IAAe,IAAI,YAAY;gBAC7C,OAAO,EAAG,MAAM,CAAC,OAAkB,IAAI,uBAAuB;gBAC9D,MAAM;gBACN,WAAW,EAAG,MAAM,CAAC,WAAuB,IAAI,KAAK;aACtD,CAAC;QACJ,CAAC;QAED,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAqD,CAAC;YAC/E,MAAM,YAAY,GAAI,OAAO,CAAC,OAAkB;mBAC3C,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,QAAoC,EAAE,OAA6B,CAAC;mBAChH,mBAAmB,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAG,OAAO,CAAC,IAAe,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,QAAoC,EAAE,IAAc,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,aAAa;gBACrJ,OAAO,EAAE,YAAY;gBACrB,MAAM;gBACN,WAAW,EAAG,OAAO,CAAC,WAAuB,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,QAAoC,EAAE,WAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK;aACjK,CAAC;QACJ,CAAC;QAID,KAAK,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAyC,CAAC;YACxD,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,MAAM;gBACN,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,EAAE;gBAC1C,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;gBAClC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO;gBAC/B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK;gBACvC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAClF,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC;aAChC,CAAC;QACJ,CAAC;QAED;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAA0B,MAAM,mBAAmB,CAAC;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAIrD,MAAM,CAAC,MAAM,uBAAuB,GAA2B,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAElG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC;AAEnG;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA2D;IAI3F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;IACtC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,GAAG,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAgC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1H,CAAC;AAgID,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,UAAU;IACV,iBAAiB;IACjB,mBAAmB;IACnB,YAAY;IACZ,cAAc;IACd,YAAY;CACb,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAsBD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,IAAa,EAAE,cAAsB;IACnF,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;IACxD,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,cAAc,CAAC;IAE5D,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,mBAAmB,CAAC,YAAY;YACnC,+DAA+D;YAC/D,OAAO,IAAI,CAAC;QAEd,KAAK,mBAAmB,CAAC,KAAK;YAC5B,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,OAAO,EAAG,OAAO,CAAC,IAAe,IAAK,OAAO,CAAC,KAAgB,IAAK,OAAO,CAAC,OAAkB,IAAI,EAAE;gBACnG,MAAM;aACP,CAAC;QAEJ,KAAK,mBAAmB,CAAC,WAAW;YAClC,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,MAAM;aACP,CAAC;QAEJ,KAAK,mBAAmB,CAAC,iBAAiB;YACxC,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAG,OAAO,CAAC,MAAiB,IAAK,OAAO,CAAC,SAAoB,IAAI,MAAM,CAAC,UAAU,EAAE;gBACtF,QAAQ,EAAG,OAAO,CAAC,QAAmB,IAAK,OAAO,CAAC,IAAe,IAAI,SAAS;gBAC/E,oDAAoD;gBACpD,UAAU,EACP,OAAO,CAAC,KAAiC;oBACzC,OAAO,CAAC,UAAsC;oBAC9C,OAAO,CAAC,IAAgC;oBACzC,EAAE;gBACJ,MAAM;aACP,CAAC;QAEJ,KAAK,mBAAmB,CAAC,kBAAkB;YACzC,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAG,OAAO,CAAC,MAAiB,IAAK,OAAO,CAAC,SAAoB,IAAI,EAAE;gBACzE,QAAQ,EAAG,OAAO,CAAC,QAAmB,IAAK,OAAO,CAAC,IAAe,IAAI,SAAS;gBAC/E,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI;gBAChD,OAAO,EAAG,OAAO,CAAC,OAAmB,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;gBACzD,UAAU,EAAG,OAAO,CAAC,UAAqB,IAAI,CAAC;gBAC/C,MAAM;aACP,CAAC;QAEJ,KAAK,mBAAmB,CAAC,aAAa;YACpC,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAA+B;gBAClD,KAAK,EAAE,OAAO,CAAC,KAA4F;gBAC3G,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChF,CAAC;QAEJ,KAAK,mBAAmB,CAAC,iBAAiB,CAAC;QAC3C,KAAK,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YAC/B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YAC/C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,KAAK,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACrH,CAAC;QAED,KAAK,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACpF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACjE,CAAC;QAED,KAAK,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAA4B,CAAC;YACrE,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAG,MAAM,CAAC,IAAe,IAAI,YAAY;gBAC7C,OAAO,EAAG,MAAM,CAAC,OAAkB,IAAI,uBAAuB;gBAC9D,MAAM;gBACN,WAAW,EAAG,MAAM,CAAC,WAAuB,IAAI,KAAK;aACtD,CAAC;QACJ,CAAC;QAED,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAqD,CAAC;YAC/E,MAAM,YAAY,GAAI,OAAO,CAAC,OAAkB;mBAC3C,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,QAAoC,EAAE,OAA6B,CAAC;mBAChH,mBAAmB,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAG,OAAO,CAAC,IAAe,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,QAAoC,EAAE,IAAc,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,aAAa;gBACrJ,OAAO,EAAE,YAAY;gBACrB,MAAM;gBACN,WAAW,EAAG,OAAO,CAAC,WAAuB,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,QAAoC,EAAE,WAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK;aACjK,CAAC;QACJ,CAAC;QAID,KAAK,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAyC,CAAC;YACxD,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,MAAM;gBACN,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,EAAE;gBAC1C,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;gBAClC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO;gBAC/B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK;gBACvC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAClF,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC;aAChC,CAAC;QACJ,CAAC;QAED;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -307,6 +307,15 @@ export interface AgentClientConfig {
307
307
  * Useful for analytics, logging, or custom side effects.
308
308
  */
309
309
  onEvent?: (event: AgentProtocolEvent) => void;
310
+ /**
311
+ * What each tool's action is called on screen, by tool name
312
+ * (`vector_studio_add_shape` → "Draw a shape"): the status a view shows
313
+ * while the assistant works (`useAgentStatus().activity`). A tool without one
314
+ * is named from its name (`humanizeToolName`).
315
+ */
316
+ toolLabels?: Readonly<Record<string, string>>;
317
+ /** The words of the status while the assistant thinks before it acts. Default "Planning…". */
318
+ planningText?: string;
310
319
  }
311
320
  /**
312
321
  * How a tab puts files in the platform's file area and takes them out
@@ -1 +1 @@
1
- {"version":3,"file":"client-config.d.ts","sourceRoot":"","sources":["../../src/types/client-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-config.d.ts","sourceRoot":"","sources":["../../src/types/client-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /** The assistant's own bookkeeping and reading of the page: never shown as work. */
2
+ export declare const AGENT_HIDDEN_WORK_TOOLS: readonly string[];
3
+ /** Tools that put a choice card in front of the person: a card, not work. */
4
+ export declare const AGENT_CHOICE_TOOLS: readonly string[];
5
+ /** One kind of action in a run of the assistant's work, and how many times it was taken. */
6
+ export interface AgentWorkStep {
7
+ label: string;
8
+ count: number;
9
+ }
10
+ /** A message of a conversation, as far as its work is concerned. */
11
+ export interface AgentWorkMessage {
12
+ role: string;
13
+ content?: unknown;
14
+ toolCall?: {
15
+ name: string;
16
+ arguments?: Record<string, unknown>;
17
+ status?: string;
18
+ };
19
+ }
20
+ /** Work done without a word or a card in between: its steps, in the order each label first appeared. */
21
+ export interface AgentWorkRun {
22
+ /** Index of the run's first call in the messages it was read from. */
23
+ from: number;
24
+ /** Index of its last call. */
25
+ to: number;
26
+ steps: AgentWorkStep[];
27
+ /** The step its last call belongs to. */
28
+ last: AgentWorkStep;
29
+ }
30
+ export interface AgentWorkOptions {
31
+ /** A tool's name → what its action is called on screen: `vector_studio_add_shape` → "Draw a shape". */
32
+ toolLabels?: Readonly<Record<string, string>>;
33
+ /** Tools never shown as work. Default `AGENT_HIDDEN_WORK_TOOLS`. */
34
+ hiddenTools?: readonly string[];
35
+ }
36
+ /**
37
+ * What a tool without a label is called on screen, from its name: the room's
38
+ * prefix dropped (the first two words of a longer name, the first of a
39
+ * two-word one, never a verb), and the verb first.
40
+ * `vector_studio_set_keyframe` → "Set keyframe", `vector_studio_rename` →
41
+ * "Rename", `vector_studio_version_save` → "Save version",
42
+ * `ui_describe` → "Describe".
43
+ */
44
+ export declare function humanizeToolName(name: string): string;
45
+ /** What a step of work reads as: "Draw a shape · 12", or the label alone for one action. */
46
+ export declare function formatWorkStep(step: AgentWorkStep): string;
47
+ /**
48
+ * The label a call is shown as, or null when it is not work: bookkeeping,
49
+ * reading the page, a choice card, or an action that failed and so changed
50
+ * nothing. An `act` call is the action it ran.
51
+ */
52
+ export declare function workLabel(call: {
53
+ name: string;
54
+ arguments?: Record<string, unknown>;
55
+ status?: string;
56
+ }, options?: AgentWorkOptions): string | null;
57
+ /** Whether a message says something: text of its own, not only a call. */
58
+ export declare function hasWords(content: unknown): boolean;
59
+ /**
60
+ * The runs of work in `messages`: calls taken without the person or the
61
+ * assistant saying anything, or a card being offered, in between. Within a run
62
+ * the calls are counted by label. Calls that are not work (`workLabel`) neither
63
+ * count nor end a run.
64
+ */
65
+ export declare function agentWorkRuns(messages: readonly AgentWorkMessage[], options?: AgentWorkOptions): AgentWorkRun[];
66
+ /**
67
+ * What the assistant is doing now, as one line: the step of its latest call,
68
+ * when that call is the last thing the turn has done (no words or card since).
69
+ * `messages` are the turn's own, from the person's message on.
70
+ */
71
+ export declare function currentWorkStep(messages: readonly AgentWorkMessage[], options?: AgentWorkOptions): AgentWorkStep | null;
72
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/work/index.ts"],"names":[],"mappings":"AAQA,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAAmD,CAAC;AAEzG,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAmE,CAAC;AAEpH,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnF;AAED,wGAAwG;AACxG,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,yCAAyC;IACzC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,uGAAuG;IACvG,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,oEAAoE;IACpE,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAUD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrD;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5E,OAAO,GAAE,gBAAqB,GAC7B,MAAM,GAAG,IAAI,CAMf;AAED,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAQlD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,YAAY,EAAE,CA2BnH;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,aAAa,GAAG,IAAI,CAU3H"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * The assistant's work as a person reads it: its calls, grouped into runs and
3
+ * named by what each action is called on screen. One definition, read by every
4
+ * view of a turn: the live status a panel or a pill shows, the steps a
5
+ * transcript lists, and a replay of a stored session.
6
+ */
7
+ import { displayedToolCall } from '../protocol/index.js';
8
+ /** The assistant's own bookkeeping and reading of the page: never shown as work. */
9
+ export const AGENT_HIDDEN_WORK_TOOLS = ['note', 'ui_describe', 'ui_read', 'ui_guide'];
10
+ /** Tools that put a choice card in front of the person: a card, not work. */
11
+ export const AGENT_CHOICE_TOOLS = ['present_options', 'confirm_action', 'request_user_decision'];
12
+ /** Words that name what a tool does, for a name that ends in its verb (`vector_studio_appearance_set`). */
13
+ const VERBS = new Set([
14
+ 'add', 'align', 'animate', 'apply', 'close', 'copy', 'create', 'delete', 'describe', 'draw', 'duplicate', 'ease',
15
+ 'export', 'find', 'group', 'guide', 'import', 'inspect', 'list', 'make', 'move', 'new', 'open', 'paste', 'play',
16
+ 'query', 'read', 'remove', 'rename', 'resize', 'rotate', 'save', 'scale', 'select', 'set', 'snapshot', 'stop',
17
+ 'ungroup', 'update',
18
+ ]);
19
+ /**
20
+ * What a tool without a label is called on screen, from its name: the room's
21
+ * prefix dropped (the first two words of a longer name, the first of a
22
+ * two-word one, never a verb), and the verb first.
23
+ * `vector_studio_set_keyframe` → "Set keyframe", `vector_studio_rename` →
24
+ * "Rename", `vector_studio_version_save` → "Save version",
25
+ * `ui_describe` → "Describe".
26
+ */
27
+ export function humanizeToolName(name) {
28
+ const words = name.split(/[_\-.\s]+|(?<=[a-z])(?=[A-Z])/).filter(Boolean).map((w) => w.toLowerCase());
29
+ if (words.length === 0)
30
+ return name;
31
+ const prefixMax = words.length >= 3 ? 2 : words.length - 1;
32
+ let start = 0;
33
+ while (start < prefixMax && !VERBS.has(words[start]))
34
+ start++;
35
+ let kept = words.slice(start);
36
+ if (kept.length === 2 && !VERBS.has(kept[0]) && VERBS.has(kept[1]))
37
+ kept = [kept[1], kept[0]];
38
+ const phrase = kept.join(' ');
39
+ return phrase.charAt(0).toUpperCase() + phrase.slice(1);
40
+ }
41
+ /** What a step of work reads as: "Draw a shape · 12", or the label alone for one action. */
42
+ export function formatWorkStep(step) {
43
+ return step.count > 1 ? `${step.label} · ${step.count}` : step.label;
44
+ }
45
+ /**
46
+ * The label a call is shown as, or null when it is not work: bookkeeping,
47
+ * reading the page, a choice card, or an action that failed and so changed
48
+ * nothing. An `act` call is the action it ran.
49
+ */
50
+ export function workLabel(call, options = {}) {
51
+ if (call.status === 'error')
52
+ return null;
53
+ const { name } = displayedToolCall(call);
54
+ if (AGENT_CHOICE_TOOLS.includes(name))
55
+ return null;
56
+ if ((options.hiddenTools ?? AGENT_HIDDEN_WORK_TOOLS).includes(name))
57
+ return null;
58
+ return options.toolLabels?.[name] ?? humanizeToolName(name);
59
+ }
60
+ /** Whether a message says something: text of its own, not only a call. */
61
+ export function hasWords(content) {
62
+ if (typeof content === 'string')
63
+ return content.trim().length > 0;
64
+ if (Array.isArray(content)) {
65
+ return content.some((part) => !!part && typeof part === 'object' && part.type === 'text' && typeof part.text === 'string' && part.text.trim().length > 0);
66
+ }
67
+ return false;
68
+ }
69
+ /**
70
+ * The runs of work in `messages`: calls taken without the person or the
71
+ * assistant saying anything, or a card being offered, in between. Within a run
72
+ * the calls are counted by label. Calls that are not work (`workLabel`) neither
73
+ * count nor end a run.
74
+ */
75
+ export function agentWorkRuns(messages, options = {}) {
76
+ const runs = [];
77
+ let run = null;
78
+ messages.forEach((message, i) => {
79
+ const call = message.toolCall;
80
+ const name = call ? displayedToolCall(call).name : null;
81
+ const breaks = (message.role === 'user' && !call) || hasWords(message.content) || (name !== null && AGENT_CHOICE_TOOLS.includes(name));
82
+ if (breaks)
83
+ run = null;
84
+ if (!call)
85
+ return;
86
+ const label = workLabel(call, options);
87
+ if (label === null)
88
+ return;
89
+ if (!run) {
90
+ run = { from: i, to: i, steps: [], last: { label, count: 0 } };
91
+ runs.push(run);
92
+ }
93
+ const current = run;
94
+ let step = current.steps.find((s) => s.label === label);
95
+ if (!step) {
96
+ step = { label, count: 0 };
97
+ current.steps.push(step);
98
+ }
99
+ step.count += 1;
100
+ current.to = i;
101
+ current.last = step;
102
+ });
103
+ return runs;
104
+ }
105
+ /**
106
+ * What the assistant is doing now, as one line: the step of its latest call,
107
+ * when that call is the last thing the turn has done (no words or card since).
108
+ * `messages` are the turn's own, from the person's message on.
109
+ */
110
+ export function currentWorkStep(messages, options = {}) {
111
+ const runs = agentWorkRuns(messages, options);
112
+ const last = runs.at(-1);
113
+ if (!last)
114
+ return null;
115
+ for (let i = last.to + 1; i < messages.length; i++) {
116
+ const m = messages[i];
117
+ if ((m.role === 'user' && !m.toolCall) || hasWords(m.content))
118
+ return null;
119
+ if (m.toolCall && AGENT_CHOICE_TOOLS.includes(displayedToolCall(m.toolCall).name))
120
+ return null;
121
+ }
122
+ return last.last;
123
+ }
124
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/work/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ouispec/agent-core",
3
- "version": "0.13.1",
3
+ "version": "0.15.0",
4
4
  "description": "Schema types, entity graph, intent resolution, and protocol definitions for the agent SDK",
5
5
  "homepage": "https://github.com/wesreid/oui/tree/main/packages/agent-core#readme",
6
6
  "bugs": {
@@ -30,8 +30,8 @@
30
30
  "dependencies": {
31
31
  "ajv": "^8.17.0",
32
32
  "yaml": "^2.7.0",
33
- "@ouispec/agent-events": "^0.13.1",
34
33
  "@ouispec/contract": "^0.4.6",
34
+ "@ouispec/agent-events": "^0.14.0",
35
35
  "oui-spec": "^0.11.1"
36
36
  },
37
37
  "devDependencies": {