instar 1.3.731 → 1.3.732
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +82 -1
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +26 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/ConversationRegistry.d.ts +260 -0
- package/dist/core/ConversationRegistry.d.ts.map +1 -0
- package/dist/core/ConversationRegistry.js +1151 -0
- package/dist/core/ConversationRegistry.js.map +1 -0
- package/dist/core/PostUpdateMigrator.d.ts +12 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +80 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/conversationIdentity.d.ts +112 -0
- package/dist/core/conversationIdentity.d.ts.map +1 -0
- package/dist/core/conversationIdentity.js +141 -0
- package/dist/core/conversationIdentity.js.map +1 -0
- package/dist/core/deliverToConversation.d.ts +62 -0
- package/dist/core/deliverToConversation.d.ts.map +1 -0
- package/dist/core/deliverToConversation.js +85 -0
- package/dist/core/deliverToConversation.js.map +1 -0
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +6 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/types.d.ts +37 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +10 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +3 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +12 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +14 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/routes.d.ts +5 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +78 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +64 -64
- package/src/scaffold/templates.ts +10 -0
- package/upgrades/1.3.732.md +107 -0
- package/upgrades/side-effects/durable-conversation-identity-increment1.md +89 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* conversationIdentity.ts — the SINGLE hash + identity surface for durable,
|
|
3
|
+
* channel-agnostic conversation identity (docs/specs/durable-conversation-identity.md §4).
|
|
4
|
+
*
|
|
5
|
+
* This module absorbs `slackRefreshBinding`'s key helpers and is the ONE place
|
|
6
|
+
* the legacy 32-bit sum-shift hash + mint-candidate formula live going forward.
|
|
7
|
+
* The three legacy copies (`server.ts slackChannelToSyntheticId`, the
|
|
8
|
+
* `routes.ts` build-heartbeat inline copy, `slackRefreshBinding.ts
|
|
9
|
+
* slackRoutingKeySyntheticId`) consolidate onto these exports in the §4
|
|
10
|
+
* foundation increment; a FOURTH copy of the mint idiom is a CI failure
|
|
11
|
+
* (tests/unit/conversation-identity-mint-idiom-ratchet.test.ts).
|
|
12
|
+
*
|
|
13
|
+
* Spec §3.1: the PRIMARY identity of a conversation is the structured tuple
|
|
14
|
+
* `(platform, channelId, threadTs?)` bound to a stable minted NEGATIVE id; the
|
|
15
|
+
* canonical key string (`slack:<teamId>:<channelId>[:<threadTs>]`) is its
|
|
16
|
+
* normalized LOOKUP form, and `workspaceId` is identity-adjacent metadata
|
|
17
|
+
* (upgradable in place, `_` placeholder when unknown). Telegram positive ids
|
|
18
|
+
* pass through unregistered, forever.
|
|
19
|
+
*/
|
|
20
|
+
/** Tuple schema version (§Glossary). v1 is SINGLE-WORKSPACE: the tuple carries
|
|
21
|
+
* no workspaceId — correct only because exactly one workspace is enforced
|
|
22
|
+
* (§3.1). Phase 7.1 introduces schema-version 2 with workspaceId in the core. */
|
|
23
|
+
export declare const TUPLE_SCHEMA_VERSION = 1;
|
|
24
|
+
/**
|
|
25
|
+
* §3.3/§3.5 frozen constants — schema-v1, changed ONLY by a versioned
|
|
26
|
+
* migration (a mixed fleet comparing different bounds/windows would pick
|
|
27
|
+
* divergent accept/quarantine verdicts). Pinned by the §10 golden-parity test.
|
|
28
|
+
*/
|
|
29
|
+
export declare const MAX_PROBE_DISTANCE = 64;
|
|
30
|
+
/** Probe direction is DOWN (`id -= 1`) and FROZEN FOREVER (frontloaded decision 2). */
|
|
31
|
+
export declare const PROBE_DIRECTION = -1;
|
|
32
|
+
/** HLC `physical` unit: MILLISECONDS since the Unix epoch (frozen, schema-v1 — R3-M10). */
|
|
33
|
+
export declare const HLC_ABS_MIN = 1767225600000;
|
|
34
|
+
export declare const HLC_ABS_MAX = 4102444800000;
|
|
35
|
+
/** §3.5 ingest shape clamps (also applied at the §6.3 mint site — security-M1c). */
|
|
36
|
+
export declare const SLACK_CHANNEL_ID_RE: RegExp;
|
|
37
|
+
export declare const SLACK_THREAD_TS_RE: RegExp;
|
|
38
|
+
export declare const SLACK_WORKSPACE_ID_RE: RegExp;
|
|
39
|
+
/** The unknown-workspace placeholder (§3.1) — upgrades in place to a concrete teamId. */
|
|
40
|
+
export declare const WORKSPACE_PLACEHOLDER = "_";
|
|
41
|
+
/** The Phase-1 structured tuple (§3.1). `threadTs: null` = channel-level. */
|
|
42
|
+
export interface ConversationTuple {
|
|
43
|
+
platform: 'slack';
|
|
44
|
+
channelId: string;
|
|
45
|
+
threadTs: string | null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The frozen 32-bit sum-shift hash over a routing key — byte-identical to the
|
|
49
|
+
* three legacy copies (golden-parity pinned in §10). NEVER change this: mixed-
|
|
50
|
+
* fleet convergence and zero-loss adoption both depend on it (§3.3 properties 1/2).
|
|
51
|
+
*/
|
|
52
|
+
export declare function sumShiftHash(input: string): number;
|
|
53
|
+
/**
|
|
54
|
+
* The deterministic mint CANDIDATE for a routing key (§3.3):
|
|
55
|
+
* `-(abs(hash) + 1)` — always negative, never 0, value-identical to
|
|
56
|
+
* `slackRoutingKeySyntheticId` (thread-aware: hashes `channelId[:threadTs]`).
|
|
57
|
+
* This is the mint candidate, no longer an identity authority — the registry
|
|
58
|
+
* is the collision authority.
|
|
59
|
+
*/
|
|
60
|
+
export declare function candidateIdForRoutingKey(routingKey: string): number;
|
|
61
|
+
/** Adapter routing-key tail for a tuple: `<channelId>[:<threadTs>]` (§3.1). */
|
|
62
|
+
export declare function routingKeyForTuple(tuple: ConversationTuple): string;
|
|
63
|
+
/**
|
|
64
|
+
* Parse a Slack routing key (`C…` or `C…:<thread_ts>`) into a v1 tuple.
|
|
65
|
+
* Returns null when the shape is invalid (§3.6: callers treat as "no durable
|
|
66
|
+
* id" and keep legacy behavior — a typed refusal, never a throw).
|
|
67
|
+
* Shape validation here is the §7 mesh-forward guard (security-M1c): a
|
|
68
|
+
* forwarded/replayed inbound cannot supply a crafted key to force a target
|
|
69
|
+
* candidate.
|
|
70
|
+
*/
|
|
71
|
+
export declare function tupleForRoutingKey(routingKey: string): ConversationTuple | null;
|
|
72
|
+
/**
|
|
73
|
+
* The §3.4 tupleKey — the IMMUTABLE byte-form used for the tuple index AND the
|
|
74
|
+
* `≺` tiebreak (§3.5.1: null `threadTs` compares as the EMPTY string, so a
|
|
75
|
+
* channel-level tuple deterministically precedes its own threads).
|
|
76
|
+
*/
|
|
77
|
+
export declare function tupleKeyFor(tuple: ConversationTuple): string;
|
|
78
|
+
/**
|
|
79
|
+
* Canonical key (§3.1): `slack:<teamId>:<channelId>[:<threadTs>]` with `_`
|
|
80
|
+
* for an unknown teamId. The normalized lookup/display string — NOT the
|
|
81
|
+
* primary identity (the tuple is).
|
|
82
|
+
*/
|
|
83
|
+
export declare function canonicalKeyFor(tuple: ConversationTuple, workspaceId: string | undefined): string;
|
|
84
|
+
/** Parse a canonical key back to `{ tuple, workspaceId }`, or null when malformed. */
|
|
85
|
+
export declare function parseCanonicalKey(key: string): {
|
|
86
|
+
tuple: ConversationTuple;
|
|
87
|
+
workspaceId: string;
|
|
88
|
+
} | null;
|
|
89
|
+
/** Result of a displacement walk (§3.3 probe / §3.5.1 step 2). */
|
|
90
|
+
export type DisplacementResult = {
|
|
91
|
+
ok: true;
|
|
92
|
+
id: number;
|
|
93
|
+
probes: number;
|
|
94
|
+
} | {
|
|
95
|
+
ok: false;
|
|
96
|
+
overflow: true;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* The ONE shared displacement implementation (§3.3 = §3.5.1 step 2 — pinned by
|
|
100
|
+
* the §10 shared-implementation equivalence test; R2-adversarial-2). Walks the
|
|
101
|
+
* FROZEN down-sequence `candidate, candidate-1, candidate-2, …` and returns
|
|
102
|
+
* the first offset for which `collides(id)` is false, bounded by
|
|
103
|
+
* `MAX_PROBE_DISTANCE` (= the ingest coherence bound, so a local mint can
|
|
104
|
+
* never produce an id a peer's ingest would quarantine as a pre-squat).
|
|
105
|
+
*
|
|
106
|
+
* `collides` MUST be the pure §3.3 `candidateCollides` predicate — reserved
|
|
107
|
+
* canonicals (a), the alias table (b), and the GLOBAL displaced-assignment set
|
|
108
|
+
* (c) — each an O(1) lookup, NEVER a live-tuple scan (R2-scalability-1). A
|
|
109
|
+
* walk exceeding the bound degrades to the §3.6 pending-mint path.
|
|
110
|
+
*/
|
|
111
|
+
export declare function walkDisplacement(candidate: number, collides: (id: number) => boolean): DisplacementResult;
|
|
112
|
+
//# sourceMappingURL=conversationIdentity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversationIdentity.d.ts","sourceRoot":"","sources":["../../src/core/conversationIdentity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;kFAEkF;AAClF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,uFAAuF;AACvF,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,2FAA2F;AAC3F,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,QAAqB,CAAC;AACtD,eAAO,MAAM,kBAAkB,QAAoB,CAAC;AACpD,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AACpD,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAO/E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIjG;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQvG;AAED,kEAAkE;AAClE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,kBAAkB,CASzG"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* conversationIdentity.ts — the SINGLE hash + identity surface for durable,
|
|
3
|
+
* channel-agnostic conversation identity (docs/specs/durable-conversation-identity.md §4).
|
|
4
|
+
*
|
|
5
|
+
* This module absorbs `slackRefreshBinding`'s key helpers and is the ONE place
|
|
6
|
+
* the legacy 32-bit sum-shift hash + mint-candidate formula live going forward.
|
|
7
|
+
* The three legacy copies (`server.ts slackChannelToSyntheticId`, the
|
|
8
|
+
* `routes.ts` build-heartbeat inline copy, `slackRefreshBinding.ts
|
|
9
|
+
* slackRoutingKeySyntheticId`) consolidate onto these exports in the §4
|
|
10
|
+
* foundation increment; a FOURTH copy of the mint idiom is a CI failure
|
|
11
|
+
* (tests/unit/conversation-identity-mint-idiom-ratchet.test.ts).
|
|
12
|
+
*
|
|
13
|
+
* Spec §3.1: the PRIMARY identity of a conversation is the structured tuple
|
|
14
|
+
* `(platform, channelId, threadTs?)` bound to a stable minted NEGATIVE id; the
|
|
15
|
+
* canonical key string (`slack:<teamId>:<channelId>[:<threadTs>]`) is its
|
|
16
|
+
* normalized LOOKUP form, and `workspaceId` is identity-adjacent metadata
|
|
17
|
+
* (upgradable in place, `_` placeholder when unknown). Telegram positive ids
|
|
18
|
+
* pass through unregistered, forever.
|
|
19
|
+
*/
|
|
20
|
+
/** Tuple schema version (§Glossary). v1 is SINGLE-WORKSPACE: the tuple carries
|
|
21
|
+
* no workspaceId — correct only because exactly one workspace is enforced
|
|
22
|
+
* (§3.1). Phase 7.1 introduces schema-version 2 with workspaceId in the core. */
|
|
23
|
+
export const TUPLE_SCHEMA_VERSION = 1;
|
|
24
|
+
/**
|
|
25
|
+
* §3.3/§3.5 frozen constants — schema-v1, changed ONLY by a versioned
|
|
26
|
+
* migration (a mixed fleet comparing different bounds/windows would pick
|
|
27
|
+
* divergent accept/quarantine verdicts). Pinned by the §10 golden-parity test.
|
|
28
|
+
*/
|
|
29
|
+
export const MAX_PROBE_DISTANCE = 64;
|
|
30
|
+
/** Probe direction is DOWN (`id -= 1`) and FROZEN FOREVER (frontloaded decision 2). */
|
|
31
|
+
export const PROBE_DIRECTION = -1;
|
|
32
|
+
/** HLC `physical` unit: MILLISECONDS since the Unix epoch (frozen, schema-v1 — R3-M10). */
|
|
33
|
+
export const HLC_ABS_MIN = 1767225600000; // 2026-01-01T00:00:00Z
|
|
34
|
+
export const HLC_ABS_MAX = 4102444800000; // 2100-01-01T00:00:00Z — documented horizon; re-pin via versioned migration WELL before
|
|
35
|
+
/** §3.5 ingest shape clamps (also applied at the §6.3 mint site — security-M1c). */
|
|
36
|
+
export const SLACK_CHANNEL_ID_RE = /^[CDG][A-Z0-9]+$/;
|
|
37
|
+
export const SLACK_THREAD_TS_RE = /^\d{10}\.\d{6}$/;
|
|
38
|
+
export const SLACK_WORKSPACE_ID_RE = /^T[A-Z0-9]+$/;
|
|
39
|
+
/** The unknown-workspace placeholder (§3.1) — upgrades in place to a concrete teamId. */
|
|
40
|
+
export const WORKSPACE_PLACEHOLDER = '_';
|
|
41
|
+
/**
|
|
42
|
+
* The frozen 32-bit sum-shift hash over a routing key — byte-identical to the
|
|
43
|
+
* three legacy copies (golden-parity pinned in §10). NEVER change this: mixed-
|
|
44
|
+
* fleet convergence and zero-loss adoption both depend on it (§3.3 properties 1/2).
|
|
45
|
+
*/
|
|
46
|
+
export function sumShiftHash(input) {
|
|
47
|
+
let hash = 0;
|
|
48
|
+
for (let i = 0; i < input.length; i++) {
|
|
49
|
+
hash = ((hash << 5) - hash + input.charCodeAt(i)) | 0;
|
|
50
|
+
}
|
|
51
|
+
return hash;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The deterministic mint CANDIDATE for a routing key (§3.3):
|
|
55
|
+
* `-(abs(hash) + 1)` — always negative, never 0, value-identical to
|
|
56
|
+
* `slackRoutingKeySyntheticId` (thread-aware: hashes `channelId[:threadTs]`).
|
|
57
|
+
* This is the mint candidate, no longer an identity authority — the registry
|
|
58
|
+
* is the collision authority.
|
|
59
|
+
*/
|
|
60
|
+
export function candidateIdForRoutingKey(routingKey) {
|
|
61
|
+
return -(Math.abs(sumShiftHash(routingKey)) + 1);
|
|
62
|
+
}
|
|
63
|
+
/** Adapter routing-key tail for a tuple: `<channelId>[:<threadTs>]` (§3.1). */
|
|
64
|
+
export function routingKeyForTuple(tuple) {
|
|
65
|
+
return tuple.threadTs ? `${tuple.channelId}:${tuple.threadTs}` : tuple.channelId;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Parse a Slack routing key (`C…` or `C…:<thread_ts>`) into a v1 tuple.
|
|
69
|
+
* Returns null when the shape is invalid (§3.6: callers treat as "no durable
|
|
70
|
+
* id" and keep legacy behavior — a typed refusal, never a throw).
|
|
71
|
+
* Shape validation here is the §7 mesh-forward guard (security-M1c): a
|
|
72
|
+
* forwarded/replayed inbound cannot supply a crafted key to force a target
|
|
73
|
+
* candidate.
|
|
74
|
+
*/
|
|
75
|
+
export function tupleForRoutingKey(routingKey) {
|
|
76
|
+
const idx = routingKey.indexOf(':');
|
|
77
|
+
const channelId = idx === -1 ? routingKey : routingKey.slice(0, idx);
|
|
78
|
+
const threadTs = idx === -1 ? null : routingKey.slice(idx + 1);
|
|
79
|
+
if (!SLACK_CHANNEL_ID_RE.test(channelId))
|
|
80
|
+
return null;
|
|
81
|
+
if (threadTs !== null && !SLACK_THREAD_TS_RE.test(threadTs))
|
|
82
|
+
return null;
|
|
83
|
+
return { platform: 'slack', channelId, threadTs };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The §3.4 tupleKey — the IMMUTABLE byte-form used for the tuple index AND the
|
|
87
|
+
* `≺` tiebreak (§3.5.1: null `threadTs` compares as the EMPTY string, so a
|
|
88
|
+
* channel-level tuple deterministically precedes its own threads).
|
|
89
|
+
*/
|
|
90
|
+
export function tupleKeyFor(tuple) {
|
|
91
|
+
return `${tuple.platform}\x1f${tuple.channelId}\x1f${tuple.threadTs ?? ''}`;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Canonical key (§3.1): `slack:<teamId>:<channelId>[:<threadTs>]` with `_`
|
|
95
|
+
* for an unknown teamId. The normalized lookup/display string — NOT the
|
|
96
|
+
* primary identity (the tuple is).
|
|
97
|
+
*/
|
|
98
|
+
export function canonicalKeyFor(tuple, workspaceId) {
|
|
99
|
+
const team = workspaceId && SLACK_WORKSPACE_ID_RE.test(workspaceId) ? workspaceId : WORKSPACE_PLACEHOLDER;
|
|
100
|
+
const base = `${tuple.platform}:${team}:${tuple.channelId}`;
|
|
101
|
+
return tuple.threadTs ? `${base}:${tuple.threadTs}` : base;
|
|
102
|
+
}
|
|
103
|
+
/** Parse a canonical key back to `{ tuple, workspaceId }`, or null when malformed. */
|
|
104
|
+
export function parseCanonicalKey(key) {
|
|
105
|
+
const parts = key.split(':');
|
|
106
|
+
if (parts.length < 3 || parts.length > 4 || parts[0] !== 'slack')
|
|
107
|
+
return null;
|
|
108
|
+
const [, workspaceId, channelId, threadTs] = parts;
|
|
109
|
+
if (workspaceId !== WORKSPACE_PLACEHOLDER && !SLACK_WORKSPACE_ID_RE.test(workspaceId))
|
|
110
|
+
return null;
|
|
111
|
+
if (!SLACK_CHANNEL_ID_RE.test(channelId))
|
|
112
|
+
return null;
|
|
113
|
+
if (threadTs !== undefined && !SLACK_THREAD_TS_RE.test(threadTs))
|
|
114
|
+
return null;
|
|
115
|
+
return { tuple: { platform: 'slack', channelId, threadTs: threadTs ?? null }, workspaceId };
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* The ONE shared displacement implementation (§3.3 = §3.5.1 step 2 — pinned by
|
|
119
|
+
* the §10 shared-implementation equivalence test; R2-adversarial-2). Walks the
|
|
120
|
+
* FROZEN down-sequence `candidate, candidate-1, candidate-2, …` and returns
|
|
121
|
+
* the first offset for which `collides(id)` is false, bounded by
|
|
122
|
+
* `MAX_PROBE_DISTANCE` (= the ingest coherence bound, so a local mint can
|
|
123
|
+
* never produce an id a peer's ingest would quarantine as a pre-squat).
|
|
124
|
+
*
|
|
125
|
+
* `collides` MUST be the pure §3.3 `candidateCollides` predicate — reserved
|
|
126
|
+
* canonicals (a), the alias table (b), and the GLOBAL displaced-assignment set
|
|
127
|
+
* (c) — each an O(1) lookup, NEVER a live-tuple scan (R2-scalability-1). A
|
|
128
|
+
* walk exceeding the bound degrades to the §3.6 pending-mint path.
|
|
129
|
+
*/
|
|
130
|
+
export function walkDisplacement(candidate, collides) {
|
|
131
|
+
let id = candidate;
|
|
132
|
+
let probes = 0;
|
|
133
|
+
while (collides(id)) {
|
|
134
|
+
id += PROBE_DIRECTION;
|
|
135
|
+
probes++;
|
|
136
|
+
if (probes > MAX_PROBE_DISTANCE)
|
|
137
|
+
return { ok: false, overflow: true };
|
|
138
|
+
}
|
|
139
|
+
return { ok: true, id, probes };
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=conversationIdentity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversationIdentity.js","sourceRoot":"","sources":["../../src/core/conversationIdentity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* deliverToConversation — the outbound funnel SKELETON
|
|
3
|
+
* (docs/specs/durable-conversation-identity.md §5; §6.1 increment 1).
|
|
4
|
+
*
|
|
5
|
+
* A single delivery helper every follow-through consumer MIGRATES onto in the
|
|
6
|
+
* later §6.1 increments. In increment 1 it ships with ZERO consumers and the
|
|
7
|
+
* `id<0` arm dark-gated behind `conversationIdentity.followThrough` (§9:
|
|
8
|
+
* `enabled` OMITTED → the developmentAgent gate resolves it — live-on-dev,
|
|
9
|
+
* dark-fleet; `dryRun: true` FIRST because delivery is externally visible).
|
|
10
|
+
*
|
|
11
|
+
* §5.1 failure/dryRun contract: a funnel non-delivery is a TYPED,
|
|
12
|
+
* NON-EXCEPTIONAL return the caller inspects — never a thrown exception, and
|
|
13
|
+
* NEVER success-shaped. dryRun (and fleet-dark) return the SAME
|
|
14
|
+
* `not-delivered` typed result the unresolvable path uses, plus a
|
|
15
|
+
* `would-deliver` audit line — caller-visible as a non-delivery so beacon
|
|
16
|
+
* retry / attention escalation keep engaging (A Refusal Stays a Refusal / P18).
|
|
17
|
+
*
|
|
18
|
+
* NOT in this skeleton (they land WITH their §6.1 increments, before any
|
|
19
|
+
* consumer migrates onto the funnel): the §5.0(a) E1 ambiguous-outcome
|
|
20
|
+
* idempotency guard + durable send-intent ops (increment 2, the proof
|
|
21
|
+
* consumer), the §5 `deterministicKind` gate-exempt arm (increment 3), the
|
|
22
|
+
* §5.2 P17 budgets (increment 5's attention migration), and the §5.1
|
|
23
|
+
* permanent-error classification (increment 2).
|
|
24
|
+
*/
|
|
25
|
+
import type { ConversationRegistry } from './ConversationRegistry.js';
|
|
26
|
+
export interface DeliverOpts {
|
|
27
|
+
isProxy?: boolean;
|
|
28
|
+
source?: string;
|
|
29
|
+
tier?: string;
|
|
30
|
+
allowDuplicate?: boolean;
|
|
31
|
+
messageKind?: string;
|
|
32
|
+
}
|
|
33
|
+
export type DeliveryOutcome = {
|
|
34
|
+
delivered: true;
|
|
35
|
+
outcome: 'delivered';
|
|
36
|
+
} | {
|
|
37
|
+
delivered: false;
|
|
38
|
+
outcome: 'not-delivered';
|
|
39
|
+
reason: 'follow-through-dark' | 'follow-through-dry-run' | 'unresolvable' | 'replicated-only-origin' | 'system-channel-suppressed' | 'no-slack-adapter' | 'send-failed' | 'telegram-send-failed';
|
|
40
|
+
detail?: string;
|
|
41
|
+
};
|
|
42
|
+
export interface ConversationDeliveryDeps {
|
|
43
|
+
registry: ConversationRegistry;
|
|
44
|
+
/** §9 followThrough gate state, resolved through resolveDevAgentGate at wiring. */
|
|
45
|
+
followThrough: () => {
|
|
46
|
+
enabled: boolean;
|
|
47
|
+
dryRun: boolean;
|
|
48
|
+
};
|
|
49
|
+
/** Today's Telegram path (`id > 0` arm) — queue/dedup/tone-gate untouched. */
|
|
50
|
+
sendTelegram: (topicId: number, text: string, opts?: DeliverOpts) => Promise<boolean>;
|
|
51
|
+
/** The local Slack adapter send (channel + thread_ts), when one exists. */
|
|
52
|
+
sendSlack?: (channelId: string, text: string, threadTs?: string, opts?: DeliverOpts) => Promise<void>;
|
|
53
|
+
/** §4: PresenceProxy's system-channel suppression moves INTO the funnel —
|
|
54
|
+
* standby/beacon noise never lands in dashboard/lifeline channels. */
|
|
55
|
+
isSystemChannel?: (channelId: string) => boolean;
|
|
56
|
+
/** `would-deliver` audit sink for dark/dry non-deliveries (§5.1). */
|
|
57
|
+
auditWouldDeliver?: (line: string) => void;
|
|
58
|
+
log?: (line: string) => void;
|
|
59
|
+
}
|
|
60
|
+
export type DeliverToConversation = (id: number, text: string, opts?: DeliverOpts) => Promise<DeliveryOutcome>;
|
|
61
|
+
export declare function createConversationDelivery(deps: ConversationDeliveryDeps): DeliverToConversation;
|
|
62
|
+
//# sourceMappingURL=deliverToConversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverToConversation.d.ts","sourceRoot":"","sources":["../../src/core/deliverToConversation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACzC;IACE,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EACF,qBAAqB,GACrB,wBAAwB,GACxB,cAAc,GACd,wBAAwB,GACxB,2BAA2B,GAC3B,kBAAkB,GAClB,aAAa,GACb,sBAAsB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,mFAAmF;IACnF,aAAa,EAAE,MAAM;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3D,8EAA8E;IAC9E,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtF,2EAA2E;IAC3E,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtG;2EACuE;IACvE,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAE/G,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB,GAAG,qBAAqB,CAwFhG"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export function createConversationDelivery(deps) {
|
|
2
|
+
return async (id, text, opts) => {
|
|
3
|
+
// id > 0 → today's Telegram path, all existing layers unchanged.
|
|
4
|
+
if (id > 0) {
|
|
5
|
+
try {
|
|
6
|
+
const ok = await deps.sendTelegram(id, text, opts);
|
|
7
|
+
return ok
|
|
8
|
+
? { delivered: true, outcome: 'delivered' }
|
|
9
|
+
: { delivered: false, outcome: 'not-delivered', reason: 'telegram-send-failed' };
|
|
10
|
+
}
|
|
11
|
+
catch (err) {
|
|
12
|
+
return {
|
|
13
|
+
delivered: false,
|
|
14
|
+
outcome: 'not-delivered',
|
|
15
|
+
reason: 'telegram-send-failed',
|
|
16
|
+
detail: err instanceof Error ? err.message : String(err),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// id < 0 → minted conversation. Resolve FIRST so the dark/dry audit line
|
|
21
|
+
// names the real target, then gate.
|
|
22
|
+
const resolved = deps.registry.resolve(id);
|
|
23
|
+
if (!resolved || resolved.platform !== 'slack') {
|
|
24
|
+
return {
|
|
25
|
+
delivered: false,
|
|
26
|
+
outcome: 'not-delivered',
|
|
27
|
+
reason: 'unresolvable',
|
|
28
|
+
detail: `no local registry entry resolves ${id} (never minted on this machine, or id is 0)`,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
// KYP (§3.5/§7): delivery resolves ONLY local-origin entries. A pure
|
|
32
|
+
// `replicated` entry is read-context until locally corroborated.
|
|
33
|
+
if (resolved.origin === 'replicated') {
|
|
34
|
+
return {
|
|
35
|
+
delivered: false,
|
|
36
|
+
outcome: 'not-delivered',
|
|
37
|
+
reason: 'replicated-only-origin',
|
|
38
|
+
detail: `entry for ${id} is replicated-only (advisory) — the owning machine delivers (§5.0)`,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (deps.isSystemChannel?.(resolved.channelId)) {
|
|
42
|
+
return { delivered: false, outcome: 'not-delivered', reason: 'system-channel-suppressed' };
|
|
43
|
+
}
|
|
44
|
+
const gate = deps.followThrough();
|
|
45
|
+
if (!gate.enabled) {
|
|
46
|
+
return {
|
|
47
|
+
delivered: false,
|
|
48
|
+
outcome: 'not-delivered',
|
|
49
|
+
reason: 'follow-through-dark',
|
|
50
|
+
detail: 'conversationIdentity.followThrough is dark on this agent',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (gate.dryRun) {
|
|
54
|
+
try {
|
|
55
|
+
deps.auditWouldDeliver?.(`[conversation-delivery dryRun] would-deliver → ${resolved.channelId}${resolved.threadTs ? `:${resolved.threadTs}` : ''} (id ${id}, ${text.length} chars${opts?.source ? `, source=${opts.source}` : ''})`);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
/* audit is observability */
|
|
59
|
+
}
|
|
60
|
+
return { delivered: false, outcome: 'not-delivered', reason: 'follow-through-dry-run' };
|
|
61
|
+
}
|
|
62
|
+
if (!deps.sendSlack) {
|
|
63
|
+
return {
|
|
64
|
+
delivered: false,
|
|
65
|
+
outcome: 'not-delivered',
|
|
66
|
+
reason: 'no-slack-adapter',
|
|
67
|
+
detail: 'no local Slack adapter — the owning machine delivers (§5.0)',
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
// Thread-level conversations deliver IN-THREAD (§5).
|
|
72
|
+
await deps.sendSlack(resolved.channelId, text, resolved.threadTs ?? undefined, opts);
|
|
73
|
+
return { delivered: true, outcome: 'delivered' };
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
return {
|
|
77
|
+
delivered: false,
|
|
78
|
+
outcome: 'not-delivered',
|
|
79
|
+
reason: 'send-failed',
|
|
80
|
+
detail: err instanceof Error ? err.message : String(err),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=deliverToConversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverToConversation.js","sourceRoot":"","sources":["../../src/core/deliverToConversation.ts"],"names":[],"mappings":"AAqEA,MAAM,UAAU,0BAA0B,CAAC,IAA8B;IACvE,OAAO,KAAK,EAAE,EAAU,EAAE,IAAY,EAAE,IAAkB,EAA4B,EAAE;QACtF,iEAAiE;QACjE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACnD,OAAO,EAAE;oBACP,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE;oBAC3C,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;YACrF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,eAAe;oBACxB,MAAM,EAAE,sBAAsB;oBAC9B,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACzD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,oCAAoC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC/C,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,oCAAoC,EAAE,6CAA6C;aAC5F,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,iEAAiE;QACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACrC,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,wBAAwB;gBAChC,MAAM,EAAE,aAAa,EAAE,qEAAqE;aAC7F,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;QAC7F,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,qBAAqB;gBAC7B,MAAM,EAAE,0DAA0D;aACnE,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,IAAI,CAAC,iBAAiB,EAAE,CACtB,kDAAkD,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,MAAM,SAAS,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAC3M,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QAC1F,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,kBAAkB;gBAC1B,MAAM,EAAE,6DAA6D;aACtE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,qDAAqD;YACrD,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC;YACrF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAgd/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,sBAAsB,GACtB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAsJnD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAO5E"}
|
|
@@ -144,6 +144,12 @@ export const DEV_GATED_FEATURES = [
|
|
|
144
144
|
description: 'Playwright profile↔accounts registry + boot awareness + activate.',
|
|
145
145
|
justification: 'Stores vault secret NAMES only (never values) + browser-profile metadata; reads are advisory signal; the only destructive op (activate: MCP-config rewrite + session restart) ships dryRun:true and is reversible; dev-dogfooded.',
|
|
146
146
|
},
|
|
147
|
+
{
|
|
148
|
+
name: 'conversationFollowThrough',
|
|
149
|
+
configPath: 'conversationIdentity.followThrough.enabled',
|
|
150
|
+
description: 'Durable conversation identity — the §5 deliverToConversation funnel\'s minted-id (id<0) DELIVERY arm (durable-conversation-identity §9). The registry/journal/eager-mint FOUNDATION is always-on and NOT gated here; only delivery rides this gate.',
|
|
151
|
+
justification: 'Delivery is externally visible, so the block ships dryRun:true even live-on-dev: the id<0 arm returns typed §5.1 non-deliveries + would-deliver audit lines (never success-shaped) until a deliberate dryRun:false flip for the live proof. Zero consumers ride the funnel in increment 1, so enabling is inert until the §6.1 proof-consumer increment; no spend, no destructive action, no egress while dry.',
|
|
152
|
+
},
|
|
147
153
|
{
|
|
148
154
|
name: 'prHandLease',
|
|
149
155
|
configPath: 'monitoring.prHandLease.enabled',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devGatedFeatures.js","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"devGatedFeatures.js","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -3002,6 +3002,43 @@ export interface InstarConfig {
|
|
|
3002
3002
|
/** Activate dry-run canary — log the intended .mcp.json rewrite + refresh, perform neither (default true). */
|
|
3003
3003
|
dryRun?: boolean;
|
|
3004
3004
|
};
|
|
3005
|
+
/**
|
|
3006
|
+
* Durable, channel-agnostic conversation identity
|
|
3007
|
+
* (docs/specs/durable-conversation-identity.md §9). The FOUNDATION (registry
|
|
3008
|
+
* + journal + eager mint) is always-on once shipped; `recording` is its
|
|
3009
|
+
* runtime KILL-SWITCH (D1 — forces the §3.6 in-memory-candidate degradation,
|
|
3010
|
+
* behavior-identical to legacy hashing, without a redeploy). `followThrough`
|
|
3011
|
+
* gates DELIVERY only (the §5 funnel's id<0 arm) and is dev-gated:
|
|
3012
|
+
* `enabled` is deliberately OMITTED from ConfigDefaults so
|
|
3013
|
+
* resolveDevAgentGate decides — LIVE on a development agent, DARK on the
|
|
3014
|
+
* fleet — with `dryRun: true` FIRST (delivery is externally visible).
|
|
3015
|
+
*/
|
|
3016
|
+
conversationIdentity?: {
|
|
3017
|
+
/** §3.1 fleet workspace pin (source 1 — authoritative when present): the ONE
|
|
3018
|
+
* Slack teamId this fleet mints concrete-workspace ids for. */
|
|
3019
|
+
workspacePin?: string;
|
|
3020
|
+
recording?: {
|
|
3021
|
+
/** D1 kill-switch. Default true; migrateConfig existence-checks and NEVER
|
|
3022
|
+
* materializes a literal false (the #1001 mechanism). */
|
|
3023
|
+
enabled?: boolean;
|
|
3024
|
+
/** Narrower escape hatch: keep recording, skip the durable-path fsync. */
|
|
3025
|
+
disableJournalFsync?: boolean;
|
|
3026
|
+
};
|
|
3027
|
+
followThrough?: {
|
|
3028
|
+
/** Dev-gate switch. Omit to ride resolveDevAgentGate; NEVER written by
|
|
3029
|
+
* migrateConfig. */
|
|
3030
|
+
enabled?: boolean;
|
|
3031
|
+
/** Delivery dry-run canary (default true): typed §5.1 non-delivery +
|
|
3032
|
+
* would-deliver audit lines, no external send. */
|
|
3033
|
+
dryRun?: boolean;
|
|
3034
|
+
};
|
|
3035
|
+
/** §3.3 mint-rate breaker (Bounded Blast Radius) — pinned defaults. */
|
|
3036
|
+
mintBreaker?: {
|
|
3037
|
+
windowMs?: number;
|
|
3038
|
+
speculativePerWindow?: number;
|
|
3039
|
+
durableBindingPerWindow?: number;
|
|
3040
|
+
};
|
|
3041
|
+
};
|
|
3005
3042
|
/**
|
|
3006
3043
|
* Topic-intent auto-capture loop config (rung 0 of continuous-working-awareness).
|
|
3007
3044
|
* `capture.enabled` (default true) is the kill-switch for the per-turn extraction
|