@tenphi/akno 0.1.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.
- package/LICENSE +83 -0
- package/README.md +46 -0
- package/dist/args.d.ts +18 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +92 -0
- package/dist/args.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +142 -0
- package/dist/bin.js.map +1 -0
- package/dist/commands/adopt-cmd.d.ts +2 -0
- package/dist/commands/adopt-cmd.d.ts.map +1 -0
- package/dist/commands/adopt-cmd.js +61 -0
- package/dist/commands/adopt-cmd.js.map +1 -0
- package/dist/commands/answer-cmd.d.ts +2 -0
- package/dist/commands/answer-cmd.d.ts.map +1 -0
- package/dist/commands/answer-cmd.js +150 -0
- package/dist/commands/answer-cmd.js.map +1 -0
- package/dist/commands/bench-cmd.d.ts +4 -0
- package/dist/commands/bench-cmd.d.ts.map +1 -0
- package/dist/commands/bench-cmd.js +1542 -0
- package/dist/commands/bench-cmd.js.map +1 -0
- package/dist/commands/config-cmd.d.ts +7 -0
- package/dist/commands/config-cmd.d.ts.map +1 -0
- package/dist/commands/config-cmd.js +80 -0
- package/dist/commands/config-cmd.js.map +1 -0
- package/dist/commands/context-cmd.d.ts +2 -0
- package/dist/commands/context-cmd.d.ts.map +1 -0
- package/dist/commands/context-cmd.js +130 -0
- package/dist/commands/context-cmd.js.map +1 -0
- package/dist/commands/doctor-cmd.d.ts +2 -0
- package/dist/commands/doctor-cmd.d.ts.map +1 -0
- package/dist/commands/doctor-cmd.js +198 -0
- package/dist/commands/doctor-cmd.js.map +1 -0
- package/dist/commands/dream-cmd.d.ts +26 -0
- package/dist/commands/dream-cmd.d.ts.map +1 -0
- package/dist/commands/dream-cmd.js +1167 -0
- package/dist/commands/dream-cmd.js.map +1 -0
- package/dist/commands/dream-model-status.d.ts +5 -0
- package/dist/commands/dream-model-status.d.ts.map +1 -0
- package/dist/commands/dream-model-status.js +33 -0
- package/dist/commands/dream-model-status.js.map +1 -0
- package/dist/commands/dream-notifications.d.ts +24 -0
- package/dist/commands/dream-notifications.d.ts.map +1 -0
- package/dist/commands/dream-notifications.js +168 -0
- package/dist/commands/dream-notifications.js.map +1 -0
- package/dist/commands/dream-schedule.d.ts +55 -0
- package/dist/commands/dream-schedule.d.ts.map +1 -0
- package/dist/commands/dream-schedule.js +160 -0
- package/dist/commands/dream-schedule.js.map +1 -0
- package/dist/commands/folder-cmd.d.ts +2 -0
- package/dist/commands/folder-cmd.d.ts.map +1 -0
- package/dist/commands/folder-cmd.js +84 -0
- package/dist/commands/folder-cmd.js.map +1 -0
- package/dist/commands/graph-cmd.d.ts +2 -0
- package/dist/commands/graph-cmd.d.ts.map +1 -0
- package/dist/commands/graph-cmd.js +126 -0
- package/dist/commands/graph-cmd.js.map +1 -0
- package/dist/commands/inbox-cmd.d.ts +2 -0
- package/dist/commands/inbox-cmd.d.ts.map +1 -0
- package/dist/commands/inbox-cmd.js +69 -0
- package/dist/commands/inbox-cmd.js.map +1 -0
- package/dist/commands/index-cmd.d.ts +2 -0
- package/dist/commands/index-cmd.d.ts.map +1 -0
- package/dist/commands/index-cmd.js +102 -0
- package/dist/commands/index-cmd.js.map +1 -0
- package/dist/commands/ingest-cmd.d.ts +2 -0
- package/dist/commands/ingest-cmd.d.ts.map +1 -0
- package/dist/commands/ingest-cmd.js +167 -0
- package/dist/commands/ingest-cmd.js.map +1 -0
- package/dist/commands/init-cmd.d.ts +292 -0
- package/dist/commands/init-cmd.d.ts.map +1 -0
- package/dist/commands/init-cmd.js +476 -0
- package/dist/commands/init-cmd.js.map +1 -0
- package/dist/commands/init-prompts.d.ts +51 -0
- package/dist/commands/init-prompts.d.ts.map +1 -0
- package/dist/commands/init-prompts.js +192 -0
- package/dist/commands/init-prompts.js.map +1 -0
- package/dist/commands/list-cmd.d.ts +2 -0
- package/dist/commands/list-cmd.d.ts.map +1 -0
- package/dist/commands/list-cmd.js +77 -0
- package/dist/commands/list-cmd.js.map +1 -0
- package/dist/commands/maintenance-policy-output.d.ts +4 -0
- package/dist/commands/maintenance-policy-output.d.ts.map +1 -0
- package/dist/commands/maintenance-policy-output.js +72 -0
- package/dist/commands/maintenance-policy-output.js.map +1 -0
- package/dist/commands/mutate-cmd.d.ts +5 -0
- package/dist/commands/mutate-cmd.d.ts.map +1 -0
- package/dist/commands/mutate-cmd.js +224 -0
- package/dist/commands/mutate-cmd.js.map +1 -0
- package/dist/commands/plan-cmd.d.ts +9 -0
- package/dist/commands/plan-cmd.d.ts.map +1 -0
- package/dist/commands/plan-cmd.js +411 -0
- package/dist/commands/plan-cmd.js.map +1 -0
- package/dist/commands/read-cmd.d.ts +2 -0
- package/dist/commands/read-cmd.d.ts.map +1 -0
- package/dist/commands/read-cmd.js +89 -0
- package/dist/commands/read-cmd.js.map +1 -0
- package/dist/commands/recall-cmd.d.ts +2 -0
- package/dist/commands/recall-cmd.d.ts.map +1 -0
- package/dist/commands/recall-cmd.js +176 -0
- package/dist/commands/recall-cmd.js.map +1 -0
- package/dist/commands/redeploy-cmd.d.ts +43 -0
- package/dist/commands/redeploy-cmd.d.ts.map +1 -0
- package/dist/commands/redeploy-cmd.js +270 -0
- package/dist/commands/redeploy-cmd.js.map +1 -0
- package/dist/commands/rules-cmd.d.ts +2 -0
- package/dist/commands/rules-cmd.d.ts.map +1 -0
- package/dist/commands/rules-cmd.js +72 -0
- package/dist/commands/rules-cmd.js.map +1 -0
- package/dist/commands/serve-cmd.d.ts +23 -0
- package/dist/commands/serve-cmd.d.ts.map +1 -0
- package/dist/commands/serve-cmd.js +415 -0
- package/dist/commands/serve-cmd.js.map +1 -0
- package/dist/commands/timeline-cmd.d.ts +2 -0
- package/dist/commands/timeline-cmd.d.ts.map +1 -0
- package/dist/commands/timeline-cmd.js +67 -0
- package/dist/commands/timeline-cmd.js.map +1 -0
- package/dist/commands/write-cmd.d.ts +49 -0
- package/dist/commands/write-cmd.d.ts.map +1 -0
- package/dist/commands/write-cmd.js +269 -0
- package/dist/commands/write-cmd.js.map +1 -0
- package/dist/ops-handle.d.ts +67 -0
- package/dist/ops-handle.d.ts.map +1 -0
- package/dist/ops-handle.js +196 -0
- package/dist/ops-handle.js.map +1 -0
- package/dist/output.d.ts +28 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +87 -0
- package/dist/output.js.map +1 -0
- package/dist/serve/http.d.ts +19 -0
- package/dist/serve/http.d.ts.map +1 -0
- package/dist/serve/http.js +135 -0
- package/dist/serve/http.js.map +1 -0
- package/dist/serve/mcp.d.ts +21 -0
- package/dist/serve/mcp.d.ts.map +1 -0
- package/dist/serve/mcp.js +79 -0
- package/dist/serve/mcp.js.map +1 -0
- package/dist/serve/socket.d.ts +15 -0
- package/dist/serve/socket.d.ts.map +1 -0
- package/dist/serve/socket.js +311 -0
- package/dist/serve/socket.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +15 -0
- package/dist/version.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutate-cmd.js","sourceRoot":"","sources":["../../src/commands/mutate-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type MaintenancePlanPruneResult, type MaintenancePlanStatus, type MaintenanceStatus, type MaintenanceStatusQuery } from '@tenphi/akno-core';
|
|
2
|
+
import { openOptionsFrom } from '../args.ts';
|
|
3
|
+
export declare function planCommand(argv: string[]): Promise<number>;
|
|
4
|
+
export declare function loadMaintenanceStatus(values: Parameters<typeof openOptionsFrom>[0], query?: MaintenanceStatusQuery): Promise<MaintenanceStatus>;
|
|
5
|
+
export declare function printMaintenanceStatus(status: MaintenanceStatus): void;
|
|
6
|
+
export declare function printPruneResult(result: MaintenancePlanPruneResult): void;
|
|
7
|
+
export declare function parsePlanStatuses(value: string | undefined): MaintenancePlanStatus[] | null;
|
|
8
|
+
export declare function parseRevision(value: string | undefined): number | undefined | null;
|
|
9
|
+
//# sourceMappingURL=plan-cmd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/plan-cmd.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAE1B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAS,MAAM,YAAY,CAAC;AA8BpD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAiOjE;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,EAC7C,KAAK,GAAE,sBAA2B,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAc5B;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAqFtE;AA+ED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI,CAgBzE;AA2BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,qBAAqB,EAAE,GAAG,IAAI,CAkB3F;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAQlF"}
|
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { MAINTENANCE_PLAN_STATUSES, } from '@tenphi/akno-core';
|
|
3
|
+
import { openOptionsFrom, parse } from "../args.js";
|
|
4
|
+
import { runMaintenance } from "../ops-handle.js";
|
|
5
|
+
import { fail, heading, json, kv, line, style } from "../output.js";
|
|
6
|
+
import { dreamAutoEstimateSummary, dreamModelDegradationSummary, dreamModelUsageSummary, } from "./dream-model-status.js";
|
|
7
|
+
const PLAN_HELP = `akno plan [list] [--limit <n>] [--status <status,...>]
|
|
8
|
+
akno plan show <plan_id>
|
|
9
|
+
akno plan diff <plan_id> [--item <item_id>] [--revision <n>]
|
|
10
|
+
akno plan revise <plan_id> --item <item_id> --after <file|-> [--path <kb-relative-path>] [--reason <text>]
|
|
11
|
+
akno plan decide <plan_id> --item <item_id> <--approve | --reject> [--reason <text>] [--idempotency-key <key>]
|
|
12
|
+
akno plan apply <plan_id> [--idempotency-key <key>]
|
|
13
|
+
akno plan supersede <plan_id> [--reason <text>]
|
|
14
|
+
akno plan prune [--apply]
|
|
15
|
+
akno plan status
|
|
16
|
+
|
|
17
|
+
Inspect and control durable maintenance plans. Planning never changes knowledge-base
|
|
18
|
+
files. Applying checks every source and create target before writing, journals each
|
|
19
|
+
item as one change, re-indexes every affected path, and verifies the resulting index.
|
|
20
|
+
|
|
21
|
+
--status <s,...> Filter list by exact plan status.
|
|
22
|
+
revise seals a corrected full after-state; use --path when an item writes multiple pages.
|
|
23
|
+
The previous revision remains inspectable with plan diff --item <id> --revision <n>.
|
|
24
|
+
prune previews configured retention by default; --apply performs it.
|
|
25
|
+
--idempotency-key makes a lost-response retry safe and must identify only one exact request.
|
|
26
|
+
--json`;
|
|
27
|
+
export async function planCommand(argv) {
|
|
28
|
+
const { values, positionals } = parse(argv, {
|
|
29
|
+
limit: { type: 'string' },
|
|
30
|
+
item: { type: 'string' },
|
|
31
|
+
approve: { type: 'boolean', default: false },
|
|
32
|
+
reject: { type: 'boolean', default: false },
|
|
33
|
+
reason: { type: 'string' },
|
|
34
|
+
after: { type: 'string' },
|
|
35
|
+
path: { type: 'string' },
|
|
36
|
+
revision: { type: 'string' },
|
|
37
|
+
status: { type: 'string' },
|
|
38
|
+
apply: { type: 'boolean', default: false },
|
|
39
|
+
'idempotency-key': { type: 'string' },
|
|
40
|
+
});
|
|
41
|
+
const action = positionals[0] ?? 'list';
|
|
42
|
+
const planId = positionals[1];
|
|
43
|
+
if (values.help) {
|
|
44
|
+
line(PLAN_HELP);
|
|
45
|
+
return 0;
|
|
46
|
+
}
|
|
47
|
+
if (values['idempotency-key'] && action !== 'decide' && action !== 'apply') {
|
|
48
|
+
fail('--idempotency-key is available only for plan decide and plan apply');
|
|
49
|
+
return 2;
|
|
50
|
+
}
|
|
51
|
+
if (action === 'list') {
|
|
52
|
+
const limit = positiveLimit(values.limit);
|
|
53
|
+
const statuses = parsePlanStatuses(values.status);
|
|
54
|
+
if (statuses === null)
|
|
55
|
+
return 2;
|
|
56
|
+
const plans = await runMaintenance('plan', { action: 'list', limit, ...(statuses.length > 0 ? { status: statuses } : {}) }, values, openOptionsFrom(values), async (mem) => mem.plans(limit, statuses), { writable: false });
|
|
57
|
+
if (values.json)
|
|
58
|
+
json(plans);
|
|
59
|
+
else
|
|
60
|
+
printPlanList(plans);
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
if (action === 'status') {
|
|
64
|
+
const status = await loadMaintenanceStatus(values);
|
|
65
|
+
if (values.json)
|
|
66
|
+
json(status);
|
|
67
|
+
else
|
|
68
|
+
printMaintenanceStatus(status);
|
|
69
|
+
return 0;
|
|
70
|
+
}
|
|
71
|
+
if (action === 'prune') {
|
|
72
|
+
if (planId) {
|
|
73
|
+
line(PLAN_HELP);
|
|
74
|
+
return 1;
|
|
75
|
+
}
|
|
76
|
+
const result = await runMaintenance('plan', { action: 'prune', apply: values.apply }, values, openOptionsFrom(values), async (mem) => mem.prunePlans({ apply: values.apply }));
|
|
77
|
+
if (values.json)
|
|
78
|
+
json(result);
|
|
79
|
+
else
|
|
80
|
+
printPruneResult(result);
|
|
81
|
+
return 0;
|
|
82
|
+
}
|
|
83
|
+
if (!planId || !['show', 'diff', 'revise', 'decide', 'apply', 'supersede'].includes(action)) {
|
|
84
|
+
line(PLAN_HELP);
|
|
85
|
+
return 1;
|
|
86
|
+
}
|
|
87
|
+
if (action === 'show') {
|
|
88
|
+
const plan = await runMaintenance('plan', { action: 'show', plan_id: planId }, values, openOptionsFrom(values), async (mem) => mem.plan(planId), { writable: false });
|
|
89
|
+
if (values.json)
|
|
90
|
+
json(plan);
|
|
91
|
+
else
|
|
92
|
+
printPlan(plan);
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
if (action === 'diff') {
|
|
96
|
+
const revision = parseRevision(values.revision);
|
|
97
|
+
if (revision === null || (revision !== undefined && !values.item))
|
|
98
|
+
return 2;
|
|
99
|
+
const diff = await runMaintenance('plan', {
|
|
100
|
+
action: 'diff',
|
|
101
|
+
plan_id: planId,
|
|
102
|
+
...(values.item ? { item_id: values.item } : {}),
|
|
103
|
+
...(revision !== undefined ? { revision } : {}),
|
|
104
|
+
}, values, openOptionsFrom(values), async (mem) => mem.maintenanceDiff(planId, values.item, revision), { writable: false });
|
|
105
|
+
if (values.json) {
|
|
106
|
+
json({ plan_id: planId, item_id: values.item ?? null, revision: revision ?? null, diff });
|
|
107
|
+
}
|
|
108
|
+
else
|
|
109
|
+
line(diff);
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
if (action === 'revise') {
|
|
113
|
+
if (!values.item || !values.after) {
|
|
114
|
+
line(PLAN_HELP);
|
|
115
|
+
return 1;
|
|
116
|
+
}
|
|
117
|
+
const after = fs.readFileSync(values.after === '-' ? 0 : values.after, 'utf8');
|
|
118
|
+
const plan = await runMaintenance('plan', {
|
|
119
|
+
action: 'revise',
|
|
120
|
+
plan_id: planId,
|
|
121
|
+
item_id: values.item,
|
|
122
|
+
after,
|
|
123
|
+
...(values.path ? { rel_path: values.path } : {}),
|
|
124
|
+
...(values.reason ? { reason: values.reason } : {}),
|
|
125
|
+
}, values, openOptionsFrom(values), async (mem) => mem.revisePlan(planId, values.item, {
|
|
126
|
+
after,
|
|
127
|
+
...(values.path ? { relPath: values.path } : {}),
|
|
128
|
+
...(values.reason ? { reason: values.reason } : {}),
|
|
129
|
+
}));
|
|
130
|
+
const item = plan.items.find((candidate) => candidate.id === values.item);
|
|
131
|
+
if (values.json)
|
|
132
|
+
json(plan);
|
|
133
|
+
else {
|
|
134
|
+
line(`${style.green('revised')} ${item.id} to r${item.revision}; approval is required again`);
|
|
135
|
+
line(` ${style.grey('inspect with')} ${style.bold(`akno plan diff ${plan.id} --item ${item.id}`)}`);
|
|
136
|
+
}
|
|
137
|
+
return 0;
|
|
138
|
+
}
|
|
139
|
+
if (action === 'decide') {
|
|
140
|
+
if (!values.item || Number(values.approve) + Number(values.reject) !== 1) {
|
|
141
|
+
line(PLAN_HELP);
|
|
142
|
+
return 1;
|
|
143
|
+
}
|
|
144
|
+
const outcome = values.approve ? 'approve' : 'reject';
|
|
145
|
+
const plan = await runMaintenance('plan', {
|
|
146
|
+
action: 'decide',
|
|
147
|
+
plan_id: planId,
|
|
148
|
+
item_id: values.item,
|
|
149
|
+
outcome,
|
|
150
|
+
reason: values.reason ?? '',
|
|
151
|
+
...(values['idempotency-key'] ? { idempotency_key: values['idempotency-key'] } : {}),
|
|
152
|
+
}, values, openOptionsFrom(values), async (mem) => mem.decidePlan(planId, values.item, outcome, values.reason, values['idempotency-key'] ? { idempotencyKey: values['idempotency-key'] } : {}));
|
|
153
|
+
if (values.json)
|
|
154
|
+
json(plan);
|
|
155
|
+
else {
|
|
156
|
+
line(`${style.green(outcome === 'approve' ? 'approved' : 'rejected')} ${values.item}`);
|
|
157
|
+
printPlanSummary(plan);
|
|
158
|
+
}
|
|
159
|
+
return 0;
|
|
160
|
+
}
|
|
161
|
+
if (action === 'supersede') {
|
|
162
|
+
const plan = await runMaintenance('plan', {
|
|
163
|
+
action: 'supersede',
|
|
164
|
+
plan_id: planId,
|
|
165
|
+
...(values.reason ? { reason: values.reason } : {}),
|
|
166
|
+
}, values, openOptionsFrom(values), async (mem) => mem.supersedePlan(planId, values.reason));
|
|
167
|
+
if (values.json)
|
|
168
|
+
json(plan);
|
|
169
|
+
else {
|
|
170
|
+
line(`${style.yellow('superseded')} ${plan.id}`);
|
|
171
|
+
if (plan.error)
|
|
172
|
+
line(` ${style.grey(plan.error)}`);
|
|
173
|
+
}
|
|
174
|
+
return 0;
|
|
175
|
+
}
|
|
176
|
+
const result = await runMaintenance('plan', {
|
|
177
|
+
action: 'apply',
|
|
178
|
+
plan_id: planId,
|
|
179
|
+
...(values['idempotency-key'] ? { idempotency_key: values['idempotency-key'] } : {}),
|
|
180
|
+
}, values, openOptionsFrom(values), async (mem) => mem.applyPlan(planId, values['idempotency-key'] ? { idempotencyKey: values['idempotency-key'] } : {}));
|
|
181
|
+
if (values.json)
|
|
182
|
+
json(result);
|
|
183
|
+
else
|
|
184
|
+
printApplyResult(result);
|
|
185
|
+
return result.plan.status === 'failed' ? 2 : 0;
|
|
186
|
+
}
|
|
187
|
+
export async function loadMaintenanceStatus(values, query = {}) {
|
|
188
|
+
return runMaintenance('plan', {
|
|
189
|
+
action: 'status',
|
|
190
|
+
...(query.runId ? { run_id: query.runId } : {}),
|
|
191
|
+
...(query.last !== undefined ? { last: query.last } : {}),
|
|
192
|
+
...(query.pending ? { pending: true } : {}),
|
|
193
|
+
}, values, openOptionsFrom(values), async (mem) => mem.maintenanceStatus(query), { writable: false });
|
|
194
|
+
}
|
|
195
|
+
export function printMaintenanceStatus(status) {
|
|
196
|
+
heading('Maintenance');
|
|
197
|
+
kv([
|
|
198
|
+
['profile', status.authority.profile],
|
|
199
|
+
['local notifications', status.notifications],
|
|
200
|
+
['cycle authority', status.authority.mode],
|
|
201
|
+
['automatic KB writes', status.authority.automaticKnowledgeBaseWrites ? 'allowed' : 'not allowed'],
|
|
202
|
+
['automatic apply state', status.recovery.automaticApply],
|
|
203
|
+
['observe', status.authority.observe],
|
|
204
|
+
['reflect', status.authority.reflect],
|
|
205
|
+
['curate', status.authority.curate],
|
|
206
|
+
['adopt', status.authority.adopt],
|
|
207
|
+
['active dream runs', status.activeRuns],
|
|
208
|
+
['active plans', status.active],
|
|
209
|
+
['awaiting decisions', status.awaitingHuman],
|
|
210
|
+
['verification pending', status.verificationPending],
|
|
211
|
+
['budget deferred', status.budgetDeferred],
|
|
212
|
+
['automatic revision attempts', status.authority.maxRevisionAttempts],
|
|
213
|
+
]);
|
|
214
|
+
if (status.recovery.profile) {
|
|
215
|
+
line('\n profile recovery pause');
|
|
216
|
+
kv([
|
|
217
|
+
['reason', status.recovery.profile.reason],
|
|
218
|
+
['paused', status.recovery.profile.pausedAt],
|
|
219
|
+
['last run', status.recovery.profile.lastRunId],
|
|
220
|
+
['resume with', status.recovery.profile.recoveryCommand],
|
|
221
|
+
]);
|
|
222
|
+
}
|
|
223
|
+
if (status.recovery.transforms.length > 0) {
|
|
224
|
+
line('\n transformation recovery');
|
|
225
|
+
for (const entry of status.recovery.transforms) {
|
|
226
|
+
const state = entry.pausedAt ? 'paused' : `${entry.consecutiveFailures}/3 rollbacks`;
|
|
227
|
+
line(` ${(entry.transform ?? 'unknown').padEnd(14)} ${state}` +
|
|
228
|
+
(entry.recoveryCommand ? ` · ${entry.recoveryCommand}` : ''));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
line('\n transformation policies');
|
|
232
|
+
for (const policy of ['auto', 'review', 'audit', 'off']) {
|
|
233
|
+
const kinds = Object.entries(status.authority.policies)
|
|
234
|
+
.filter(([, effective]) => effective === policy)
|
|
235
|
+
.map(([kind]) => kind);
|
|
236
|
+
if (kinds.length > 0)
|
|
237
|
+
line(` ${policy.padEnd(14)} ${kinds.join(', ')}`);
|
|
238
|
+
}
|
|
239
|
+
line('\n whole-run apply limits');
|
|
240
|
+
kv([
|
|
241
|
+
['items', status.authority.limits.maxItems],
|
|
242
|
+
['changed files', status.authority.limits.maxFilesChanged],
|
|
243
|
+
['written bytes', status.authority.limits.maxBytesWritten],
|
|
244
|
+
['high-risk items', status.authority.limits.maxHighRiskItems],
|
|
245
|
+
]);
|
|
246
|
+
if (status.latestRun) {
|
|
247
|
+
line('\n latest dream run');
|
|
248
|
+
kv([
|
|
249
|
+
['id', status.latestRun.id],
|
|
250
|
+
['status', status.latestRun.status],
|
|
251
|
+
['profile', status.latestRun.profile],
|
|
252
|
+
['mode', status.latestRun.mode],
|
|
253
|
+
['model', status.latestRun.modelUsage.modelId],
|
|
254
|
+
['started', status.latestRun.startedAt],
|
|
255
|
+
['snapshot', status.latestRun.snapshot.indexRevision.slice(0, 12)],
|
|
256
|
+
['model work', dreamModelUsageSummary(status.latestRun.modelUsage)],
|
|
257
|
+
['auto estimate', dreamAutoEstimateSummary(status.latestRun.autoEstimate)],
|
|
258
|
+
['degraded', dreamModelDegradationSummary(status.latestRun.degraded)],
|
|
259
|
+
]);
|
|
260
|
+
if (status.latestRun.budget) {
|
|
261
|
+
kv([
|
|
262
|
+
[
|
|
263
|
+
'budget used',
|
|
264
|
+
`${status.latestRun.budget.used.items} items, ` +
|
|
265
|
+
`${status.latestRun.budget.used.filesChanged} files, ` +
|
|
266
|
+
`${status.latestRun.budget.used.bytesWritten} bytes, ` +
|
|
267
|
+
`${status.latestRun.budget.used.highRiskItems} high-risk`,
|
|
268
|
+
],
|
|
269
|
+
['budget deferred', status.latestRun.budget.deferredItems],
|
|
270
|
+
]);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
if (!status.latest) {
|
|
274
|
+
line(style.grey('\n no maintenance plans yet'));
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
line('\n latest');
|
|
278
|
+
printPlanSummary(status.latest);
|
|
279
|
+
}
|
|
280
|
+
function printPlanList(plans) {
|
|
281
|
+
if (plans.length === 0) {
|
|
282
|
+
line(style.grey('no maintenance plans'));
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
heading(`${plans.length} maintenance plan${plans.length === 1 ? '' : 's'}`);
|
|
286
|
+
for (const plan of plans)
|
|
287
|
+
printPlanSummary(plan);
|
|
288
|
+
}
|
|
289
|
+
function printPlan(plan) {
|
|
290
|
+
heading(`${plan.id} — ${plan.status}`);
|
|
291
|
+
kv([
|
|
292
|
+
['mode', plan.mode],
|
|
293
|
+
['phase', plan.phase],
|
|
294
|
+
['created', plan.createdAt],
|
|
295
|
+
['summary', plan.summary],
|
|
296
|
+
...(plan.payloadPrunedAt
|
|
297
|
+
? [['private payload', `pruned at ${plan.payloadPrunedAt}`]]
|
|
298
|
+
: []),
|
|
299
|
+
...(plan.error ? [['detail', plan.error]] : []),
|
|
300
|
+
]);
|
|
301
|
+
for (const item of plan.items) {
|
|
302
|
+
const components = (item.componentCount ?? 1) > 1 ? ` ${item.componentCount} components` : '';
|
|
303
|
+
line(`\n ${style.bold(item.id)} r${item.revision} ${itemStatus(item.status)} ${item.kind}/${item.risk} ` +
|
|
304
|
+
`${style.grey(item.policy)}${components} ${item.subject}`);
|
|
305
|
+
line(` ${style.grey(item.rationale)}`);
|
|
306
|
+
if (item.decision) {
|
|
307
|
+
line(` ${style.grey(`${item.decision.actor}: ${item.decision.outcome} — ${item.decision.reason}`)}`);
|
|
308
|
+
}
|
|
309
|
+
for (const revision of item.previousRevisions) {
|
|
310
|
+
const decision = revision.decision ? `; ${revision.decision.actor}: ${revision.decision.outcome}` : '';
|
|
311
|
+
line(` ${style.grey(`r${revision.revision} ${revision.status}${decision} → revised: ${revision.reason}`)}`);
|
|
312
|
+
}
|
|
313
|
+
if (!item.decision && item.statusReason)
|
|
314
|
+
line(` ${style.grey(item.statusReason)}`);
|
|
315
|
+
if (item.verification)
|
|
316
|
+
line(` ${style.grey(item.verification.detail)}`);
|
|
317
|
+
if (item.changeId) {
|
|
318
|
+
line(` ${style.grey('undo:')} ${style.bold(`akno undo ${item.changeId}`)}`);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
if (plan.items.some((item) => item.status === 'proposed')) {
|
|
322
|
+
line(`\n ${style.grey('inspect exact changes with')} ${style.bold(`akno plan diff ${plan.id}`)}`);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
function printPlanSummary(plan) {
|
|
326
|
+
const counts = nonzeroCounts(plan.counts);
|
|
327
|
+
line(` ${style.bold(plan.id)} ${itemStatus(plan.status)} ${plan.mode}/${plan.phase}` +
|
|
328
|
+
(counts ? style.grey(` ${counts}`) : ''));
|
|
329
|
+
line(` ${style.grey(`${plan.createdAt.slice(0, 19).replace('T', ' ')} · ${plan.summary}`)}`);
|
|
330
|
+
}
|
|
331
|
+
function printApplyResult(result) {
|
|
332
|
+
heading(`${result.plan.id} — ${result.plan.status}`);
|
|
333
|
+
for (const item of result.plan.items) {
|
|
334
|
+
const components = (item.componentCount ?? 1) > 1 ? ` ${item.componentCount} components` : '';
|
|
335
|
+
line(` ${itemStatus(item.status)} ${item.id} r${item.revision}${components} ${item.subject}`);
|
|
336
|
+
if (item.verification)
|
|
337
|
+
line(` ${style.grey(item.verification.detail)}`);
|
|
338
|
+
if (!item.decision && item.statusReason)
|
|
339
|
+
line(` ${style.grey(item.statusReason)}`);
|
|
340
|
+
if (item.changeId)
|
|
341
|
+
line(` ${style.grey('reverse with')} ${style.bold(`akno undo ${item.changeId}`)}`);
|
|
342
|
+
}
|
|
343
|
+
line(style.grey(` budget: ${result.budget.used.items}/${result.budget.limits.maxItems} items, ` +
|
|
344
|
+
`${result.budget.used.filesChanged}/${result.budget.limits.maxFilesChanged} files, ` +
|
|
345
|
+
`${result.budget.used.bytesWritten}/${result.budget.limits.maxBytesWritten} bytes, ` +
|
|
346
|
+
`${result.budget.used.highRiskItems}/${result.budget.limits.maxHighRiskItems} high-risk; ` +
|
|
347
|
+
`${result.budget.deferredItems} deferred`));
|
|
348
|
+
}
|
|
349
|
+
export function printPruneResult(result) {
|
|
350
|
+
heading(result.applied ? 'Plan retention applied' : 'Plan retention preview');
|
|
351
|
+
kv([
|
|
352
|
+
['private payload window', `${result.retention.payloadDays} days`],
|
|
353
|
+
['compact receipt window', `${result.retention.receiptDays} days`],
|
|
354
|
+
['payload plans', result.payloads.plans],
|
|
355
|
+
['payload items', result.payloads.items],
|
|
356
|
+
['private bytes', result.payloads.privateBytes],
|
|
357
|
+
['receipts', result.receipts.plans],
|
|
358
|
+
['receipt items', result.receipts.items],
|
|
359
|
+
]);
|
|
360
|
+
if (!result.applied && (result.payloads.plans > 0 || result.receipts.plans > 0)) {
|
|
361
|
+
line(`\n ${style.grey('apply this exact retention boundary with')} ${style.bold('akno plan prune --apply')}`);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
function itemStatus(status) {
|
|
365
|
+
if (status === 'applied' || status === 'completed' || status === 'approved')
|
|
366
|
+
return style.green(status);
|
|
367
|
+
if (status === 'rejected' ||
|
|
368
|
+
status === 'stale' ||
|
|
369
|
+
status === 'verification_failed' ||
|
|
370
|
+
status === 'failed') {
|
|
371
|
+
return style.yellow(status);
|
|
372
|
+
}
|
|
373
|
+
return style.cyan(status);
|
|
374
|
+
}
|
|
375
|
+
function nonzeroCounts(counts) {
|
|
376
|
+
return Object.entries(counts)
|
|
377
|
+
.filter(([, value]) => value > 0)
|
|
378
|
+
.map(([name, value]) => `${value} ${name.replaceAll('_', ' ')}`)
|
|
379
|
+
.join(', ');
|
|
380
|
+
}
|
|
381
|
+
function positiveLimit(value) {
|
|
382
|
+
const parsed = value ? Number(value) : 20;
|
|
383
|
+
return Number.isFinite(parsed) && parsed > 0 ? Math.floor(parsed) : 20;
|
|
384
|
+
}
|
|
385
|
+
export function parsePlanStatuses(value) {
|
|
386
|
+
if (value === undefined)
|
|
387
|
+
return [];
|
|
388
|
+
const statuses = [
|
|
389
|
+
...new Set(value
|
|
390
|
+
.split(',')
|
|
391
|
+
.map((entry) => entry.trim())
|
|
392
|
+
.filter(Boolean)),
|
|
393
|
+
];
|
|
394
|
+
if (statuses.length === 0 ||
|
|
395
|
+
statuses.some((status) => !MAINTENANCE_PLAN_STATUSES.includes(status))) {
|
|
396
|
+
fail(`--status must contain: ${MAINTENANCE_PLAN_STATUSES.join(', ')}`);
|
|
397
|
+
return null;
|
|
398
|
+
}
|
|
399
|
+
return statuses;
|
|
400
|
+
}
|
|
401
|
+
export function parseRevision(value) {
|
|
402
|
+
if (value === undefined)
|
|
403
|
+
return undefined;
|
|
404
|
+
const revision = Number(value);
|
|
405
|
+
if (!Number.isInteger(revision) || revision < 1) {
|
|
406
|
+
fail('--revision must be a positive integer');
|
|
407
|
+
return null;
|
|
408
|
+
}
|
|
409
|
+
return revision;
|
|
410
|
+
}
|
|
411
|
+
//# sourceMappingURL=plan-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-cmd.js","sourceRoot":"","sources":["../../src/commands/plan-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/read-cmd.ts"],"names":[],"mappings":"AAgBA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgFjE"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { openOptionsFrom, parse } from "../args.js";
|
|
2
|
+
import { heading, json, kv, line, style, truncate } from "../output.js";
|
|
3
|
+
import { resolveOps } from "../ops-handle.js";
|
|
4
|
+
const READ_HELP = `akno read <slug | --id <id> | --document <id | path>> [options]
|
|
5
|
+
|
|
6
|
+
Read one exact thing. Returns the full body regardless of page role — recall
|
|
7
|
+
caps what a source page contributes unprompted, read never does.
|
|
8
|
+
|
|
9
|
+
--document takes a document id, its path in the knowledge base, or its bare
|
|
10
|
+
filename when only one file has that name. A stored PDF was read when it was
|
|
11
|
+
filed, so this costs no extraction and no OCR.
|
|
12
|
+
|
|
13
|
+
--from <n> --to <n> Line range instead of the whole body.
|
|
14
|
+
--json Machine-readable response.`;
|
|
15
|
+
export async function readCommand(argv) {
|
|
16
|
+
const { values, positionals } = parse(argv, {
|
|
17
|
+
id: { type: 'string' },
|
|
18
|
+
document: { type: 'string' },
|
|
19
|
+
from: { type: 'string' },
|
|
20
|
+
to: { type: 'string' },
|
|
21
|
+
});
|
|
22
|
+
if (values.help || (positionals.length === 0 && !values.id && !values.document)) {
|
|
23
|
+
line(READ_HELP);
|
|
24
|
+
return values.help ? 0 : 1;
|
|
25
|
+
}
|
|
26
|
+
const handle = await resolveOps(values, openOptionsFrom(values));
|
|
27
|
+
try {
|
|
28
|
+
const result = await handle.ops.read({
|
|
29
|
+
...(positionals[0] ? { slug: positionals[0] } : {}),
|
|
30
|
+
...(values.id ? { id: values.id } : {}),
|
|
31
|
+
...(values.document ? { document: values.document } : {}),
|
|
32
|
+
...(values.from ? { from_line: Number(values.from) } : {}),
|
|
33
|
+
...(values.to ? { to_line: Number(values.to) } : {}),
|
|
34
|
+
});
|
|
35
|
+
if (values.json) {
|
|
36
|
+
json(result);
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
if (result.document) {
|
|
40
|
+
heading(result.document.rel_path);
|
|
41
|
+
kv([
|
|
42
|
+
['id', result.document.id],
|
|
43
|
+
['page', result.document.page],
|
|
44
|
+
['mime', result.document.mime],
|
|
45
|
+
['pages', result.document.page_count],
|
|
46
|
+
['ocr', result.document.ocr ? 'yes' : 'no'],
|
|
47
|
+
['sha256', result.document.sha256.slice(0, 16)],
|
|
48
|
+
['bytes', result.document.bytes ?? null],
|
|
49
|
+
]);
|
|
50
|
+
if (result.note)
|
|
51
|
+
line(`\n${style.yellow(result.note)}`);
|
|
52
|
+
if (result.document.text)
|
|
53
|
+
line(`\n${result.document.text.slice(0, 4000)}`);
|
|
54
|
+
return 0;
|
|
55
|
+
}
|
|
56
|
+
const page = result.page;
|
|
57
|
+
if (!page)
|
|
58
|
+
return 1;
|
|
59
|
+
heading(`${page.slug} ${style.grey(`(${page.role})`)}`);
|
|
60
|
+
kv([
|
|
61
|
+
['id', page.id],
|
|
62
|
+
['title', page.title],
|
|
63
|
+
['type', page.type],
|
|
64
|
+
['tags', page.tags.length > 0 ? page.tags.join(', ') : null],
|
|
65
|
+
['updated', page.updated],
|
|
66
|
+
['summary', page.summary ? truncate(page.summary, 90) : null],
|
|
67
|
+
['links', page.links.length > 0 ? page.links.join(', ') : null],
|
|
68
|
+
['backlinks', page.backlinks.length > 0 ? page.backlinks.join(', ') : null],
|
|
69
|
+
['broken links', page.broken_links?.length ? page.broken_links.join(', ') : null],
|
|
70
|
+
['source fence', page.source_fence_line ?? null],
|
|
71
|
+
]);
|
|
72
|
+
if (page.documents?.length) {
|
|
73
|
+
line(` ${style.grey('documents')} ${page.documents.map((d) => d.rel_path ?? d.id).join(', ')}`);
|
|
74
|
+
}
|
|
75
|
+
for (const entry of page.superseded ?? []) {
|
|
76
|
+
line(style.yellow(` superseded: ${truncate(entry.claim, 90)} (until ${entry.valid_to})`));
|
|
77
|
+
}
|
|
78
|
+
line();
|
|
79
|
+
for (const bodyLine of page.lines) {
|
|
80
|
+
const confidence = bodyLine.confidence !== undefined ? style.grey(` ~${bodyLine.confidence}`) : '';
|
|
81
|
+
line(`${style.grey(String(bodyLine.n).padStart(5))} ${bodyLine.text}${confidence}`);
|
|
82
|
+
}
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
await handle.close();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=read-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-cmd.js","sourceRoot":"","sources":["../../src/commands/read-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recall-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/recall-cmd.ts"],"names":[],"mappings":"AAyBA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0EnE"}
|