@tenphi/akno-core 0.4.0 → 0.6.0

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 (78) hide show
  1. package/dist/index/derive.d.ts.map +1 -1
  2. package/dist/index/derive.js +1 -10
  3. package/dist/index/derive.js.map +1 -1
  4. package/dist/index/indexer.d.ts +3 -0
  5. package/dist/index/indexer.d.ts.map +1 -1
  6. package/dist/index/indexer.js +33 -3
  7. package/dist/index/indexer.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/kb/managed-lines.d.ts +7 -0
  12. package/dist/kb/managed-lines.d.ts.map +1 -0
  13. package/dist/kb/managed-lines.js +52 -0
  14. package/dist/kb/managed-lines.js.map +1 -0
  15. package/dist/maintenance/conflicts.d.ts +1 -1
  16. package/dist/ops/answer.d.ts.map +1 -1
  17. package/dist/ops/answer.js +49 -4
  18. package/dist/ops/answer.js.map +1 -1
  19. package/dist/ops/context.d.ts.map +1 -1
  20. package/dist/ops/context.js +49 -19
  21. package/dist/ops/context.js.map +1 -1
  22. package/dist/ops/read.d.ts.map +1 -1
  23. package/dist/ops/read.js +2 -1
  24. package/dist/ops/read.js.map +1 -1
  25. package/dist/ops/remember.d.ts +57 -0
  26. package/dist/ops/remember.d.ts.map +1 -1
  27. package/dist/ops/remember.js +40 -38
  28. package/dist/ops/remember.js.map +1 -1
  29. package/dist/ops/retain.d.ts.map +1 -1
  30. package/dist/ops/retain.js +281 -31
  31. package/dist/ops/retain.js.map +1 -1
  32. package/dist/ops/timeline.d.ts +2 -5
  33. package/dist/ops/timeline.d.ts.map +1 -1
  34. package/dist/ops/timeline.js +334 -82
  35. package/dist/ops/timeline.js.map +1 -1
  36. package/dist/recall/assemble.d.ts.map +1 -1
  37. package/dist/recall/assemble.js +4 -2
  38. package/dist/recall/assemble.js.map +1 -1
  39. package/dist/store/db.d.ts.map +1 -1
  40. package/dist/store/db.js +11 -1
  41. package/dist/store/db.js.map +1 -1
  42. package/dist/store/migrations.d.ts +3 -1
  43. package/dist/store/migrations.d.ts.map +1 -1
  44. package/dist/store/migrations.js +103 -1
  45. package/dist/store/migrations.js.map +1 -1
  46. package/dist/timeline/clock.d.ts +25 -0
  47. package/dist/timeline/clock.d.ts.map +1 -0
  48. package/dist/timeline/clock.js +257 -0
  49. package/dist/timeline/clock.js.map +1 -0
  50. package/dist/timeline/documents.d.ts +2 -0
  51. package/dist/timeline/documents.d.ts.map +1 -1
  52. package/dist/timeline/documents.js +28 -0
  53. package/dist/timeline/documents.js.map +1 -1
  54. package/dist/timeline/eligibility.d.ts +16 -0
  55. package/dist/timeline/eligibility.d.ts.map +1 -0
  56. package/dist/timeline/eligibility.js +31 -0
  57. package/dist/timeline/eligibility.js.map +1 -0
  58. package/dist/timeline/projection.d.ts +11 -0
  59. package/dist/timeline/projection.d.ts.map +1 -0
  60. package/dist/timeline/projection.js +77 -0
  61. package/dist/timeline/projection.js.map +1 -0
  62. package/dist/timeline/recurrence.d.ts +14 -0
  63. package/dist/timeline/recurrence.d.ts.map +1 -0
  64. package/dist/timeline/recurrence.js +238 -0
  65. package/dist/timeline/recurrence.js.map +1 -0
  66. package/dist/write/managed-memory.d.ts +8 -0
  67. package/dist/write/managed-memory.d.ts.map +1 -1
  68. package/dist/write/managed-memory.js +20 -0
  69. package/dist/write/managed-memory.js.map +1 -1
  70. package/dist/write/placement.d.ts +3 -1
  71. package/dist/write/placement.d.ts.map +1 -1
  72. package/dist/write/placement.js +4 -1
  73. package/dist/write/placement.js.map +1 -1
  74. package/dist/write/retain.d.ts +158 -30
  75. package/dist/write/retain.d.ts.map +1 -1
  76. package/dist/write/retain.js +723 -180
  77. package/dist/write/retain.js.map +1 -1
  78. package/package.json +2 -2
@@ -1,67 +1,195 @@
1
+ import { type ProvidedRetainCandidate, type RetainHoldReason, type RetainModelCallReceipt, type RetainSourceItem } from '@tenphi/akno-protocol';
1
2
  import { z } from 'zod';
2
- import { type ModelClient } from '../models/client.ts';
3
+ import { type ModelClient, type ModelOutcome } from '../models/client.ts';
3
4
  import type { FolderCatalogEntry } from '../kb/folders.ts';
4
- /**
5
- * `page` is nullable rather than optional, and the prompt above says "null" rather than "omit"
6
- * for the same reason: OpenAI's strict mode rejects an optional property outright, and a schema
7
- * it rejects takes this call site off constrained decoding silently — the fallback to a plain
8
- * JSON request looks exactly like success. Nullable says the same thing and stays enforceable.
9
- *
10
- * The guards this cannot express stay downstream regardless: `cleanCandidates` drops
11
- * speculation, fragments, and any page whose folder is not one that actually exists.
12
- */
5
+ /** All fields are required or nullable so constrained-decoding endpoints can keep strict mode. */
13
6
  export declare const RETAIN_SCHEMA: z.ZodObject<{
14
7
  candidates: z.ZodArray<z.ZodObject<{
15
8
  text: z.ZodString;
16
9
  subject: z.ZodString;
17
10
  page: z.ZodNullable<z.ZodString>;
18
- origin: z.ZodEnum<{
19
- user: "user";
20
- assistant: "assistant";
21
- }>;
22
- evidence: z.ZodNullable<z.ZodString>;
23
- frame: z.ZodNullable<z.ZodString>;
24
11
  kind: z.ZodEnum<{
12
+ question: "question";
25
13
  claim: "claim";
26
14
  decision: "decision";
27
15
  preference: "preference";
16
+ plan: "plan";
17
+ event: "event";
18
+ }>;
19
+ attribution: z.ZodObject<{
20
+ source_role: z.ZodEnum<{
21
+ unknown: "unknown";
22
+ external: "external";
23
+ user: "user";
24
+ assistant: "assistant";
25
+ }>;
26
+ source_speaker: z.ZodNullable<z.ZodString>;
27
+ chain: z.ZodArray<z.ZodObject<{
28
+ speaker: z.ZodString;
29
+ role: z.ZodNullable<z.ZodEnum<{
30
+ unknown: "unknown";
31
+ external: "external";
32
+ user: "user";
33
+ assistant: "assistant";
34
+ }>>;
35
+ }, z.core.$strip>>;
36
+ }, z.core.$strip>;
37
+ discourse: z.ZodObject<{
38
+ commitment: z.ZodEnum<{
39
+ none: "none";
40
+ tentative: "tentative";
41
+ asserted: "asserted";
42
+ hypothetical: "hypothetical";
43
+ counterfactual: "counterfactual";
44
+ }>;
45
+ disposition: z.ZodEnum<{
46
+ active: "active";
47
+ proposed: "proposed";
48
+ accepted: "accepted";
49
+ rejected: "rejected";
50
+ resolved: "resolved";
51
+ cancelled: "cancelled";
52
+ completed: "completed";
53
+ superseded: "superseded";
54
+ }>;
55
+ }, z.core.$strip>;
56
+ epistemic: z.ZodObject<{
57
+ basis: z.ZodEnum<{
58
+ self_attested: "self_attested";
59
+ source_report: "source_report";
60
+ }>;
61
+ }, z.core.$strip>;
62
+ polarity: z.ZodEnum<{
63
+ affirmed: "affirmed";
64
+ negated: "negated";
28
65
  }>;
66
+ support: z.ZodArray<z.ZodObject<{
67
+ quote: z.ZodString;
68
+ item_id: z.ZodNullable<z.ZodString>;
69
+ }, z.core.$strip>>;
70
+ discourse_frame: z.ZodArray<z.ZodObject<{
71
+ quote: z.ZodString;
72
+ item_id: z.ZodNullable<z.ZodString>;
73
+ }, z.core.$strip>>;
74
+ relations: z.ZodArray<z.ZodObject<{
75
+ type: z.ZodEnum<{
76
+ corrects: "corrects";
77
+ supersedes: "supersedes";
78
+ contradicts: "contradicts";
79
+ fulfills: "fulfills";
80
+ answers: "answers";
81
+ caused_by: "caused_by";
82
+ }>;
83
+ target_candidate: z.ZodNumber;
84
+ support: z.ZodArray<z.ZodObject<{
85
+ quote: z.ZodString;
86
+ item_id: z.ZodNullable<z.ZodString>;
87
+ }, z.core.$strip>>;
88
+ }, z.core.$strip>>;
89
+ time: z.ZodNullable<z.ZodObject<{
90
+ start: z.ZodNullable<z.ZodString>;
91
+ until: z.ZodNullable<z.ZodString>;
92
+ precision: z.ZodEnum<{
93
+ unknown: "unknown";
94
+ instant: "instant";
95
+ day: "day";
96
+ month: "month";
97
+ year: "year";
98
+ }>;
99
+ relation: z.ZodEnum<{
100
+ occurred: "occurred";
101
+ valid: "valid";
102
+ scheduled: "scheduled";
103
+ due: "due";
104
+ }>;
105
+ status: z.ZodEnum<{
106
+ scheduled: "scheduled";
107
+ actual: "actual";
108
+ planned: "planned";
109
+ tentative: "tentative";
110
+ }>;
111
+ timezone: z.ZodNullable<z.ZodString>;
112
+ mentioned_at: z.ZodNullable<z.ZodString>;
113
+ recurrence: z.ZodNullable<z.ZodObject<{
114
+ frequency: z.ZodEnum<{
115
+ daily: "daily";
116
+ weekly: "weekly";
117
+ monthly: "monthly";
118
+ yearly: "yearly";
119
+ }>;
120
+ interval: z.ZodNullable<z.ZodNumber>;
121
+ weekdays: z.ZodArray<z.ZodEnum<{
122
+ mo: "mo";
123
+ tu: "tu";
124
+ we: "we";
125
+ th: "th";
126
+ fr: "fr";
127
+ sa: "sa";
128
+ su: "su";
129
+ }>>;
130
+ until: z.ZodNullable<z.ZodString>;
131
+ }, z.core.$strip>>;
132
+ }, z.core.$strip>>;
29
133
  }, z.core.$strip>>;
30
134
  events: z.ZodArray<z.ZodObject<{
31
135
  date: z.ZodString;
32
136
  summary: z.ZodString;
33
137
  }, z.core.$strip>>;
34
138
  }, z.core.$strip>;
35
- export interface RetainCandidate {
36
- text: string;
37
- subject: string;
38
- kind: string;
39
- /**
40
- * Where this would go if no page holds it yet. A suggestion, used only when routing finds
41
- * nothing — which is the case `remember` used to have no answer for at all.
42
- */
139
+ export type RetainCandidate = ProvidedRetainCandidate & {
140
+ /** Taxonomy suggestion used only after ordinary routing finds no admitted existing page. */
43
141
  page?: string;
142
+ /** Compatibility fields consumed by the existing remember result and evidence archive. */
44
143
  origin?: 'user' | 'assistant';
45
- /** Exact bounded input bytes retained privately so the managed sentence can be re-verified. */
46
144
  evidence?: string;
145
+ };
146
+ export interface RetainHeldCandidate {
147
+ candidate_id: string;
148
+ reason_code: RetainHoldReason;
149
+ reason: string;
47
150
  }
48
151
  export interface RetainResult {
49
152
  candidates: RetainCandidate[];
153
+ held: RetainHeldCandidate[];
50
154
  events: {
51
155
  date: string;
52
156
  summary: string;
53
157
  }[];
54
158
  error: string | null;
159
+ sourceHold: {
160
+ reason_code: RetainHoldReason;
161
+ reason: string;
162
+ } | null;
163
+ degradedReason: 'no_derive_model' | 'derive_failed' | 'retain_verification_failed' | null;
164
+ modelUsage: {
165
+ extraction: RetainModelCallReceipt | null;
166
+ verification: RetainModelCallReceipt | null;
167
+ };
168
+ }
169
+ export interface CandidateCleaningOptions {
170
+ folders?: readonly string[];
171
+ pages?: readonly string[];
172
+ sourceText?: string;
173
+ sourceItems?: readonly RetainSourceItem[];
174
+ sourceId?: string;
175
+ revision?: string;
176
+ mentionedAt?: string;
177
+ timezone?: string;
55
178
  }
56
179
  export declare function runRetain(text: string, model: ModelClient, options?: {
57
180
  mission?: string;
58
181
  mentionedAt?: string;
59
182
  timezone?: string;
60
183
  folders?: FolderCatalogEntry[];
184
+ sourceItems?: readonly RetainSourceItem[];
185
+ sourceId?: string;
186
+ revision?: string;
61
187
  }): Promise<RetainResult>;
62
- export declare function cleanCandidates(value: unknown, options?: {
63
- folders?: readonly string[];
64
- pages?: readonly string[];
65
- sourceText?: string;
66
- }): RetainCandidate[];
188
+ /** Kept public for the deterministic extraction guard tests. */
189
+ export declare function cleanCandidates(value: unknown, options?: CandidateCleaningOptions): RetainCandidate[];
190
+ export declare function cleanCandidateBatch(value: unknown, options: CandidateCleaningOptions): {
191
+ candidates: RetainCandidate[];
192
+ held: RetainHeldCandidate[];
193
+ };
194
+ export declare function modelCallReceipt(model: ModelClient, outcome: ModelOutcome<unknown>): RetainModelCallReceipt;
67
195
  //# sourceMappingURL=retain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retain.d.ts","sourceRoot":"","sources":["../../src/write/retain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAsE3D;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;iBAaxB,CAAC;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC3B,GACL,OAAO,CAAC,YAAY,CAAC,CAyCvB;AA0DD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5F,eAAe,EAAE,CAkDnB"}
1
+ {"version":3,"file":"retain.d.ts","sourceRoot":"","sources":["../../src/write/retain.ts"],"names":[],"mappings":"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"}