@gitroll/tacitt-cli 0.6.13 → 0.6.15

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 (45) hide show
  1. package/dist/{agent-setup-Doy_AnPY.mjs → agent-setup-Bv73EZ2b.mjs} +2 -2
  2. package/dist/agent-setup-worker.mjs +5 -5
  3. package/dist/cli.mjs +10 -10
  4. package/dist/codex-title-worker.mjs +1 -1
  5. package/dist/configured-preview-worker.mjs +5 -5
  6. package/dist/configured-session-worker.mjs +5 -5
  7. package/dist/{frame-BPbypzmt.mjs → frame-0v_mLdvG.mjs} +1 -1
  8. package/dist/{heap-DCS_WXIA.mjs → heap-aWke8lrK.mjs} +8 -7
  9. package/dist/inspection-worker.mjs +4 -4
  10. package/dist/{job--zxwgaPy.mjs → job-ILnqW1ge.mjs} +4 -4
  11. package/dist/{locate-PLEyLYW-.mjs → locate-LpCex6Xj.mjs} +81 -16
  12. package/dist/{model-CyXvsWLz.mjs → model-BEWsfkIU.mjs} +1 -1
  13. package/dist/operation-executor.mjs +3 -3
  14. package/dist/preview-worker.mjs +1 -1
  15. package/dist/privacy-validator.mjs +1 -1
  16. package/dist/{query-BC7MIaWc.mjs → query-BX8QwaBi.mjs} +5923 -5721
  17. package/dist/{run-Dod7Vykp.mjs → run-P_uZgSYa.mjs} +4 -4
  18. package/dist/{src-CttNuxOn.mjs → src-CHy3-siB.mjs} +81 -24
  19. package/dist/{src-dL6y2mcu.mjs → src-ikYI-1c5.mjs} +4 -4
  20. package/dist/{src-CP-K2PBv.mjs → src-sERffIem.mjs} +3 -3
  21. package/dist/store-database-worker.mjs +1 -1
  22. package/dist/web/assets/index-XdWDOC5H.js +172 -0
  23. package/dist/web/index.html +1 -1
  24. package/package.json +1 -1
  25. package/skills/tacitt/INDEX.md +1 -1
  26. package/skills/tacitt/SKILL.md +3 -1
  27. package/skills/tacitt/references/INDEX.md +2 -2
  28. package/skills/tacitt/references/bootstrap.md +1 -1
  29. package/skills/tacitt/references/classification.md +2 -0
  30. package/skills/tacitt/references/commands.md +17 -3
  31. package/skills/tacitt/references/journey.md +4 -2
  32. package/skills/tacitt/references/parallel-review.md +3 -3
  33. package/skills/tacitt/scripts/INDEX.md +5 -5
  34. package/skills/tacitt/scripts/journey-classification-progress.mjs +6 -0
  35. package/skills/tacitt/scripts/journey-classification-tasks.mjs +11 -1
  36. package/skills/tacitt/scripts/journey-classification-validation.d.mts +14 -1
  37. package/skills/tacitt/scripts/journey-classification-validation.mjs +45 -0
  38. package/skills/tacitt/scripts/journey-consolidation-submit.mjs +22 -5
  39. package/skills/tacitt/scripts/journey-scan-timing.mjs +1 -1
  40. package/skills/tacitt/scripts/journey-state.d.mts +3 -0
  41. package/skills/tacitt/scripts/journey-state.mjs +8 -1
  42. package/skills/tacitt/scripts/journey.mjs +45 -7
  43. package/skills/tacitt/scripts/privacy-validator.mjs +76 -7
  44. package/skills/tacitt/scripts/review.mjs +2 -2
  45. package/dist/web/assets/index-BgDdPL1c.js +0 -172
@@ -5112,6 +5112,14 @@ function object(shape, params) {
5112
5112
  };
5113
5113
  return new ZodObject(def);
5114
5114
  }
5115
+ function strictObject(shape, params) {
5116
+ return new ZodObject({
5117
+ type: "object",
5118
+ shape,
5119
+ catchall: never(),
5120
+ ...normalizeParams(params)
5121
+ });
5122
+ }
5115
5123
  function looseObject(shape, params) {
5116
5124
  return new ZodObject({
5117
5125
  type: "object",
@@ -5400,7 +5408,7 @@ const range = object({
5400
5408
  start: number().int().nonnegative(),
5401
5409
  end: number().int().nonnegative()
5402
5410
  }).strict();
5403
- const digest$3 = string().regex(/^[a-f0-9]{64}$/u);
5411
+ const digest$4 = string().regex(/^[a-f0-9]{64}$/u);
5404
5412
  /** Original static title mask provenance for keyword-only preview/packaging. */
5405
5413
  const classificationTitleMaskSchema = object({
5406
5414
  inputRange: range,
@@ -5417,14 +5425,66 @@ const classificationTitleMaskSchema = object({
5417
5425
  originalPointer: string().nullable(),
5418
5426
  outputPointer: string().nullable(),
5419
5427
  sourceRange: range.nullable(),
5420
- inputSha256: digest$3,
5421
- outputSha256: digest$3,
5428
+ inputSha256: digest$4,
5429
+ outputSha256: digest$4,
5422
5430
  context: object({
5423
5431
  start: number().int().nonnegative(),
5424
5432
  text: string()
5425
5433
  }).strict()
5426
5434
  }).strict();
5427
5435
  //#endregion
5436
+ //#region packages/application/src/journey/account-works.ts
5437
+ const digest$3 = string().regex(/^[0-9a-f]{64}$/u);
5438
+ const stored = object({
5439
+ /** Wire field from issue #131; a formation reply without it is read as no stored metadata. */
5440
+ metadataSha256: digest$3.nullish().transform((value) => value ?? null),
5441
+ key: digest$3,
5442
+ sessionKey: string().regex(/^sess-pilot\/[^/]+\/[^/]+\/[^/]+$/u).nullable(),
5443
+ sha256: digest$3,
5444
+ byteLength: number().int().positive(),
5445
+ lastAt: datetime()
5446
+ });
5447
+ const access = _enum([
5448
+ "public",
5449
+ "private",
5450
+ "removed"
5451
+ ]);
5452
+ const accountWorksInventorySchema = object({
5453
+ works: array(object({
5454
+ logicalWorkId: uuid(),
5455
+ title: string().min(1).max(300),
5456
+ access,
5457
+ unitAccess: access,
5458
+ sessions: array(stored)
5459
+ })),
5460
+ unassigned: array(stored.extend({ removedFromWork: uuid().nullish().transform((value) => value ?? null) }))
5461
+ });
5462
+ const accountWorksSchema = discriminatedUnion("status", [
5463
+ strictObject({
5464
+ status: literal("read"),
5465
+ subject: string().min(1).max(128),
5466
+ at: datetime(),
5467
+ inventory: accountWorksInventorySchema,
5468
+ /** Families with a key unassigned after its Work's removal: no Work, not sent (D4). */
5469
+ leftOut: array(strictObject({
5470
+ rootSessionId: string().min(1).max(128),
5471
+ removedWorkId: uuid()
5472
+ })).default([]),
5473
+ /** Families with a held key that are not cleanly placed: no Work, not sent (D9). */
5474
+ heldBack: array(string().min(1).max(128)).default([]),
5475
+ /** Every family was left out or held back: no Work and no snapshot (#129 review). */
5476
+ nothingToSend: literal(true).optional()
5477
+ }),
5478
+ strictObject({
5479
+ status: literal("signed-out"),
5480
+ at: datetime()
5481
+ }),
5482
+ strictObject({
5483
+ status: literal("unavailable"),
5484
+ at: datetime()
5485
+ })
5486
+ ]);
5487
+ //#endregion
5428
5488
  //#region packages/application/src/journey/profile.ts
5429
5489
  /**
5430
5490
  * Passport's own rules (talent-platform `profile-settings.ts`): 1 to 39 letters and digits with
@@ -10167,7 +10227,8 @@ const reviewInterruptionSchema = object({
10167
10227
  }).strict();
10168
10228
  const journeyWorkSchema = object({
10169
10229
  id: journeyIdSchema,
10170
- title: label,
10230
+ /** 240 characters; an `account` title holds the server's 300 (ADR 0276 D2). */
10231
+ title: string().trim().min(1).max(300),
10171
10232
  /** Statically processed repository or folder name; the original stays in the private plan. */
10172
10233
  projectName: label,
10173
10234
  projectType: journeyWorkTypeSchema.nullable(),
@@ -10183,7 +10244,11 @@ const journeyWorkSchema = object({
10183
10244
  description: string(),
10184
10245
  reason: string()
10185
10246
  }).strict().optional(),
10186
- titleOrigin: _enum(["model", "explicit"]),
10247
+ titleOrigin: _enum([
10248
+ "model",
10249
+ "explicit",
10250
+ "account"
10251
+ ]),
10187
10252
  explicitTitleId: journeyIdSchema.nullable(),
10188
10253
  accessOrigin: _enum([
10189
10254
  "default",
@@ -10221,6 +10286,8 @@ const journeyWorkSchema = object({
10221
10286
  inputRevision: count$1.min(1),
10222
10287
  /** Placement created this Work (create-work or a sorting "new" decision): its name is generic. */
10223
10288
  createdByPlacement: literal(true).optional(),
10289
+ /** Rebuilt at formation from the account Work with this id (ADR 0276 D1); never classified. */
10290
+ accountWork: literal(true).optional(),
10224
10291
  /** Host-owned eligibility after removal-only regrouping; never authorizes output by itself. */
10225
10292
  reviewReuseFrom: object({
10226
10293
  inputRevision: count$1.min(1),
@@ -10276,7 +10343,7 @@ const journeyWorkSchema = object({
10276
10343
  sentBundleId: journeyIdSchema.optional(),
10277
10344
  sentAccess: _enum(["public", "private"]).optional()
10278
10345
  }).strict().nullable()
10279
- }).strict();
10346
+ }).strict().refine((work) => work.titleOrigin === "account" || work.title.length <= 240, { path: ["title"] });
10280
10347
  const journeyConsentSchema = object({
10281
10348
  provider: label,
10282
10349
  allowedAt: datetime(),
@@ -10298,7 +10365,7 @@ const journeyExceptionSchema = object({
10298
10365
  value: string().min(1).max(1024)
10299
10366
  }).strict();
10300
10367
  object({
10301
- formatVersion: literal(10),
10368
+ formatVersion: literal([10, 11]),
10302
10369
  outputVersion: number().int().positive().optional(),
10303
10370
  classificationRevision: count$1.nullable(),
10304
10371
  privacy: journeyPrivacySchema,
@@ -10368,6 +10435,8 @@ object({
10368
10435
  * confirmation and Retry set `read`; late classification records only a failure. Absent in a
10369
10436
  * journey of an earlier version, which reads as not `read`.
10370
10437
  */
10438
+ /** Formation read only; never establishes access proof. */
10439
+ accountWorks: accountWorksSchema.optional(),
10371
10440
  accountRead: object({
10372
10441
  status: _enum([
10373
10442
  "read",
@@ -55,7 +55,7 @@ const COMMAND_BUDGET_MS = 75_000
55
55
  const LOCK_WAIT_MS = 60_000
56
56
  const LOCK_POLL_MS = 200
57
57
  // Native child slots shared by every phase; `--agents auto` fills all of them with privacy packs.
58
- const SLOTS = 24
58
+ const SLOTS = 48
59
59
  // While `--agents auto` waits, journey input (newly published sessions) is rechecked this often.
60
60
  const AUTO_RECHECK_MS = 3_000
61
61
  const PREPARATION_WAIT_MS = 60_000
@@ -1547,7 +1547,7 @@ async function outstandingPacks(ctx) {
1547
1547
  return outstanding
1548
1548
  }
1549
1549
  /**
1550
- * `ingest --agents auto`: ingest and refill every free slot of the twenty-four. While nothing is new,
1550
+ * `ingest --agents auto`: ingest and refill every free slot of the forty-eight. While nothing is new,
1551
1551
  * wait up to `--wait-ms` (within half the command budget) for a published answer, rechecking
1552
1552
  * journey input periodically, so the parent loops: dispatch the returned prompts, call again.
1553
1553
  */