ruflo-graph-intelligence 0.1.0-alpha.1

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 (126) hide show
  1. package/.claude-flow/data/pending-insights.jsonl +30 -0
  2. package/dist/adapters/aidefence-suspicion-adapter.d.ts +40 -0
  3. package/dist/adapters/aidefence-suspicion-adapter.d.ts.map +1 -0
  4. package/dist/adapters/aidefence-suspicion-adapter.js +77 -0
  5. package/dist/adapters/aidefence-suspicion-adapter.js.map +1 -0
  6. package/dist/adapters/browser-causal-adapter.d.ts +83 -0
  7. package/dist/adapters/browser-causal-adapter.d.ts.map +1 -0
  8. package/dist/adapters/browser-causal-adapter.js +146 -0
  9. package/dist/adapters/browser-causal-adapter.js.map +1 -0
  10. package/dist/adapters/cost-attribution-adapter.d.ts +48 -0
  11. package/dist/adapters/cost-attribution-adapter.d.ts.map +1 -0
  12. package/dist/adapters/cost-attribution-adapter.js +95 -0
  13. package/dist/adapters/cost-attribution-adapter.js.map +1 -0
  14. package/dist/adapters/federation-trust-adapter.d.ts +49 -0
  15. package/dist/adapters/federation-trust-adapter.d.ts.map +1 -0
  16. package/dist/adapters/federation-trust-adapter.js +82 -0
  17. package/dist/adapters/federation-trust-adapter.js.map +1 -0
  18. package/dist/adapters/index.d.ts +16 -0
  19. package/dist/adapters/index.d.ts.map +1 -0
  20. package/dist/adapters/index.js +16 -0
  21. package/dist/adapters/index.js.map +1 -0
  22. package/dist/adapters/jujutsu-blast-radius-adapter.d.ts +46 -0
  23. package/dist/adapters/jujutsu-blast-radius-adapter.d.ts.map +1 -0
  24. package/dist/adapters/jujutsu-blast-radius-adapter.js +80 -0
  25. package/dist/adapters/jujutsu-blast-radius-adapter.js.map +1 -0
  26. package/dist/adapters/knowledge-graph-adapter.d.ts +41 -0
  27. package/dist/adapters/knowledge-graph-adapter.d.ts.map +1 -0
  28. package/dist/adapters/knowledge-graph-adapter.js +83 -0
  29. package/dist/adapters/knowledge-graph-adapter.js.map +1 -0
  30. package/dist/adapters/observability-span-adapter.d.ts +45 -0
  31. package/dist/adapters/observability-span-adapter.d.ts.map +1 -0
  32. package/dist/adapters/observability-span-adapter.js +97 -0
  33. package/dist/adapters/observability-span-adapter.js.map +1 -0
  34. package/dist/adapters/portfolio-cg-adapter.d.ts +60 -0
  35. package/dist/adapters/portfolio-cg-adapter.d.ts.map +1 -0
  36. package/dist/adapters/portfolio-cg-adapter.js +102 -0
  37. package/dist/adapters/portfolio-cg-adapter.js.map +1 -0
  38. package/dist/adapters/rag-memory-adapter.d.ts +49 -0
  39. package/dist/adapters/rag-memory-adapter.d.ts.map +1 -0
  40. package/dist/adapters/rag-memory-adapter.js +86 -0
  41. package/dist/adapters/rag-memory-adapter.js.map +1 -0
  42. package/dist/application/federation-client.d.ts +54 -0
  43. package/dist/application/federation-client.d.ts.map +1 -0
  44. package/dist/application/federation-client.js +101 -0
  45. package/dist/application/federation-client.js.map +1 -0
  46. package/dist/application/federation-server.d.ts +38 -0
  47. package/dist/application/federation-server.d.ts.map +1 -0
  48. package/dist/application/federation-server.js +127 -0
  49. package/dist/application/federation-server.js.map +1 -0
  50. package/dist/application/streaming-bridge.d.ts +62 -0
  51. package/dist/application/streaming-bridge.d.ts.map +1 -0
  52. package/dist/application/streaming-bridge.js +101 -0
  53. package/dist/application/streaming-bridge.js.map +1 -0
  54. package/dist/domain/adapter.d.ts +58 -0
  55. package/dist/domain/adapter.d.ts.map +1 -0
  56. package/dist/domain/adapter.js +43 -0
  57. package/dist/domain/adapter.js.map +1 -0
  58. package/dist/domain/federation-protocol.d.ts +857 -0
  59. package/dist/domain/federation-protocol.d.ts.map +1 -0
  60. package/dist/domain/federation-protocol.js +72 -0
  61. package/dist/domain/federation-protocol.js.map +1 -0
  62. package/dist/domain/signed-artifact.d.ts +429 -0
  63. package/dist/domain/signed-artifact.d.ts.map +1 -0
  64. package/dist/domain/signed-artifact.js +57 -0
  65. package/dist/domain/signed-artifact.js.map +1 -0
  66. package/dist/domain/types.d.ts +329 -0
  67. package/dist/domain/types.d.ts.map +1 -0
  68. package/dist/domain/types.js +165 -0
  69. package/dist/domain/types.js.map +1 -0
  70. package/dist/index.d.ts +31 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +37 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/infrastructure/jl-embed.d.ts +27 -0
  75. package/dist/infrastructure/jl-embed.d.ts.map +1 -0
  76. package/dist/infrastructure/jl-embed.js +79 -0
  77. package/dist/infrastructure/jl-embed.js.map +1 -0
  78. package/dist/infrastructure/solver-bridge.d.ts +73 -0
  79. package/dist/infrastructure/solver-bridge.d.ts.map +1 -0
  80. package/dist/infrastructure/solver-bridge.js +359 -0
  81. package/dist/infrastructure/solver-bridge.js.map +1 -0
  82. package/dist/infrastructure/witness-signer.d.ts +44 -0
  83. package/dist/infrastructure/witness-signer.d.ts.map +1 -0
  84. package/dist/infrastructure/witness-signer.js +158 -0
  85. package/dist/infrastructure/witness-signer.js.map +1 -0
  86. package/dist/mcp-tools/index.d.ts +27 -0
  87. package/dist/mcp-tools/index.d.ts.map +1 -0
  88. package/dist/mcp-tools/index.js +292 -0
  89. package/dist/mcp-tools/index.js.map +1 -0
  90. package/package.json +55 -0
  91. package/ruvector.db +0 -0
  92. package/src/adapters/aidefence-suspicion-adapter.ts +102 -0
  93. package/src/adapters/browser-causal-adapter.ts +193 -0
  94. package/src/adapters/cost-attribution-adapter.ts +123 -0
  95. package/src/adapters/federation-trust-adapter.ts +116 -0
  96. package/src/adapters/index.ts +87 -0
  97. package/src/adapters/jujutsu-blast-radius-adapter.ts +107 -0
  98. package/src/adapters/knowledge-graph-adapter.ts +110 -0
  99. package/src/adapters/observability-span-adapter.ts +123 -0
  100. package/src/adapters/portfolio-cg-adapter.ts +140 -0
  101. package/src/adapters/rag-memory-adapter.ts +117 -0
  102. package/src/application/federation-client.ts +147 -0
  103. package/src/application/federation-server.ts +158 -0
  104. package/src/application/streaming-bridge.ts +137 -0
  105. package/src/domain/adapter.ts +92 -0
  106. package/src/domain/federation-protocol.ts +95 -0
  107. package/src/domain/signed-artifact.ts +80 -0
  108. package/src/domain/types.ts +215 -0
  109. package/src/index.ts +105 -0
  110. package/src/infrastructure/jl-embed.ts +98 -0
  111. package/src/infrastructure/solver-bridge.ts +389 -0
  112. package/src/infrastructure/witness-signer.ts +209 -0
  113. package/src/mcp-tools/index.ts +316 -0
  114. package/tests/adapter-registry.test.ts +69 -0
  115. package/tests/browser-causal-adapter.test.ts +174 -0
  116. package/tests/mcp-tools.test.ts +169 -0
  117. package/tests/phase3-adapters.test.ts +206 -0
  118. package/tests/phase4-adapters.test.ts +158 -0
  119. package/tests/phase5-portfolio.test.ts +122 -0
  120. package/tests/phase6-adapters.test.ts +224 -0
  121. package/tests/phase6_5-streaming.test.ts +135 -0
  122. package/tests/phase7-signed-artifact.test.ts +238 -0
  123. package/tests/phase8-federation.test.ts +194 -0
  124. package/tests/solver-bridge.test.ts +255 -0
  125. package/tsconfig.json +21 -0
  126. package/vitest.config.ts +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-protocol.d.ts","sourceRoot":"","sources":["../../src/domain/federation-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,uBAAuB;;IAElC,kCAAkC;;IAElC,iCAAiC;;IAEjC,qEAAqE;;;;;IAKrE;uDACmD;;IAEnD,+DAA+D;;;;;;;;;;;;;;;;;;;;;;EAE/D,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAMxE,eAAO,MAAM,wBAAwB;;IAEnC,kCAAkC;;IAElC,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,sEAAsE;AACtE,eAAO,MAAM,qBAAqB;;;;IAIhC,kCAAkC;;IAElC,0CAA0C;;IAE1C,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM1E,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,qBAAqB;;;;IAIhC,8EAA8E;;IAE9E,0CAA0C;;;;;;;;;;;;;;EAE1C,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,uBAAuB;;IA3DlC,kCAAkC;;IAElC,iCAAiC;;IAEjC,qEAAqE;;;;;IAKrE;uDACmD;;IAEnD,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;IAW/D,kCAAkC;;IAElC,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUnC,kCAAkC;;IAElC,0CAA0C;;IAE1C,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAa1E,8EAA8E;;IAE9E,0CAA0C;;;;;;;;;;;;;;IAU1C,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAMxE,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC5F,qCAAqC;IACrC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC;CAC/F"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Federation Protocol for PR Artifacts (Phase 8 — beyond-SOTA, ADR-123)
3
+ *
4
+ * Wire message types over the ADR-104 federation transport. Peers can ask
5
+ * for a precomputed signed PageRank vector instead of re-walking the graph,
6
+ * verify via the Phase 7 signer, and fall back to local recompute when the
7
+ * artifact is stale (graphHash mismatch) or the holder isn't trusted.
8
+ */
9
+ import { z } from 'zod';
10
+ import { SignedPageRankEnvelopeSchema } from './signed-artifact.js';
11
+ // ============================================================================
12
+ // Request types
13
+ // ============================================================================
14
+ export const PrArtifactRequestSchema = z.object({
15
+ type: z.literal('pr_artifact_request'),
16
+ /** Requesting installation id. */
17
+ fromInstallation: z.string().min(1),
18
+ /** Adapter graph id to query. */
19
+ graphId: z.string().min(1),
20
+ /** Query node for single-entry PR. Omit for full-vector requests. */
21
+ queryNode: z.string().optional(),
22
+ alpha: z.number().positive().lt(1).default(0.85),
23
+ epsilon: z.number().positive().default(1e-3),
24
+ seedNodes: z.array(z.string()).default([]),
25
+ /** Hash of the graph the requester has locally. Holder uses this to decide
26
+ * whether to ship a fresh artifact or a delta. */
27
+ lastKnownGraphHash: z.string().regex(/^[0-9a-f]{64}$/).optional(),
28
+ /** Hash of any previous PR result the requester has cached. */
29
+ lastKnownResultHash: z.string().regex(/^[0-9a-f]{64}$/).optional(),
30
+ });
31
+ // ============================================================================
32
+ // Response types — either a full artifact, a delta, or a stale-rejection
33
+ // ============================================================================
34
+ export const PrArtifactResponseSchema = z.object({
35
+ type: z.literal('pr_artifact_response'),
36
+ /** Responding installation id. */
37
+ fromInstallation: z.string().min(1),
38
+ /** The Phase 7 signed envelope. */
39
+ envelope: SignedPageRankEnvelopeSchema,
40
+ });
41
+ /** Lightweight delta — only the score difference + new resultHash. */
42
+ export const PrArtifactDeltaSchema = z.object({
43
+ type: z.literal('pr_artifact_delta'),
44
+ fromInstallation: z.string().min(1),
45
+ graphId: z.string().min(1),
46
+ /** Hash the delta is based on. */
47
+ baseResultHash: z.string().regex(/^[0-9a-f]{64}$/),
48
+ /** New resultHash after delta applied. */
49
+ newResultHash: z.string().regex(/^[0-9a-f]{64}$/),
50
+ /** Score delta (single-entry) or sparse delta indices+values (vector). */
51
+ scoreDelta: z.number().optional(),
52
+ sparseDelta: z.object({
53
+ indices: z.array(z.number().int().nonnegative()),
54
+ values: z.array(z.number()),
55
+ }).optional(),
56
+ });
57
+ export const PrArtifactStaleSchema = z.object({
58
+ type: z.literal('pr_artifact_stale'),
59
+ fromInstallation: z.string().min(1),
60
+ graphId: z.string().min(1),
61
+ /** The holder's current graph hash so the requester can decide what to do. */
62
+ currentGraphHash: z.string().regex(/^[0-9a-f]{64}$/),
63
+ /** Why the request was stale-rejected. */
64
+ reason: z.string(),
65
+ });
66
+ export const FederationMessageSchema = z.discriminatedUnion('type', [
67
+ PrArtifactRequestSchema,
68
+ PrArtifactResponseSchema,
69
+ PrArtifactDeltaSchema,
70
+ PrArtifactStaleSchema,
71
+ ]);
72
+ //# sourceMappingURL=federation-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-protocol.js","sourceRoot":"","sources":["../../src/domain/federation-protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,429 @@
1
+ /**
2
+ * Signed PageRank Artifact (Phase 7 — beyond-SOTA, ADR-123)
3
+ *
4
+ * RuFlo gains a primitive no competing memory framework can ship: a portable,
5
+ * Ed25519-signed PageRank result that carries enough metadata for a remote
6
+ * peer to verify provenance + budget compliance + input stability without
7
+ * trusting the producer. Federation peers exchange these instead of
8
+ * re-walking graphs.
9
+ *
10
+ * Schema mirrors the ADR-123 Architecture diagram with the upstream 1.7.0
11
+ * additions: `complexity_class` (budget compliance) + `coherence_score`
12
+ * (DD-margin at compute time).
13
+ */
14
+ import { z } from 'zod';
15
+ import { type PageRankResult } from './types.js';
16
+ export declare const ARTIFACT_ENVELOPE_VERSION = "1.0.0";
17
+ export declare const ARTIFACT_ENVELOPE_KIND = "pagerank";
18
+ export declare const SignedPageRankPayloadSchema: z.ZodObject<{
19
+ envelopeVersion: z.ZodLiteral<"1.0.0">;
20
+ kind: z.ZodLiteral<"pagerank">;
21
+ installationId: z.ZodString;
22
+ /** Witness key ID (key version, not key identity per ADR-103). */
23
+ witnessKeyId: z.ZodString;
24
+ /** Ed25519 public key (hex, 32 bytes). */
25
+ publicKey: z.ZodString;
26
+ /** Adapter graph id (e.g. `ruflo-federation:trust-mesh`). */
27
+ graphId: z.ZodString;
28
+ /** SHA-256 of the input matrix's `contentHash`. */
29
+ graphHash: z.ZodString;
30
+ /** Wall-clock at compute time. */
31
+ graphTimestamp: z.ZodString;
32
+ algorithm: z.ZodEnum<["forward-push", "backward-push", "bidirectional", "cg", "neumann"]>;
33
+ alpha: z.ZodNumber;
34
+ epsilon: z.ZodNumber;
35
+ /** Query node — None for full-vector artifacts. */
36
+ queryNode: z.ZodOptional<z.ZodString>;
37
+ /** Seed nodes (PPR). Empty for plain PR. */
38
+ seedNodes: z.ZodArray<z.ZodString, "many">;
39
+ /** Result (single-entry or full-vector). */
40
+ result: z.ZodObject<{
41
+ graphId: z.ZodString;
42
+ nodeId: z.ZodString;
43
+ score: z.ZodNumber;
44
+ alpha: z.ZodNumber;
45
+ epsilon: z.ZodNumber;
46
+ iterations: z.ZodNumber;
47
+ complexityClass: z.ZodEnum<["constant", "logarithmic", "polylogarithmic", "sublinear", "linear", "linearithmic", "polynomial", "exponential", "doubleExponential", "adaptive", "unknown", "unbounded"]>;
48
+ coherence: z.ZodObject<{
49
+ score: z.ZodNumber;
50
+ passed: z.ZodBoolean;
51
+ threshold: z.ZodNumber;
52
+ }, "strip", z.ZodTypeAny, {
53
+ score: number;
54
+ passed: boolean;
55
+ threshold: number;
56
+ }, {
57
+ score: number;
58
+ passed: boolean;
59
+ threshold: number;
60
+ }>;
61
+ computedAt: z.ZodString;
62
+ resultHash: z.ZodString;
63
+ }, "strip", z.ZodTypeAny, {
64
+ graphId: string;
65
+ score: number;
66
+ nodeId: string;
67
+ alpha: number;
68
+ epsilon: number;
69
+ iterations: number;
70
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
71
+ coherence: {
72
+ score: number;
73
+ passed: boolean;
74
+ threshold: number;
75
+ };
76
+ computedAt: string;
77
+ resultHash: string;
78
+ }, {
79
+ graphId: string;
80
+ score: number;
81
+ nodeId: string;
82
+ alpha: number;
83
+ epsilon: number;
84
+ iterations: number;
85
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
86
+ coherence: {
87
+ score: number;
88
+ passed: boolean;
89
+ threshold: number;
90
+ };
91
+ computedAt: string;
92
+ resultHash: string;
93
+ }>;
94
+ /** Class the solver actually achieved (echoes result.complexityClass). */
95
+ complexityClass: z.ZodEnum<["constant", "logarithmic", "polylogarithmic", "sublinear", "linear", "linearithmic", "polynomial", "exponential", "doubleExponential", "adaptive", "unknown", "unbounded"]>;
96
+ /** Coherence margin at compute time (echoes result.coherence.score). */
97
+ coherenceScore: z.ZodNumber;
98
+ /** Hash of `result` (echoes result.resultHash). */
99
+ resultHash: z.ZodString;
100
+ /** When the envelope was sealed. */
101
+ sealedAt: z.ZodString;
102
+ /** Solver version used. */
103
+ solverVersion: z.ZodDefault<z.ZodString>;
104
+ }, "strip", z.ZodTypeAny, {
105
+ graphId: string;
106
+ alpha: number;
107
+ epsilon: number;
108
+ seedNodes: string[];
109
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
110
+ resultHash: string;
111
+ algorithm: "cg" | "neumann" | "forward-push" | "backward-push" | "bidirectional";
112
+ result: {
113
+ graphId: string;
114
+ score: number;
115
+ nodeId: string;
116
+ alpha: number;
117
+ epsilon: number;
118
+ iterations: number;
119
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
120
+ coherence: {
121
+ score: number;
122
+ passed: boolean;
123
+ threshold: number;
124
+ };
125
+ computedAt: string;
126
+ resultHash: string;
127
+ };
128
+ envelopeVersion: "1.0.0";
129
+ kind: "pagerank";
130
+ installationId: string;
131
+ witnessKeyId: string;
132
+ publicKey: string;
133
+ graphHash: string;
134
+ graphTimestamp: string;
135
+ coherenceScore: number;
136
+ sealedAt: string;
137
+ solverVersion: string;
138
+ queryNode?: string | undefined;
139
+ }, {
140
+ graphId: string;
141
+ alpha: number;
142
+ epsilon: number;
143
+ seedNodes: string[];
144
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
145
+ resultHash: string;
146
+ algorithm: "cg" | "neumann" | "forward-push" | "backward-push" | "bidirectional";
147
+ result: {
148
+ graphId: string;
149
+ score: number;
150
+ nodeId: string;
151
+ alpha: number;
152
+ epsilon: number;
153
+ iterations: number;
154
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
155
+ coherence: {
156
+ score: number;
157
+ passed: boolean;
158
+ threshold: number;
159
+ };
160
+ computedAt: string;
161
+ resultHash: string;
162
+ };
163
+ envelopeVersion: "1.0.0";
164
+ kind: "pagerank";
165
+ installationId: string;
166
+ witnessKeyId: string;
167
+ publicKey: string;
168
+ graphHash: string;
169
+ graphTimestamp: string;
170
+ coherenceScore: number;
171
+ sealedAt: string;
172
+ queryNode?: string | undefined;
173
+ solverVersion?: string | undefined;
174
+ }>;
175
+ export type SignedPageRankPayload = z.infer<typeof SignedPageRankPayloadSchema>;
176
+ export declare const SignedPageRankEnvelopeSchema: z.ZodObject<{
177
+ payload: z.ZodObject<{
178
+ envelopeVersion: z.ZodLiteral<"1.0.0">;
179
+ kind: z.ZodLiteral<"pagerank">;
180
+ installationId: z.ZodString;
181
+ /** Witness key ID (key version, not key identity per ADR-103). */
182
+ witnessKeyId: z.ZodString;
183
+ /** Ed25519 public key (hex, 32 bytes). */
184
+ publicKey: z.ZodString;
185
+ /** Adapter graph id (e.g. `ruflo-federation:trust-mesh`). */
186
+ graphId: z.ZodString;
187
+ /** SHA-256 of the input matrix's `contentHash`. */
188
+ graphHash: z.ZodString;
189
+ /** Wall-clock at compute time. */
190
+ graphTimestamp: z.ZodString;
191
+ algorithm: z.ZodEnum<["forward-push", "backward-push", "bidirectional", "cg", "neumann"]>;
192
+ alpha: z.ZodNumber;
193
+ epsilon: z.ZodNumber;
194
+ /** Query node — None for full-vector artifacts. */
195
+ queryNode: z.ZodOptional<z.ZodString>;
196
+ /** Seed nodes (PPR). Empty for plain PR. */
197
+ seedNodes: z.ZodArray<z.ZodString, "many">;
198
+ /** Result (single-entry or full-vector). */
199
+ result: z.ZodObject<{
200
+ graphId: z.ZodString;
201
+ nodeId: z.ZodString;
202
+ score: z.ZodNumber;
203
+ alpha: z.ZodNumber;
204
+ epsilon: z.ZodNumber;
205
+ iterations: z.ZodNumber;
206
+ complexityClass: z.ZodEnum<["constant", "logarithmic", "polylogarithmic", "sublinear", "linear", "linearithmic", "polynomial", "exponential", "doubleExponential", "adaptive", "unknown", "unbounded"]>;
207
+ coherence: z.ZodObject<{
208
+ score: z.ZodNumber;
209
+ passed: z.ZodBoolean;
210
+ threshold: z.ZodNumber;
211
+ }, "strip", z.ZodTypeAny, {
212
+ score: number;
213
+ passed: boolean;
214
+ threshold: number;
215
+ }, {
216
+ score: number;
217
+ passed: boolean;
218
+ threshold: number;
219
+ }>;
220
+ computedAt: z.ZodString;
221
+ resultHash: z.ZodString;
222
+ }, "strip", z.ZodTypeAny, {
223
+ graphId: string;
224
+ score: number;
225
+ nodeId: string;
226
+ alpha: number;
227
+ epsilon: number;
228
+ iterations: number;
229
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
230
+ coherence: {
231
+ score: number;
232
+ passed: boolean;
233
+ threshold: number;
234
+ };
235
+ computedAt: string;
236
+ resultHash: string;
237
+ }, {
238
+ graphId: string;
239
+ score: number;
240
+ nodeId: string;
241
+ alpha: number;
242
+ epsilon: number;
243
+ iterations: number;
244
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
245
+ coherence: {
246
+ score: number;
247
+ passed: boolean;
248
+ threshold: number;
249
+ };
250
+ computedAt: string;
251
+ resultHash: string;
252
+ }>;
253
+ /** Class the solver actually achieved (echoes result.complexityClass). */
254
+ complexityClass: z.ZodEnum<["constant", "logarithmic", "polylogarithmic", "sublinear", "linear", "linearithmic", "polynomial", "exponential", "doubleExponential", "adaptive", "unknown", "unbounded"]>;
255
+ /** Coherence margin at compute time (echoes result.coherence.score). */
256
+ coherenceScore: z.ZodNumber;
257
+ /** Hash of `result` (echoes result.resultHash). */
258
+ resultHash: z.ZodString;
259
+ /** When the envelope was sealed. */
260
+ sealedAt: z.ZodString;
261
+ /** Solver version used. */
262
+ solverVersion: z.ZodDefault<z.ZodString>;
263
+ }, "strip", z.ZodTypeAny, {
264
+ graphId: string;
265
+ alpha: number;
266
+ epsilon: number;
267
+ seedNodes: string[];
268
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
269
+ resultHash: string;
270
+ algorithm: "cg" | "neumann" | "forward-push" | "backward-push" | "bidirectional";
271
+ result: {
272
+ graphId: string;
273
+ score: number;
274
+ nodeId: string;
275
+ alpha: number;
276
+ epsilon: number;
277
+ iterations: number;
278
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
279
+ coherence: {
280
+ score: number;
281
+ passed: boolean;
282
+ threshold: number;
283
+ };
284
+ computedAt: string;
285
+ resultHash: string;
286
+ };
287
+ envelopeVersion: "1.0.0";
288
+ kind: "pagerank";
289
+ installationId: string;
290
+ witnessKeyId: string;
291
+ publicKey: string;
292
+ graphHash: string;
293
+ graphTimestamp: string;
294
+ coherenceScore: number;
295
+ sealedAt: string;
296
+ solverVersion: string;
297
+ queryNode?: string | undefined;
298
+ }, {
299
+ graphId: string;
300
+ alpha: number;
301
+ epsilon: number;
302
+ seedNodes: string[];
303
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
304
+ resultHash: string;
305
+ algorithm: "cg" | "neumann" | "forward-push" | "backward-push" | "bidirectional";
306
+ result: {
307
+ graphId: string;
308
+ score: number;
309
+ nodeId: string;
310
+ alpha: number;
311
+ epsilon: number;
312
+ iterations: number;
313
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
314
+ coherence: {
315
+ score: number;
316
+ passed: boolean;
317
+ threshold: number;
318
+ };
319
+ computedAt: string;
320
+ resultHash: string;
321
+ };
322
+ envelopeVersion: "1.0.0";
323
+ kind: "pagerank";
324
+ installationId: string;
325
+ witnessKeyId: string;
326
+ publicKey: string;
327
+ graphHash: string;
328
+ graphTimestamp: string;
329
+ coherenceScore: number;
330
+ sealedAt: string;
331
+ queryNode?: string | undefined;
332
+ solverVersion?: string | undefined;
333
+ }>;
334
+ signature: z.ZodString;
335
+ algorithm: z.ZodLiteral<"ed25519">;
336
+ }, "strip", z.ZodTypeAny, {
337
+ algorithm: "ed25519";
338
+ payload: {
339
+ graphId: string;
340
+ alpha: number;
341
+ epsilon: number;
342
+ seedNodes: string[];
343
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
344
+ resultHash: string;
345
+ algorithm: "cg" | "neumann" | "forward-push" | "backward-push" | "bidirectional";
346
+ result: {
347
+ graphId: string;
348
+ score: number;
349
+ nodeId: string;
350
+ alpha: number;
351
+ epsilon: number;
352
+ iterations: number;
353
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
354
+ coherence: {
355
+ score: number;
356
+ passed: boolean;
357
+ threshold: number;
358
+ };
359
+ computedAt: string;
360
+ resultHash: string;
361
+ };
362
+ envelopeVersion: "1.0.0";
363
+ kind: "pagerank";
364
+ installationId: string;
365
+ witnessKeyId: string;
366
+ publicKey: string;
367
+ graphHash: string;
368
+ graphTimestamp: string;
369
+ coherenceScore: number;
370
+ sealedAt: string;
371
+ solverVersion: string;
372
+ queryNode?: string | undefined;
373
+ };
374
+ signature: string;
375
+ }, {
376
+ algorithm: "ed25519";
377
+ payload: {
378
+ graphId: string;
379
+ alpha: number;
380
+ epsilon: number;
381
+ seedNodes: string[];
382
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
383
+ resultHash: string;
384
+ algorithm: "cg" | "neumann" | "forward-push" | "backward-push" | "bidirectional";
385
+ result: {
386
+ graphId: string;
387
+ score: number;
388
+ nodeId: string;
389
+ alpha: number;
390
+ epsilon: number;
391
+ iterations: number;
392
+ complexityClass: "unknown" | "constant" | "logarithmic" | "polylogarithmic" | "sublinear" | "linear" | "linearithmic" | "polynomial" | "exponential" | "doubleExponential" | "adaptive" | "unbounded";
393
+ coherence: {
394
+ score: number;
395
+ passed: boolean;
396
+ threshold: number;
397
+ };
398
+ computedAt: string;
399
+ resultHash: string;
400
+ };
401
+ envelopeVersion: "1.0.0";
402
+ kind: "pagerank";
403
+ installationId: string;
404
+ witnessKeyId: string;
405
+ publicKey: string;
406
+ graphHash: string;
407
+ graphTimestamp: string;
408
+ coherenceScore: number;
409
+ sealedAt: string;
410
+ queryNode?: string | undefined;
411
+ solverVersion?: string | undefined;
412
+ };
413
+ signature: string;
414
+ }>;
415
+ export type SignedPageRankEnvelope = z.infer<typeof SignedPageRankEnvelopeSchema>;
416
+ export interface ArtifactVerificationResult {
417
+ valid: boolean;
418
+ signatureValid: boolean;
419
+ schemaValid: boolean;
420
+ /** True iff graphHash + resultHash + signature all check out. */
421
+ integrityValid: boolean;
422
+ publicKey?: string;
423
+ /** Complexity class echo — callers can budget against this. */
424
+ complexityClass?: PageRankResult['complexityClass'];
425
+ /** Coherence margin echo — callers can sanity-check input stability. */
426
+ coherenceScore?: number;
427
+ reason?: string;
428
+ }
429
+ //# sourceMappingURL=signed-artifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed-artifact.d.ts","sourceRoot":"","sources":["../../src/domain/signed-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,yBAAyB,UAAU,CAAC;AACjD,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAEjD,eAAO,MAAM,2BAA2B;;;;IAItC,kEAAkE;;IAElE,0CAA0C;;IAE1C,6DAA6D;;IAE7D,mDAAmD;;IAEnD,kCAAkC;;;;;IAKlC,mDAAmD;;IAEnD,4CAA4C;;IAE5C,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE5C,0EAA0E;;IAE1E,wEAAwE;;IAExE,mDAAmD;;IAEnD,oCAAoC;;IAEpC,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE3B,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,4BAA4B;;;;;QAhCvC,kEAAkE;;QAElE,0CAA0C;;QAE1C,6DAA6D;;QAE7D,mDAAmD;;QAEnD,kCAAkC;;;;;QAKlC,mDAAmD;;QAEnD,4CAA4C;;QAE5C,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAE5C,0EAA0E;;QAE1E,wEAAwE;;QAExE,mDAAmD;;QAEnD,oCAAoC;;QAEpC,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS3B,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACpD,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Signed PageRank Artifact (Phase 7 — beyond-SOTA, ADR-123)
3
+ *
4
+ * RuFlo gains a primitive no competing memory framework can ship: a portable,
5
+ * Ed25519-signed PageRank result that carries enough metadata for a remote
6
+ * peer to verify provenance + budget compliance + input stability without
7
+ * trusting the producer. Federation peers exchange these instead of
8
+ * re-walking graphs.
9
+ *
10
+ * Schema mirrors the ADR-123 Architecture diagram with the upstream 1.7.0
11
+ * additions: `complexity_class` (budget compliance) + `coherence_score`
12
+ * (DD-margin at compute time).
13
+ */
14
+ import { z } from 'zod';
15
+ import { ComplexityClassSchema, PageRankResultSchema, } from './types.js';
16
+ export const ARTIFACT_ENVELOPE_VERSION = '1.0.0';
17
+ export const ARTIFACT_ENVELOPE_KIND = 'pagerank';
18
+ export const SignedPageRankPayloadSchema = z.object({
19
+ envelopeVersion: z.literal(ARTIFACT_ENVELOPE_VERSION),
20
+ kind: z.literal(ARTIFACT_ENVELOPE_KIND),
21
+ installationId: z.string().min(1),
22
+ /** Witness key ID (key version, not key identity per ADR-103). */
23
+ witnessKeyId: z.string().min(1),
24
+ /** Ed25519 public key (hex, 32 bytes). */
25
+ publicKey: z.string().regex(/^[0-9a-f]{64}$/),
26
+ /** Adapter graph id (e.g. `ruflo-federation:trust-mesh`). */
27
+ graphId: z.string().min(1),
28
+ /** SHA-256 of the input matrix's `contentHash`. */
29
+ graphHash: z.string().regex(/^[0-9a-f]{64}$/),
30
+ /** Wall-clock at compute time. */
31
+ graphTimestamp: z.string(),
32
+ algorithm: z.enum(['forward-push', 'backward-push', 'bidirectional', 'cg', 'neumann']),
33
+ alpha: z.number().positive().lt(1),
34
+ epsilon: z.number().positive(),
35
+ /** Query node — None for full-vector artifacts. */
36
+ queryNode: z.string().optional(),
37
+ /** Seed nodes (PPR). Empty for plain PR. */
38
+ seedNodes: z.array(z.string()),
39
+ /** Result (single-entry or full-vector). */
40
+ result: PageRankResultSchema,
41
+ /** Class the solver actually achieved (echoes result.complexityClass). */
42
+ complexityClass: ComplexityClassSchema,
43
+ /** Coherence margin at compute time (echoes result.coherence.score). */
44
+ coherenceScore: z.number(),
45
+ /** Hash of `result` (echoes result.resultHash). */
46
+ resultHash: z.string().regex(/^[0-9a-f]{64}$/),
47
+ /** When the envelope was sealed. */
48
+ sealedAt: z.string(),
49
+ /** Solver version used. */
50
+ solverVersion: z.string().default('sublinear-time-solver@1.7.0'),
51
+ });
52
+ export const SignedPageRankEnvelopeSchema = z.object({
53
+ payload: SignedPageRankPayloadSchema,
54
+ signature: z.string().regex(/^[0-9a-f]{128}$/),
55
+ algorithm: z.literal('ed25519'),
56
+ });
57
+ //# sourceMappingURL=signed-artifact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed-artifact.js","sourceRoot":"","sources":["../../src/domain/signed-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GAErB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AACjD,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAEjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACvC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,kEAAkE;IAClE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,0CAA0C;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC7C,6DAA6D;IAC7D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,mDAAmD;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC7C,kCAAkC;IAClC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACtF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,mDAAmD;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,4CAA4C;IAC5C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,4CAA4C;IAC5C,MAAM,EAAE,oBAAoB;IAC5B,0EAA0E;IAC1E,eAAe,EAAE,qBAAqB;IACtC,wEAAwE;IACxE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,mDAAmD;IACnD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC9C,oCAAoC;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,2BAA2B;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;CACjE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,OAAO,EAAE,2BAA2B;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;CAChC,CAAC,CAAC"}