kiokuko 1.0.41 → 1.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +21 -159
- package/README.ko.md +21 -125
- package/README.md +21 -194
- package/README.zh-CN.md +21 -126
- package/dist/agent-file/atomic-write.d.ts.map +1 -1
- package/dist/agent-file/atomic-write.js +2 -1
- package/dist/agent-file/atomic-write.js.map +1 -1
- package/dist/akinator/agent-task.d.ts +4 -2
- package/dist/akinator/agent-task.d.ts.map +1 -1
- package/dist/akinator/agent-task.js +14 -4
- package/dist/akinator/agent-task.js.map +1 -1
- package/dist/akinator/preparation-recovery.d.ts.map +1 -1
- package/dist/assurance/inspect.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +64 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +15 -3
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/code-version.d.ts +6 -0
- package/dist/commands/code-version.d.ts.map +1 -0
- package/dist/commands/code-version.js +66 -0
- package/dist/commands/code-version.js.map +1 -0
- package/dist/commands/doctor.d.ts +14 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +101 -32
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/use.d.ts.map +1 -1
- package/dist/commands/use.js +10 -1
- package/dist/commands/use.js.map +1 -1
- package/dist/context/broker.d.ts +4 -1
- package/dist/context/broker.d.ts.map +1 -1
- package/dist/context/broker.js +9 -3
- package/dist/context/broker.js.map +1 -1
- package/dist/context/ranking.d.ts +1 -1
- package/dist/context/ranking.d.ts.map +1 -1
- package/dist/context/ranking.js +2 -1
- package/dist/context/ranking.js.map +1 -1
- package/dist/context/scoped-broker.d.ts +3 -1
- package/dist/context/scoped-broker.d.ts.map +1 -1
- package/dist/context/scoped-broker.js +8 -5
- package/dist/context/scoped-broker.js.map +1 -1
- package/dist/gateway/checkpoint-mutation-service.d.ts.map +1 -1
- package/dist/gateway/checkpoint-mutation-service.js +2 -1
- package/dist/gateway/checkpoint-mutation-service.js.map +1 -1
- package/dist/mcp/chatgpt-contract.d.ts +32 -0
- package/dist/mcp/chatgpt-contract.d.ts.map +1 -1
- package/dist/mcp/chatgpt-contract.js +4 -2
- package/dist/mcp/chatgpt-contract.js.map +1 -1
- package/dist/mcp/request-deadline.d.ts +1 -1
- package/dist/mcp/request-deadline.d.ts.map +1 -1
- package/dist/mcp/request-deadline.js +1 -0
- package/dist/mcp/request-deadline.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +47 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/memory/applicability-context.d.ts +24 -0
- package/dist/memory/applicability-context.d.ts.map +1 -0
- package/dist/memory/applicability-context.js +129 -0
- package/dist/memory/applicability-context.js.map +1 -0
- package/dist/memory/checkpoint-contract.d.ts +30 -0
- package/dist/memory/checkpoint-contract.d.ts.map +1 -1
- package/dist/memory/checkpoint-contract.js +5 -0
- package/dist/memory/checkpoint-contract.js.map +1 -1
- package/dist/memory/code-versions.d.ts +79 -0
- package/dist/memory/code-versions.d.ts.map +1 -0
- package/dist/memory/code-versions.js +159 -0
- package/dist/memory/code-versions.js.map +1 -0
- package/dist/memory/context-budget.d.ts +5 -0
- package/dist/memory/context-budget.d.ts.map +1 -0
- package/dist/memory/context-budget.js +5 -0
- package/dist/memory/context-budget.js.map +1 -0
- package/dist/memory/entry-history.d.ts +29 -0
- package/dist/memory/entry-history.d.ts.map +1 -0
- package/dist/memory/entry-history.js +66 -0
- package/dist/memory/entry-history.js.map +1 -0
- package/dist/memory/federated-retrieval.d.ts.map +1 -1
- package/dist/memory/federated-retrieval.js +25 -7
- package/dist/memory/federated-retrieval.js.map +1 -1
- package/dist/memory/global-conversation-query.d.ts +3 -0
- package/dist/memory/global-conversation-query.d.ts.map +1 -1
- package/dist/memory/global-conversation-query.js +5 -2
- package/dist/memory/global-conversation-query.js.map +1 -1
- package/dist/memory/history-delivery.d.ts +57 -0
- package/dist/memory/history-delivery.d.ts.map +1 -0
- package/dist/memory/history-delivery.js +85 -0
- package/dist/memory/history-delivery.js.map +1 -0
- package/dist/memory/hybrid-retrieval.d.ts +5 -0
- package/dist/memory/hybrid-retrieval.d.ts.map +1 -1
- package/dist/memory/hybrid-retrieval.js +28 -9
- package/dist/memory/hybrid-retrieval.js.map +1 -1
- package/dist/memory/interaction-contract.d.ts +12 -2
- package/dist/memory/interaction-contract.d.ts.map +1 -1
- package/dist/memory/interaction-contract.js +3 -2
- package/dist/memory/interaction-contract.js.map +1 -1
- package/dist/memory/interaction-recall.d.ts +3 -0
- package/dist/memory/interaction-recall.d.ts.map +1 -1
- package/dist/memory/interaction-recall.js +2 -1
- package/dist/memory/interaction-recall.js.map +1 -1
- package/dist/memory/lesson-derivation.d.ts +1 -1
- package/dist/memory/lifecycle.d.ts.map +1 -1
- package/dist/memory/lifecycle.js +18 -1
- package/dist/memory/lifecycle.js.map +1 -1
- package/dist/memory/observation-contract.d.ts +8 -2
- package/dist/memory/observation-contract.d.ts.map +1 -1
- package/dist/memory/observation-contract.js +3 -1
- package/dist/memory/observation-contract.js.map +1 -1
- package/dist/memory/observations.d.ts.map +1 -1
- package/dist/memory/observations.js +21 -5
- package/dist/memory/observations.js.map +1 -1
- package/dist/memory/relation-delivery.d.ts +107 -0
- package/dist/memory/relation-delivery.d.ts.map +1 -0
- package/dist/memory/relation-delivery.js +163 -0
- package/dist/memory/relation-delivery.js.map +1 -0
- package/dist/memory/retrieval.d.ts +14 -0
- package/dist/memory/retrieval.d.ts.map +1 -1
- package/dist/memory/retrieval.js +19 -11
- package/dist/memory/retrieval.js.map +1 -1
- package/dist/memory/structured-memory.d.ts +5 -0
- package/dist/memory/structured-memory.d.ts.map +1 -1
- package/dist/memory/structured-memory.js +28 -6
- package/dist/memory/structured-memory.js.map +1 -1
- package/dist/repository/binding-repair.d.ts +38 -0
- package/dist/repository/binding-repair.d.ts.map +1 -0
- package/dist/repository/binding-repair.js +129 -0
- package/dist/repository/binding-repair.js.map +1 -0
- package/dist/server/agent-checkpoint-use-case.d.ts.map +1 -1
- package/dist/server/agent-checkpoint-use-case.js +1 -0
- package/dist/server/agent-checkpoint-use-case.js.map +1 -1
- package/dist/server/routes/agent-capability-gate.d.ts.map +1 -1
- package/dist/server/routes/agent-capability-gate.js +1 -0
- package/dist/server/routes/agent-capability-gate.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +5 -1
- package/dist/web/server.js.map +1 -1
- package/docs/README.ja.md +2 -0
- package/docs/README.md +2 -0
- package/docs/cli-contract.md +24 -5
- package/docs/context-delivery.md +69 -0
- package/docs/getting-started.ja.md +8 -5
- package/docs/getting-started.md +11 -8
- package/docs/history-evidence.md +139 -0
- package/docs/interaction-memory.md +1 -1
- package/docs/setup-notes.ja.md +122 -0
- package/docs/setup-notes.ko.md +107 -0
- package/docs/setup-notes.md +133 -0
- package/docs/setup-notes.zh-CN.md +107 -0
- package/migrations/014_code_version_evidence.sql +26 -0
- package/package.json +1 -1
|
@@ -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":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAI5B,eAAO,MAAM,cAAc,oEAAqE,CAAC;AACjG,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,WAAW,gBAAgB;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACxE,MAAM,WAAW,iBAAiB;IAAG,IAAI,EAAE,gBAAgB,CAAC;IAAC,EAAE,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE;AACvG,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,YAAY,GAAG,cAAc,CAAC;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,UAAU,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,gBAAgB,CAAC;IACvG,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC;AACD,MAAM,WAAW,uBAAuB;IAAG,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE;AAE1J,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAMkB,CAAC;AACtD,MAAM,WAAW,oBAAoB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AAChG,UAAU,cAAe,SAAQ,SAAS;IACxC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;CAC9G;AAaD,0FAA0F;AAC1F,wBAAgB,iCAAiC,CAAC,OAAO,GAAE,uBAA4B,GAAG,uBAAuB,CAOhH;AAED,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAKnF;AAED,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,EAAE,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CAkB7H;AAED,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CAQ9F;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EAC9F,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EAAE,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CAuBpG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,oBAAoB,EAAE,EACnG,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CAsBzD;AAED,UAAU,eAAe;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAC7F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,sGAAsG;AACtG,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,EACzG,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAE,uBAAuB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACjG,CAAC,GAAG;IAAE,gBAAgB,EAAE,gBAAgB,CAAA;CAAE,CAqB5C"}
|
|
@@ -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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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import type { HistoryOmission } from './entry-history.js';
|
|
2
|
+
import { type HistoryDelivery, type OutputDelivery } from './history-delivery.js';
|
|
3
|
+
import { type RelationDelivery } from './relation-delivery.js';
|
|
1
4
|
import type { SqliteDatabase } from '../db/adapter.js';
|
|
2
5
|
import { type EntryRecord } from './entries.js';
|
|
3
6
|
import { type EntryKind, type EntryStatus } from '../serialization/validate.js';
|
|
@@ -8,6 +11,7 @@ import { type RerankerDiagnostics } from '../reranker/service.js';
|
|
|
8
11
|
import { type LessonDeduplicationResult } from './lesson-derivation.js';
|
|
9
12
|
export interface SearchEntriesInput {
|
|
10
13
|
workspace: string;
|
|
14
|
+
cwd?: string;
|
|
11
15
|
query: string;
|
|
12
16
|
limit?: number;
|
|
13
17
|
kind?: EntryKind;
|
|
@@ -21,15 +25,20 @@ export interface SearchEntriesInput {
|
|
|
21
25
|
relatedCandidateLimit?: number;
|
|
22
26
|
}
|
|
23
27
|
export interface SearchResult {
|
|
28
|
+
historySelectionOmissions?: HistoryOmission[];
|
|
24
29
|
items: EntryRecord[];
|
|
25
30
|
count: number;
|
|
26
31
|
truncated: boolean;
|
|
27
32
|
rerankerDiagnostics?: RerankerDiagnostics;
|
|
28
33
|
}
|
|
29
34
|
export interface RecallEntriesInput extends SearchEntriesInput {
|
|
35
|
+
includeHistory?: boolean;
|
|
36
|
+
maxOutputChars?: number;
|
|
37
|
+
cwd?: string;
|
|
30
38
|
maxChars?: number;
|
|
31
39
|
}
|
|
32
40
|
export interface RecallItem {
|
|
41
|
+
revision?: number;
|
|
33
42
|
id: string;
|
|
34
43
|
workspace: string;
|
|
35
44
|
kind: EntryKind;
|
|
@@ -46,6 +55,10 @@ export interface RecallItem {
|
|
|
46
55
|
selectionReasons?: string[];
|
|
47
56
|
}
|
|
48
57
|
export interface RecallResult {
|
|
58
|
+
historySelectionOmissions?: HistoryOmission[];
|
|
59
|
+
historyDelivery?: HistoryDelivery;
|
|
60
|
+
outputDelivery?: OutputDelivery;
|
|
61
|
+
relationDelivery?: RelationDelivery;
|
|
49
62
|
items: RecallItem[];
|
|
50
63
|
count: number;
|
|
51
64
|
characterCount: number;
|
|
@@ -60,6 +73,7 @@ export interface RankedRecallHit {
|
|
|
60
73
|
reasons: string[];
|
|
61
74
|
}
|
|
62
75
|
export interface RankedRecallResult {
|
|
76
|
+
historyOmissions?: HistoryOmission[];
|
|
63
77
|
hits: RankedRecallHit[];
|
|
64
78
|
truncated: boolean;
|
|
65
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../src/memory/retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE1F,OAAO,EAAqE,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAG3I,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE;QACR,UAAU,EAAE,IAAI,CAAC;QACjB,SAAS,EAAE,IAAI,CAAC;QAChB,YAAY,EAAE,KAAK,CAAC;KACrB,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,8BAA8B,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAgCD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../src/memory/retrieval.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/retrieval.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { finalizeHistoryRecall } from './history-delivery.js';
|
|
2
|
+
import { attachRelationDelivery } from './relation-delivery.js';
|
|
3
|
+
import { DEFAULT_CONTEXT_CHARACTERS } from './context-budget.js';
|
|
1
4
|
import { KiokukoError } from '../errors.js';
|
|
2
5
|
import { readEntry } from './entries.js';
|
|
3
6
|
import { requireWorkspace } from '../serialization/validate.js';
|
|
@@ -9,7 +12,7 @@ import { deduplicateDeliverableLessonSources, formatLessonSourceReferences } fro
|
|
|
9
12
|
import { effectiveRelatedSearchMode } from './search-extension-config.js';
|
|
10
13
|
const DEFAULT_SEARCH_LIMIT = 20;
|
|
11
14
|
const DEFAULT_RECALL_LIMIT = 5;
|
|
12
|
-
const DEFAULT_RECALL_MAX_CHARS =
|
|
15
|
+
const DEFAULT_RECALL_MAX_CHARS = DEFAULT_CONTEXT_CHARACTERS;
|
|
13
16
|
const MAX_LIMIT = 1000;
|
|
14
17
|
const MAX_RECALL_CHARS = 100_000;
|
|
15
18
|
function characterCount(value) {
|
|
@@ -40,7 +43,8 @@ export function rankedEntryHits(database, input, runtime = {}) {
|
|
|
40
43
|
const normalizedInput = { ...input, workspace };
|
|
41
44
|
if (normalizedInput.query.trim().length === 0)
|
|
42
45
|
return { hits: [], truncated: false };
|
|
43
|
-
const
|
|
46
|
+
const omissions = [];
|
|
47
|
+
const candidates = hybridSearch(database, { ...normalizedInput, limit }, { ...runtime, onHistoryOmission(value) { omissions.push(value); runtime.onHistoryOmission?.(value); } });
|
|
44
48
|
return {
|
|
45
49
|
hits: candidates.slice(0, limit).map((candidate, index) => ({
|
|
46
50
|
entryId: candidate.entryId,
|
|
@@ -49,13 +53,14 @@ export function rankedEntryHits(database, input, runtime = {}) {
|
|
|
49
53
|
reasons: [...candidate.reasons],
|
|
50
54
|
})),
|
|
51
55
|
truncated: candidates.length > limit,
|
|
56
|
+
...(omissions.length ? { historyOmissions: [...new Map(omissions.map(o => [JSON.stringify(o), o])).values()] } : {}),
|
|
52
57
|
};
|
|
53
58
|
}
|
|
54
59
|
export function searchEntries(database, input, runtime = {}) {
|
|
55
60
|
const limit = normalizedLimit(input.limit, DEFAULT_SEARCH_LIMIT);
|
|
56
61
|
const selected = rankedEntryHits(database, { ...input, limit }, runtime);
|
|
57
62
|
const items = selected.hits.map((hit) => readEntry(database, { workspace: input.workspace, entryId: hit.entryId }));
|
|
58
|
-
return { items, count: items.length, truncated: selected.truncated };
|
|
63
|
+
return { items, count: items.length, truncated: selected.truncated, ...(selected.historyOmissions ? { historySelectionOmissions: selected.historyOmissions } : {}) };
|
|
59
64
|
}
|
|
60
65
|
function candidateSnapshotHash(items) {
|
|
61
66
|
return canonicalContentHash(items.map((entry) => ({
|
|
@@ -105,12 +110,13 @@ export function recallEntries(database, input, runtime = {}) {
|
|
|
105
110
|
const reasons = new Map();
|
|
106
111
|
for (const id of retained)
|
|
107
112
|
reasons.set(id, ['duplicate_source_suppressed']);
|
|
108
|
-
return {
|
|
109
|
-
...packRecallEntries(input, deduplicated.entries, selected.truncated || suppressed.size > 0, maxChars, sourceNotes, reasons),
|
|
113
|
+
return finalizeHistoryRecall(database, {
|
|
114
|
+
...packRecallEntries(database, input, deduplicated.entries, selected.truncated || suppressed.size > 0, maxChars, sourceNotes, reasons),
|
|
110
115
|
lessonDeduplicationDiagnostics: deduplicated.diagnostics,
|
|
111
|
-
|
|
116
|
+
...(selected.historyOmissions ? { historySelectionOmissions: selected.historyOmissions } : {}),
|
|
117
|
+
}, input);
|
|
112
118
|
}
|
|
113
|
-
function packRecallEntries(input, entries, selectedTruncated, maxChars = normalizedMaxChars(input.maxChars), sourceNotes = new Map(), selectionReasons = new Map()) {
|
|
119
|
+
function packRecallEntries(database, input, entries, selectedTruncated, maxChars = normalizedMaxChars(input.maxChars), sourceNotes = new Map(), selectionReasons = new Map()) {
|
|
114
120
|
const items = [];
|
|
115
121
|
let characters = 0;
|
|
116
122
|
let truncated = false;
|
|
@@ -132,6 +138,7 @@ function packRecallEntries(input, entries, selectedTruncated, maxChars = normali
|
|
|
132
138
|
truncated = true;
|
|
133
139
|
items.push({
|
|
134
140
|
id: entry.id,
|
|
141
|
+
revision: entry.revision,
|
|
135
142
|
workspace: entry.workspace,
|
|
136
143
|
kind: entry.kind,
|
|
137
144
|
status: entry.status,
|
|
@@ -148,7 +155,7 @@ function packRecallEntries(input, entries, selectedTruncated, maxChars = normali
|
|
|
148
155
|
}
|
|
149
156
|
if (items.length < entries.length || selectedTruncated)
|
|
150
157
|
truncated = true;
|
|
151
|
-
return { items, count: items.length, characterCount: characters, truncated };
|
|
158
|
+
return attachRelationDelivery(database, { items, count: items.length, characterCount: characters, truncated }, { itemLimit: input.limit ?? DEFAULT_RECALL_LIMIT, selectionOmissions: [...(selectedTruncated ? ['item_limit'] : []), ...(truncated ? ['body_budget'] : [])] });
|
|
152
159
|
}
|
|
153
160
|
export async function recallEntriesWithReranker(database, input, runtime = {}, signal) {
|
|
154
161
|
const config = readRerankerConfig();
|
|
@@ -185,11 +192,12 @@ export async function recallEntriesWithReranker(database, input, runtime = {}, s
|
|
|
185
192
|
}) !== originalHash) {
|
|
186
193
|
throw new KiokukoError('CONFLICT', 'Recall selection changed during reranker inference');
|
|
187
194
|
}
|
|
188
|
-
const result = packRecallEntries(input, reranked.candidates.map(({ entry }) => entry), baseline.truncated || suppressed.size > 0, maxChars, sourceNotes, reasons);
|
|
189
|
-
return {
|
|
195
|
+
const result = packRecallEntries(database, input, reranked.candidates.map(({ entry }) => entry), baseline.truncated || suppressed.size > 0, maxChars, sourceNotes, reasons);
|
|
196
|
+
return finalizeHistoryRecall(database, {
|
|
190
197
|
...result,
|
|
198
|
+
...(baseline.historySelectionOmissions ? { historySelectionOmissions: baseline.historySelectionOmissions } : {}),
|
|
191
199
|
lessonDeduplicationDiagnostics: deduplicated.diagnostics,
|
|
192
200
|
...(reranked.diagnostics === undefined ? {} : { rerankerDiagnostics: reranked.diagnostics }),
|
|
193
|
-
};
|
|
201
|
+
}, input);
|
|
194
202
|
}
|
|
195
203
|
//# sourceMappingURL=retrieval.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieval.js","sourceRoot":"","sources":["../../src/memory/retrieval.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"retrieval.js","sourceRoot":"","sources":["../../src/memory/retrieval.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,11 @@ export type MemoryClass = (typeof MEMORY_CLASSES)[number];
|
|
|
5
5
|
export declare const RETRIEVAL_SCOPES: readonly ["project-only", "ecosystem", "global"];
|
|
6
6
|
export type RetrievalScope = (typeof RETRIEVAL_SCOPES)[number];
|
|
7
7
|
export interface Applicability {
|
|
8
|
+
ownerIds?: string[];
|
|
9
|
+
repositoryIds?: string[];
|
|
10
|
+
workspaces?: string[];
|
|
11
|
+
branches?: string[];
|
|
12
|
+
environment?: Record<string, string>;
|
|
8
13
|
languages?: string[];
|
|
9
14
|
frameworks?: Array<{
|
|
10
15
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured-memory.d.ts","sourceRoot":"","sources":["../../src/memory/structured-memory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"structured-memory.d.ts","sourceRoot":"","sources":["../../src/memory/structured-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import semver from 'semver';
|
|
1
2
|
import { readEntry } from './entries.js';
|
|
2
3
|
import { syncInteractionFingerprint } from './interaction-fingerprint.js';
|
|
3
4
|
import { KiokukoError } from '../errors.js';
|
|
4
5
|
import { canonicalTagOrder, compareCanonicalStrings } from '../serialization/validate.js';
|
|
5
6
|
import { normalizeSearchSignal } from './retrieval-query.js';
|
|
6
|
-
import { findSecret } from './secrets.js';
|
|
7
|
+
import { findSecret, findSecretInValue } from './secrets.js';
|
|
7
8
|
export const MEMORY_CLASSES = [
|
|
8
9
|
'implementation-pattern', 'troubleshooting', 'tool-usage', 'extension-usage',
|
|
9
10
|
'configuration', 'workflow', 'gotcha', 'reference', 'preference',
|
|
@@ -24,10 +25,10 @@ export function hasExplicitApplicability(scope) {
|
|
|
24
25
|
if (typeof applicability !== 'object' || applicability === null || Array.isArray(applicability))
|
|
25
26
|
return false;
|
|
26
27
|
const values = Object.entries(applicability);
|
|
27
|
-
const dimensions = new Set(['languages', 'frameworks', 'databases', 'runtimes', 'tools', 'platforms']);
|
|
28
|
-
if (values.some(([key, value]) => !dimensions.has(key) || !Array.isArray(value)))
|
|
28
|
+
const dimensions = new Set(['languages', 'frameworks', 'databases', 'runtimes', 'tools', 'platforms', 'ownerIds', 'repositoryIds', 'workspaces', 'branches', 'environment']);
|
|
29
|
+
if (values.some(([key, value]) => !dimensions.has(key) || (key === 'environment' ? typeof value !== 'object' || value === null || Array.isArray(value) : !Array.isArray(value))))
|
|
29
30
|
return false;
|
|
30
|
-
return values.some(([, value]) => value.length > 0);
|
|
31
|
+
return values.some(([, value]) => typeof value === 'object' && value !== null && Object.keys(value).length > 0);
|
|
31
32
|
}
|
|
32
33
|
const SIGNAL_TYPES = {
|
|
33
34
|
language: 'language', framework: 'framework', runtime: 'runtime', database: 'database',
|
|
@@ -58,10 +59,12 @@ function validateRelativePath(value) {
|
|
|
58
59
|
return value.replaceAll('\\', '/');
|
|
59
60
|
}
|
|
60
61
|
export function validateApplicability(value) {
|
|
62
|
+
if (findSecretInValue(value))
|
|
63
|
+
throw new KiokukoError('SECURITY_REJECTION', 'Applicability resembles a secret and was not stored');
|
|
61
64
|
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
62
65
|
invalid();
|
|
63
66
|
const input = value;
|
|
64
|
-
const allowed = new Set(['languages', 'frameworks', 'databases', 'runtimes', 'tools', 'platforms']);
|
|
67
|
+
const allowed = new Set(['languages', 'frameworks', 'databases', 'runtimes', 'tools', 'platforms', 'ownerIds', 'repositoryIds', 'workspaces', 'branches', 'environment']);
|
|
65
68
|
if (Object.keys(input).some((key) => !allowed.has(key)))
|
|
66
69
|
invalid();
|
|
67
70
|
const frameworks = input.frameworks === undefined
|
|
@@ -84,6 +87,25 @@ export function validateApplicability(value) {
|
|
|
84
87
|
.sort((left, right) => compareCanonicalStrings(`${left.name}\u0000${left.version ?? ''}`, `${right.name}\u0000${right.version ?? ''}`));
|
|
85
88
|
})();
|
|
86
89
|
const result = {};
|
|
90
|
+
for (const key of ['ownerIds', 'repositoryIds', 'workspaces', 'branches']) {
|
|
91
|
+
const raw = input[key];
|
|
92
|
+
if (raw === undefined)
|
|
93
|
+
continue;
|
|
94
|
+
if (!Array.isArray(raw) || raw.length > 100 || raw.some(item => typeof item !== 'string' || !item || item.length > 256 || /[\u0000-\u0020\u007f]/u.test(item)))
|
|
95
|
+
invalid();
|
|
96
|
+
result[key] = [...new Set(raw)].sort(compareCanonicalStrings);
|
|
97
|
+
}
|
|
98
|
+
if (input.environment !== undefined) {
|
|
99
|
+
const raw = input.environment;
|
|
100
|
+
if (typeof raw !== 'object' || raw === null || Array.isArray(raw) || Object.keys(raw).length > 32)
|
|
101
|
+
invalid();
|
|
102
|
+
const entries = Object.entries(raw);
|
|
103
|
+
if (entries.some(([key, value]) => !/^[A-Za-z][A-Za-z0-9_.-]{0,63}$/u.test(key) || typeof value !== 'string' || !value || value.length > 256 || /[\u0000-\u001f\u007f]/u.test(value)))
|
|
104
|
+
invalid();
|
|
105
|
+
result.environment = Object.fromEntries(entries);
|
|
106
|
+
if (result.environment.node !== undefined && semver.validRange(result.environment.node) === null)
|
|
107
|
+
invalid();
|
|
108
|
+
}
|
|
87
109
|
const languages = optionalStringList(input.languages);
|
|
88
110
|
const databases = optionalStringList(input.databases);
|
|
89
111
|
const runtimes = optionalStringList(input.runtimes);
|
|
@@ -129,7 +151,7 @@ export function buildStructuredScope(options) {
|
|
|
129
151
|
if (options.visibility === 'project' && options.retrievalScope === 'global')
|
|
130
152
|
invalid();
|
|
131
153
|
const validatedApplicability = options.applicability === undefined ? undefined : validateApplicability(options.applicability);
|
|
132
|
-
const hasApplicability = validatedApplicability !== undefined &&
|
|
154
|
+
const hasApplicability = validatedApplicability !== undefined && hasExplicitApplicability({ applicability: validatedApplicability });
|
|
133
155
|
if (options.visibility === 'project' && options.retrievalScope === 'ecosystem' && !hasApplicability)
|
|
134
156
|
invalid();
|
|
135
157
|
if (options.visibility === 'global' && !hasApplicability && options.portableReason === undefined)
|