instar 1.3.987 → 1.3.989

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 (42) hide show
  1. package/dist/core/MachineSshEndpoint.d.ts.map +1 -1
  2. package/dist/core/MachineSshEndpoint.js +5 -1
  3. package/dist/core/MachineSshEndpoint.js.map +1 -1
  4. package/dist/core/MutualSshVerifier.d.ts.map +1 -1
  5. package/dist/core/MutualSshVerifier.js +3 -1
  6. package/dist/core/MutualSshVerifier.js.map +1 -1
  7. package/dist/core/PeerAuthorizedKeys.d.ts.map +1 -1
  8. package/dist/core/PeerAuthorizedKeys.js +5 -1
  9. package/dist/core/PeerAuthorizedKeys.js.map +1 -1
  10. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  11. package/dist/core/PostUpdateMigrator.js +9 -0
  12. package/dist/core/PostUpdateMigrator.js.map +1 -1
  13. package/dist/core/SshBootstrapAdvert.d.ts.map +1 -1
  14. package/dist/core/SshBootstrapAdvert.js +3 -1
  15. package/dist/core/SshBootstrapAdvert.js.map +1 -1
  16. package/dist/core/StandingSshVerifier.d.ts.map +1 -1
  17. package/dist/core/StandingSshVerifier.js +3 -1
  18. package/dist/core/StandingSshVerifier.js.map +1 -1
  19. package/dist/core/channelRegistry.d.ts +104 -0
  20. package/dist/core/channelRegistry.d.ts.map +1 -0
  21. package/dist/core/channelRegistry.js +86 -0
  22. package/dist/core/channelRegistry.js.map +1 -0
  23. package/dist/core/instarChannels.d.ts +32 -0
  24. package/dist/core/instarChannels.d.ts.map +1 -0
  25. package/dist/core/instarChannels.js +91 -0
  26. package/dist/core/instarChannels.js.map +1 -0
  27. package/dist/scaffold/templates.d.ts.map +1 -1
  28. package/dist/scaffold/templates.js +1 -0
  29. package/dist/scaffold/templates.js.map +1 -1
  30. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  31. package/dist/server/CapabilityIndex.js +6 -0
  32. package/dist/server/CapabilityIndex.js.map +1 -1
  33. package/dist/server/routes.d.ts.map +1 -1
  34. package/dist/server/routes.js +40 -0
  35. package/dist/server/routes.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/data/builtin-manifest.json +63 -63
  38. package/src/scaffold/templates.ts +1 -0
  39. package/upgrades/1.3.988.md +55 -0
  40. package/upgrades/1.3.989.md +55 -0
  41. package/upgrades/side-effects/channel-registry.md +199 -0
  42. package/upgrades/side-effects/ssh2-cjs-named-imports.md +183 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SshBootstrapAdvert.d.ts","sourceRoot":"","sources":["../../src/core/SshBootstrapAdvert.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,YAAY,CAAA;KAAE,CAAC,CAAC;IAC7F,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,GAAG,MAAM,CAUxG;AAED,gGAAgG;AAChG,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,kBAAkB,CAcrJ"}
1
+ {"version":3,"file":"SshBootstrapAdvert.d.ts","sourceRoot":"","sources":["../../src/core/SshBootstrapAdvert.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,YAAY,CAAA;KAAE,CAAC,CAAC;IAC7F,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,GAAG,MAAM,CAUxG;AAED,gGAAgG;AAChG,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,kBAAkB,CAcrJ"}
@@ -1,5 +1,7 @@
1
1
  import net from 'node:net';
2
- import { utils } from 'ssh2';
2
+ import ssh2 from 'ssh2';
3
+ // `ssh2` is CommonJS — named esm imports throw at load. Destructure at runtime.
4
+ const { utils } = ssh2;
3
5
  export function canonicalSshBootstrapAdvert(advert) {
4
6
  return JSON.stringify({
5
7
  machineId: advert.machineId, agentId: advert.agentId, pairingEpoch: advert.pairingEpoch,
@@ -1 +1 @@
1
- {"version":3,"file":"SshBootstrapAdvert.js","sourceRoot":"","sources":["../../src/core/SshBootstrapAdvert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SshBootstrapAdvert.js","sourceRoot":"","sources":["../../src/core/SshBootstrapAdvert.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StandingSshVerifier.d.ts","sourceRoot":"","sources":["../../src/core/StandingSshVerifier.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,8EAA8E;AAC9E,qBAAa,mBAAmB;IAC9B,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuChD"}
1
+ {"version":3,"file":"StandingSshVerifier.d.ts","sourceRoot":"","sources":["../../src/core/StandingSshVerifier.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,8EAA8E;AAC9E,qBAAa,mBAAmB;IAC9B,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuChD"}
@@ -1,5 +1,7 @@
1
1
  import fs from 'node:fs';
2
- import { Client, utils } from 'ssh2';
2
+ import ssh2 from 'ssh2';
3
+ // `ssh2` is CommonJS — named esm imports throw at load. Destructure at runtime.
4
+ const { Client, utils } = ssh2;
3
5
  /** Proves that the dedicated key can execute through the host's real sshd. */
4
6
  export class StandingSshVerifier {
5
7
  probe(target) {
@@ -1 +1 @@
1
- {"version":3,"file":"StandingSshVerifier.js","sourceRoot":"","sources":["../../src/core/StandingSshVerifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StandingSshVerifier.js","sourceRoot":"","sources":["../../src/core/StandingSshVerifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Channel registry — which ways of reaching another agent exist, and which of them work RIGHT NOW.
3
+ *
4
+ * WHY THIS EXISTS (2026-07-26, topic 29723). The relay died mid-session. I stopped, told the operator
5
+ * I could not reach the peer, and moved on — because I had no way to ask "what else reaches him, and
6
+ * which of those is alive?". I did not CHOOSE a channel; I used the one I reached for. The operator's
7
+ * words: the paths we use to communicate feel arbitrary.
8
+ *
9
+ * ── THE DESIGN CONSTRAINT, EARNED THE HARD WAY ─────────────────────────────────────────────────
10
+ *
11
+ * A registry that merely LISTS what exists would have made that night WORSE. Reviewing the channels by
12
+ * hand I misclassified three of them in one hour — each time by reading a label (a header, a name, a
13
+ * directory) instead of the consumer. One "channel" was a purpose-built peer protocol whose SEND half
14
+ * has no caller at all. Had a naive list shown it to me mid-outage, I would have reached for it with
15
+ * exactly the same false confidence and lost more time.
16
+ *
17
+ * So the load-bearing property is not the list. It is:
18
+ *
19
+ * 1. ABSENCE IS IMPOSSIBLE. The channel set is defined in CODE, never derived from what happened to
20
+ * construct successfully. Three separate failures that night were invisible for precisely this
21
+ * reason — the thing that failed removed itself from the list of failures. A relay that dropped
22
+ * left "connected" as the only record. A subsystem that threw before registering was missing from
23
+ * an 88-row guard inventory: not "off", not "errored" — ABSENT. A peer had no row at all in the
24
+ * surface built to report peer health. A missing row and a healthy system read identically.
25
+ *
26
+ * 2. A CHANNEL THAT CANNOT DETERMINE ITS OWN LIVENESS SAYS SO. `unknown` is a first-class verdict
27
+ * carrying a reason, never collapsed into `working` and never rendered as a clean-looking empty.
28
+ *
29
+ * 3. THE STATE SET MATCHES REALITY. Binary up/down cannot express what was actually found:
30
+ * half-built (receive works, send has no caller), reachable-but-no-credential, or configured-off.
31
+ * A registry whose vocabulary is too small will lie in the most confident-sounding way.
32
+ *
33
+ * This idiom is NOT invented here — the codebase already does it in at least three places
34
+ * (`/capability-registry` reporting `scanState: "never-observed"` rather than an empty list;
35
+ * `/capabilities` reporting `autoDispatch: false` rather than omitting the key; a discovery adapter
36
+ * whose `isAvailable()` returns false when its breaker is open). This makes that property UNIVERSAL
37
+ * across channels rather than a habit some surfaces happen to have.
38
+ */
39
+ /**
40
+ * What a channel's liveness verdict can be. Every value here was observed on a real channel — none is
41
+ * speculative, and the set is deliberately wider than working/broken.
42
+ */
43
+ export type ChannelState =
44
+ /** Probed and usable right now. */
45
+ 'working'
46
+ /** Probed; it exists and is meant to work, but does not. */
47
+ | 'broken'
48
+ /** Only part of it is implemented — e.g. inbound is wired, outbound has no caller. */
49
+ | 'half-built'
50
+ /** The endpoint answers, but this agent holds no credential for its authenticated routes. */
51
+ | 'reachable-no-credential'
52
+ /** Deliberately not enabled here (config absent/false). Off is not broken. */
53
+ | 'not-configured'
54
+ /** Could not be determined. Carries a reason. NEVER a synonym for healthy. */
55
+ | 'unknown';
56
+ /** Which direction(s) a channel can actually carry traffic — the half-built case made explicit. */
57
+ export type ChannelDirection = 'bidirectional' | 'send-only' | 'receive-only' | 'none';
58
+ export interface ChannelDefinition {
59
+ id: string;
60
+ /** What it is for, in the operator's terms. */
61
+ purpose: string;
62
+ /** When this channel is the right choice over the others. */
63
+ whenPreferred: string;
64
+ /** What using it costs — latency, visibility, quota, operator attention. */
65
+ cost: string;
66
+ /**
67
+ * Determines liveness. May throw or hang; the resolver contains that and reports `unknown` with the
68
+ * reason. A probe is never trusted to behave.
69
+ */
70
+ probe: () => Promise<ChannelProbeResult>;
71
+ }
72
+ export interface ChannelProbeResult {
73
+ state: ChannelState;
74
+ direction: ChannelDirection;
75
+ /** Plain-English evidence for the verdict. Required — a verdict without evidence is an assertion. */
76
+ detail: string;
77
+ }
78
+ export interface ChannelReport extends ChannelProbeResult {
79
+ id: string;
80
+ purpose: string;
81
+ whenPreferred: string;
82
+ cost: string;
83
+ /** True when the verdict came from a probe that failed rather than from an observation. */
84
+ probeFailed: boolean;
85
+ }
86
+ export interface ChannelRegistryReport {
87
+ /** Every code-defined channel. Length is invariant regardless of probe outcomes. */
88
+ channels: ChannelReport[];
89
+ /** Convenience counts. `unknown` is surfaced separately so it can never hide inside a total. */
90
+ summary: {
91
+ total: number;
92
+ working: number;
93
+ unusable: number;
94
+ unknown: number;
95
+ };
96
+ generatedAt: string;
97
+ }
98
+ /**
99
+ * Resolve every channel. The guarantee this function exists to provide: the returned `channels` array
100
+ * has exactly one entry per definition, ALWAYS — a throwing probe, a hanging probe, and a probe that
101
+ * returns nonsense all yield a row, never an omission.
102
+ */
103
+ export declare function resolveChannels(definitions: readonly ChannelDefinition[], now?: () => string): Promise<ChannelRegistryReport>;
104
+ //# sourceMappingURL=channelRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelRegistry.d.ts","sourceRoot":"","sources":["../../src/core/channelRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH;;;GAGG;AACH,MAAM,MAAM,YAAY;AACtB,mCAAmC;AACjC,SAAS;AACX,4DAA4D;GAC1D,QAAQ;AACV,sFAAsF;GACpF,YAAY;AACd,6FAA6F;GAC3F,yBAAyB;AAC3B,8EAA8E;GAC5E,gBAAgB;AAClB,8EAA8E;GAC5E,SAAS,CAAC;AAEd,mGAAmG;AACnG,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAEvF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,qGAAqG;IACrG,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,oFAAoF;IACpF,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,gGAAgG;IAChG,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,WAAW,EAAE,MAAM,CAAC;CACrB;AAmBD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,SAAS,iBAAiB,EAAE,EACzC,GAAG,GAAE,MAAM,MAAuC,GACjD,OAAO,CAAC,qBAAqB,CAAC,CA4BhC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Channel registry — which ways of reaching another agent exist, and which of them work RIGHT NOW.
3
+ *
4
+ * WHY THIS EXISTS (2026-07-26, topic 29723). The relay died mid-session. I stopped, told the operator
5
+ * I could not reach the peer, and moved on — because I had no way to ask "what else reaches him, and
6
+ * which of those is alive?". I did not CHOOSE a channel; I used the one I reached for. The operator's
7
+ * words: the paths we use to communicate feel arbitrary.
8
+ *
9
+ * ── THE DESIGN CONSTRAINT, EARNED THE HARD WAY ─────────────────────────────────────────────────
10
+ *
11
+ * A registry that merely LISTS what exists would have made that night WORSE. Reviewing the channels by
12
+ * hand I misclassified three of them in one hour — each time by reading a label (a header, a name, a
13
+ * directory) instead of the consumer. One "channel" was a purpose-built peer protocol whose SEND half
14
+ * has no caller at all. Had a naive list shown it to me mid-outage, I would have reached for it with
15
+ * exactly the same false confidence and lost more time.
16
+ *
17
+ * So the load-bearing property is not the list. It is:
18
+ *
19
+ * 1. ABSENCE IS IMPOSSIBLE. The channel set is defined in CODE, never derived from what happened to
20
+ * construct successfully. Three separate failures that night were invisible for precisely this
21
+ * reason — the thing that failed removed itself from the list of failures. A relay that dropped
22
+ * left "connected" as the only record. A subsystem that threw before registering was missing from
23
+ * an 88-row guard inventory: not "off", not "errored" — ABSENT. A peer had no row at all in the
24
+ * surface built to report peer health. A missing row and a healthy system read identically.
25
+ *
26
+ * 2. A CHANNEL THAT CANNOT DETERMINE ITS OWN LIVENESS SAYS SO. `unknown` is a first-class verdict
27
+ * carrying a reason, never collapsed into `working` and never rendered as a clean-looking empty.
28
+ *
29
+ * 3. THE STATE SET MATCHES REALITY. Binary up/down cannot express what was actually found:
30
+ * half-built (receive works, send has no caller), reachable-but-no-credential, or configured-off.
31
+ * A registry whose vocabulary is too small will lie in the most confident-sounding way.
32
+ *
33
+ * This idiom is NOT invented here — the codebase already does it in at least three places
34
+ * (`/capability-registry` reporting `scanState: "never-observed"` rather than an empty list;
35
+ * `/capabilities` reporting `autoDispatch: false` rather than omitting the key; a discovery adapter
36
+ * whose `isAvailable()` returns false when its breaker is open). This makes that property UNIVERSAL
37
+ * across channels rather than a habit some surfaces happen to have.
38
+ */
39
+ const PROBE_TIMEOUT_MS = 3_000;
40
+ /** Bound a probe so one hanging channel cannot make the whole registry unanswerable. */
41
+ async function withTimeout(p) {
42
+ let timer;
43
+ try {
44
+ return await Promise.race([
45
+ p,
46
+ new Promise((_, reject) => {
47
+ timer = setTimeout(() => reject(new Error(`probe exceeded ${PROBE_TIMEOUT_MS}ms`)), PROBE_TIMEOUT_MS);
48
+ }),
49
+ ]);
50
+ }
51
+ finally {
52
+ if (timer)
53
+ clearTimeout(timer);
54
+ }
55
+ }
56
+ /**
57
+ * Resolve every channel. The guarantee this function exists to provide: the returned `channels` array
58
+ * has exactly one entry per definition, ALWAYS — a throwing probe, a hanging probe, and a probe that
59
+ * returns nonsense all yield a row, never an omission.
60
+ */
61
+ export async function resolveChannels(definitions, now = () => new Date().toISOString()) {
62
+ const channels = await Promise.all(definitions.map(async (def) => {
63
+ const base = { id: def.id, purpose: def.purpose, whenPreferred: def.whenPreferred, cost: def.cost };
64
+ try {
65
+ const result = await withTimeout(def.probe());
66
+ // A probe returning a shape we do not recognise is a failed probe, not a healthy channel.
67
+ if (!result || typeof result.state !== 'string' || typeof result.detail !== 'string') {
68
+ return { ...base, state: 'unknown', direction: 'none', probeFailed: true,
69
+ detail: 'probe returned an unrecognised result; treating as undetermined rather than healthy' };
70
+ }
71
+ return { ...base, ...result, probeFailed: false };
72
+ }
73
+ catch (err) {
74
+ const reason = err instanceof Error ? err.message : String(err);
75
+ return { ...base, state: 'unknown', direction: 'none', probeFailed: true,
76
+ detail: `could not determine liveness: ${reason.slice(0, 200)}` };
77
+ }
78
+ }));
79
+ const working = channels.filter(c => c.state === 'working').length;
80
+ const unknown = channels.filter(c => c.state === 'unknown').length;
81
+ // "unusable" deliberately EXCLUDES unknown — conflating "known broken" with "could not tell"
82
+ // is the exact collapse this module exists to prevent.
83
+ const unusable = channels.filter(c => c.state === 'broken' || c.state === 'half-built' || c.state === 'reachable-no-credential').length;
84
+ return { channels, summary: { total: channels.length, working, unusable, unknown }, generatedAt: now() };
85
+ }
86
+ //# sourceMappingURL=channelRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelRegistry.js","sourceRoot":"","sources":["../../src/core/channelRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The actual inter-agent channels this agent has, wired into the channel registry.
3
+ *
4
+ * Scope discipline: PEER-TO-PEER only. Two things were on my first hand-written list that do not
5
+ * belong here, and cutting them is the point rather than an omission:
6
+ * - the intelligence dispatcher polls an upstream service for instructions. One direction, not a peer.
7
+ * - the reputation/discovery client feeds trust decisions about peers. An input to a channel, not one.
8
+ * Both were listed because their NAMES sounded like communication. Classify by consumer, not by label.
9
+ */
10
+ import type { ChannelDefinition } from './channelRegistry.js';
11
+ /** What the registry needs from the running server. Injected so the definitions stay testable. */
12
+ export interface ChannelProbeContext {
13
+ /** Live relay state, or null when the threadline layer was never constructed. */
14
+ relayStatus: () => {
15
+ ready: boolean;
16
+ connected: boolean;
17
+ } | null;
18
+ /** True when the mutual-SSH runtime constructed successfully (it throws on some installs). */
19
+ mutualSshConstructed: () => boolean;
20
+ /** Whether mutual-SSH is switched on for this agent at all. */
21
+ mutualSshEnabled: () => boolean;
22
+ /** Reachability of a named peer's own HTTP server, and whether we hold a credential for it. */
23
+ peerHttp: () => Promise<{
24
+ reachable: boolean;
25
+ haveCredential: boolean;
26
+ detail: string;
27
+ }>;
28
+ }
29
+ export declare function buildChannelDefinitions(ctx: ChannelProbeContext): ChannelDefinition[];
30
+ /** Exported for the rot-guard test. */
31
+ export declare const A2A_TELEGRAM_CLAIM: string;
32
+ //# sourceMappingURL=instarChannels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instarChannels.d.ts","sourceRoot":"","sources":["../../src/core/instarChannels.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAsB,MAAM,sBAAsB,CAAC;AAElF,kGAAkG;AAClG,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,WAAW,EAAE,MAAM;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE,8FAA8F;IAC9F,oBAAoB,EAAE,MAAM,OAAO,CAAC;IACpC,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC,+FAA+F;IAC/F,QAAQ,EAAE,MAAM,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1F;AAeD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,mBAAmB,GAAG,iBAAiB,EAAE,CAmErF;AAED,uCAAuC;AACvC,eAAO,MAAM,kBAAkB,QAA0B,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * The actual inter-agent channels this agent has, wired into the channel registry.
3
+ *
4
+ * Scope discipline: PEER-TO-PEER only. Two things were on my first hand-written list that do not
5
+ * belong here, and cutting them is the point rather than an omission:
6
+ * - the intelligence dispatcher polls an upstream service for instructions. One direction, not a peer.
7
+ * - the reputation/discovery client feeds trust decisions about peers. An input to a channel, not one.
8
+ * Both were listed because their NAMES sounded like communication. Classify by consumer, not by label.
9
+ */
10
+ /**
11
+ * The agent-to-agent-over-Telegram protocol.
12
+ *
13
+ * Its inbound half is wired in production; its outbound function has no executing caller. That is a
14
+ * BUILD-TIME fact, not something a runtime probe can see — so it is asserted here and guarded by a
15
+ * source-scan test (`channel-registry-claims.test.ts`). If someone wires the sender, that test fails
16
+ * and forces this verdict to be updated. An unguarded assertion in a registry is exactly the kind of
17
+ * confident-but-stale label that cost me time in the first place.
18
+ */
19
+ const A2A_TELEGRAM_LIMITATION = 'inbound is wired in production; the outbound send function has no executing caller, so this ' +
20
+ 'channel can receive but cannot send';
21
+ export function buildChannelDefinitions(ctx) {
22
+ return [
23
+ {
24
+ id: 'threadline-relay',
25
+ purpose: 'Direct agent-to-agent messaging over the shared relay.',
26
+ whenPreferred: 'The default for peer work: fastest, and invisible to the operator, so it does not spend their attention.',
27
+ cost: 'Requires the relay to be connected. Invisible when it fails, which is its main hazard.',
28
+ probe: async () => {
29
+ const s = ctx.relayStatus();
30
+ if (s === null) {
31
+ return { state: 'not-configured', direction: 'none', detail: 'threadline layer was never constructed on this agent' };
32
+ }
33
+ if (s.ready && s.connected) {
34
+ return { state: 'working', direction: 'bidirectional', detail: 'relay reports ready and connected' };
35
+ }
36
+ return {
37
+ state: 'broken', direction: 'none',
38
+ detail: `relay reports ready=${s.ready}, connected=${s.connected}; a send would be refused`,
39
+ };
40
+ },
41
+ },
42
+ {
43
+ id: 'a2a-telegram',
44
+ purpose: 'Agent-to-agent messages carried over the operator-visible Telegram channel, with a marker and anti-loop machinery.',
45
+ whenPreferred: 'When the exchange should be reviewable by the operator, or as a fallback the relay cannot provide — ONCE its sender is wired.',
46
+ cost: 'Consumes operator attention; slower; the conversation is visible.',
47
+ // Static by necessity (see above), guarded by a source-scan test so it cannot rot silently.
48
+ probe: async () => ({ state: 'half-built', direction: 'receive-only', detail: A2A_TELEGRAM_LIMITATION }),
49
+ },
50
+ {
51
+ id: 'mutual-ssh',
52
+ purpose: 'Machine-to-machine execution between paired hosts over a restricted SSH endpoint.',
53
+ whenPreferred: 'Peer work that needs to run ON the other machine rather than be asked for.',
54
+ cost: 'Requires paired keys and a listening endpoint; heaviest of the three to set up.',
55
+ probe: async () => {
56
+ if (!ctx.mutualSshEnabled()) {
57
+ return { state: 'not-configured', direction: 'none', detail: 'not enabled on this agent' };
58
+ }
59
+ if (!ctx.mutualSshConstructed()) {
60
+ return {
61
+ state: 'broken', direction: 'none',
62
+ detail: 'enabled, but its runtime did not construct at boot — check the server log for an initialization-blocked line',
63
+ };
64
+ }
65
+ // Constructed is not the same as reaching a peer, and the registry must not overstate it.
66
+ return {
67
+ state: 'working', direction: 'bidirectional',
68
+ detail: 'runtime constructed and listening; NOTE this confirms initialisation, not a completed round-trip to a peer',
69
+ };
70
+ },
71
+ },
72
+ {
73
+ id: 'peer-http',
74
+ purpose: "Direct HTTP to a peer agent's own server on this machine.",
75
+ whenPreferred: 'Last resort when the relay is down and the peer is co-located.',
76
+ cost: 'Needs a credential for the peer\'s authenticated routes; on-box only.',
77
+ probe: async () => {
78
+ const r = await ctx.peerHttp();
79
+ if (!r.reachable)
80
+ return { state: 'broken', direction: 'none', detail: r.detail };
81
+ if (!r.haveCredential) {
82
+ return { state: 'reachable-no-credential', direction: 'none', detail: r.detail };
83
+ }
84
+ return { state: 'working', direction: 'bidirectional', detail: r.detail };
85
+ },
86
+ },
87
+ ];
88
+ }
89
+ /** Exported for the rot-guard test. */
90
+ export const A2A_TELEGRAM_CLAIM = A2A_TELEGRAM_LIMITATION;
91
+ //# sourceMappingURL=instarChannels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instarChannels.js","sourceRoot":"","sources":["../../src/core/instarChannels.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAgG/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2E/F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiBvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA2B1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,EAC5B,WAAW,GAAE,OAAe,GAC3B,MAAM,CA+oDR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,GAC3B,MAAM,CA2TR"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAgG/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2E/F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiBvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA2B1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,EAC5B,WAAW,GAAE,OAAe,GAC3B,MAAM,CAgpDR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,GAC3B,MAAM,CA2TR"}
@@ -1101,6 +1101,7 @@ I maintain registries that are the source of truth for specific categories. Thes
1101
1101
  |----------|-------------|
1102
1102
  | What can I do? | \`curl -H "Authorization: Bearer $AUTH" http://localhost:${port}/capabilities\` |
1103
1103
  | Which machine can serve a capability? | **Registry First — capability registry:** \`GET /capability-registry\` distinguishes unavailable, unobserved, stale, and available evidence |
1104
+ | Which way of reaching another agent works right now? | **Registry First — channel registry:** \`curl -H "Authorization: Bearer $AUTH" http://localhost:${port}/channels\` — every peer channel with purpose / when-preferred / cost / live verdict. A channel that failed to start still gets a row; \`unknown\` means undetermined, NEVER healthy. Read it BEFORE reporting that a peer is unreachable |
1104
1105
  | What are we working on? / status of a project or initiative? | \`curl -H "Authorization: Bearer $AUTH" http://localhost:${port}/initiatives\` + \`/projects\` (and \`/initiatives/digest\` for what needs a decision) — NEVER answer this from memory |
1105
1106
  | Why do features keep breaking? / our failure rate by build skill? / are our process fixes working? | \`curl -H "Authorization: Bearer $AUTH" http://localhost:${port}/failures/analysis\` + \`/failures\` (Failure-Learning Loop — instar dev-process forensics) — NEVER answer this from memory |
1106
1107
  | What preferences have I learned about this user? / what gets injected at session start? | \`curl -H "Authorization: Bearer $AUTH" http://localhost:${port}/preferences/session-context\` (Correction & Preference Learning Sentinel — signal-only; 503 when disabled) |
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CapabilityIndex.d.ts","sourceRoot":"","sources":["../../src/server/CapabilityIndex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,YAAY,CAAC;IAClB,iFAAiF;IACjF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kFAAkF;IAClF,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC;CAC1D;AAID,eAAO,MAAM,gBAAgB,EAAE,SAAS,eAAe,EAkuCtD,CAAC;AAsCF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA4E/E,CAAC;AAIF;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAUzD;AAED,mEAAmE;AACnE,wBAAgB,sBAAsB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEpD;AAED,sEAAsE;AACtE,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB"}
1
+ {"version":3,"file":"CapabilityIndex.d.ts","sourceRoot":"","sources":["../../src/server/CapabilityIndex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,YAAY,CAAC;IAClB,iFAAiF;IACjF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kFAAkF;IAClF,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC;CAC1D;AAID,eAAO,MAAM,gBAAgB,EAAE,SAAS,eAAe,EAwuCtD,CAAC;AAsCF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA4E/E,CAAC;AAIF;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAUzD;AAED,mEAAmE;AACnE,wBAAgB,sBAAsB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEpD;AAED,sEAAsE;AACtE,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB"}
@@ -30,6 +30,12 @@ import { resolveDevAgentGate } from '../core/devAgentGate.js';
30
30
  import { activeAutonomousJobs, DEFAULT_MAX_CONCURRENT_AUTONOMOUS } from '../core/AutonomousSessions.js';
31
31
  // ── Top-level capability entries ─────────────────────────────────────────
32
32
  export const CAPABILITY_INDEX = [
33
+ {
34
+ key: 'channelRegistry',
35
+ prefixes: ['/channels'],
36
+ description: 'Which peer-to-peer channels exist and which are usable right now, with the evidence for each verdict.',
37
+ build: () => ({ configured: true, endpoints: ['GET /channels'] }),
38
+ },
33
39
  {
34
40
  key: 'capabilityRegistry',
35
41
  prefixes: ['/capability-registry'],