kiokuko 1.0.40 → 1.0.43

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 (143) hide show
  1. package/README.md +2 -0
  2. package/dist/agent-file/atomic-write.d.ts.map +1 -1
  3. package/dist/agent-file/atomic-write.js +2 -1
  4. package/dist/agent-file/atomic-write.js.map +1 -1
  5. package/dist/agent-file/render.d.ts +1 -1
  6. package/dist/agent-file/render.js +1 -1
  7. package/dist/akinator/agent-task.d.ts +4 -2
  8. package/dist/akinator/agent-task.d.ts.map +1 -1
  9. package/dist/akinator/agent-task.js +14 -4
  10. package/dist/akinator/agent-task.js.map +1 -1
  11. package/dist/akinator/preparation-recovery.d.ts.map +1 -1
  12. package/dist/assurance/codex-hooks.js +1 -1
  13. package/dist/assurance/codex-hooks.js.map +1 -1
  14. package/dist/assurance/contracts.d.ts +1 -1
  15. package/dist/assurance/doctor.d.ts +1 -1
  16. package/dist/assurance/service.d.ts +1 -1
  17. package/dist/assurance/verification-contracts.d.ts +1 -1
  18. package/dist/assurance/verification.d.ts +1 -1
  19. package/dist/cli.d.ts.map +1 -1
  20. package/dist/cli.js +23 -4
  21. package/dist/cli.js.map +1 -1
  22. package/dist/commands/agent.d.ts.map +1 -1
  23. package/dist/commands/agent.js +15 -3
  24. package/dist/commands/agent.js.map +1 -1
  25. package/dist/commands/doctor.d.ts +3 -0
  26. package/dist/commands/doctor.d.ts.map +1 -1
  27. package/dist/commands/doctor.js +26 -2
  28. package/dist/commands/doctor.js.map +1 -1
  29. package/dist/commands/embeddings.d.ts.map +1 -1
  30. package/dist/commands/embeddings.js +11 -5
  31. package/dist/commands/embeddings.js.map +1 -1
  32. package/dist/commands/use.d.ts.map +1 -1
  33. package/dist/commands/use.js +10 -1
  34. package/dist/commands/use.js.map +1 -1
  35. package/dist/context/broker.d.ts +4 -1
  36. package/dist/context/broker.d.ts.map +1 -1
  37. package/dist/context/broker.js +9 -3
  38. package/dist/context/broker.js.map +1 -1
  39. package/dist/context/ranking.d.ts +1 -1
  40. package/dist/context/ranking.d.ts.map +1 -1
  41. package/dist/context/ranking.js +2 -1
  42. package/dist/context/ranking.js.map +1 -1
  43. package/dist/context/scoped-broker.d.ts +3 -1
  44. package/dist/context/scoped-broker.d.ts.map +1 -1
  45. package/dist/context/scoped-broker.js +8 -5
  46. package/dist/context/scoped-broker.js.map +1 -1
  47. package/dist/db/capabilities.js +3 -3
  48. package/dist/db/capabilities.js.map +1 -1
  49. package/dist/db/connection.d.ts.map +1 -1
  50. package/dist/db/connection.js +3 -4
  51. package/dist/db/connection.js.map +1 -1
  52. package/dist/embedding/diagnostics.d.ts.map +1 -1
  53. package/dist/embedding/diagnostics.js +9 -8
  54. package/dist/embedding/diagnostics.js.map +1 -1
  55. package/dist/embedding/sqlite-vec-loader.d.ts +2 -5
  56. package/dist/embedding/sqlite-vec-loader.d.ts.map +1 -1
  57. package/dist/embedding/sqlite-vec-loader.js +23 -5
  58. package/dist/embedding/sqlite-vec-loader.js.map +1 -1
  59. package/dist/gateway/checkpoint-mutation-service.d.ts.map +1 -1
  60. package/dist/gateway/checkpoint-mutation-service.js +2 -1
  61. package/dist/gateway/checkpoint-mutation-service.js.map +1 -1
  62. package/dist/ledger/checkpoint-contract.d.ts +8 -8
  63. package/dist/mcp/chatgpt-contract.d.ts +33 -1
  64. package/dist/mcp/chatgpt-contract.d.ts.map +1 -1
  65. package/dist/mcp/chatgpt-contract.js +4 -2
  66. package/dist/mcp/chatgpt-contract.js.map +1 -1
  67. package/dist/mcp/server.d.ts.map +1 -1
  68. package/dist/mcp/server.js +5 -4
  69. package/dist/mcp/server.js.map +1 -1
  70. package/dist/memory/checkpoint-contract.d.ts +12 -12
  71. package/dist/memory/context-budget.d.ts +5 -0
  72. package/dist/memory/context-budget.d.ts.map +1 -0
  73. package/dist/memory/context-budget.js +5 -0
  74. package/dist/memory/context-budget.js.map +1 -0
  75. package/dist/memory/federated-retrieval.d.ts.map +1 -1
  76. package/dist/memory/federated-retrieval.js +11 -6
  77. package/dist/memory/federated-retrieval.js.map +1 -1
  78. package/dist/memory/global-conversation-query.d.ts +3 -0
  79. package/dist/memory/global-conversation-query.d.ts.map +1 -1
  80. package/dist/memory/global-conversation-query.js +5 -2
  81. package/dist/memory/global-conversation-query.js.map +1 -1
  82. package/dist/memory/handoff.d.ts +2 -2
  83. package/dist/memory/handoff.d.ts.map +1 -1
  84. package/dist/memory/handoff.js +1 -1
  85. package/dist/memory/handoff.js.map +1 -1
  86. package/dist/memory/interaction-contract.d.ts +10 -10
  87. package/dist/memory/interaction-contract.d.ts.map +1 -1
  88. package/dist/memory/interaction-contract.js +3 -2
  89. package/dist/memory/interaction-contract.js.map +1 -1
  90. package/dist/memory/interaction-recall.d.ts +3 -0
  91. package/dist/memory/interaction-recall.d.ts.map +1 -1
  92. package/dist/memory/interaction-recall.js +2 -1
  93. package/dist/memory/interaction-recall.js.map +1 -1
  94. package/dist/memory/observation-contract.d.ts +12 -6
  95. package/dist/memory/observation-contract.d.ts.map +1 -1
  96. package/dist/memory/observation-contract.js +3 -1
  97. package/dist/memory/observation-contract.js.map +1 -1
  98. package/dist/memory/observations.d.ts.map +1 -1
  99. package/dist/memory/observations.js +21 -5
  100. package/dist/memory/observations.js.map +1 -1
  101. package/dist/memory/relation-delivery.d.ts +107 -0
  102. package/dist/memory/relation-delivery.d.ts.map +1 -0
  103. package/dist/memory/relation-delivery.js +163 -0
  104. package/dist/memory/relation-delivery.js.map +1 -0
  105. package/dist/memory/replay-contract.d.ts +7 -0
  106. package/dist/memory/replay-contract.d.ts.map +1 -0
  107. package/dist/memory/replay-contract.js +18 -0
  108. package/dist/memory/replay-contract.js.map +1 -0
  109. package/dist/memory/replay-extract.d.ts.map +1 -1
  110. package/dist/memory/replay-extract.js +35 -11
  111. package/dist/memory/replay-extract.js.map +1 -1
  112. package/dist/memory/replay-observations.d.ts +1 -1
  113. package/dist/memory/replay-observations.d.ts.map +1 -1
  114. package/dist/memory/replay-observations.js +4 -3
  115. package/dist/memory/replay-observations.js.map +1 -1
  116. package/dist/memory/retrieval.d.ts +3 -0
  117. package/dist/memory/retrieval.d.ts.map +1 -1
  118. package/dist/memory/retrieval.js +8 -5
  119. package/dist/memory/retrieval.js.map +1 -1
  120. package/dist/repository/binding-repair.d.ts +38 -0
  121. package/dist/repository/binding-repair.d.ts.map +1 -0
  122. package/dist/repository/binding-repair.js +129 -0
  123. package/dist/repository/binding-repair.js.map +1 -0
  124. package/dist/server/agent-checkpoint-use-case.d.ts.map +1 -1
  125. package/dist/server/agent-checkpoint-use-case.js +1 -0
  126. package/dist/server/agent-checkpoint-use-case.js.map +1 -1
  127. package/dist/server/routes/agent-capability-gate.d.ts.map +1 -1
  128. package/dist/server/routes/agent-capability-gate.js +1 -0
  129. package/dist/server/routes/agent-capability-gate.js.map +1 -1
  130. package/dist/web/server.d.ts.map +1 -1
  131. package/dist/web/server.js +5 -1
  132. package/dist/web/server.js.map +1 -1
  133. package/docs/agenticreplay.md +2 -0
  134. package/docs/cli-contract.md +1 -1
  135. package/docs/context-delivery.md +62 -0
  136. package/docs/getting-started.md +1 -1
  137. package/docs/interaction-memory.md +1 -1
  138. package/docs/semantic-retrieval.md +1 -1
  139. package/docs/sqlite-driver-adr.md +3 -0
  140. package/docs/verification.md +4 -1
  141. package/package.json +1 -1
  142. package/skills/kiokuko-soul/SKILL.md +15 -10
  143. package/templates/AGENTS.md +2 -2
@@ -0,0 +1,107 @@
1
+ import type { SqliteDatabase, SqliteRow } from '../db/adapter.js';
2
+ import * as z from 'zod/v4';
3
+ export declare const RELATION_TYPES: readonly ["supports", "contradicts", "derived_from", "related_to"];
4
+ export type RelationType = (typeof RELATION_TYPES)[number];
5
+ export interface RelationEndpoint {
6
+ workspace: string;
7
+ entryId: string;
8
+ }
9
+ export interface DeliveredRelation {
10
+ from: RelationEndpoint;
11
+ to: RelationEndpoint;
12
+ type: RelationType;
13
+ }
14
+ export type SelectionOmission = 'body_budget' | 'item_limit' | 'final_filter';
15
+ export interface RelationDelivery {
16
+ scope: 'provided_items';
17
+ status: 'complete' | 'omitted_budget' | 'omitted_edge_cap' | 'omitted_unknown_type' | 'omitted_legacy';
18
+ edges: DeliveredRelation[];
19
+ selectionOmissions: SelectionOmission[];
20
+ }
21
+ export interface RelationDeliveryOptions {
22
+ relationCharacterBudget?: number;
23
+ relationEdgeCap?: number;
24
+ selectionOmissions?: readonly SelectionOmission[];
25
+ }
26
+ export declare const relationDeliverySchema: z.ZodObject<{
27
+ scope: z.ZodLiteral<"provided_items">;
28
+ status: z.ZodEnum<{
29
+ complete: "complete";
30
+ omitted_budget: "omitted_budget";
31
+ omitted_edge_cap: "omitted_edge_cap";
32
+ omitted_unknown_type: "omitted_unknown_type";
33
+ omitted_legacy: "omitted_legacy";
34
+ }>;
35
+ edges: z.ZodArray<z.ZodObject<{
36
+ from: z.ZodObject<{
37
+ workspace: z.ZodString;
38
+ entryId: z.ZodString;
39
+ }, z.core.$strict>;
40
+ to: z.ZodObject<{
41
+ workspace: z.ZodString;
42
+ entryId: z.ZodString;
43
+ }, z.core.$strict>;
44
+ type: z.ZodEnum<{
45
+ supports: "supports";
46
+ contradicts: "contradicts";
47
+ derived_from: "derived_from";
48
+ related_to: "related_to";
49
+ }>;
50
+ }, z.core.$strict>>;
51
+ selectionOmissions: z.ZodArray<z.ZodEnum<{
52
+ body_budget: "body_budget";
53
+ item_limit: "item_limit";
54
+ final_filter: "final_filter";
55
+ }>>;
56
+ }, z.core.$strict>;
57
+ export interface ProvidedRelationItem {
58
+ entryId: string;
59
+ workspace?: string;
60
+ revision?: number;
61
+ }
62
+ interface StoredRelation extends SqliteRow {
63
+ kind: string;
64
+ from_id: string;
65
+ from_workspace: string;
66
+ to_id: string;
67
+ to_workspace: string;
68
+ relation: string;
69
+ }
70
+ /** Adapter configuration; pure packing remains independent of the process environment. */
71
+ export declare function configuredRelationDeliveryOptions(options?: RelationDeliveryOptions): RelationDeliveryOptions;
72
+ /** View-only adaptation for a cached pre-contract task response; never rewrite stored history. */
73
+ export declare function markLegacyModelContext<T extends {
74
+ context?: unknown;
75
+ }>(value: T): T;
76
+ /** All edges or none. A complete result covers stored links between provided items only. */
77
+ export declare function packRelationDelivery(rows: readonly StoredRelation[], options?: RelationDeliveryOptions): RelationDelivery;
78
+ /** Old deliveries without a reconstructable relation snapshot must not claim completeness. */
79
+ export declare function legacyRelationDelivery(options?: RelationDeliveryOptions): RelationDelivery;
80
+ /** Restrict an attested complete superset after a consumer removes whole items. */
81
+ export declare function restrictRelationDelivery(raw: unknown, original: readonly ProvidedRelationItem[], provided: readonly ProvidedRelationItem[], options?: RelationDeliveryOptions): RelationDelivery;
82
+ /**
83
+ * One statement owns the SQLite read snapshot, including selected-revision checks.
84
+ * CROSS JOIN fixes the loop order: at most n² endpoint-pair index seeks (n <= 1000),
85
+ * rather than scanning an unbounded outgoing adjacency list. No global sort/count.
86
+ * LIMIT cap+1 bounds materialized edges, not the claim about internal scan work.
87
+ */
88
+ export declare function readRelationDelivery(database: SqliteDatabase, items: readonly ProvidedRelationItem[], options?: RelationDeliveryOptions): RelationDelivery;
89
+ interface ModelMemoryItem {
90
+ id?: string;
91
+ entryId?: string;
92
+ workspace?: string;
93
+ revision?: number;
94
+ entryRevision?: number;
95
+ content?: unknown;
96
+ }
97
+ /** Final presentation boundary: keep model-visible identities and recompute for these exact items. */
98
+ export declare function attachRelationDelivery<T extends {
99
+ items: readonly ModelMemoryItem[];
100
+ truncated?: boolean;
101
+ }>(database: SqliteDatabase, value: T, options?: RelationDeliveryOptions & {
102
+ itemLimit?: number;
103
+ }): T & {
104
+ relationDelivery: RelationDelivery;
105
+ };
106
+ export {};
107
+ //# sourceMappingURL=relation-delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-delivery.d.ts","sourceRoot":"","sources":["../../src/memory/relation-delivery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import * as z from 'zod/v4';
2
+ import { KiokukoError } from '../errors.js';
3
+ import { DEFAULT_RELATION_CHARACTERS, DEFAULT_RELATION_EDGE_CAP } from './context-budget.js';
4
+ export const RELATION_TYPES = ['supports', 'contradicts', 'derived_from', 'related_to'];
5
+ const endpointSchema = z.object({ workspace: z.string().min(1).max(256), entryId: z.string().min(1).max(256) }).strict();
6
+ export const relationDeliverySchema = z.object({
7
+ scope: z.literal('provided_items'),
8
+ status: z.enum(['complete', 'omitted_budget', 'omitted_edge_cap', 'omitted_unknown_type', 'omitted_legacy']),
9
+ edges: z.array(z.object({ from: endpointSchema, to: endpointSchema, type: z.enum(RELATION_TYPES) }).strict()).max(1024),
10
+ selectionOmissions: z.array(z.enum(['body_budget', 'item_limit', 'final_filter'])).max(3),
11
+ }).strict().refine(value => value.status === 'complete' || value.edges.length === 0, 'An omitted delivery cannot contain partial edges');
12
+ function limits(options) {
13
+ const characters = options.relationCharacterBudget ?? DEFAULT_RELATION_CHARACTERS;
14
+ const edgeCap = options.relationEdgeCap ?? DEFAULT_RELATION_EDGE_CAP;
15
+ if (!Number.isSafeInteger(characters) || characters < 1 || characters > 100_000
16
+ || !Number.isSafeInteger(edgeCap) || edgeCap < 1 || edgeCap > 1024
17
+ || options.selectionOmissions?.some(reason => !['body_budget', 'item_limit', 'final_filter'].includes(reason))) {
18
+ throw new KiokukoError('VALIDATION_ERROR', 'Relation delivery limits are invalid');
19
+ }
20
+ return { characters, edgeCap };
21
+ }
22
+ /** Adapter configuration; pure packing remains independent of the process environment. */
23
+ export function configuredRelationDeliveryOptions(options = {}) {
24
+ const result = { ...options,
25
+ relationCharacterBudget: options.relationCharacterBudget ?? Number(process.env.KIOKUKO_RELATION_CHARACTER_BUDGET ?? DEFAULT_RELATION_CHARACTERS),
26
+ relationEdgeCap: options.relationEdgeCap ?? Number(process.env.KIOKUKO_RELATION_EDGE_CAP ?? DEFAULT_RELATION_EDGE_CAP),
27
+ };
28
+ limits(result);
29
+ return result;
30
+ }
31
+ /** View-only adaptation for a cached pre-contract task response; never rewrite stored history. */
32
+ export function markLegacyModelContext(value) {
33
+ const context = value.context;
34
+ if (typeof context !== 'object' || context === null || Array.isArray(context)
35
+ || !Array.isArray(context.items) || Object.hasOwn(context, 'relationDelivery'))
36
+ return value;
37
+ return { ...value, context: { ...context, relationDelivery: legacyRelationDelivery(configuredRelationDeliveryOptions()) } };
38
+ }
39
+ /** All edges or none. A complete result covers stored links between provided items only. */
40
+ export function packRelationDelivery(rows, options = {}) {
41
+ const { characters, edgeCap } = limits(options);
42
+ const fit = (status, edges) => {
43
+ const value = { scope: 'provided_items', status, edges,
44
+ selectionOmissions: [...new Set(options.selectionOmissions ?? [])].sort() };
45
+ if (Array.from(JSON.stringify({ relationDelivery: value })).length <= characters)
46
+ return value;
47
+ if (status === 'complete')
48
+ return fit('omitted_budget', []);
49
+ throw new KiokukoError('VALIDATION_ERROR', 'Relation metadata budget cannot fit its explicit delivery status');
50
+ };
51
+ if (rows.length > edgeCap)
52
+ return fit('omitted_edge_cap', []);
53
+ if (rows.some(row => !RELATION_TYPES.includes(row.relation)))
54
+ return fit('omitted_unknown_type', []);
55
+ const edges = rows.map(row => ({ from: { workspace: row.from_workspace, entryId: row.from_id },
56
+ to: { workspace: row.to_workspace, entryId: row.to_id }, type: row.relation }));
57
+ edges.sort((a, b) => {
58
+ const left = JSON.stringify(a), right = JSON.stringify(b);
59
+ return left < right ? -1 : left > right ? 1 : 0;
60
+ });
61
+ return fit('complete', edges);
62
+ }
63
+ /** Old deliveries without a reconstructable relation snapshot must not claim completeness. */
64
+ export function legacyRelationDelivery(options = {}) {
65
+ const { characters } = limits(options);
66
+ const value = { scope: 'provided_items', status: 'omitted_legacy', edges: [],
67
+ selectionOmissions: [...new Set(options.selectionOmissions ?? [])].sort() };
68
+ if (Array.from(JSON.stringify({ relationDelivery: value })).length > characters) {
69
+ throw new KiokukoError('VALIDATION_ERROR', 'Relation metadata budget cannot fit its explicit delivery status');
70
+ }
71
+ return value;
72
+ }
73
+ /** Restrict an attested complete superset after a consumer removes whole items. */
74
+ export function restrictRelationDelivery(raw, original, provided, options = {}) {
75
+ if (raw === undefined)
76
+ return legacyRelationDelivery(options);
77
+ const parsed = relationDeliverySchema.safeParse(raw);
78
+ if (!parsed.success)
79
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored relation delivery is invalid');
80
+ const key = (item) => JSON.stringify([item.workspace, item.entryId]);
81
+ const originalIds = new Set(original.map(key));
82
+ if (provided.some(item => !originalIds.has(key(item))))
83
+ throw new KiokukoError('INTEGRITY_ERROR', 'Final relation items are not a subset of the original delivery');
84
+ if (parsed.data.status === 'complete' && original.some(item => !item.workspace))
85
+ throw new KiokukoError('INTEGRITY_ERROR', 'Complete relations require model-visible workspace identities');
86
+ if (parsed.data.edges.some(edge => !originalIds.has(key(edge.from)) || !originalIds.has(key(edge.to))))
87
+ throw new KiokukoError('INTEGRITY_ERROR', 'Relation endpoints are outside the original delivery');
88
+ const ids = new Set(provided.map(key));
89
+ const selectionOmissions = [...new Set([...parsed.data.selectionOmissions, ...(options.selectionOmissions ?? []),
90
+ ...(provided.length < original.length ? ['final_filter'] : [])])].sort();
91
+ const settings = { ...options, selectionOmissions };
92
+ if (parsed.data.status === 'complete') {
93
+ return packRelationDelivery(parsed.data.edges.filter(edge => ids.has(key(edge.from)) && ids.has(key(edge.to))).map(edge => ({
94
+ kind: 'edge', from_id: edge.from.entryId, from_workspace: edge.from.workspace,
95
+ to_id: edge.to.entryId, to_workspace: edge.to.workspace, relation: edge.type,
96
+ })), settings);
97
+ }
98
+ const { characters } = limits(settings);
99
+ const value = { ...parsed.data, edges: [], selectionOmissions };
100
+ if (Array.from(JSON.stringify({ relationDelivery: value })).length > characters)
101
+ throw new KiokukoError('VALIDATION_ERROR', 'Relation metadata budget cannot fit its explicit delivery status');
102
+ return value;
103
+ }
104
+ /**
105
+ * One statement owns the SQLite read snapshot, including selected-revision checks.
106
+ * CROSS JOIN fixes the loop order: at most n² endpoint-pair index seeks (n <= 1000),
107
+ * rather than scanning an unbounded outgoing adjacency list. No global sort/count.
108
+ * LIMIT cap+1 bounds materialized edges, not the claim about internal scan work.
109
+ */
110
+ export function readRelationDelivery(database, items, options = {}) {
111
+ const { edgeCap } = limits(options);
112
+ if (items.length > 1000 || new Set(items.map(item => item.entryId)).size !== items.length
113
+ || items.some(item => typeof item.entryId !== 'string' || !item.entryId
114
+ || item.workspace !== undefined && (typeof item.workspace !== 'string' || !item.workspace)
115
+ || item.revision !== undefined && (!Number.isSafeInteger(item.revision) || item.revision < 1))) {
116
+ throw new KiokukoError('VALIDATION_ERROR', 'Provided relation endpoints are invalid');
117
+ }
118
+ if (items.length === 0)
119
+ return packRelationDelivery([], options);
120
+ const sql = 'WITH selected(id, workspace, revision) AS (VALUES ' + items.map(() => '(?,?,?)').join(',') + '), '
121
+ + 'current AS (SELECT s.id, e.workspace, e.current_revision FROM selected s JOIN entries e ON e.id=s.id), '
122
+ + 'invalid AS (SELECT 1 FROM selected s LEFT JOIN current e ON e.id=s.id '
123
+ + 'WHERE e.id IS NULL OR (s.workspace IS NOT NULL AND s.workspace<>e.workspace) '
124
+ + 'OR (s.revision IS NOT NULL AND s.revision<>e.current_revision) LIMIT 1), '
125
+ + 'links AS (SELECT a.id from_id, a.workspace from_workspace, b.id to_id, b.workspace to_workspace, l.relation '
126
+ + 'FROM current a CROSS JOIN current b CROSS JOIN entry_links l '
127
+ + 'WHERE l.from_entry_id=a.id AND l.to_entry_id=b.id LIMIT ?) '
128
+ + "SELECT 'invalid' kind, '' from_id, '' from_workspace, '' to_id, '' to_workspace, '' relation FROM invalid "
129
+ + "UNION ALL SELECT 'edge' kind, from_id, from_workspace, to_id, to_workspace, relation FROM links";
130
+ const rows = database.prepare(sql).all(...items.flatMap(item => [item.entryId, item.workspace ?? null, item.revision ?? null]), edgeCap + 1);
131
+ if (rows.some(row => row.kind === 'invalid'))
132
+ throw new KiokukoError('CONFLICT', 'Provided items changed before relation delivery');
133
+ return packRelationDelivery(rows, options);
134
+ }
135
+ /** Final presentation boundary: keep model-visible identities and recompute for these exact items. */
136
+ export function attachRelationDelivery(database, value, options = {}) {
137
+ const ids = value.items.map(item => item.entryId ?? item.id ?? '');
138
+ if (ids.some(id => !id) || ids.length > 1000)
139
+ throw new KiokukoError('VALIDATION_ERROR', 'Model memory identities are invalid');
140
+ const identities = ids.length ? database.prepare('SELECT id, workspace, current_revision FROM entries WHERE id IN ('
141
+ + ids.map(() => '?').join(',') + ')').all(...ids) : [];
142
+ const byId = new Map(identities.map(row => [row.id, row]));
143
+ const references = value.items.map((item, index) => {
144
+ const current = byId.get(ids[index]);
145
+ if (!current)
146
+ throw new KiokukoError('CONFLICT', 'A provided memory disappeared before relation delivery');
147
+ return { entryId: current.id, workspace: item.workspace ?? current.workspace,
148
+ revision: item.revision ?? item.entryRevision ?? current.current_revision };
149
+ });
150
+ const omissions = new Set(options.selectionOmissions ?? []);
151
+ if (options.itemLimit !== undefined && value.items.length >= options.itemLimit)
152
+ omissions.add('item_limit');
153
+ const partialBody = value.items.some(item => typeof item.content === 'object' && item.content !== null
154
+ && item.content.truncated === true);
155
+ if (partialBody)
156
+ omissions.add('body_budget');
157
+ if (value.truncated && omissions.size === 0)
158
+ omissions.add('final_filter');
159
+ const configured = configuredRelationDeliveryOptions({ ...options, selectionOmissions: [...omissions] });
160
+ const relationDelivery = readRelationDelivery(database, references, configured);
161
+ return { ...value, items: value.items.map((item, index) => ({ ...item, workspace: references[index].workspace })), relationDelivery };
162
+ }
163
+ //# sourceMappingURL=relation-delivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-delivery.js","sourceRoot":"","sources":["../../src/memory/relation-delivery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** Accept new schema labels only when the event fields this reader uses still fit. */
2
+ export declare function declaredReplaySchema(value: unknown): boolean;
3
+ export declare function compatibleReplayEvent(value: unknown): value is Record<string, unknown> & {
4
+ seq: number;
5
+ type: string;
6
+ };
7
+ //# sourceMappingURL=replay-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-contract.d.ts","sourceRoot":"","sources":["../../src/memory/replay-contract.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG5D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAStH"}
@@ -0,0 +1,18 @@
1
+ /** Accept new schema labels only when the event fields this reader uses still fit. */
2
+ export function declaredReplaySchema(value) {
3
+ return typeof value === 'string' && value.length > 0 && value.length <= 100
4
+ && !/[\u0000-\u001f\u007f]/u.test(value);
5
+ }
6
+ export function compatibleReplayEvent(value) {
7
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
8
+ return false;
9
+ const event = value;
10
+ if (typeof event.seq !== 'number' || !Number.isSafeInteger(event.seq) || event.seq < 1
11
+ || typeof event.type !== 'string' || event.type.length === 0 || event.type.length > 100)
12
+ return false;
13
+ if (['user.message', 'model.request', 'tool.call', 'shell.call'].includes(event.type)) {
14
+ return event.payload !== null && typeof event.payload === 'object' && !Array.isArray(event.payload);
15
+ }
16
+ return true;
17
+ }
18
+ //# sourceMappingURL=replay-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-contract.js","sourceRoot":"","sources":["../../src/memory/replay-contract.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;WACtE,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;WACjF,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IACxG,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtF,OAAO,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"replay-extract.d.ts","sourceRoot":"","sources":["../../src/memory/replay-extract.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAkB/D,yGAAyG;AACzG,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA+F/K"}
1
+ {"version":3,"file":"replay-extract.d.ts","sourceRoot":"","sources":["../../src/memory/replay-extract.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAkB/D,yGAAyG;AACzG,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAsH/K"}
@@ -2,6 +2,7 @@ import { createHash } from 'node:crypto';
2
2
  import { readFile, realpath, stat } from 'node:fs/promises';
3
3
  import path from 'node:path';
4
4
  import { findSecret, findSecretInValue } from './secrets.js';
5
+ import { compatibleReplayEvent, declaredReplaySchema } from './replay-contract.js';
5
6
  const hash = (bytes) => createHash('sha256').update(bytes).digest('hex');
6
7
  const object = (v) => v && typeof v === 'object' && !Array.isArray(v) ? v : {};
7
8
  const safe = (v, n = 2048) => {
@@ -31,7 +32,8 @@ export async function extractReplayProposal(input) {
31
32
  if (!runs.startsWith(root + path.sep) || !directory.startsWith(runs + path.sep))
32
33
  throw new Error('replay_scope_mismatch');
33
34
  const manifest = object(JSON.parse((await bounded(path.join(directory, 'manifest.json'), directory, 65536)).toString('utf8')));
34
- if (manifest.schema_version !== '0.4.0' || typeof manifest.run_id !== 'string' || !/^run_[0-9a-f]{6,32}$/u.test(manifest.run_id))
35
+ if (!declaredReplaySchema(manifest.schema_version) || typeof manifest.run_id !== 'string' || !/^run_[0-9a-f]{6,32}$/u.test(manifest.run_id)
36
+ || typeof manifest.cwd !== 'string' || await realpath(manifest.cwd) !== root)
35
37
  throw new Error('replay_contract_mismatch');
36
38
  const candidates = [];
37
39
  for (const name of ['events.jsonl', 'event.jsonl']) {
@@ -57,7 +59,7 @@ export async function extractReplayProposal(input) {
57
59
  if (events.length >= 10000)
58
60
  throw new Error('replay_event_bound');
59
61
  const raw = object(JSON.parse(line));
60
- if (!Number.isSafeInteger(raw.seq) || Number(raw.seq) <= sequence || typeof raw.type !== 'string')
62
+ if (!compatibleReplayEvent(raw) || Number(raw.seq) <= sequence)
61
63
  throw new Error('replay_event_invalid');
62
64
  sequence = Number(raw.seq);
63
65
  let payload = object(raw.payload), payloadHash = hash(JSON.stringify(payload));
@@ -75,12 +77,32 @@ export async function extractReplayProposal(input) {
75
77
  events.push({ raw, payload, ref: `${manifest.run_id}:${sequence}`, payloadHash });
76
78
  }
77
79
  const requestTexts = new Map();
78
- for (const event of events) {
79
- if (event.raw.type === 'user.message') {
80
- const text = safe(event.payload.text);
81
- if (text)
82
- requestTexts.set(text, event.ref);
80
+ let omittedRequestMessages = 0, truncatedRequestText = false;
81
+ const requestExcerpt = (text, limit) => {
82
+ if (text.length <= limit)
83
+ return text;
84
+ truncatedRequestText = true;
85
+ const marker = '\n[... request text omitted ...]\n';
86
+ const head = Math.floor(limit / 4);
87
+ return text.slice(0, head) + marker + text.slice(-(limit - head - marker.length));
88
+ };
89
+ const rememberRequest = (content, ref) => {
90
+ if (typeof content !== 'string')
91
+ return;
92
+ // Scan the full field for secrets before retaining bounded beginning/end excerpts.
93
+ const text = requestExcerpt(safe(content, content.length), 2048);
94
+ if (!text)
95
+ return;
96
+ requestTexts.delete(text);
97
+ requestTexts.set(text, ref);
98
+ if (requestTexts.size > 20) {
99
+ requestTexts.delete(requestTexts.keys().next().value);
100
+ omittedRequestMessages += 1;
83
101
  }
102
+ };
103
+ for (const event of events) {
104
+ if (event.raw.type === 'user.message')
105
+ rememberRequest(event.payload.text, event.ref);
84
106
  if (event.raw.type !== 'model.request' || !Array.isArray(event.payload.messages))
85
107
  continue;
86
108
  for (const message of event.payload.messages) {
@@ -88,9 +110,7 @@ export async function extractReplayProposal(input) {
88
110
  if (m.role !== 'user')
89
111
  continue;
90
112
  const content = typeof m.content === 'string' ? m.content : Array.isArray(m.content) ? m.content.map(p => { const b = object(p); return b.type === 'text' ? b.text : ''; }).filter(v => typeof v === 'string').join('\n') : '';
91
- const text = safe(content);
92
- if (text && requestTexts.size < 20)
93
- requestTexts.set(text, event.ref);
113
+ rememberRequest(content, event.ref);
94
114
  }
95
115
  }
96
116
  const attempts = [];
@@ -150,7 +170,11 @@ export async function extractReplayProposal(input) {
150
170
  if (refs.length)
151
171
  languages.push({ name, basis: 'inferred', evidenceRefs: refs });
152
172
  }
153
- const text = [...requestTexts.keys()].join('\n').slice(0, 4096);
173
+ const text = requestExcerpt([...requestTexts.keys()].join('\n'), 4096);
174
+ if (omittedRequestMessages)
175
+ gaps.push('request messages omitted; only the latest 20 distinct excerpts are retained');
176
+ if (truncatedRequestText)
177
+ gaps.push('request text truncated; beginning and most recent portions are retained');
154
178
  if (text)
155
179
  gaps.push('request text from recorded user-role messages; current human identity and exact task binding require review');
156
180
  if (!text)
@@ -1 +1 @@
1
- {"version":3,"file":"replay-extract.js","sourceRoot":"","sources":["../../src/memory/replay-extract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replay-extract.js","sourceRoot":"","sources":["../../src/memory/replay-extract.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { MemoryObservation } from './observation-contract.js';
2
- /** AgenticReplay directory trace schema 0.4.0. Never read blobs or copy payloads. */
2
+ /** Read compatible AgenticReplay event metadata. Never read blobs or copy payloads. */
3
3
  export declare function readReplayObservation(input: {
4
4
  cwd: string;
5
5
  traceDirectory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"replay-observations.d.ts","sourceRoot":"","sources":["../../src/memory/replay-observations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,qFAAqF;AACrF,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,GAAG,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC;CAC3F,GAAG,OAAO,CAAC;IAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA4DnE"}
1
+ {"version":3,"file":"replay-observations.d.ts","sourceRoot":"","sources":["../../src/memory/replay-observations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,uFAAuF;AACvF,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,GAAG,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC;CAC3F,GAAG,OAAO,CAAC;IAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA4DnE"}
@@ -1,7 +1,8 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { readFile, realpath, stat } from 'node:fs/promises';
3
3
  import path from 'node:path';
4
- /** AgenticReplay directory trace schema 0.4.0. Never read blobs or copy payloads. */
4
+ import { compatibleReplayEvent, declaredReplaySchema } from './replay-contract.js';
5
+ /** Read compatible AgenticReplay event metadata. Never read blobs or copy payloads. */
5
6
  export async function readReplayObservation(input) {
6
7
  try {
7
8
  const cwd = await realpath(input.cwd), directory = await realpath(input.traceDirectory);
@@ -20,7 +21,7 @@ export async function readReplayObservation(input) {
20
21
  if (manifestBytes.length > 64 * 1024)
21
22
  return { warnings: ['replay_source_bound'] };
22
23
  const manifest = JSON.parse(manifestBytes.toString('utf8'));
23
- if (manifest.schema_version !== '0.4.0' || typeof manifest.run_id !== 'string'
24
+ if (!declaredReplaySchema(manifest.schema_version) || typeof manifest.run_id !== 'string'
24
25
  || !/^run_[0-9a-f]{6,32}$/u.test(manifest.run_id) || typeof manifest.cwd !== 'string'
25
26
  || await realpath(manifest.cwd) !== cwd)
26
27
  return { warnings: ['replay_contract_mismatch'] };
@@ -43,7 +44,7 @@ export async function readReplayObservation(input) {
43
44
  if (++count > 10000)
44
45
  return { warnings: ['replay_source_bound'] };
45
46
  const event = JSON.parse(line);
46
- if (!Number.isSafeInteger(event.seq) || Number(event.seq) <= sequence || typeof event.type !== 'string') {
47
+ if (!compatibleReplayEvent(event) || Number(event.seq) <= sequence) {
47
48
  return { warnings: ['replay_event_invalid'] };
48
49
  }
49
50
  sequence = Number(event.seq);
@@ -1 +1 @@
1
- {"version":3,"file":"replay-observations.js","sourceRoot":"","sources":["../../src/memory/replay-observations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replay-observations.js","sourceRoot":"","sources":["../../src/memory/replay-observations.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type RelationDelivery } from './relation-delivery.js';
1
2
  import type { SqliteDatabase } from '../db/adapter.js';
2
3
  import { type EntryRecord } from './entries.js';
3
4
  import { type EntryKind, type EntryStatus } from '../serialization/validate.js';
@@ -30,6 +31,7 @@ export interface RecallEntriesInput extends SearchEntriesInput {
30
31
  maxChars?: number;
31
32
  }
32
33
  export interface RecallItem {
34
+ revision?: number;
33
35
  id: string;
34
36
  workspace: string;
35
37
  kind: EntryKind;
@@ -46,6 +48,7 @@ export interface RecallItem {
46
48
  selectionReasons?: string[];
47
49
  }
48
50
  export interface RecallResult {
51
+ relationDelivery?: RelationDelivery;
49
52
  items: RecallItem[];
50
53
  count: number;
51
54
  characterCount: number;
@@ -1 +1 @@
1
- {"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../src/memory/retrieval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../src/memory/retrieval.ts"],"names":[],"mappings":"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"}