instar 1.3.1661 → 1.3.1663

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 (160) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +195 -30
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/ClaudeKeyHealth.d.ts +21 -0
  5. package/dist/core/ClaudeKeyHealth.d.ts.map +1 -1
  6. package/dist/core/ClaudeKeyHealth.js +81 -5
  7. package/dist/core/ClaudeKeyHealth.js.map +1 -1
  8. package/dist/core/MeshRpc.d.ts +14 -0
  9. package/dist/core/MeshRpc.d.ts.map +1 -1
  10. package/dist/core/MeshRpc.js +1 -0
  11. package/dist/core/MeshRpc.js.map +1 -1
  12. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  13. package/dist/core/PostUpdateMigrator.js +18 -0
  14. package/dist/core/PostUpdateMigrator.js.map +1 -1
  15. package/dist/core/SessionManager.d.ts.map +1 -1
  16. package/dist/core/SessionManager.js +8 -6
  17. package/dist/core/SessionManager.js.map +1 -1
  18. package/dist/core/SlackReplyRelayInstaller.d.ts.map +1 -1
  19. package/dist/core/SlackReplyRelayInstaller.js +2 -0
  20. package/dist/core/SlackReplyRelayInstaller.js.map +1 -1
  21. package/dist/core/StateManager.d.ts +8 -0
  22. package/dist/core/StateManager.d.ts.map +1 -1
  23. package/dist/core/StateManager.js +11 -0
  24. package/dist/core/StateManager.js.map +1 -1
  25. package/dist/core/WriteDomainRegistry.d.ts.map +1 -1
  26. package/dist/core/WriteDomainRegistry.js +9 -0
  27. package/dist/core/WriteDomainRegistry.js.map +1 -1
  28. package/dist/core/claudeKeyRecovery.d.ts +102 -0
  29. package/dist/core/claudeKeyRecovery.d.ts.map +1 -0
  30. package/dist/core/claudeKeyRecovery.js +178 -0
  31. package/dist/core/claudeKeyRecovery.js.map +1 -0
  32. package/dist/core/memorySessionPolicy.d.ts +12 -0
  33. package/dist/core/memorySessionPolicy.d.ts.map +1 -1
  34. package/dist/core/memorySessionPolicy.js +20 -0
  35. package/dist/core/memorySessionPolicy.js.map +1 -1
  36. package/dist/core/pickSessionByTmux.d.ts +11 -0
  37. package/dist/core/pickSessionByTmux.d.ts.map +1 -0
  38. package/dist/core/pickSessionByTmux.js +11 -0
  39. package/dist/core/pickSessionByTmux.js.map +1 -0
  40. package/dist/core/types.d.ts +14 -0
  41. package/dist/core/types.d.ts.map +1 -1
  42. package/dist/core/types.js.map +1 -1
  43. package/dist/data/standards-guard-index.json +2 -2
  44. package/dist/data/standards-guard-index.meta.json +3 -3
  45. package/dist/data/standards-registry.md +12 -2
  46. package/dist/data/standards-registry.meta.json +3 -3
  47. package/dist/feedback-factory/execute/changeSet.d.ts.map +1 -1
  48. package/dist/feedback-factory/execute/changeSet.js +18 -1
  49. package/dist/feedback-factory/execute/changeSet.js.map +1 -1
  50. package/dist/feedback-factory/execute/executePolicy.d.ts +1 -1
  51. package/dist/feedback-factory/execute/executePolicy.d.ts.map +1 -1
  52. package/dist/feedback-factory/execute/executePolicy.js +2 -2
  53. package/dist/feedback-factory/execute/executePolicy.js.map +1 -1
  54. package/dist/messaging/SpawnRequestManager.d.ts +31 -0
  55. package/dist/messaging/SpawnRequestManager.d.ts.map +1 -1
  56. package/dist/messaging/SpawnRequestManager.js +149 -11
  57. package/dist/messaging/SpawnRequestManager.js.map +1 -1
  58. package/dist/messaging/TelegramAdapter.d.ts +11 -11
  59. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  60. package/dist/messaging/TelegramAdapter.js +59 -14
  61. package/dist/messaging/TelegramAdapter.js.map +1 -1
  62. package/dist/messaging/slack/SlackAdapter.d.ts +23 -0
  63. package/dist/messaging/slack/SlackAdapter.d.ts.map +1 -1
  64. package/dist/messaging/slack/SlackAdapter.js +69 -0
  65. package/dist/messaging/slack/SlackAdapter.js.map +1 -1
  66. package/dist/native/InstarWedgeCanary.app/Contents/MacOS/InstarWedgeCanary +0 -0
  67. package/dist/native/instar-desktop-host +0 -0
  68. package/dist/scaffold/templates.d.ts.map +1 -1
  69. package/dist/scaffold/templates.js +9 -0
  70. package/dist/scaffold/templates.js.map +1 -1
  71. package/dist/server/AgentServer.d.ts +1 -0
  72. package/dist/server/AgentServer.d.ts.map +1 -1
  73. package/dist/server/AgentServer.js +1 -0
  74. package/dist/server/AgentServer.js.map +1 -1
  75. package/dist/server/routes.d.ts +4 -0
  76. package/dist/server/routes.d.ts.map +1 -1
  77. package/dist/server/routes.js +99 -4
  78. package/dist/server/routes.js.map +1 -1
  79. package/dist/testing/selfActionRegistry.d.ts.map +1 -1
  80. package/dist/testing/selfActionRegistry.js +48 -0
  81. package/dist/testing/selfActionRegistry.js.map +1 -1
  82. package/dist/threadline/A2ADeliveryTracker.d.ts +49 -0
  83. package/dist/threadline/A2ADeliveryTracker.d.ts.map +1 -1
  84. package/dist/threadline/A2ADeliveryTracker.js +81 -2
  85. package/dist/threadline/A2ADeliveryTracker.js.map +1 -1
  86. package/dist/threadline/InboundMessageGate.d.ts.map +1 -1
  87. package/dist/threadline/InboundMessageGate.js +12 -0
  88. package/dist/threadline/InboundMessageGate.js.map +1 -1
  89. package/dist/threadline/ThreadlineBootstrap.d.ts.map +1 -1
  90. package/dist/threadline/ThreadlineBootstrap.js +13 -2
  91. package/dist/threadline/ThreadlineBootstrap.js.map +1 -1
  92. package/dist/threadline/ThreadlineEndpoints.d.ts.map +1 -1
  93. package/dist/threadline/ThreadlineEndpoints.js +9 -0
  94. package/dist/threadline/ThreadlineEndpoints.js.map +1 -1
  95. package/dist/threadline/ThreadlineMCPServer.d.ts +25 -1
  96. package/dist/threadline/ThreadlineMCPServer.d.ts.map +1 -1
  97. package/dist/threadline/ThreadlineMCPServer.js +38 -1
  98. package/dist/threadline/ThreadlineMCPServer.js.map +1 -1
  99. package/dist/threadline/ThreadlineMcpHttpService.d.ts.map +1 -1
  100. package/dist/threadline/ThreadlineMcpHttpService.js +6 -2
  101. package/dist/threadline/ThreadlineMcpHttpService.js.map +1 -1
  102. package/dist/threadline/ThreadlineRouter.d.ts +17 -1
  103. package/dist/threadline/ThreadlineRouter.d.ts.map +1 -1
  104. package/dist/threadline/ThreadlineRouter.js +22 -2
  105. package/dist/threadline/ThreadlineRouter.js.map +1 -1
  106. package/dist/threadline/TopicLinkageHandler.d.ts +9 -0
  107. package/dist/threadline/TopicLinkageHandler.d.ts.map +1 -1
  108. package/dist/threadline/TopicLinkageHandler.js +13 -2
  109. package/dist/threadline/TopicLinkageHandler.js.map +1 -1
  110. package/dist/threadline/autoAck.d.ts +37 -21
  111. package/dist/threadline/autoAck.d.ts.map +1 -1
  112. package/dist/threadline/autoAck.js +34 -19
  113. package/dist/threadline/autoAck.js.map +1 -1
  114. package/dist/threadline/client/MessageEncryptor.d.ts +5 -0
  115. package/dist/threadline/client/MessageEncryptor.d.ts.map +1 -1
  116. package/dist/threadline/client/MessageEncryptor.js.map +1 -1
  117. package/dist/threadline/client/ThreadlineClient.d.ts +26 -0
  118. package/dist/threadline/client/ThreadlineClient.d.ts.map +1 -1
  119. package/dist/threadline/client/ThreadlineClient.js +70 -4
  120. package/dist/threadline/client/ThreadlineClient.js.map +1 -1
  121. package/dist/threadline/inboundIdLedgerWiring.d.ts.map +1 -1
  122. package/dist/threadline/inboundIdLedgerWiring.js +4 -1
  123. package/dist/threadline/inboundIdLedgerWiring.js.map +1 -1
  124. package/dist/threadline/mcp-http-client.d.ts +11 -0
  125. package/dist/threadline/mcp-http-client.d.ts.map +1 -1
  126. package/dist/threadline/mcp-http-client.js +34 -0
  127. package/dist/threadline/mcp-http-client.js.map +1 -1
  128. package/dist/threadline/mcp-stdio-entry.js +4 -1
  129. package/dist/threadline/mcp-stdio-entry.js.map +1 -1
  130. package/dist/threadline/requiredAck.d.ts +64 -0
  131. package/dist/threadline/requiredAck.d.ts.map +1 -0
  132. package/dist/threadline/requiredAck.js +117 -0
  133. package/dist/threadline/requiredAck.js.map +1 -0
  134. package/dist/threadline/requiredAckService.d.ts +223 -0
  135. package/dist/threadline/requiredAckService.d.ts.map +1 -0
  136. package/dist/threadline/requiredAckService.js +565 -0
  137. package/dist/threadline/requiredAckService.js.map +1 -0
  138. package/dist/threadline/requiredAckStore.d.ts +149 -0
  139. package/dist/threadline/requiredAckStore.d.ts.map +1 -0
  140. package/dist/threadline/requiredAckStore.js +283 -0
  141. package/dist/threadline/requiredAckStore.js.map +1 -0
  142. package/package.json +1 -1
  143. package/src/data/builtin-manifest.json +66 -66
  144. package/src/data/feature-ladders.json +3 -1
  145. package/src/data/standards-guard-index.json +2 -2
  146. package/src/data/standards-guard-index.meta.json +3 -3
  147. package/src/data/standards-registry.md +12 -2
  148. package/src/data/standards-registry.meta.json +3 -3
  149. package/src/scaffold/templates.ts +9 -0
  150. package/src/templates/scripts/slack-reply.sh +7 -0
  151. package/upgrades/1.3.1663.md +77 -0
  152. package/upgrades/cloud-key-recovery-reply.eli16.md +19 -0
  153. package/upgrades/side-effects/a2a-required-acknowledgment.md +130 -0
  154. package/upgrades/side-effects/agent-health-quiet-default.md +74 -0
  155. package/upgrades/side-effects/cloud-key-recovery-reply.md +141 -0
  156. package/upgrades/side-effects/feedback-changeset-byte-cap-calibration.md +60 -0
  157. package/upgrades/side-effects/memory-privacy-ladder-off-by-default.md +100 -0
  158. package/upgrades/side-effects/memory-privacy-linux-replies.md +109 -0
  159. package/upgrades/side-effects/person-decides-counterpart.md +62 -0
  160. package/upgrades/side-effects/session-by-tmux.md +48 -0
@@ -0,0 +1,223 @@
1
+ /**
2
+ * RequiredAckService — the production behaviour of
3
+ * docs/specs/a2a-required-acknowledgment.md, kept out of server.ts and routes.ts
4
+ * so the tests run the same code the server runs.
5
+ *
6
+ * Enforcement is detection and telling the sender. Nothing here blocks a session or
7
+ * a message, nothing is typed into the SENDER's session, and no kinded ack starts or
8
+ * wakes a session. The only input ever typed into a session is one fixed reminder,
9
+ * on the receiving side, carrying server handles only.
10
+ */
11
+ import type { A2ADeliveryTracker } from './A2ADeliveryTracker.js';
12
+ import { type KindedAckWire } from './requiredAck.js';
13
+ export declare const DEFAULT_REMINDER_MS: number;
14
+ export declare const DEFAULT_ATTENTION_MS: number;
15
+ export declare const DEFAULT_REMINDER_DAILY_CAP = 20;
16
+ export declare const PENDING_TICK_MS: number;
17
+ export declare const PENDING_MAX_BACKOFF_MS: number;
18
+ export declare const PENDING_TTL_MS: number;
19
+ export declare const KINDED_ACK_PER_MINUTE = 20;
20
+ export interface RequiredAckConfigShape {
21
+ threadline?: {
22
+ requiredAck?: {
23
+ enabled?: boolean;
24
+ reminderMs?: number;
25
+ attentionMs?: number;
26
+ reminderDailyCap?: number;
27
+ };
28
+ };
29
+ }
30
+ /** On unless explicitly false: omitted means on. */
31
+ export declare function resolveRequiredAckEnabled(liveEnabled: boolean | undefined, config: RequiredAckConfigShape): boolean;
32
+ export interface RequiredAckThresholds {
33
+ reminderMs: number;
34
+ attentionMs: number;
35
+ reminderDailyCap: number;
36
+ }
37
+ export declare function resolveRequiredAckThresholds(config: RequiredAckConfigShape): RequiredAckThresholds;
38
+ /** Where a kinded ack goes out: this machine's relay client, or the holder over the mesh. */
39
+ export type KindedAckRoute = {
40
+ kind: 'relay';
41
+ send: (peerFp: string, ack: KindedAckWire, text: string, opts: {
42
+ threadId: string | null;
43
+ triggerEncrypted: boolean;
44
+ }) => void;
45
+ } | {
46
+ kind: 'forward';
47
+ send: (payload: ForwardAckPayload) => Promise<'sent' | 'refused'>;
48
+ } | {
49
+ kind: 'none';
50
+ };
51
+ export interface ForwardAckPayload {
52
+ peerFp: string;
53
+ ack: KindedAckWire;
54
+ text: string;
55
+ threadId: string | null;
56
+ triggerEncrypted: boolean;
57
+ /** The capability this machine has for the peer, for a new holder without a row. */
58
+ ackKinds: number | null;
59
+ }
60
+ export interface RequiredAckDeps {
61
+ tracker: A2ADeliveryTracker;
62
+ enabled: () => boolean;
63
+ thresholds: () => RequiredAckThresholds;
64
+ route: () => KindedAckRoute;
65
+ /** A relay standby: a missing caps row means unknown, and the holder decides. */
66
+ isStandby: () => boolean;
67
+ hasTrustProfile: (peerFp: string) => boolean;
68
+ /** Peer paired by invite: its `read` must arrive encrypted and signed. */
69
+ isPinned: (peerFp: string) => boolean;
70
+ isSessionAlive: (sessionName: string) => boolean;
71
+ /** Type fixed text into a session as queued input. Never peer text. */
72
+ injectReminder: (sessionName: string, text: string) => boolean;
73
+ /** The launch lane of a live session, when known. */
74
+ laneOf?: (sessionName: string) => 'interactive' | 'headless' | null;
75
+ /** The peer of a thread, when no watch row names it. */
76
+ threadPeer?: (threadId: string) => string | null;
77
+ now?: () => number;
78
+ log?: (line: string) => void;
79
+ }
80
+ /** What the relay handler carries through the router for one watched message. */
81
+ export interface RequiredAckHandle {
82
+ watchId: number;
83
+ ackRef: string;
84
+ instruction: string;
85
+ receipt: QueuedReceipt;
86
+ }
87
+ /** Travels with a spawn-queue entry so the queue can report its fate. No content. */
88
+ export interface QueuedReceipt {
89
+ watchId: number;
90
+ peerFp: string;
91
+ messageId: string;
92
+ threadId: string | null;
93
+ }
94
+ export type QueueDropCause = 'expired' | 'evicted';
95
+ export interface RouterResultShape {
96
+ delivered?: boolean;
97
+ queued?: boolean;
98
+ spawnQueued?: boolean;
99
+ error?: string;
100
+ threadId?: string;
101
+ sessionName?: string;
102
+ path?: string;
103
+ remoteTopic?: boolean;
104
+ deliveryPending?: Promise<{
105
+ delivered: boolean;
106
+ reason: string;
107
+ }>;
108
+ }
109
+ export interface AckToolResult {
110
+ status: number;
111
+ body: Record<string, unknown>;
112
+ }
113
+ export declare class RequiredAckService {
114
+ private readonly d;
115
+ private readonly outboundLimited;
116
+ private readonly inboundLimited;
117
+ private timer;
118
+ private ticking;
119
+ private flushChain;
120
+ /** Kinded acks consumed with no effect, by why. Log-only evidence on the authed read. */
121
+ readonly counters: {
122
+ honoured: number;
123
+ ignoredRow: number;
124
+ ignoredUnverified: number;
125
+ ignoredUnknownKind: number;
126
+ inboundLimited: number;
127
+ heldSent: number;
128
+ heldSkippedLimit: number;
129
+ reminders: number;
130
+ unacknowledged: number;
131
+ pendingSent: number;
132
+ pendingExpired: number;
133
+ };
134
+ constructor(deps: RequiredAckDeps);
135
+ private nowMs;
136
+ private iso;
137
+ private get store();
138
+ private log;
139
+ /**
140
+ * Boot: journal rows still open were interrupted by a restart, and become pending
141
+ * `unknown`. The wording does not assert loss, because a crash between hand-off
142
+ * and the callback looks the same.
143
+ */
144
+ recoverAfterRestart(): number;
145
+ /** The new 30-second timer (the tracker's only other one is a 15-minute sweep). */
146
+ start(intervalMs?: number): void;
147
+ stop(): void;
148
+ /** Called after the trust check for every non-ack, non-status message. */
149
+ notePeerMessage(peerFp: string, content: unknown): void;
150
+ /**
151
+ * The ack-stage branch. Honoured only when EVERY referenced id is a row we sent to
152
+ * this same fingerprint; otherwise consumed and logged with no effect, which covers
153
+ * strangers and the relay. `held` calls nothing on the delivery state; `read` flips
154
+ * exactly its rows. Never acks, never routes, never starts or wakes a session.
155
+ */
156
+ consumeInboundAck(input: {
157
+ from: string;
158
+ ack: KindedAckWire;
159
+ arrivedEncrypted: boolean;
160
+ }): 'honoured' | 'ignored' | 'limited';
161
+ /**
162
+ * The handle for one inbound message about to go through the router, or null when
163
+ * the feature is off, the peer has not advertised support, or the message has no id
164
+ * to refer to.
165
+ */
166
+ prepare(input: {
167
+ peerFp: string;
168
+ messageId: string | undefined;
169
+ threadId: string | null | undefined;
170
+ triggerEncrypted: boolean;
171
+ }): RequiredAckHandle | null;
172
+ /** Settle one router result. Never throws into routing. */
173
+ settleRouterResult(handle: RequiredAckHandle | null, result: RouterResultShape): void;
174
+ /**
175
+ * A session received the message: the router's report, or the spawn manager's
176
+ * delivered callback from its queue commit. A later expiry of an earlier queued
177
+ * copy then sends nothing, because the row records the hand-off.
178
+ */
179
+ onDelivered(receipt: QueuedReceipt, session: {
180
+ sessionName: string | null;
181
+ interactive?: boolean;
182
+ threadId?: string | null;
183
+ }): void;
184
+ /** D3: a queue entry died at one of the spawn manager's drop sites. */
185
+ onQueueDropped(receipt: QueuedReceipt, cause: QueueDropCause): void;
186
+ /** D5 close: a session-authored send was accepted. The caller guarantees "session-authored + accepted". */
187
+ onSessionSendAccepted(peerFp: string | null | undefined, threadId: string | null | undefined): void;
188
+ /** POST /threadline/ack. Success means the `read` is durably accepted as a pending row. */
189
+ acceptSessionAck(input: {
190
+ threadId?: unknown;
191
+ ackRefs?: unknown;
192
+ summary?: unknown;
193
+ }): Promise<AckToolResult>;
194
+ /** One pass: reminders, unacknowledged, pending sends. Single-flight, bounded. */
195
+ tick(): Promise<void>;
196
+ private runWatchPass;
197
+ /** Send every due pending row, coalesced per peer and outcome. One pass at a time. */
198
+ flushPending(): Promise<number>;
199
+ private runFlush;
200
+ private sendBatch;
201
+ /**
202
+ * `a2a-relay-forward-ack`: the machine holding the relay sends a standby's kinded
203
+ * ack. Decides from its own caps row, else the capability the standby has, for a
204
+ * new holder without a row.
205
+ */
206
+ handleForwardedAck(payload: Partial<ForwardAckPayload>, deps: {
207
+ relay: Extract<KindedAckRoute, {
208
+ kind: 'relay';
209
+ }> | null;
210
+ }): {
211
+ outcome: 'sent';
212
+ } | {
213
+ outcome: 'refused';
214
+ reason: string;
215
+ };
216
+ private queuePending;
217
+ /** Immediate `held` receipts are best-effort: over the limit or on a failed send, nothing more happens. */
218
+ private sendHeldBestEffort;
219
+ private reasonFor;
220
+ private safeHasProfile;
221
+ private safeAlive;
222
+ }
223
+ //# sourceMappingURL=requiredAckService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requiredAckService.d.ts","sourceRoot":"","sources":["../../src/threadline/requiredAckService.ts"],"names":[],"mappings":"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"}