ainize 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.
Files changed (95) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +225 -0
  3. package/dist/bin.d.ts +10 -0
  4. package/dist/bin.d.ts.map +1 -0
  5. package/dist/bin.js +711 -0
  6. package/dist/bin.js.map +1 -0
  7. package/dist/client.d.ts +38 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +164 -0
  10. package/dist/client.js.map +1 -0
  11. package/dist/commands/auth.d.ts +30 -0
  12. package/dist/commands/auth.d.ts.map +1 -0
  13. package/dist/commands/auth.js +216 -0
  14. package/dist/commands/auth.js.map +1 -0
  15. package/dist/commands/branch.d.ts +326 -0
  16. package/dist/commands/branch.d.ts.map +1 -0
  17. package/dist/commands/branch.js +467 -0
  18. package/dist/commands/branch.js.map +1 -0
  19. package/dist/commands/chain.d.ts +43 -0
  20. package/dist/commands/chain.d.ts.map +1 -0
  21. package/dist/commands/chain.js +224 -0
  22. package/dist/commands/chain.js.map +1 -0
  23. package/dist/commands/chat.d.ts +157 -0
  24. package/dist/commands/chat.d.ts.map +1 -0
  25. package/dist/commands/chat.js +395 -0
  26. package/dist/commands/chat.js.map +1 -0
  27. package/dist/commands/dataset.d.ts +51 -0
  28. package/dist/commands/dataset.d.ts.map +1 -0
  29. package/dist/commands/dataset.js +157 -0
  30. package/dist/commands/dataset.js.map +1 -0
  31. package/dist/commands/drive.d.ts +32 -0
  32. package/dist/commands/drive.d.ts.map +1 -0
  33. package/dist/commands/drive.js +68 -0
  34. package/dist/commands/drive.js.map +1 -0
  35. package/dist/commands/huggingface-dataset.d.ts +63 -0
  36. package/dist/commands/huggingface-dataset.d.ts.map +1 -0
  37. package/dist/commands/huggingface-dataset.js +254 -0
  38. package/dist/commands/huggingface-dataset.js.map +1 -0
  39. package/dist/commands/init.d.ts +107 -0
  40. package/dist/commands/init.d.ts.map +1 -0
  41. package/dist/commands/init.js +538 -0
  42. package/dist/commands/init.js.map +1 -0
  43. package/dist/commands/ledger.d.ts +43 -0
  44. package/dist/commands/ledger.d.ts.map +1 -0
  45. package/dist/commands/ledger.js +125 -0
  46. package/dist/commands/ledger.js.map +1 -0
  47. package/dist/commands/node.d.ts +250 -0
  48. package/dist/commands/node.d.ts.map +1 -0
  49. package/dist/commands/node.js +651 -0
  50. package/dist/commands/node.js.map +1 -0
  51. package/dist/commands/patch.d.ts +852 -0
  52. package/dist/commands/patch.d.ts.map +1 -0
  53. package/dist/commands/patch.js +1527 -0
  54. package/dist/commands/patch.js.map +1 -0
  55. package/dist/commands/peers.d.ts +86 -0
  56. package/dist/commands/peers.d.ts.map +1 -0
  57. package/dist/commands/peers.js +143 -0
  58. package/dist/commands/peers.js.map +1 -0
  59. package/dist/commands/teach-dataset.d.ts +381 -0
  60. package/dist/commands/teach-dataset.d.ts.map +1 -0
  61. package/dist/commands/teach-dataset.js +780 -0
  62. package/dist/commands/teach-dataset.js.map +1 -0
  63. package/dist/commands/teach.d.ts +351 -0
  64. package/dist/commands/teach.d.ts.map +1 -0
  65. package/dist/commands/teach.js +435 -0
  66. package/dist/commands/teach.js.map +1 -0
  67. package/dist/context.d.ts +55 -0
  68. package/dist/context.d.ts.map +1 -0
  69. package/dist/context.js +102 -0
  70. package/dist/context.js.map +1 -0
  71. package/dist/ens.d.ts +50 -0
  72. package/dist/ens.d.ts.map +1 -0
  73. package/dist/ens.js +155 -0
  74. package/dist/ens.js.map +1 -0
  75. package/dist/help.d.ts +57 -0
  76. package/dist/help.d.ts.map +1 -0
  77. package/dist/help.js +227 -0
  78. package/dist/help.js.map +1 -0
  79. package/dist/index.d.ts +15 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +15 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/output.d.ts +104 -0
  84. package/dist/output.d.ts.map +1 -0
  85. package/dist/output.js +383 -0
  86. package/dist/output.js.map +1 -0
  87. package/dist/pid.d.ts +5 -0
  88. package/dist/pid.d.ts.map +1 -0
  89. package/dist/pid.js +25 -0
  90. package/dist/pid.js.map +1 -0
  91. package/dist/quiet.d.ts +2 -0
  92. package/dist/quiet.d.ts.map +1 -0
  93. package/dist/quiet.js +12 -0
  94. package/dist/quiet.js.map +1 -0
  95. package/package.json +55 -0
@@ -0,0 +1,381 @@
1
+ import { type TeachDataset, type TeachDatasetRow, type TeachDatasetSummary, type TeachEffort } from '@ainize/core';
2
+ import { NodeClient } from '../client.js';
3
+ import { type CliContext } from '../context.js';
4
+ import { type KeyOpts, type TeachJobView, type TeacherKey } from './teach.js';
5
+ export interface DatasetReport {
6
+ summary: TeachDatasetSummary;
7
+ rows: TeachDatasetRow[];
8
+ }
9
+ export interface DatasetResult {
10
+ dataset: TeachDataset;
11
+ report: DatasetReport;
12
+ created: boolean;
13
+ }
14
+ export interface DatasetRowsPage {
15
+ total: number;
16
+ source_rows: number;
17
+ offset: number;
18
+ limit: number;
19
+ summary: TeachDatasetSummary;
20
+ items: TeachDatasetRow[];
21
+ }
22
+ export interface CreateJobResult {
23
+ job: TeachJobView;
24
+ quota?: {
25
+ key_remaining?: number;
26
+ ip_remaining?: number;
27
+ rows_remaining?: number;
28
+ rows_ip_remaining?: number;
29
+ };
30
+ }
31
+ export interface ParseOpts {
32
+ format?: string;
33
+ delimiter?: string;
34
+ header?: boolean;
35
+ columns?: string;
36
+ encoding?: string;
37
+ layout?: string;
38
+ }
39
+ export interface TrainOpts {
40
+ effort?: TeachEffort;
41
+ check?: boolean;
42
+ alt?: boolean;
43
+ rows?: number;
44
+ name?: string;
45
+ patch?: string;
46
+ wait?: boolean;
47
+ /** `--timeout <minutes>`: how long `--wait` waits before giving up with exit 7 (default 60). */
48
+ timeout?: number;
49
+ /** `--on <id>`: the knowledge this lesson is trained ON TOP OF (design §13). Distinct from `--patch`, which only loads for comparison. */
50
+ on?: string;
51
+ /** `--no-inherit`: check against the base, but do not train its questions as known answers. */
52
+ inherit?: boolean;
53
+ /** `--yes-change`: these answers are meant to replace the base's (design §12.1 `base_unresolved_conflicts`). */
54
+ yesChange?: boolean;
55
+ }
56
+ export interface DatasetOpts extends KeyOpts, ParseOpts {
57
+ name?: string;
58
+ retention?: 'keep' | 'delete_after_training';
59
+ }
60
+ /**
61
+ * The teaching key for this terminal: `--key-file` / `--key` / `AINIZE_TEACH_KEY`, else `<home>/teaching-key.json`,
62
+ * created (0600) on first use. `created` is true only when this call wrote the file — the caller says so out loud,
63
+ * because that file is the ONLY way back to the lessons and the earnings.
64
+ */
65
+ export declare function ensureTeacherKey(ctx: CliContext, o?: KeyOpts): {
66
+ key: TeacherKey;
67
+ path: string | null;
68
+ created: boolean;
69
+ };
70
+ /** A node client that signs every teach request with the key (request-bound v2 header, one per request). */
71
+ export declare class TeachSession {
72
+ readonly client: NodeClient;
73
+ readonly key: TeacherKey;
74
+ readonly nodeAddress: string;
75
+ private constructor();
76
+ static open(ctx: CliContext, o?: KeyOpts): Promise<TeachSession>;
77
+ private hdr;
78
+ get<T>(path: string): Promise<T>;
79
+ post<T>(path: string, body?: unknown): Promise<T>;
80
+ del<T>(path: string): Promise<T>;
81
+ /** Raw (non-JSON) GET — the dataset download. */
82
+ raw(path: string): Promise<Response>;
83
+ /** Multipart upload: the v2 signature covers the sha256 header value, not the body (design §D14). */
84
+ upload<T>(path: string, form: FormData, fileSha: string): Promise<T>;
85
+ }
86
+ export declare function renderSummary(s: TeachDatasetSummary): string;
87
+ /** The per-line problems — every line that will NOT train, with its source line number and the reason. */
88
+ export declare function renderRows(rows: TeachDatasetRow[], opts?: {
89
+ all?: boolean;
90
+ positions?: boolean;
91
+ }): string;
92
+ export declare function renderDataset(d: TeachDataset, node: string): string;
93
+ export interface DatasetUploadResult extends DatasetResult {
94
+ node: string;
95
+ file: string;
96
+ bytes: number;
97
+ sha256: string;
98
+ job?: CreateJobResult;
99
+ /** `--train --wait`: the lesson in `job` is the finished one, and the exit code is its outcome (item 252). */
100
+ waited?: boolean;
101
+ }
102
+ /** How long `--wait` waits: `--timeout <minutes>`, an hour by default. */
103
+ export declare function waitMs(opts: TrainOpts): number;
104
+ /**
105
+ * Validate a dataset file and upload it. Nothing is trained here — the node parses the bytes, reports every line it
106
+ * could not use, and keeps the questions as a dataset you can train (`--train`, or `teach train <id>`).
107
+ * Re-uploading the same file returns the SAME dataset (200, `created: false`) instead of a second copy.
108
+ */
109
+ export declare function datasetUpload(ctx: CliContext, file: string, opts?: DatasetOpts & TrainOpts & {
110
+ train?: boolean;
111
+ silent?: boolean;
112
+ nextSteps?: boolean;
113
+ }): Promise<DatasetUploadResult>;
114
+ export declare function renderUpload(r: DatasetUploadResult, opts?: {
115
+ nextSteps?: boolean;
116
+ waited?: boolean;
117
+ }): string;
118
+ export interface DatasetListResult {
119
+ node: string;
120
+ items: TeachDataset[];
121
+ }
122
+ export declare function datasetLs(ctx: CliContext, opts?: KeyOpts): Promise<DatasetListResult>;
123
+ export declare function renderDatasetList(r: DatasetListResult): string;
124
+ export interface DatasetGetResult {
125
+ node: string;
126
+ dataset: TeachDataset;
127
+ page: DatasetRowsPage;
128
+ saved?: {
129
+ path: string;
130
+ bytes: number;
131
+ sha256: string;
132
+ verified: boolean;
133
+ };
134
+ }
135
+ /**
136
+ * One dataset: what it is, and every source line with the reason it was or was not used. With `-o` the canonical
137
+ * bytes are written to a file — re-uploading that file lands on the SAME dataset, which is what makes a lesson
138
+ * reproducible from its own questions.
139
+ */
140
+ export declare function datasetGet(ctx: CliContext, id: string, opts?: KeyOpts & {
141
+ out?: string;
142
+ format?: 'jsonl' | 'csv';
143
+ rows?: number;
144
+ offset?: number;
145
+ status?: string;
146
+ all?: boolean;
147
+ }): Promise<DatasetGetResult>;
148
+ export declare function renderDatasetGet(r: DatasetGetResult, all: boolean): string;
149
+ export declare function datasetRm(ctx: CliContext, id: string, opts?: KeyOpts): Promise<{
150
+ node: string;
151
+ deleted: string;
152
+ }>;
153
+ export interface ForkResult {
154
+ node: string;
155
+ dataset_id: string;
156
+ dataset: TeachDataset;
157
+ created: boolean;
158
+ inherited_rows: number;
159
+ parent: {
160
+ patch_id: string;
161
+ name: string;
162
+ dataset_sha256: string;
163
+ };
164
+ license: string | null;
165
+ }
166
+ /**
167
+ * `ainize patch fork <id>` — copy a published knowledge's questions into MY training sets, with that knowledge
168
+ * recorded as their parent. The next line is `teach train <dataset> --on <id>`, and the command says so.
169
+ */
170
+ export declare function patchFork(ctx: CliContext, id: string, opts?: KeyOpts & {
171
+ name?: string;
172
+ }): Promise<ForkResult>;
173
+ export interface TrainResult extends CreateJobResult {
174
+ node: string;
175
+ dataset_id: string;
176
+ uploaded?: DatasetUploadResult;
177
+ /** `--wait` only (item 239): READY *and* measured on the live model. A script keying on `checks.ok` alone was told
178
+ * a lesson that taught 0 of 18 sentences had succeeded, because `checks.ok` is the SIDE-EFFECT check, not the lesson. */
179
+ ok?: boolean;
180
+ }
181
+ /**
182
+ * `teach train <dataset-id | file>` — queue a lesson from a dataset. A path is uploaded first (the same validation
183
+ * `teach dataset` prints), so one command can go from a file on disk to a lesson.
184
+ */
185
+ export declare function teachTrain(ctx: CliContext, target: string, opts?: DatasetOpts & TrainOpts): Promise<TrainResult>;
186
+ /**
187
+ * `teach train --wait` exit codes (item 239). 0 only when the lesson is READY and was actually measured on the live
188
+ * model; every other terminal state has its own code so a cron line can branch instead of guessing from stdout.
189
+ */
190
+ export declare const EXIT_FOR_STATUS: Record<string, number>;
191
+ /** READY, and nothing was ever measured on the live model — the lesson exists and cannot be published (item 245). */
192
+ export declare const unchecked: (j: TeachJobView) => boolean;
193
+ /** The exit code of a finished lesson: its terminal status, except that an unmeasured READY is 8, not 0. */
194
+ export declare function exitForJob(j: TeachJobView): number;
195
+ export declare function renderJobCreated(r: CreateJobResult, node: string): string;
196
+ export interface JobsResult {
197
+ node: string;
198
+ items: TeachJobView[];
199
+ }
200
+ export declare function teachJobs(ctx: CliContext, opts?: KeyOpts & {
201
+ dataset?: string;
202
+ }): Promise<JobsResult>;
203
+ export declare function renderJobs(r: JobsResult): string;
204
+ /**
205
+ * `ainize teach recheck <lesson>` — measure a lesson that was saved unchecked.
206
+ *
207
+ * When the serving model is unreachable the node trains anyway, waits out its grace period and then saves the
208
+ * lesson with `checks.executed: false`, which blocks publishing for good. `POST /api/teach/jobs/:id/recheck` has
209
+ * been the way back all along and existed only in the browser: an operator whose 3 a.m. cron produced an unchecked
210
+ * lesson had to open a page and click "check again". `--wait` follows it to its next terminal state, with the same
211
+ * exit codes `teach train --wait` uses.
212
+ */
213
+ export declare function teachRecheck(ctx: CliContext, jobId: string, opts?: KeyOpts & {
214
+ wait?: boolean;
215
+ }): Promise<{
216
+ node: string;
217
+ job: TeachJobView;
218
+ }>;
219
+ /** What `GET /api/teach/jobs/:id/publish-challenge` answers. `split_preview` is item 186's real money split. */
220
+ export interface PublishChallenge {
221
+ patch_sha256: string;
222
+ benchmark_hash: string;
223
+ address: string;
224
+ signer: string;
225
+ share: number;
226
+ claim: string;
227
+ split_preview?: {
228
+ currency: string;
229
+ royalty_share: number;
230
+ contributor_share: number;
231
+ parents: {
232
+ id: string;
233
+ name: string;
234
+ author?: string;
235
+ price?: string;
236
+ }[];
237
+ shares: {
238
+ address: string;
239
+ share: number;
240
+ kind: 'you' | 'node' | 'lineage';
241
+ name?: string;
242
+ }[];
243
+ suggested_price: string;
244
+ };
245
+ verification?: {
246
+ quorum: number;
247
+ peers: number;
248
+ reachable: number;
249
+ verifiers: number;
250
+ self_verifier: boolean;
251
+ };
252
+ ledger?: {
253
+ kind: 'local' | 'ain';
254
+ currency: string;
255
+ };
256
+ }
257
+ export type PublishOutcome = {
258
+ status: 'PENDING_REVIEW';
259
+ } | {
260
+ status: 'ANNOUNCED';
261
+ patch_id: string;
262
+ url: string;
263
+ };
264
+ export interface PublishResult {
265
+ node: string;
266
+ job_id: string;
267
+ challenge: PublishChallenge;
268
+ result: PublishOutcome;
269
+ price: string;
270
+ }
271
+ export interface TeachPublishOpts extends KeyOpts {
272
+ name: string;
273
+ price?: string;
274
+ license?: string;
275
+ description?: string;
276
+ payout?: string;
277
+ consentPermanent?: boolean;
278
+ consentRights?: boolean;
279
+ access?: 'public' | 'derivative' | 'private';
280
+ datasetLicense?: string;
281
+ includeNotes?: boolean;
282
+ /** where the questions came from (§6.5) — required by the node above `dataset.declarationRows` rows */
283
+ declare?: 'own' | 'public' | 'licensed';
284
+ }
285
+ /**
286
+ * `ainize teach publish <job-id>` — the door that only the browser had (item 238).
287
+ *
288
+ * The whole dataset pipeline already ran from the terminal (upload -> train -> wait -> READY) and then stopped with
289
+ * "open <node>/teach/lesson/<id>": publishing needs a `claim_sig` signed by the TEACHING key, and only the browser's
290
+ * PublishSheet ever signed one — although this CLI has held that key in `<home>/teaching-key.json` all along. So a
291
+ * cron line could bake every morning and never share anything without someone opening a browser at 3 a.m.
292
+ *
293
+ * The two consents are the publisher's, not this command's: they are typed as flags, sent as the real checkbox state,
294
+ * and the node refuses the publish without both. Nothing is defaulted to true.
295
+ */
296
+ export declare function teachPublish(ctx: CliContext, jobId: string, opts: TeachPublishOpts): Promise<PublishResult>;
297
+ export declare function renderPublished(r: PublishResult): string;
298
+ export interface MergePreview {
299
+ a: {
300
+ id: string;
301
+ name: string;
302
+ questions: number | null;
303
+ };
304
+ b: MergePreview['a'];
305
+ questions: {
306
+ a_only: number;
307
+ b_only: number;
308
+ same: number;
309
+ conflicts: {
310
+ key: string;
311
+ prompt: string;
312
+ a_answer: string;
313
+ b_answer: string;
314
+ }[];
315
+ } | null;
316
+ rows: {
317
+ a_only: number;
318
+ b_only: number;
319
+ shared: number;
320
+ disagree: number;
321
+ opposing: number;
322
+ before_differs: number;
323
+ };
324
+ merged: {
325
+ rows: number;
326
+ from_a: number;
327
+ from_b: number;
328
+ targets: number;
329
+ } | null;
330
+ tiers: {
331
+ union: {
332
+ allowed: boolean;
333
+ reason?: string;
334
+ export?: string;
335
+ };
336
+ retrain: {
337
+ allowed: boolean;
338
+ reason?: string;
339
+ est_min: number | null;
340
+ };
341
+ rebuild: {
342
+ allowed: boolean;
343
+ reason?: string;
344
+ est_min: number | null;
345
+ };
346
+ required: string | null;
347
+ disagree_ratio: number;
348
+ };
349
+ licenses: {
350
+ a: string | null;
351
+ b: string | null;
352
+ child_min: string | null;
353
+ };
354
+ private_parent?: string;
355
+ }
356
+ export type MergeResolutionInput = 'a' | 'b' | 'drop' | {
357
+ answer: string;
358
+ };
359
+ export interface MergeResult extends Partial<CreateJobResult> {
360
+ node: string;
361
+ preview: MergePreview;
362
+ a: string;
363
+ b: string;
364
+ tier?: string;
365
+ }
366
+ /**
367
+ * `ainize patch merge <a> <b>` — combine two knowledges (design §13).
368
+ *
369
+ * It always measures first and prints what it measured: how the two training sets overlap, how the two FILES overlap,
370
+ * and which of the three builds is possible. `--preview` stops there. Without a resolution for every question the two
371
+ * answer differently the command refuses and prints those questions as JSON on stdout with exit code 3 — that file,
372
+ * with an answer chosen for each key, is what `--resolve` takes back.
373
+ */
374
+ export declare function patchMerge(ctx: CliContext, a: string, b: string, opts?: KeyOpts & {
375
+ preview?: boolean;
376
+ resolve?: string;
377
+ tier?: string;
378
+ name?: string;
379
+ wait?: boolean;
380
+ }): Promise<MergeResult>;
381
+ //# sourceMappingURL=teach-dataset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teach-dataset.d.ts","sourceRoot":"","sources":["../../src/commands/teach-dataset.ts"],"names":[],"mappings":"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"}