@nuvin/session 0.3.0-rc.4 → 0.3.0-rc.6

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 (38) hide show
  1. package/dist/chunk-2CZWHODV.js +204 -0
  2. package/dist/{chunk-UKDIV6I5.js → chunk-2IGB2A4W.js} +89 -5
  3. package/dist/{chunk-5XT7AOI2.js → chunk-MKPANFIF.js} +1 -1
  4. package/dist/{chunk-4UBSHJWS.js → chunk-NDRIMBWT.js} +2 -0
  5. package/dist/client/data-client.d.ts +2 -0
  6. package/dist/client/data-client.d.ts.map +1 -1
  7. package/dist/client/http-data-client.d.ts.map +1 -1
  8. package/dist/client/index.js +44 -8
  9. package/dist/client/session-client.d.ts +13 -2
  10. package/dist/client/session-client.d.ts.map +1 -1
  11. package/dist/controller/index.js +40 -5
  12. package/dist/controller/session-controller.d.ts +10 -1
  13. package/dist/controller/session-controller.d.ts.map +1 -1
  14. package/dist/grant/index.js +2 -2
  15. package/dist/protocol/background-work.d.ts +26 -0
  16. package/dist/protocol/background-work.d.ts.map +1 -0
  17. package/dist/protocol/data-rpc.d.ts +2 -0
  18. package/dist/protocol/data-rpc.d.ts.map +1 -1
  19. package/dist/protocol/index.d.ts +2 -0
  20. package/dist/protocol/index.d.ts.map +1 -1
  21. package/dist/protocol/index.js +17 -5
  22. package/dist/protocol/types.d.ts +88 -13
  23. package/dist/protocol/types.d.ts.map +1 -1
  24. package/dist/protocol/version.d.ts +1 -1
  25. package/dist/state/display-text.d.ts +13 -1
  26. package/dist/state/display-text.d.ts.map +1 -1
  27. package/dist/state/index.d.ts +1 -0
  28. package/dist/state/index.d.ts.map +1 -1
  29. package/dist/state/index.js +13 -1
  30. package/dist/state/messages.d.ts +20 -2
  31. package/dist/state/messages.d.ts.map +1 -1
  32. package/dist/state/session.d.ts.map +1 -1
  33. package/dist/state/subagent-report.d.ts +42 -0
  34. package/dist/state/subagent-report.d.ts.map +1 -0
  35. package/dist/test-utils/index.js +4 -4
  36. package/package.json +2 -2
  37. package/dist/chunk-6QNR3TBF.js +0 -6
  38. /package/dist/{chunk-7LEIACBZ.js → chunk-5PHEC5GZ.js} +0 -0
@@ -1,8 +1,20 @@
1
1
  export declare const DISPLAY_TEXT_MAX_BYTES = 512;
2
+ export type SanitizeDisplayTextOptions = {
3
+ /** UTF-8 byte cap. Defaults to DISPLAY_TEXT_MAX_BYTES. Infinity = unbounded. */
4
+ maxBytes?: number;
5
+ /** C0/C1 code points to keep (everything else in those ranges is still dropped). */
6
+ preserveControlCodePoints?: ReadonlySet<number>;
7
+ };
2
8
  /**
3
9
  * Removes control characters and terminal escape sequences, then retains at
4
10
  * most the first 512 UTF-8 bytes without splitting a Unicode code point.
5
11
  * Uses web-platform APIs only so state summaries are safe to build in clients.
6
12
  */
7
- export declare function sanitizeBoundedDisplayText(text: string): string;
13
+ export declare function sanitizeBoundedDisplayText(text: string, options?: SanitizeDisplayTextOptions): string;
14
+ /**
15
+ * Strips CSI/OSC/C0 like {@link sanitizeBoundedDisplayText} but keeps tab/newline
16
+ * and applies no byte cap. Used for subagent-report bodies so live deliveries
17
+ * match reloaded transcript text.
18
+ */
19
+ export declare function sanitizeMultilineDisplayText(text: string): string;
8
20
  //# sourceMappingURL=display-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"display-text.d.ts","sourceRoot":"","sources":["../../src/state/display-text.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAkB1C;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiH/D"}
1
+ {"version":3,"file":"display-text.d.ts","sourceRoot":"","sources":["../../src/state/display-text.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAK1C,MAAM,MAAM,0BAA0B,GAAG;IACvC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,yBAAyB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;AAkBF;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,0BAA0B,GACnC,MAAM,CAqHR;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjE"}
@@ -5,5 +5,6 @@ export * from "./json.ts";
5
5
  export * from "./messages.ts";
6
6
  export * from "./questions.ts";
7
7
  export * from "./session.ts";
8
+ export * from "./subagent-report.ts";
8
9
  export * from "./tool-key.ts";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
@@ -7,6 +7,7 @@ import {
7
7
  DISPLAY_TEXT_MAX_BYTES,
8
8
  appendErrorMessage,
9
9
  appendInfoMessage,
10
+ appendSubagentReportMessage,
10
11
  appendUserMessage,
11
12
  appendWarningMessage,
12
13
  applyAgentEvent,
@@ -21,22 +22,28 @@ import {
21
22
  enqueueQuestion,
22
23
  isProviderRetryMessage,
23
24
  isToolAutoApprovedForMode,
25
+ parseSubagentReportHeader,
24
26
  reduceSessionEvent,
25
27
  removeApproval,
26
28
  removeQuestion,
29
+ resolveSubagentReport,
27
30
  sanitizeBoundedDisplayText,
31
+ sanitizeCoordinatorDeliveryText,
32
+ sanitizeMultilineDisplayText,
28
33
  scopedToolKey,
29
34
  setToolMessageApprovalKind,
30
35
  setToolMessageHidden,
31
36
  setToolMessageStatus,
32
37
  settleAllLiveReasoning,
38
+ splitSanitizableDelivery,
33
39
  summarizeToolCallInput
34
- } from "../chunk-UKDIV6I5.js";
40
+ } from "../chunk-2IGB2A4W.js";
35
41
  export {
36
42
  BACKGROUNDLESS_TOOLS,
37
43
  DISPLAY_TEXT_MAX_BYTES,
38
44
  appendErrorMessage,
39
45
  appendInfoMessage,
46
+ appendSubagentReportMessage,
40
47
  appendUserMessage,
41
48
  appendWarningMessage,
42
49
  applyAgentEvent,
@@ -52,15 +59,20 @@ export {
52
59
  enqueueQuestion,
53
60
  isProviderRetryMessage,
54
61
  isToolAutoApprovedForMode,
62
+ parseSubagentReportHeader,
55
63
  reduceSessionEvent,
56
64
  removeApproval,
57
65
  removeQuestion,
58
66
  resolveGrantDir,
67
+ resolveSubagentReport,
59
68
  sanitizeBoundedDisplayText,
69
+ sanitizeCoordinatorDeliveryText,
70
+ sanitizeMultilineDisplayText,
60
71
  scopedToolKey,
61
72
  setToolMessageApprovalKind,
62
73
  setToolMessageHidden,
63
74
  setToolMessageStatus,
64
75
  settleAllLiveReasoning,
76
+ splitSanitizableDelivery,
65
77
  summarizeToolCallInput
66
78
  };
@@ -1,4 +1,5 @@
1
- import type { AgentEvent, JsonObject, JsonValue } from "@nuvin/agent-core/shared";
1
+ import type { AgentEvent, JsonObject, JsonValue, ModelUsageTotals } from "@nuvin/agent-core/shared";
2
+ import type { ResolvedSubagentReport, SubagentReportStatus } from "./subagent-report.ts";
2
3
  export type ToolMessageStatus = "approved" | "error" | "ok" | "pending" | "rejected" | "running";
3
4
  export type ProviderRetryAttemptRecord = {
4
5
  failedAttempt: number;
@@ -36,6 +37,22 @@ export type BasicTuiMessage = {
36
37
  createdAt?: number;
37
38
  providerRetry?: ProviderRetryMessageDetail;
38
39
  };
40
+ /** Terminal subagent-turn delivery rendered as a dedicated row (spec
41
+ * 2026-08-27-subagent-report-row-design.md). Presentation-only kind: never
42
+ * projected into provider payloads. */
43
+ export type SubagentReportTuiMessage = {
44
+ id: string;
45
+ /** Tool-call ancestry for nested rendering; omitted for root messages. */
46
+ toolCallPath?: string[];
47
+ role: "subagent-report";
48
+ agentId: string;
49
+ runId: string;
50
+ status: SubagentReportStatus;
51
+ /** Report body without the runtime-authored header line. */
52
+ text: string;
53
+ /** Whole-conversation cumulative usage; absent on legacy report rows. */
54
+ usage?: ModelUsageTotals;
55
+ };
39
56
  export type ToolTuiMessage = {
40
57
  approvalKind?: "auto" | "user";
41
58
  completedAt?: number;
@@ -82,7 +99,7 @@ type StreamPreviewAcc = {
82
99
  /** Exact `\n` count in the full trailing-whitespace run (not just its capped tail). */
83
100
  trailingWsNewlines: number;
84
101
  };
85
- export type TuiMessage = BasicTuiMessage | ToolTuiMessage;
102
+ export type TuiMessage = BasicTuiMessage | ToolTuiMessage | SubagentReportTuiMessage;
86
103
  export type ProviderRetryTuiMessage = BasicTuiMessage & {
87
104
  role: "warning";
88
105
  providerRetry: ProviderRetryMessageDetail;
@@ -119,6 +136,7 @@ export declare function createMessageStateFromMessages(messages: TuiMessage[]):
119
136
  export declare function appendUserMessage(state: MessageState, text: string, attachmentLabels?: string[], createdAt?: number): MessageState;
120
137
  export declare function appendErrorMessage(state: MessageState, text: string): MessageState;
121
138
  export declare function appendInfoMessage(state: MessageState, text: string): MessageState;
139
+ export declare function appendSubagentReportMessage(state: MessageState, report: ResolvedSubagentReport): MessageState;
122
140
  export declare function appendWarningMessage(state: MessageState, text: string): MessageState;
123
141
  /**
124
142
  * Applies an agent event to message state. Nested agent events carry their
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/state/messages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAEV,UAAU,EACV,SAAS,EAGV,MAAM,0BAA0B,CAAC;AAMlC,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjG,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,GAAG,cAAc,GAAG,iBAAiB,CAAC;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,0BAA0B,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,0BAA0B,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB;;;;;;;;WAQG;QACH,GAAG,CAAC,EAAE,gBAAgB,CAAC;KACxB,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,KAAK,gBAAgB,GAAG;IACtB,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;AAE1D,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG;IACtD,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,0BAA0B,CAAC;CAC3C,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,IAAI,uBAAuB,CAE9F;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC,CAAC;AA6OF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAUrF;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAsBjF;AAkLD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EACzB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAC/B,YAAY,CAgBd;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EACzD,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAC/B,YAAY,CAgBd;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAC/B,YAAY,CAgBd;AAyDD,wBAAgB,kBAAkB,IAAI,YAAY,CASjD;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,YAAY,CAsCnF;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,SAAS,CAAC,EAAE,MAAM,GACjB,YAAY,CAQd;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAMlF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAMjF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAMpF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,UAAU,EACjB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,EAChC,GAAG,GAAE,MAAmB,GACvB,YAAY,CAqMd"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/state/messages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/state/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EACX,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAmE9B,wBAAgB,sBAAsB,IAAI,gBAAgB,CAezD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAoJhG"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/state/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,WAAW,EACX,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAiF9B,wBAAgB,sBAAsB,IAAI,gBAAgB,CAgBzD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,GAAG,gBAAgB,CA8JhG"}
@@ -0,0 +1,42 @@
1
+ /** Runtime-authored terminal-delivery grammar (delegated-lifecycle-registry.ts). */
2
+ import type { ModelUsageTotals, SubagentReportMeta } from "@nuvin/agent-core/shared";
3
+ export type SubagentReportStatus = "completed" | "failed" | "aborted";
4
+ export type SubagentReportHeader = {
5
+ agentId: string;
6
+ runId: string;
7
+ status: SubagentReportStatus;
8
+ /** Delivery text after the header line, verbatim. "" when absent. */
9
+ body: string;
10
+ };
11
+ export type ResolvedSubagentReport = SubagentReportHeader & {
12
+ usage?: ModelUsageTotals;
13
+ };
14
+ /**
15
+ * Parse strictly line 1 of a parent-side subagent report delivery. Only
16
+ * runtime-composed deliveries may match (anti-spoof invariant, spec §8):
17
+ * forged headers echoed mid-body by child models can never parse because
18
+ * they sit after the authoritative line 1.
19
+ */
20
+ export declare function parseSubagentReportHeader(text: string): SubagentReportHeader | undefined;
21
+ export declare function resolveSubagentReport(text: string, meta?: SubagentReportMeta): ResolvedSubagentReport | undefined;
22
+ export type SanitizableDeliverySplit = {
23
+ /** Runtime-authored line 1, verbatim (registry grammar holds). */
24
+ headerLine: string;
25
+ /** Everything after the header line and its `\n`, verbatim. "" when absent. */
26
+ body: string;
27
+ };
28
+ /**
29
+ * Splits a coordinator delivery into its header line and body when — and only
30
+ * when — the FIRST line fully satisfies the same anchored grammar used by
31
+ * parseSubagentReportHeader. Non-header-shaped text returns undefined so the
32
+ * caller keeps full sanitization.
33
+ */
34
+ export declare function splitSanitizableDelivery(text: string): SanitizableDeliverySplit | undefined;
35
+ /**
36
+ * Sanitizes a coordinator delivery while preserving the runtime-authored
37
+ * header line verbatim, newline included. Header-shaped bodies keep tab/LF
38
+ * and are not 512-capped; every other text keeps the full control-character
39
+ * and escape-sequence sanitization of sanitizeBoundedDisplayText.
40
+ */
41
+ export declare function sanitizeCoordinatorDeliveryText(text: string): string;
42
+ //# sourceMappingURL=subagent-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-report.d.ts","sourceRoot":"","sources":["../../src/state/subagent-report.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAIrF,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEtE,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,oBAAoB,CAAC;IAC7B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,GAAG;IAC1D,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAYxF;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,kBAAkB,GACxB,sBAAsB,GAAG,SAAS,CAYpC;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS,CAO3F;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpE"}
@@ -1,12 +1,12 @@
1
- import "../chunk-7LEIACBZ.js";
1
+ import "../chunk-5PHEC5GZ.js";
2
2
  import {
3
3
  PROTOCOL_VERSION
4
- } from "../chunk-6QNR3TBF.js";
4
+ } from "../chunk-2CZWHODV.js";
5
5
  import {
6
6
  generateGrantKeyPair,
7
7
  signGrant
8
- } from "../chunk-5XT7AOI2.js";
9
- import "../chunk-4UBSHJWS.js";
8
+ } from "../chunk-MKPANFIF.js";
9
+ import "../chunk-NDRIMBWT.js";
10
10
 
11
11
  // src/test-utils/fake-relay.ts
12
12
  import { randomUUID } from "crypto";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuvin/session",
3
- "version": "0.3.0-rc.4",
3
+ "version": "0.3.0-rc.6",
4
4
  "private": false,
5
5
  "description": "Headless session layer for Nuvin: state reducers, wire protocol, session controller",
6
6
  "license": "Apache-2.0",
@@ -50,7 +50,7 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "ws": "^8.20.0",
53
- "@nuvin/agent-core": "^0.3.0-rc.3"
53
+ "@nuvin/agent-core": "^0.3.0-rc.5"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/node": "^22.0.0",
@@ -1,6 +0,0 @@
1
- // src/protocol/version.ts
2
- var PROTOCOL_VERSION = 50;
3
-
4
- export {
5
- PROTOCOL_VERSION
6
- };
File without changes