instar 1.3.489 → 1.3.490

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 (106) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +979 -28
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  5. package/dist/config/ConfigDefaults.js +23 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/CodexResumeMap.d.ts +95 -0
  8. package/dist/core/CodexResumeMap.d.ts.map +1 -0
  9. package/dist/core/CodexResumeMap.js +283 -0
  10. package/dist/core/CodexResumeMap.js.map +1 -0
  11. package/dist/core/MeshRpc.d.ts +3 -0
  12. package/dist/core/MeshRpc.d.ts.map +1 -1
  13. package/dist/core/MeshRpc.js +5 -0
  14. package/dist/core/MeshRpc.js.map +1 -1
  15. package/dist/core/ModelSwapService.d.ts +26 -11
  16. package/dist/core/ModelSwapService.d.ts.map +1 -1
  17. package/dist/core/ModelSwapService.js +59 -21
  18. package/dist/core/ModelSwapService.js.map +1 -1
  19. package/dist/core/PostUpdateMigrator.d.ts +16 -0
  20. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  21. package/dist/core/PostUpdateMigrator.js +62 -2
  22. package/dist/core/PostUpdateMigrator.js.map +1 -1
  23. package/dist/core/SessionManager.d.ts +4 -0
  24. package/dist/core/SessionManager.d.ts.map +1 -1
  25. package/dist/core/SessionManager.js +3 -0
  26. package/dist/core/SessionManager.js.map +1 -1
  27. package/dist/core/SessionRefresh.d.ts +36 -7
  28. package/dist/core/SessionRefresh.d.ts.map +1 -1
  29. package/dist/core/SessionRefresh.js +90 -29
  30. package/dist/core/SessionRefresh.js.map +1 -1
  31. package/dist/core/TopicProfileOrchestrator.d.ts +480 -0
  32. package/dist/core/TopicProfileOrchestrator.d.ts.map +1 -0
  33. package/dist/core/TopicProfileOrchestrator.js +1404 -0
  34. package/dist/core/TopicProfileOrchestrator.js.map +1 -0
  35. package/dist/core/TopicProfileResolver.d.ts +104 -0
  36. package/dist/core/TopicProfileResolver.d.ts.map +1 -0
  37. package/dist/core/TopicProfileResolver.js +231 -0
  38. package/dist/core/TopicProfileResolver.js.map +1 -0
  39. package/dist/core/TopicProfileStore.d.ts +308 -0
  40. package/dist/core/TopicProfileStore.d.ts.map +1 -0
  41. package/dist/core/TopicProfileStore.js +781 -0
  42. package/dist/core/TopicProfileStore.js.map +1 -0
  43. package/dist/core/TopicProfileTransferCarrier.d.ts +227 -0
  44. package/dist/core/TopicProfileTransferCarrier.d.ts.map +1 -0
  45. package/dist/core/TopicProfileTransferCarrier.js +533 -0
  46. package/dist/core/TopicProfileTransferCarrier.js.map +1 -0
  47. package/dist/core/TopicResumeMap.d.ts +67 -1
  48. package/dist/core/TopicResumeMap.d.ts.map +1 -1
  49. package/dist/core/TopicResumeMap.js +114 -1
  50. package/dist/core/TopicResumeMap.js.map +1 -1
  51. package/dist/core/classifyProfileChange.d.ts +83 -0
  52. package/dist/core/classifyProfileChange.d.ts.map +1 -0
  53. package/dist/core/classifyProfileChange.js +274 -0
  54. package/dist/core/classifyProfileChange.js.map +1 -0
  55. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  56. package/dist/core/devGatedFeatures.js +6 -0
  57. package/dist/core/devGatedFeatures.js.map +1 -1
  58. package/dist/core/frameworkSessionLaunch.d.ts +26 -0
  59. package/dist/core/frameworkSessionLaunch.d.ts.map +1 -1
  60. package/dist/core/frameworkSessionLaunch.js +58 -0
  61. package/dist/core/frameworkSessionLaunch.js.map +1 -1
  62. package/dist/core/slackRefreshBinding.d.ts +83 -0
  63. package/dist/core/slackRefreshBinding.d.ts.map +1 -0
  64. package/dist/core/slackRefreshBinding.js +54 -0
  65. package/dist/core/slackRefreshBinding.js.map +1 -0
  66. package/dist/core/topicProfileIngress.d.ts +128 -0
  67. package/dist/core/topicProfileIngress.d.ts.map +1 -0
  68. package/dist/core/topicProfileIngress.js +249 -0
  69. package/dist/core/topicProfileIngress.js.map +1 -0
  70. package/dist/core/topicProfileValidation.d.ts +109 -0
  71. package/dist/core/topicProfileValidation.d.ts.map +1 -0
  72. package/dist/core/topicProfileValidation.js +247 -0
  73. package/dist/core/topicProfileValidation.js.map +1 -0
  74. package/dist/core/topicProfileWriteSurface.d.ts +222 -0
  75. package/dist/core/topicProfileWriteSurface.d.ts.map +1 -0
  76. package/dist/core/topicProfileWriteSurface.js +631 -0
  77. package/dist/core/topicProfileWriteSurface.js.map +1 -0
  78. package/dist/core/types.d.ts +37 -0
  79. package/dist/core/types.d.ts.map +1 -1
  80. package/dist/core/types.js.map +1 -1
  81. package/dist/lifeline/TelegramLifeline.d.ts.map +1 -1
  82. package/dist/lifeline/TelegramLifeline.js +6 -0
  83. package/dist/lifeline/TelegramLifeline.js.map +1 -1
  84. package/dist/messaging/TelegramAdapter.d.ts +10 -1
  85. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  86. package/dist/messaging/TelegramAdapter.js +41 -1
  87. package/dist/messaging/TelegramAdapter.js.map +1 -1
  88. package/dist/scaffold/templates.d.ts.map +1 -1
  89. package/dist/scaffold/templates.js +9 -0
  90. package/dist/scaffold/templates.js.map +1 -1
  91. package/dist/server/AgentServer.d.ts +32 -0
  92. package/dist/server/AgentServer.d.ts.map +1 -1
  93. package/dist/server/AgentServer.js +52 -3
  94. package/dist/server/AgentServer.js.map +1 -1
  95. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  96. package/dist/server/CapabilityIndex.js +1 -0
  97. package/dist/server/CapabilityIndex.js.map +1 -1
  98. package/dist/server/routes.d.ts +17 -0
  99. package/dist/server/routes.d.ts.map +1 -1
  100. package/dist/server/routes.js +271 -1
  101. package/dist/server/routes.js.map +1 -1
  102. package/package.json +1 -1
  103. package/src/data/builtin-manifest.json +66 -66
  104. package/src/scaffold/templates.ts +9 -0
  105. package/upgrades/1.3.490.md +34 -0
  106. package/upgrades/side-effects/topic-profile.md +142 -0
@@ -0,0 +1,222 @@
1
+ /**
2
+ * TopicProfileWriteSurface — the ONE platform-agnostic write engine behind all
3
+ * Topic Profile write surfaces (TOPIC-PROFILE-SPEC §5.2, §10.1–§10.4):
4
+ * conversational ingress, the /topic command, the rewired /route command, the
5
+ * token-trust HTTP route, the §10.1 propose-confirm lane, and the §5.2(b)
6
+ * recovery writes (undo / clear / re-apply).
7
+ *
8
+ * Regime law implemented here (the spec's hardest-won invariants):
9
+ *
10
+ * - §5.2(d): FRAMEWORK-arm writes via the pre-existing `/route` surface (and
11
+ * equivalent conversational switches) are EXEMPT from BOTH gating knobs —
12
+ * always a LIVE store write, never routed to the §14 dry-run shadow — and
13
+ * wherever the new §8 orchestration is not fully live (`enabled:false` OR
14
+ * `dryRun:true`), the switch is served end-to-end by the LEGACY path,
15
+ * byte-for-byte today's shipped behavior (immediate kill + CONTINUATION
16
+ * respawn with the resume-UUID drop).
17
+ * - The NEW axes (model / modelTier / thinkingMode / escalationOverride) are
18
+ * gated: refused while disabled; shadowed (`intendedProfile`) under
19
+ * dryRun; live only when `enabled && !dryRun`.
20
+ * - §5.2(b): the recovery writes — re-apply and CLEAR — are LIVE writes in
21
+ * EVERY regime (never refused as new pins, never shadowed), but their
22
+ * APPLICATION arm is regime-governed: outside the fully-live regime there
23
+ * is NO profile-triggered kill — the write applies at the next natural
24
+ * spawn / boot-sweep reconcile, and the confirmation says so out loud.
25
+ * - §10.1: `updatedBy` is stamped server-side from the VERIFIED principal —
26
+ * operator-attributed only on the platform-authenticated surfaces; HTTP is
27
+ * token-trust (`updatedBy:'api-token'`), never operator-attributed, and a
28
+ * body-supplied updatedBy is ignored by construction (it never reaches
29
+ * this module). Writes refuse when the sender is not the topic's bound
30
+ * operator (or, for token writes, when NO bound operator exists).
31
+ * - §8: EVERY accepted write discloses — one line, delta-carrying, carrying
32
+ * the audit sequence stamp so the relay's exact-duplicate window can never
33
+ * silently swallow a repeat notice. The undo snapshot (`previous`) shifts
34
+ * once per disclosed write (no §8 coalescing window exists until the
35
+ * orchestrator serves the fully-live regime, so every accepted write here
36
+ * is individually disclosed — the spec's outside-a-window cadence).
37
+ *
38
+ * §8 ORCHESTRATION SEAM (TODO-wire): `deps.orchestrator` is the call site for
39
+ * TopicProfileOrchestrator (built in parallel). When present AND the regime
40
+ * is fully-live, profile-triggered respawns hand off to it (debounce, idle
41
+ * re-confirm, classification, parking). Until it is wired:
42
+ * - framework switches are served by the legacy respawn in every regime
43
+ * (today's shipped behavior — the §5.2(d) contract, audited
44
+ * `orchestration-unavailable` when it happens in the fully-live regime);
45
+ * - new-axis live writes apply at the next natural spawn, told out loud.
46
+ */
47
+ import type { TopicProfileStore } from './TopicProfileStore.js';
48
+ import type { TopicProfileResolver } from './TopicProfileResolver.js';
49
+ import { type ProfilePatchInput, type ProfileValidationError, type ValidatedProfilePatch } from './topicProfileValidation.js';
50
+ /** The two gating knobs, resolved live (§5.2/§14). */
51
+ export interface ProfileWriteRegime {
52
+ enabled: boolean;
53
+ dryRun: boolean;
54
+ }
55
+ /** The VERIFIED principal a write runs as (§10.1 — stamped server-side). */
56
+ export type ProfileWritePrincipal = {
57
+ kind: 'operator';
58
+ platform: string;
59
+ uid: string;
60
+ } | {
61
+ kind: 'token';
62
+ };
63
+ export type ProfileWriteOrigin = 'conversational' | 'slash-topic' | 'slash-route' | 'http' | 'propose-confirm';
64
+ /**
65
+ * §8 interface seam for TopicProfileOrchestrator (built in parallel — see the
66
+ * module doc). Structural-only: the write surface calls this AFTER the live
67
+ * store write; the orchestrator owns the debounced, idle-gated respawn.
68
+ */
69
+ export interface ProfileOrchestratorLike {
70
+ onProfileWrite(topicKey: string, info: {
71
+ frameworkChanged: boolean;
72
+ origin: ProfileWriteOrigin;
73
+ }): void | Promise<void>;
74
+ }
75
+ export interface ProfileWriteResult {
76
+ ok: boolean;
77
+ /** Operator-facing reply text (refusal or confirmation+disclosure). */
78
+ reply: string;
79
+ /** Structured refusal when ok:false. */
80
+ refusal?: {
81
+ reason: string;
82
+ validation?: ProfileValidationError;
83
+ };
84
+ /** True when the accepted write changed nothing (no-op). */
85
+ noop?: boolean;
86
+ /** Fields that landed LIVE in the store. */
87
+ appliedLive?: string[];
88
+ /** Fields recorded to the §14 dry-run shadow. */
89
+ shadowed?: string[];
90
+ /** Fields refused by the disabled gate (mixed-delta split, §10.1). */
91
+ refusedFields?: string[];
92
+ /** A §10.4 parked pin was superseded by this write (named in the reply). */
93
+ supersededParked?: boolean;
94
+ /** The legacy immediate respawn fired (§5.2(d)). */
95
+ legacyRespawned?: boolean;
96
+ }
97
+ export interface ReapplyResult extends ProfileWriteResult {
98
+ /** §10.4 cooldown: the re-apply needs an explicit confirm first. */
99
+ needsConfirm?: boolean;
100
+ }
101
+ export interface TopicProfileWriteSurfaceDeps {
102
+ store: TopicProfileStore;
103
+ resolver: TopicProfileResolver;
104
+ /** Live gating knobs (enabled via resolveDevAgentGate; dryRun from config). */
105
+ regime: () => ProfileWriteRegime;
106
+ /** The topic's bound operator (§10.1) — null when none bound. */
107
+ boundOperator: (topicKey: string) => {
108
+ platform: string;
109
+ uid: string;
110
+ } | null;
111
+ /** Active `/local-model` binding (§5.2 — refuses cloud model pins). */
112
+ localModelBinding: (topicKey: string) => {
113
+ provider: string;
114
+ } | null;
115
+ /**
116
+ * §5.2(d) legacy respawn — today's exact `/route` behavior: drop the resume
117
+ * UUID, kill, CONTINUATION respawn. Only invoked for framework-arm changes.
118
+ * Returns respawned:false when the topic has no live session (write still
119
+ * lands; takes effect at next spawn).
120
+ */
121
+ legacyFrameworkRespawn: (topicKey: string) => Promise<{
122
+ respawned: boolean;
123
+ error?: string;
124
+ }>;
125
+ /** §8 orchestrator seam (TODO-wire — null until the parallel build lands). */
126
+ orchestrator?: ProfileOrchestratorLike | null;
127
+ /**
128
+ * §5.3 transfer-carrier cancel marker (TopicProfileTransferCarrier.
129
+ * onLocalWriteDurable). Called immediately after a successful `await
130
+ * store.mutate(...)` — mutate resolves only after its flush durably landed,
131
+ * so a FlushRefusedError throw cancels nothing (the §5.3 round-8 rule).
132
+ * Operator and token-trust HTTP writes cancel a pending transfer pull;
133
+ * system writes never reach this surface.
134
+ */
135
+ onLocalWriteDurable?: (topicKey: string, origin: 'operator' | 'http') => void;
136
+ /**
137
+ * Post the §8 disclosure line to the topic's owning platform conversation.
138
+ * Callers whose command REPLY is the disclosure-of-record (slash surfaces)
139
+ * suppress this via discloseInReply instead.
140
+ */
141
+ disclose: (topicKey: string, text: string) => Promise<void>;
142
+ /**
143
+ * §10.3 audit sink. Returns the audit sequence stamp included in rendered
144
+ * disclosures (or void — a timestamp is used instead).
145
+ */
146
+ audit: (event: Record<string, unknown>) => string | void;
147
+ /** §10.4 re-apply cooldown (hardcoded v1 constant unless injected). */
148
+ reapplyCooldownMs?: number;
149
+ now?: () => number;
150
+ }
151
+ export declare class TopicProfileWriteSurface {
152
+ private readonly deps;
153
+ private readonly now;
154
+ constructor(deps: TopicProfileWriteSurfaceDeps);
155
+ applyWrite(req: {
156
+ topicKey: string | number;
157
+ patch: ProfilePatchInput;
158
+ principal: ProfileWritePrincipal;
159
+ origin: ProfileWriteOrigin;
160
+ /** The caller's reply carries the disclosure-of-record (slash surfaces). */
161
+ discloseInReply?: boolean;
162
+ /** §10.1 propose-confirm provenance flag for the audit. */
163
+ agentComposedPayload?: boolean;
164
+ }): Promise<ProfileWriteResult>;
165
+ undo(req: {
166
+ topicKey: string | number;
167
+ principal: ProfileWritePrincipal;
168
+ origin: ProfileWriteOrigin;
169
+ discloseInReply?: boolean;
170
+ }): Promise<ProfileWriteResult>;
171
+ /** CLEAR — a recovery write: LIVE in every regime, never shadowed. */
172
+ clear(req: {
173
+ topicKey: string | number;
174
+ principal: ProfileWritePrincipal;
175
+ origin: ProfileWriteOrigin;
176
+ discloseInReply?: boolean;
177
+ }): Promise<ProfileWriteResult>;
178
+ /**
179
+ * RE-APPLY the §10.4 parked (intended-but-unhealthy) pin — a recovery
180
+ * write: LIVE in every regime. Carries the §10.4 cooldown guard: re-applying
181
+ * the same profile that just tripped the breaker requires an explicit
182
+ * confirm (the caller arms the shared confirm slot with the returned echo).
183
+ */
184
+ reapply(req: {
185
+ topicKey: string | number;
186
+ principal: ProfileWritePrincipal;
187
+ origin: ProfileWriteOrigin;
188
+ /** The operator already confirmed through the §10.4 cooldown echo. */
189
+ confirmed?: boolean;
190
+ discloseInReply?: boolean;
191
+ }): Promise<ReapplyResult>;
192
+ /**
193
+ * Validate + render the SERVER-side echo for an agent-composed proposal.
194
+ * The echo names each arm's fate under the live regime BEFORE the confirm
195
+ * (mixed-delta split, round-12) — what the operator confirms is mechanically
196
+ * what will be written. The caller arms the shared confirm slot with the
197
+ * returned patch+echo and sends the echo to the topic.
198
+ */
199
+ renderProposalEcho(topicKey: string | number, patch: ProfilePatchInput): {
200
+ ok: true;
201
+ echo: string;
202
+ patch: ValidatedProfilePatch;
203
+ } | {
204
+ ok: false;
205
+ reply: string;
206
+ validation?: ProfileValidationError;
207
+ };
208
+ renderReadout(topicKey: string | number): string;
209
+ private authorize;
210
+ private principalStamp;
211
+ /**
212
+ * §5.3 — notify the transfer carrier a local write durably landed (cancels
213
+ * any pending transfer-pull REPLACE for the topic). Only ever called AFTER
214
+ * `await store.mutate(...)` resolved; a flush-refused mutate throws first
215
+ * and cancels nothing (the round-8 rule by construction).
216
+ */
217
+ private notifyLocalWriteDurable;
218
+ private profileSnapshot;
219
+ private renderDelta;
220
+ private writeFailure;
221
+ }
222
+ //# sourceMappingURL=topicProfileWriteSurface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topicProfileWriteSurface.d.ts","sourceRoot":"","sources":["../../src/core/topicProfileWriteSurface.ts"],"names":[],"mappings":"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"}