@mono-agent/web 0.20.11 → 0.21.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 (70) hide show
  1. package/README.md +397 -68
  2. package/dist/contracts.d.ts +437 -8
  3. package/dist/contracts.d.ts.map +1 -1
  4. package/dist/contracts.js +2 -0
  5. package/dist/contracts.js.map +1 -1
  6. package/dist/cron-reply-context.d.ts +27 -0
  7. package/dist/cron-reply-context.d.ts.map +1 -0
  8. package/dist/cron-reply-context.js +241 -0
  9. package/dist/cron-reply-context.js.map +1 -0
  10. package/dist/discovery.d.ts +1 -0
  11. package/dist/discovery.d.ts.map +1 -1
  12. package/dist/discovery.js +8 -6
  13. package/dist/discovery.js.map +1 -1
  14. package/dist/effort-ladder.d.ts +111 -0
  15. package/dist/effort-ladder.d.ts.map +1 -0
  16. package/dist/effort-ladder.js +155 -0
  17. package/dist/effort-ladder.js.map +1 -0
  18. package/dist/index.d.ts +3 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/long-lived-fetch.d.ts +5 -0
  23. package/dist/long-lived-fetch.d.ts.map +1 -0
  24. package/dist/long-lived-fetch.js +22 -0
  25. package/dist/long-lived-fetch.js.map +1 -0
  26. package/dist/monitor-reply.d.ts +10 -0
  27. package/dist/monitor-reply.d.ts.map +1 -0
  28. package/dist/monitor-reply.js +67 -0
  29. package/dist/monitor-reply.js.map +1 -0
  30. package/dist/notification-client.d.ts +11 -2
  31. package/dist/notification-client.d.ts.map +1 -1
  32. package/dist/notification-client.js +5 -4
  33. package/dist/notification-client.js.map +1 -1
  34. package/dist/notification-ingress.d.ts +8 -1
  35. package/dist/notification-ingress.d.ts.map +1 -1
  36. package/dist/notification-ingress.js +28 -6
  37. package/dist/notification-ingress.js.map +1 -1
  38. package/dist/operator-client.d.ts +35 -2
  39. package/dist/operator-client.d.ts.map +1 -1
  40. package/dist/operator-client.js +276 -9
  41. package/dist/operator-client.js.map +1 -1
  42. package/dist/server.d.ts +42 -1
  43. package/dist/server.d.ts.map +1 -1
  44. package/dist/server.js +679 -52
  45. package/dist/server.js.map +1 -1
  46. package/dist/service.d.ts +299 -18
  47. package/dist/service.d.ts.map +1 -1
  48. package/dist/service.js +1915 -160
  49. package/dist/service.js.map +1 -1
  50. package/dist/store-migrations.d.ts +23 -0
  51. package/dist/store-migrations.d.ts.map +1 -0
  52. package/dist/store-migrations.js +212 -0
  53. package/dist/store-migrations.js.map +1 -0
  54. package/dist/store.d.ts +389 -21
  55. package/dist/store.d.ts.map +1 -1
  56. package/dist/store.js +2087 -245
  57. package/dist/store.js.map +1 -1
  58. package/package.json +9 -8
  59. package/webapp/dist/assets/{assistant-ui-BzN2E6n6.js → assistant-ui-pZmGxIp2.js} +16 -16
  60. package/webapp/dist/assets/index-6uQ7TVQe.css +1 -0
  61. package/webapp/dist/assets/index-CsSMjSgW.js +156 -0
  62. package/webapp/dist/assets/{markdown-Vq23xgh7.js → markdown-Du5t10ja.js} +1 -1
  63. package/webapp/dist/badge-96.png +0 -0
  64. package/webapp/dist/index.html +26 -6
  65. package/webapp/dist/manifest.webmanifest +1 -1
  66. package/webapp/dist/notification-sw.js +3 -1
  67. package/webapp/dist/sw.js +1 -1
  68. package/webapp/dist/{workbox-9c191d2f.js → workbox-2fbc6a65.js} +1 -1
  69. package/webapp/dist/assets/index-BT463dRM.css +0 -1
  70. package/webapp/dist/assets/index-Co-qDQPq.js +0 -155
@@ -0,0 +1,111 @@
1
+ /**
2
+ * The one effort rule, shared verbatim by both ends of the console.
3
+ *
4
+ * The server decides what a turn may carry; the browser decides what the
5
+ * picker offers and what a stored preference survives as. Written twice, those
6
+ * two decisions drift, and the drift is invisible: the UI hides or clears a
7
+ * grade the agent would have accepted, or offers one it rejects with a 400.
8
+ * This module is imported by `service.ts` and by
9
+ * `webapp/src/components/model-catalog.ts` (relatively, the way
10
+ * `mcp-app-document.ts` already is), so there is exactly one implementation.
11
+ *
12
+ * It must therefore stay dependency-free: the webapp is its own pnpm workspace
13
+ * and cannot resolve `@mono-agent/config` or anything else from the monorepo.
14
+ * `GLOBAL_EFFORT_LEVELS` duplicates `EFFORT_LEVELS` for that reason, and
15
+ * `packages/web/src/__tests__/effort-ladder.test.ts` pins the two equal.
16
+ */
17
+ /**
18
+ * The canonical ladder, used wherever nothing narrower is known. Mirrors
19
+ * `EFFORT_LEVELS` from `@mono-agent/config`.
20
+ */
21
+ export declare const GLOBAL_EFFORT_LEVELS: readonly ["none", "minimal", "low", "medium", "high", "xhigh", "max", "ultra"];
22
+ /** What a `reasoningMode: "toggle"` model offers: thinking on, or off. */
23
+ export declare const TOGGLE_EFFORT_LEVELS: readonly ["high", "none"];
24
+ /**
25
+ * What one route says about its own reasoning. A `modelOptions` entry (the
26
+ * configured shortlist) and a `/v1/models` catalog row are built from the same
27
+ * `resolveAdvertisedModelEffort` shape in `@mono-agent/agent-app`, so one rule
28
+ * reads both.
29
+ */
30
+ export interface EffortAdvertisement {
31
+ readonly reasoning?: boolean;
32
+ readonly reasoningMode?: string;
33
+ readonly effortLevels?: readonly string[];
34
+ /**
35
+ * Configured fallback effort. A string pins it, null selects provider
36
+ * default, and absence means this may be an older agent advertisement.
37
+ */
38
+ readonly effort?: string | null;
39
+ }
40
+ /** The `modelOptions`/`efforts` pair an agent advertises on `/v1/info`. */
41
+ export interface EffortAgentContext {
42
+ readonly modelOptions?: Readonly<Record<string, EffortAdvertisement>> | undefined;
43
+ readonly efforts?: readonly string[] | undefined;
44
+ /** The configured shortlist, in the order the agent advertised it. */
45
+ readonly models?: readonly string[] | undefined;
46
+ /** The route a turn carrying no explicit model runs on. */
47
+ readonly defaultModel?: string | undefined;
48
+ }
49
+ /**
50
+ * The model an effort decision is actually about when the selection is blank.
51
+ *
52
+ * Blank means "let the agent pick", and what the agent picks is its default
53
+ * route, or -- for a payload that advertises a shortlist but no default -- the
54
+ * first route on that shortlist. Both ends have to answer this the same way or
55
+ * the shared rule below is fed different models and drifts anyway: the browser
56
+ * fell back to `models[0]` while the server stopped at `defaultModel`, so for
57
+ * any `/v1/info` omitting `model` the picker offered the first route's ladder
58
+ * while `startTurn` judged against the global one.
59
+ *
60
+ * `undefined` means the caller knows of no route at all, which is the one case
61
+ * where {@link effortLevelsForModel} legitimately has nothing to look up.
62
+ */
63
+ export declare function effectiveModelForAgent(agent: EffortAgentContext, model: string | undefined): string | undefined;
64
+ /**
65
+ * The ladder one advertisement resolves to, or `undefined` when it said
66
+ * nothing at all and the caller's floor applies.
67
+ *
68
+ * Read the producer's vocabulary (`agent-app/src/model-effort-capabilities.ts`,
69
+ * `runtime-adapter/src/local-providers.ts`) rather than the field names:
70
+ *
71
+ * - `reasoning: false` / `reasoningMode: "none"` — takes no grade at all.
72
+ * - `reasoningMode: "toggle"` — binary thinking; graded levels would lie.
73
+ * - an `effortLevels` list, empty included — exactly those grades.
74
+ * - `reasoningMode: "effort"` with no list — the operator's own local-provider
75
+ * config declared this model graded and enumerated nothing (a real Ollama
76
+ * `reasoning_mode: "effort"` produces exactly this). It is an affirmative
77
+ * claim that grades apply, so it gets the canonical ladder, the same one
78
+ * `channelEffortOptions` and the TUI picker offer it. Reading it as an
79
+ * empty ladder inverts its meaning and 400s every effort.
80
+ * - `reasoning: true` alone — "we looked and could not determine the grades"
81
+ * for a cloud model. Deliberately narrow (80a6df14): unspecified cloud
82
+ * grades stay hidden rather than guessed at.
83
+ * - nothing whatsoever — silence, not a claim. The caller's floor decides.
84
+ */
85
+ export declare function advertisedEffortLevels(advertisement: EffortAdvertisement | undefined): readonly string[] | undefined;
86
+ /**
87
+ * The efforts a selection may carry, in the one precedence order both ends
88
+ * apply: the configured shortlist entry for this exact route, then whatever
89
+ * the `/v1/models` page said about this exact model, then the floor.
90
+ *
91
+ * `catalogLevels` is an already-resolved ladder — run the catalog row through
92
+ * {@link advertisedEffortLevels} first — because the server caches the resolved
93
+ * value rather than the row.
94
+ *
95
+ * The floor is the global ladder. An agent that predates per-model metadata
96
+ * describes one ladder for everything in `efforts`, so that wins for it. An
97
+ * agent that does carry `modelOptions` has said nothing about a model reached
98
+ * only through the catalog, and there the agent itself is the real gate at turn
99
+ * time — narrowing here would hide grades the server accepts.
100
+ */
101
+ export declare function effortLevelsForModel(agent: EffortAgentContext, model: string | undefined, catalogLevels: readonly string[] | undefined): readonly string[];
102
+ /**
103
+ * Resolve the effort inherited by a model-only turn selection.
104
+ *
105
+ * The configured primary always keeps `runtime.effort`. A new agent publishes
106
+ * each fallback's tri-state route effort in `modelOptions`; older agents omit
107
+ * that field and retain the capability-ladder behavior. Catalog-only routes
108
+ * inherit only when their advertised reasoning shape admits the base effort.
109
+ */
110
+ export declare function inheritedEffortForModel(agent: EffortAgentContext, model: string | undefined, catalogAdvertisement: EffortAdvertisement | undefined, defaultEffort: string | undefined): string | undefined;
111
+ //# sourceMappingURL=effort-ladder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effort-ladder.d.ts","sourceRoot":"","sources":["../src/effort-ladder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,gFASvB,CAAC;AAEX,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,2BAA4B,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,GAAG,SAAS,CAAC;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACjD,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,mBAAmB,GAAG,SAAS,GAC7C,SAAS,MAAM,EAAE,GAAG,SAAS,CAU/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAC3C,SAAS,MAAM,EAAE,CAQnB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,oBAAoB,EAAE,mBAAmB,GAAG,SAAS,EACrD,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,MAAM,GAAG,SAAS,CAkBpB"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * The one effort rule, shared verbatim by both ends of the console.
3
+ *
4
+ * The server decides what a turn may carry; the browser decides what the
5
+ * picker offers and what a stored preference survives as. Written twice, those
6
+ * two decisions drift, and the drift is invisible: the UI hides or clears a
7
+ * grade the agent would have accepted, or offers one it rejects with a 400.
8
+ * This module is imported by `service.ts` and by
9
+ * `webapp/src/components/model-catalog.ts` (relatively, the way
10
+ * `mcp-app-document.ts` already is), so there is exactly one implementation.
11
+ *
12
+ * It must therefore stay dependency-free: the webapp is its own pnpm workspace
13
+ * and cannot resolve `@mono-agent/config` or anything else from the monorepo.
14
+ * `GLOBAL_EFFORT_LEVELS` duplicates `EFFORT_LEVELS` for that reason, and
15
+ * `packages/web/src/__tests__/effort-ladder.test.ts` pins the two equal.
16
+ */
17
+ /**
18
+ * The canonical ladder, used wherever nothing narrower is known. Mirrors
19
+ * `EFFORT_LEVELS` from `@mono-agent/config`.
20
+ */
21
+ export const GLOBAL_EFFORT_LEVELS = [
22
+ "none",
23
+ "minimal",
24
+ "low",
25
+ "medium",
26
+ "high",
27
+ "xhigh",
28
+ "max",
29
+ "ultra",
30
+ ];
31
+ /** What a `reasoningMode: "toggle"` model offers: thinking on, or off. */
32
+ export const TOGGLE_EFFORT_LEVELS = ["high", "none"];
33
+ /**
34
+ * The model an effort decision is actually about when the selection is blank.
35
+ *
36
+ * Blank means "let the agent pick", and what the agent picks is its default
37
+ * route, or -- for a payload that advertises a shortlist but no default -- the
38
+ * first route on that shortlist. Both ends have to answer this the same way or
39
+ * the shared rule below is fed different models and drifts anyway: the browser
40
+ * fell back to `models[0]` while the server stopped at `defaultModel`, so for
41
+ * any `/v1/info` omitting `model` the picker offered the first route's ladder
42
+ * while `startTurn` judged against the global one.
43
+ *
44
+ * `undefined` means the caller knows of no route at all, which is the one case
45
+ * where {@link effortLevelsForModel} legitimately has nothing to look up.
46
+ */
47
+ export function effectiveModelForAgent(agent, model) {
48
+ return model || agent.defaultModel || agent.models?.[0] || undefined;
49
+ }
50
+ /**
51
+ * The ladder one advertisement resolves to, or `undefined` when it said
52
+ * nothing at all and the caller's floor applies.
53
+ *
54
+ * Read the producer's vocabulary (`agent-app/src/model-effort-capabilities.ts`,
55
+ * `runtime-adapter/src/local-providers.ts`) rather than the field names:
56
+ *
57
+ * - `reasoning: false` / `reasoningMode: "none"` — takes no grade at all.
58
+ * - `reasoningMode: "toggle"` — binary thinking; graded levels would lie.
59
+ * - an `effortLevels` list, empty included — exactly those grades.
60
+ * - `reasoningMode: "effort"` with no list — the operator's own local-provider
61
+ * config declared this model graded and enumerated nothing (a real Ollama
62
+ * `reasoning_mode: "effort"` produces exactly this). It is an affirmative
63
+ * claim that grades apply, so it gets the canonical ladder, the same one
64
+ * `channelEffortOptions` and the TUI picker offer it. Reading it as an
65
+ * empty ladder inverts its meaning and 400s every effort.
66
+ * - `reasoning: true` alone — "we looked and could not determine the grades"
67
+ * for a cloud model. Deliberately narrow (80a6df14): unspecified cloud
68
+ * grades stay hidden rather than guessed at.
69
+ * - nothing whatsoever — silence, not a claim. The caller's floor decides.
70
+ */
71
+ export function advertisedEffortLevels(advertisement) {
72
+ if (advertisement === undefined)
73
+ return undefined;
74
+ if (advertisement.reasoning === false || advertisement.reasoningMode === "none")
75
+ return [];
76
+ // An explicitly empty list narrows hardest: it outranks even a mode.
77
+ if (advertisement.effortLevels?.length === 0)
78
+ return [];
79
+ if (advertisement.reasoningMode === "toggle")
80
+ return TOGGLE_EFFORT_LEVELS;
81
+ if (advertisement.effortLevels !== undefined)
82
+ return advertisement.effortLevels;
83
+ if (advertisement.reasoningMode === "effort")
84
+ return GLOBAL_EFFORT_LEVELS;
85
+ if (advertisement.reasoning !== undefined)
86
+ return [];
87
+ return undefined;
88
+ }
89
+ /**
90
+ * The efforts a selection may carry, in the one precedence order both ends
91
+ * apply: the configured shortlist entry for this exact route, then whatever
92
+ * the `/v1/models` page said about this exact model, then the floor.
93
+ *
94
+ * `catalogLevels` is an already-resolved ladder — run the catalog row through
95
+ * {@link advertisedEffortLevels} first — because the server caches the resolved
96
+ * value rather than the row.
97
+ *
98
+ * The floor is the global ladder. An agent that predates per-model metadata
99
+ * describes one ladder for everything in `efforts`, so that wins for it. An
100
+ * agent that does carry `modelOptions` has said nothing about a model reached
101
+ * only through the catalog, and there the agent itself is the real gate at turn
102
+ * time — narrowing here would hide grades the server accepts.
103
+ */
104
+ export function effortLevelsForModel(agent, model, catalogLevels) {
105
+ const advertised = advertisedEffortLevels(model === undefined ? undefined : agent.modelOptions?.[model]);
106
+ if (advertised !== undefined)
107
+ return advertised;
108
+ if (catalogLevels !== undefined)
109
+ return catalogLevels;
110
+ if (agent.modelOptions === undefined)
111
+ return agent.efforts ?? GLOBAL_EFFORT_LEVELS;
112
+ return GLOBAL_EFFORT_LEVELS;
113
+ }
114
+ /**
115
+ * Resolve the effort inherited by a model-only turn selection.
116
+ *
117
+ * The configured primary always keeps `runtime.effort`. A new agent publishes
118
+ * each fallback's tri-state route effort in `modelOptions`; older agents omit
119
+ * that field and retain the capability-ladder behavior. Catalog-only routes
120
+ * inherit only when their advertised reasoning shape admits the base effort.
121
+ */
122
+ export function inheritedEffortForModel(agent, model, catalogAdvertisement, defaultEffort) {
123
+ const effectiveModel = effectiveModelForAgent(agent, model);
124
+ const primaryModel = agent.defaultModel || agent.models?.[0] || undefined;
125
+ if (effectiveModel === undefined || effectiveModel === primaryModel)
126
+ return defaultEffort;
127
+ const shortlistAdvertisement = agent.modelOptions?.[effectiveModel];
128
+ if (shortlistAdvertisement !== undefined && Object.hasOwn(shortlistAdvertisement, "effort")) {
129
+ return typeof shortlistAdvertisement.effort === "string"
130
+ ? shortlistAdvertisement.effort
131
+ : undefined;
132
+ }
133
+ if (defaultEffort === undefined)
134
+ return undefined;
135
+ const admission = advertisedEffortAdmission(shortlistAdvertisement ?? catalogAdvertisement, defaultEffort);
136
+ return admission === false ? undefined : defaultEffort;
137
+ }
138
+ /** `undefined` means the advertisement cannot judge this effort. */
139
+ function advertisedEffortAdmission(advertisement, effort) {
140
+ if (advertisement === undefined)
141
+ return undefined;
142
+ if (advertisement.reasoning === false || advertisement.reasoningMode === "none")
143
+ return false;
144
+ if (advertisement.effortLevels?.length === 0)
145
+ return false;
146
+ if (advertisement.reasoningMode === "toggle")
147
+ return TOGGLE_EFFORT_LEVELS.includes(effort);
148
+ if (advertisement.effortLevels !== undefined)
149
+ return advertisement.effortLevels.includes(effort);
150
+ if (advertisement.reasoningMode === "effort")
151
+ return GLOBAL_EFFORT_LEVELS.includes(effort);
152
+ // `reasoning: true` alone is unknown cloud metadata. Stay permissive.
153
+ return undefined;
154
+ }
155
+ //# sourceMappingURL=effort-ladder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effort-ladder.js","sourceRoot":"","sources":["../src/effort-ladder.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,13 +7,13 @@ export type { StartWebServerOptions, WebServerHandle } from "./server.js";
7
7
  export { defaultWebStateDir, prepareWebState, prepareWebStatePaths, resetWebState, resolveWebStatePaths, } from "./state-paths.js";
8
8
  export type { WebStatePathOptions, WebStatePaths } from "./state-paths.js";
9
9
  export { deliverWebNotification } from "./notification-client.js";
10
- export type { DeliverWebNotificationInput, DeliverWebNotificationOptions, DeliverWebNotificationResult, DeliverWebProcessJobNotificationInput, DeliverWebThreadNotificationInput, } from "./notification-client.js";
10
+ export type { DeliverWebNotificationInput, DeliverWebNotificationOptions, DeliverWebNotificationResult, DeliverWebMonitorNotificationInput, DeliverWebProcessJobNotificationInput, DeliverWebThreadNotificationInput, } from "./notification-client.js";
11
11
  export { discoverAcpBridgeAgents, defaultTraceRegistryDir, discoverOperatorAgents, isTrustedOperatorBaseUrl, operatorBaseUrlFromMetadata, } from "./discovery.js";
12
12
  export type { DiscoverAcpBridgeAgentsOptions, DiscoverOperatorAgentsOptions, DiscoveredOperatorAgent, } from "./discovery.js";
13
13
  export { OperatorClient } from "./operator-client.js";
14
14
  export type { OperatorClientOptions, OperatorConnection, OperatorInfo, OperatorTurnInput, OperatorTurnResult, } from "./operator-client.js";
15
- export { ACP_BRIDGE_DISCOVERY_SCHEMA, ACP_BRIDGE_SOURCE_SCHEMA, ACP_BRIDGE_VERSION, ACP_PROTOCOL_VERSION, DEFAULT_WEB_THEME, WEB_API_VERSION, WEB_MAX_CONCURRENT_UPLOADS, WEB_MAX_ACTIVE_ATTACHMENT_TURN_BYTES, WEB_MAX_FILES_PER_TURN, WEB_MAX_LIVE_INPUTS_PER_THREAD, WEB_MAX_STAGED_UPLOAD_BYTES, WEB_MAX_STAGED_UPLOADS, WEB_MAX_QUEUED_ATTACHMENT_TURNS, WEB_MAX_TURN_ATTACHMENT_BYTES, WEB_STAGED_UPLOAD_TTL_MS, WEB_THEMES, } from "./contracts.js";
16
- export type { AcpBridgeDiscovery, AcpBridgeSourceDescriptor, AcpBridgeSourceHealth, CreateWebThreadInput, CreateWebUploadInput, PatchWebAgentInput, PatchWebThreadInput, StartWebLiveInputInput, StartWebTurnInput, WebAgentStatus, WebAgentSummary, WebAttachment, WebBootstrap, WebConsoleIdentity, WebEvent, WebEventType, WebLiveInputReceipt, WebMessage, WebMessagePart, WebMessageStatus, WebModelOption, WebNotificationTriggerKind, WebThreadNotificationTriggerKind, WebPushBootstrap, WebPushSubscriptionState, WebPushSubscriptionStatus, WebQuote, WebRunState, WebRunStatus, WebSkillAvailability, WebSkillInfo, WebSkillRegistry, WebSkillUnavailableReason, WebThread, WebThreadDetail, WebThreadSearchHit, WebThreadSearchPage, SearchWebThreadsInput, WebThreadTrigger, WebTheme, } from "./contracts.js";
15
+ export { ACP_BRIDGE_DISCOVERY_SCHEMA, ACP_BRIDGE_SOURCE_SCHEMA, ACP_BRIDGE_VERSION, ACP_PROTOCOL_VERSION, DEFAULT_WEB_THEME, WEB_API_VERSION, WEB_CONSOLE_NAME_MAX_CHARACTERS, WEB_MAX_CONCURRENT_UPLOADS, WEB_MAX_ACTIVE_ATTACHMENT_TURN_BYTES, WEB_MAX_FILES_PER_TURN, WEB_MAX_LIVE_INPUTS_PER_THREAD, WEB_MAX_STAGED_UPLOAD_BYTES, WEB_MAX_STAGED_UPLOADS, WEB_MAX_QUEUED_ATTACHMENT_TURNS, WEB_MAX_TURN_ATTACHMENT_BYTES, WEB_STAGED_UPLOAD_TTL_MS, WEB_THEMES, } from "./contracts.js";
16
+ export type { AcpBridgeDiscovery, AcpBridgeSourceDescriptor, AcpBridgeSourceHealth, CreateWebCronReplyInput, CreateWebThreadInput, CreateWebUploadInput, PatchWebAgentInput, PatchWebThreadInput, PutWebAgentRunSettingsInput, StartWebLiveInputInput, StartWebSubmissionInput, StartWebTurnInput, WebAgentsChangedPayload, WebAgentStatus, WebAgentRunSettings, WebAgentSummary, WebAttachment, WebBootstrap, WebBootstrapScope, WebConsoleIdentity, WebCronReplyReceipt, WebCronReplyContextPart, WebCronReplySnapshotKind, WebEvent, WebEventType, WebLiveInputReceipt, WebSubmissionReceipt, WebMessage, WebMessageDelta, WebMessageDeltaOp, WebMessagePart, WebMessageStatus, WebModelOption, WebNotificationTriggerKind, WebThreadNotificationTriggerKind, WebPushBootstrap, WebPushSubscriptionState, WebPushSubscriptionStatus, WebQuote, WebRunState, WebRunAttribution, WebRunExecution, WebRunRetry, WebRunSelection, WebRunTransition, WebRunSettingSource, WebRunStatus, WebSkillAvailability, WebSkillInfo, WebSkillRegistry, WebSkillUnavailableReason, WebThread, WebJobActivity, WebThreadChangedPayload, WebThreadDetail, WebThreadSearchHit, WebThreadSearchPage, SearchWebThreadsInput, WebThreadTrigger, WebTheme, } from "./contracts.js";
17
17
  export { WEB_SEARCH_HIGHLIGHT_CLOSE, WEB_SEARCH_HIGHLIGHT_OPEN, WEB_THREAD_SEARCH_MAX, WEB_THREAD_SEARCH_MIN_QUERY, } from "./store.js";
18
18
  export { WebConsoleError } from "./errors.js";
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EACV,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,qCAAqC,EACrC,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,oCAAoC,EACpC,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,+BAA+B,EAC/B,6BAA6B,EAC7B,wBAAwB,EACxB,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,gCAAgC,EAChC,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,EACzB,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EACV,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAC/B,0BAA0B,EAC1B,oCAAoC,EACpC,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,+BAA+B,EAC/B,6BAA6B,EAC7B,wBAAwB,EACxB,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,gCAAgC,EAChC,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,EACzB,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ export { defaultWebStateDir, prepareWebState, prepareWebStatePaths, resetWebStat
7
7
  export { deliverWebNotification } from "./notification-client.js";
8
8
  export { discoverAcpBridgeAgents, defaultTraceRegistryDir, discoverOperatorAgents, isTrustedOperatorBaseUrl, operatorBaseUrlFromMetadata, } from "./discovery.js";
9
9
  export { OperatorClient } from "./operator-client.js";
10
- export { ACP_BRIDGE_DISCOVERY_SCHEMA, ACP_BRIDGE_SOURCE_SCHEMA, ACP_BRIDGE_VERSION, ACP_PROTOCOL_VERSION, DEFAULT_WEB_THEME, WEB_API_VERSION, WEB_MAX_CONCURRENT_UPLOADS, WEB_MAX_ACTIVE_ATTACHMENT_TURN_BYTES, WEB_MAX_FILES_PER_TURN, WEB_MAX_LIVE_INPUTS_PER_THREAD, WEB_MAX_STAGED_UPLOAD_BYTES, WEB_MAX_STAGED_UPLOADS, WEB_MAX_QUEUED_ATTACHMENT_TURNS, WEB_MAX_TURN_ATTACHMENT_BYTES, WEB_STAGED_UPLOAD_TTL_MS, WEB_THEMES, } from "./contracts.js";
10
+ export { ACP_BRIDGE_DISCOVERY_SCHEMA, ACP_BRIDGE_SOURCE_SCHEMA, ACP_BRIDGE_VERSION, ACP_PROTOCOL_VERSION, DEFAULT_WEB_THEME, WEB_API_VERSION, WEB_CONSOLE_NAME_MAX_CHARACTERS, WEB_MAX_CONCURRENT_UPLOADS, WEB_MAX_ACTIVE_ATTACHMENT_TURN_BYTES, WEB_MAX_FILES_PER_TURN, WEB_MAX_LIVE_INPUTS_PER_THREAD, WEB_MAX_STAGED_UPLOAD_BYTES, WEB_MAX_STAGED_UPLOADS, WEB_MAX_QUEUED_ATTACHMENT_TURNS, WEB_MAX_TURN_ATTACHMENT_BYTES, WEB_STAGED_UPLOAD_TTL_MS, WEB_THEMES, } from "./contracts.js";
11
11
  export { WEB_SEARCH_HIGHLIGHT_CLOSE, WEB_SEARCH_HIGHLIGHT_OPEN, WEB_THREAD_SEARCH_MAX, WEB_THREAD_SEARCH_MIN_QUERY, } from "./store.js";
12
12
  export { WebConsoleError } from "./errors.js";
13
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;;;GAGG;AACH,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AASlE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,oCAAoC,EACpC,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,+BAA+B,EAC/B,6BAA6B,EAC7B,wBAAwB,EACxB,UAAU,GACX,MAAM,gBAAgB,CAAC;AA4CxB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAUlE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAC/B,0BAA0B,EAC1B,oCAAoC,EACpC,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,+BAA+B,EAC/B,6BAA6B,EAC7B,wBAAwB,EACxB,UAAU,GACX,MAAM,gBAAgB,CAAC;AAgExB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** A streamed turn may remain silent while a no-expiry interaction is pending. */
2
+ export declare const fetchLongLivedTurn: typeof fetch;
3
+ /** Host-wake delivery is bounded by its explicit AbortSignal, not parser defaults. */
4
+ export declare const fetchLongLivedHostWake: typeof fetch;
5
+ //# sourceMappingURL=long-lived-fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"long-lived-fetch.d.ts","sourceRoot":"","sources":["../src/long-lived-fetch.ts"],"names":[],"mappings":"AAgCA,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,cAE7B,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,cAGjC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { fetch as undiciFetch, getGlobalDispatcher, } from "undici";
2
+ function fetchWithParserTimeoutOverrides(overrides) {
3
+ return async (input, init) => {
4
+ // Preserve the process-wide dispatcher (including any operator-owned proxy
5
+ // or routing policy) and override only the parser timers for this request.
6
+ const dispatcher = getGlobalDispatcher().compose((dispatch) => (options, handler) => dispatch({ ...options, ...overrides }, handler));
7
+ return await undiciFetch(input, {
8
+ ...init,
9
+ dispatcher,
10
+ });
11
+ };
12
+ }
13
+ /** A streamed turn may remain silent while a no-expiry interaction is pending. */
14
+ export const fetchLongLivedTurn = fetchWithParserTimeoutOverrides({
15
+ bodyTimeout: 0,
16
+ });
17
+ /** Host-wake delivery is bounded by its explicit AbortSignal, not parser defaults. */
18
+ export const fetchLongLivedHostWake = fetchWithParserTimeoutOverrides({
19
+ bodyTimeout: 0,
20
+ headersTimeout: 0,
21
+ });
22
+ //# sourceMappingURL=long-lived-fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"long-lived-fetch.js","sourceRoot":"","sources":["../src/long-lived-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,WAAW,EACpB,mBAAmB,GAIpB,MAAM,QAAQ,CAAC;AAOhB,SAAS,+BAA+B,CACtC,SAAiC;IAEjC,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,2EAA2E;QAC3E,2EAA2E;QAC3E,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC,OAAO,CAC9C,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,EAAE,OAAO,CAAC,CACpF,CAAC;QACF,OAAO,MAAM,WAAW,CACtB,KAA0B,EAC1B;YACE,GAAI,IAAsC;YAC1C,UAAU;SACX,CACgC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;IAChE,WAAW,EAAE,CAAC;CACf,CAAC,CAAC;AAEH,sFAAsF;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,+BAA+B,CAAC;IACpE,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,CAAC;CAClB,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { WebMessagePart } from "./contracts.js";
2
+ /** Call only after the store verifies a host-owned Monitor delivery association. */
3
+ export declare function normalizeMonitorTerminalReply(parts: readonly WebMessagePart[], exactOnly?: boolean): {
4
+ parts: WebMessagePart[];
5
+ changed: boolean;
6
+ };
7
+ export declare function hasMonitorReplyContent(parts: readonly WebMessagePart[]): boolean;
8
+ /** Match the settled console's answer selection, excluding earlier commentary. */
9
+ export declare function monitorReplyText(parts: readonly WebMessagePart[]): string;
10
+ //# sourceMappingURL=monitor-reply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor-reply.d.ts","sourceRoot":"","sources":["../src/monitor-reply.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,oFAAoF;AACpF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,SAAS,UAAQ,GAAG;IAClG,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB,CA+BA;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAGhF;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAMzE"}
@@ -0,0 +1,67 @@
1
+ import { classifyNotifySuppression } from "@mono-agent/agent-contracts";
2
+ /** Call only after the store verifies a host-owned Monitor delivery association. */
3
+ export function normalizeMonitorTerminalReply(parts, exactOnly = false) {
4
+ const explicit = parts.flatMap((part, index) => isAssistantMessageBoundary(part, "assistant_message_boundary") ? [index] : []);
5
+ // Current Pi emits usage and an explicit boundary for the same message.
6
+ // Usage is a compatibility fallback, never an additional message end.
7
+ const boundaries = explicit.length > 0 ? explicit
8
+ : parts.flatMap((part, index) => isAssistantMessageBoundary(part, "context_usage") ? [index] : []);
9
+ const lastBoundary = boundaries.at(-1) ?? -1;
10
+ const hasTrailingContent = parts.slice(lastBoundary + 1).some((part) => part.type === "text" || part.type === "reasoning");
11
+ const end = lastBoundary >= 0 && !hasTrailingContent ? lastBoundary : parts.length;
12
+ let start = end === lastBoundary ? (boundaries.at(-2) ?? -1) + 1 : lastBoundary + 1;
13
+ // Older providers without explicit boundaries still separate tool messages.
14
+ for (let index = start; index < end; index += 1) {
15
+ if (parts[index]?.type === "tool-call" || parts[index]?.type === "subagent")
16
+ start = index + 1;
17
+ }
18
+ const textParts = parts.slice(start, end).filter((part) => part.type === "text");
19
+ // Without a provider boundary, separate prose parts may be separate assistant
20
+ // messages. Do not concatenate a prior answer into a narrated no-op reply.
21
+ if ((boundaries.length === 0 || start === 0) && textParts.length > 1)
22
+ return { parts: [...parts], changed: false };
23
+ const text = textParts.map((part) => part.text).join("");
24
+ const suppression = classifyNotifySuppression(text);
25
+ if (exactOnly && (suppression !== "sentinel"
26
+ || parts.some((part) => part.type === "attachment" || part.type === "mcp_app" || part.type === "failure"))) {
27
+ return { parts: [...parts], changed: false };
28
+ }
29
+ if (suppression !== "sentinel" && suppression !== "narrated-sentinel") {
30
+ return { parts: [...parts], changed: false };
31
+ }
32
+ return {
33
+ parts: parts.filter((part, index) => part.type !== "text" || index < start || index >= end),
34
+ changed: true,
35
+ };
36
+ }
37
+ export function hasMonitorReplyContent(parts) {
38
+ return parts.some((part) => part.type === "text" ? part.text.trim().length > 0
39
+ : part.type === "attachment" || part.type === "mcp_app" || part.type === "failure");
40
+ }
41
+ /** Match the settled console's answer selection, excluding earlier commentary. */
42
+ export function monitorReplyText(parts) {
43
+ for (let index = parts.length - 1; index >= 0; index -= 1) {
44
+ const part = parts[index];
45
+ if (part?.type === "text")
46
+ return part.text;
47
+ }
48
+ return "";
49
+ }
50
+ /** Same bounded legacy telemetry unwrapping contract as the console runtime. */
51
+ function isAssistantMessageBoundary(part, kind) {
52
+ if (part.type !== "telemetry")
53
+ return false;
54
+ let current = part.data;
55
+ const seen = new Set();
56
+ for (let depth = 0; depth < 8; depth += 1) {
57
+ if (current === null || typeof current !== "object" || Array.isArray(current) || seen.has(current))
58
+ return false;
59
+ seen.add(current);
60
+ const record = current;
61
+ if (record.kind === kind)
62
+ return true;
63
+ current = record.data;
64
+ }
65
+ return false;
66
+ }
67
+ //# sourceMappingURL=monitor-reply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor-reply.js","sourceRoot":"","sources":["../src/monitor-reply.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AgentReplyPart, ProcessJobProjection } from "@mono-agent/agent-contracts";
1
+ import type { AgentReplyPart, MonitorProjection, ProcessJobProjection } from "@mono-agent/agent-contracts";
2
2
  import type { WebThreadNotificationTriggerKind } from "./contracts.js";
3
3
  import { type WebStatePathOptions } from "./state-paths.js";
4
4
  export interface DeliverWebThreadNotificationInput {
@@ -19,7 +19,16 @@ export interface DeliverWebProcessJobNotificationInput {
19
19
  readonly text?: string;
20
20
  readonly parts?: readonly AgentReplyPart[];
21
21
  }
22
- export type DeliverWebNotificationInput = DeliverWebThreadNotificationInput | DeliverWebProcessJobNotificationInput;
22
+ /** One owner-authenticated Monitor wake addressed to its existing web thread. */
23
+ export interface DeliverWebMonitorNotificationInput {
24
+ readonly sourceId: string;
25
+ readonly triggerKind: "monitor";
26
+ readonly deliveryKey: string;
27
+ readonly threadId: string;
28
+ readonly monitor: MonitorProjection;
29
+ readonly wakePrompt: string;
30
+ }
31
+ export type DeliverWebNotificationInput = DeliverWebThreadNotificationInput | DeliverWebProcessJobNotificationInput | DeliverWebMonitorNotificationInput;
23
32
  export interface DeliverWebNotificationOptions extends WebStatePathOptions {
24
33
  readonly fetchImpl?: typeof fetch;
25
34
  readonly timeoutMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"notification-client.d.ts","sourceRoot":"","sources":["../src/notification-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQlF,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,gCAAgC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,2BAA2B,GACnC,iCAAiC,GACjC,qCAAqC,CAAC;AAE1C,MAAM,WAAW,6BAA8B,SAAQ,mBAAmB;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH;AAWD,+FAA+F;AAC/F,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,EAClC,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,4BAA4B,CAAC,CAiEvC"}
1
+ {"version":3,"file":"notification-client.d.ts","sourceRoot":"","sources":["../src/notification-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAE3G,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQlF,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,gCAAgC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED,iFAAiF;AACjF,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,2BAA2B,GACnC,iCAAiC,GACjC,qCAAqC,GACrC,kCAAkC,CAAC;AAEvC,MAAM,WAAW,6BAA8B,SAAQ,mBAAmB;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH;AAWD,+FAA+F;AAC/F,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,EAClC,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,4BAA4B,CAAC,CAiEvC"}
@@ -1,6 +1,7 @@
1
1
  import { constants as fsConstants } from "node:fs";
2
2
  import { lstat, open } from "node:fs/promises";
3
3
  import { errorMessage, WebConsoleError } from "./errors.js";
4
+ import { fetchLongLivedHostWake } from "./long-lived-fetch.js";
4
5
  import { resolveWebStatePaths } from "./state-paths.js";
5
6
  const NOTIFICATION_INGRESS_SCHEMA = 1;
6
7
  const NOTIFICATION_INGRESS_PATH = "/internal/v1/notifications";
@@ -11,16 +12,16 @@ const DEFAULT_TIMEOUT_MS = 5_000;
11
12
  export async function deliverWebNotification(input, options = {}) {
12
13
  const path = resolveWebStatePaths(options).notificationIngress;
13
14
  const ingress = await readIngressRecord(path);
14
- const fetchImpl = options.fetchImpl ?? fetch;
15
+ const carriesWakeTurn = input.triggerKind === "monitor"
16
+ || (input.triggerKind === "job" && input.wakePrompt !== undefined);
17
+ const fetchImpl = options.fetchImpl ?? (carriesWakeTurn ? fetchLongLivedHostWake : fetch);
15
18
  let response;
16
19
  try {
17
20
  response = await fetchImpl(ingress.url, {
18
21
  method: "POST",
19
22
  redirect: "error",
20
23
  signal: AbortSignal.timeout(options.timeoutMs
21
- ?? (input.triggerKind === "job" && input.wakePrompt !== undefined
22
- ? 10 * 60 * 1_000
23
- : DEFAULT_TIMEOUT_MS)),
24
+ ?? (carriesWakeTurn ? 10 * 60 * 1_000 : DEFAULT_TIMEOUT_MS)),
24
25
  headers: {
25
26
  authorization: `Bearer ${ingress.token}`,
26
27
  "content-type": "application/json",
@@ -1 +1 @@
1
- {"version":3,"file":"notification-client.js","sourceRoot":"","sources":["../src/notification-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification-client.js","sourceRoot":"","sources":["../src/notification-client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type AgentReplyPart, type ProcessJobProjection } from "@mono-agent/agent-contracts";
1
+ import { type AgentReplyPart, type MonitorProjection, type ProcessJobProjection } from "@mono-agent/agent-contracts";
2
2
  import { type WebThreadNotificationTriggerKind } from "./contracts.js";
3
3
  import type { WebService, WebServiceLogger } from "./service.js";
4
4
  declare const INGRESS_SCHEMA = 1;
@@ -31,6 +31,13 @@ type ParsedNotificationRequest = {
31
31
  readonly wakePrompt?: string;
32
32
  readonly text?: string;
33
33
  readonly parts?: readonly AgentReplyPart[];
34
+ } | {
35
+ readonly sourceId: string;
36
+ readonly triggerKind: "monitor";
37
+ readonly deliveryKey: string;
38
+ readonly threadId: string;
39
+ readonly monitor: MonitorProjection;
40
+ readonly wakePrompt: string;
34
41
  };
35
42
  export declare function parseNotificationRequest(body: unknown): ParsedNotificationRequest;
36
43
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"notification-ingress.d.ts","sourceRoot":"","sources":["../src/notification-ingress.ts"],"names":[],"mappings":"AAIA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAgC,KAAK,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEjE,QAAA,MAAM,cAAc,IAAI,CAAC;AAMzB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,cAAc,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,UAAU,EACnB,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,4BAA4B,CAAC,CAwGvC;AAED,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,gCAAgC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG;IACF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,yBAAyB,CAsEjF"}
1
+ {"version":3,"file":"notification-ingress.d.ts","sourceRoot":"","sources":["../src/notification-ingress.ts"],"names":[],"mappings":"AAIA,OAAO,EAQL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAgC,KAAK,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEjE,QAAA,MAAM,cAAc,IAAI,CAAC;AAOzB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,cAAc,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,UAAU,EACnB,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,4BAA4B,CAAC,CA0GvC;AAED,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,gCAAgC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG;IACF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C,GAAG;IACF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,yBAAyB,CAwFjF"}