@gitroll/tacitt-cli 0.4.2 → 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.
- package/dist/{agent-setup-Bpsi-BCv.mjs → agent-setup-Dv_mQ38P.mjs} +2 -2
- package/dist/agent-setup-worker.mjs +5 -5
- package/dist/cli.mjs +6 -5
- package/dist/codex-title-worker.mjs +1 -1
- package/dist/configured-preview-worker.mjs +5 -5
- package/dist/configured-session-worker.mjs +5 -5
- package/dist/{frame-IeDOLy1o.mjs → frame-DGun31Uc.mjs} +1 -1
- package/dist/{heap-DiOlSa8T.mjs → heap-DY5n4EVC.mjs} +5 -4
- package/dist/inspection-worker.mjs +4 -4
- package/dist/{job-BII94L2c.mjs → job-BxUVFocm.mjs} +383 -8
- package/dist/{locate-CBiw-CJK.mjs → locate-JYtFmKu-.mjs} +115 -3
- package/dist/{model-DGTsARtV.mjs → model-C1VzgKLi.mjs} +1 -1
- package/dist/operation-executor.mjs +3 -3
- package/dist/preview-worker.mjs +1 -1
- package/dist/privacy-validator.mjs +1 -1
- package/dist/{query-CVqWNFYf.mjs → query-Cm5lumS4.mjs} +588 -64
- package/dist/{run-BGlf-W0M.mjs → run-hQ_W2p_Y.mjs} +4 -4
- package/dist/{src-CBTvOa44.mjs → src--Ln5GHdz.mjs} +44 -9
- package/dist/{src-D4nrfC2S.mjs → src-BMSLVcgs.mjs} +6 -5
- package/dist/{src-37kIclGK.mjs → src-CGFwLUd6.mjs} +4 -4
- package/dist/store-database-worker.mjs +1 -1
- package/dist/web/assets/index-Bbck2aOB.css +1 -0
- package/dist/web/assets/index-CXm08nyc.js +69 -0
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/skills/tacitt/SKILL.md +4 -4
- package/skills/tacitt/references/INDEX.md +11 -10
- package/skills/tacitt/references/commands.md +25 -12
- package/skills/tacitt/references/journey.md +3 -3
- package/skills/tacitt/references/remote-workers.md +46 -0
- package/skills/tacitt/references/send.md +5 -1
- package/skills/tacitt/scripts/INDEX.md +36 -36
- package/skills/tacitt/scripts/journey-scan-timing.mjs +5 -4
- package/skills/tacitt/scripts/journey-state.d.mts +9 -0
- package/skills/tacitt/scripts/journey-state.mjs +19 -2
- package/skills/tacitt/scripts/journey.d.mts +4 -0
- package/skills/tacitt/scripts/journey.mjs +4 -2
- package/skills/tacitt/scripts/privacy-validator.mjs +76 -3
- package/skills/tacitt/scripts/review.mjs +6 -6
- package/dist/web/assets/index-D3g_ATU-.js +0 -69
- package/dist/web/assets/index-D5DEG5Ue.css +0 -1
|
@@ -8282,6 +8282,8 @@ const sessionSchema = z.object({
|
|
|
8282
8282
|
harness: z.enum(["claude", "codex"]),
|
|
8283
8283
|
sourceKey: z.string(),
|
|
8284
8284
|
sourceSessionId: z.string().nullable(),
|
|
8285
|
+
/** Journey-private remote import association, never inferred from a worker log. */
|
|
8286
|
+
remoteParentSessionId: z.string().optional(),
|
|
8285
8287
|
title: z.string(),
|
|
8286
8288
|
createdAt: z.string().nullable(),
|
|
8287
8289
|
lastInteractionAt: z.string().nullable().optional(),
|
|
@@ -8352,10 +8354,17 @@ function sourceGraph(inventory) {
|
|
|
8352
8354
|
const unidentified = /* @__PURE__ */ new Set();
|
|
8353
8355
|
const nodes = [];
|
|
8354
8356
|
for (const session of inventory.sessions) for (const part of session.parts.length ? session.parts : [null]) {
|
|
8355
|
-
|
|
8357
|
+
let observation = part ? observeSource(part) : {
|
|
8356
8358
|
identity: null,
|
|
8357
8359
|
reason: "unreadable-source"
|
|
8358
8360
|
};
|
|
8361
|
+
if (session.remoteParentSessionId && observation.reason === null && observation.identity) observation = {
|
|
8362
|
+
...observation,
|
|
8363
|
+
identity: {
|
|
8364
|
+
...observation.identity,
|
|
8365
|
+
role: "worker"
|
|
8366
|
+
}
|
|
8367
|
+
};
|
|
8359
8368
|
const node = {
|
|
8360
8369
|
key: sourceKey(session.id, part?.id ?? ""),
|
|
8361
8370
|
session,
|
|
@@ -8378,6 +8387,11 @@ function sourceGraph(inventory) {
|
|
|
8378
8387
|
for (const node of nodes) {
|
|
8379
8388
|
const identity = node.observation.identity;
|
|
8380
8389
|
if (identity?.role !== "worker" || node.observation.reason !== null) continue;
|
|
8390
|
+
if (node.session.remoteParentSessionId) {
|
|
8391
|
+
node.parents = nodes.filter((parent) => parent.session.id === node.session.remoteParentSessionId);
|
|
8392
|
+
node.ancestry = node.parents.length ? "parents" : "missing";
|
|
8393
|
+
continue;
|
|
8394
|
+
}
|
|
8381
8395
|
const id = identity.dispatchParentSessionId;
|
|
8382
8396
|
const matches = id === null ? [] : byNative.get(nativeKey(node.session.harness, id)) ?? [];
|
|
8383
8397
|
if (id === null || matches.length > 257) {
|
|
@@ -8487,6 +8501,9 @@ const safeCodes = /* @__PURE__ */ new Set([
|
|
|
8487
8501
|
"ACCOUNT_NOT_CONFIGURED",
|
|
8488
8502
|
"ACCOUNT_SIGNED_OUT",
|
|
8489
8503
|
"ACCOUNT_PROFILE_UNAVAILABLE",
|
|
8504
|
+
"PASSPORT_ADDRESS_TAKEN",
|
|
8505
|
+
"PASSPORT_ADDRESS_RESERVED",
|
|
8506
|
+
"PASSPORT_ADDRESS_LIMIT",
|
|
8490
8507
|
"ARTIFACT_ABORTED",
|
|
8491
8508
|
"ARTIFACT_COLLECTION_INCOMPLETE",
|
|
8492
8509
|
"ARTIFACT_WORKER_MEMORY",
|
|
@@ -8674,6 +8691,99 @@ const classificationTitleMaskSchema = z.object({
|
|
|
8674
8691
|
}).strict()
|
|
8675
8692
|
}).strict();
|
|
8676
8693
|
//#endregion
|
|
8694
|
+
//#region packages/application/src/journey/profile.ts
|
|
8695
|
+
/**
|
|
8696
|
+
* Passport's own rules (talent-platform `profile-settings.ts`): 1 to 39 letters and digits with
|
|
8697
|
+
* single hyphens between them, matched case-insensitively; the typed case is kept.
|
|
8698
|
+
*/
|
|
8699
|
+
const passportAddressSchema = z.string().min(1).max(39).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/i);
|
|
8700
|
+
/** A web link or a mailto address, as Passport accepts them. */
|
|
8701
|
+
const passportLinkSchema = z.string().max(2048).refine((value) => {
|
|
8702
|
+
if (value.startsWith("mailto:")) return z.email().max(254).safeParse(value.slice(7)).success;
|
|
8703
|
+
if (!URL.canParse(value)) return false;
|
|
8704
|
+
const url = new URL(value);
|
|
8705
|
+
return ["https:", "http:"].includes(url.protocol) && !!url.hostname && !url.username && !url.password && !/\s/.test(value);
|
|
8706
|
+
});
|
|
8707
|
+
const passportLinksSchema = z.array(passportLinkSchema).max(5);
|
|
8708
|
+
/**
|
|
8709
|
+
* The address and links the person chose in this Journey (ADR 0246). Nothing here reaches
|
|
8710
|
+
* Passport before Send; the Send writes it before the first Work upload.
|
|
8711
|
+
*/
|
|
8712
|
+
const journeyProfileSchema = z.object({
|
|
8713
|
+
/** The kept address; null until the person keeps one. */
|
|
8714
|
+
address: passportAddressSchema.nullable(),
|
|
8715
|
+
/** The complete list of links the profile should show. */
|
|
8716
|
+
links: passportLinksSchema,
|
|
8717
|
+
/** `later` comes back once on the Sent page; `declined` is that second Later. */
|
|
8718
|
+
linksChoice: z.enum([
|
|
8719
|
+
"added",
|
|
8720
|
+
"later",
|
|
8721
|
+
"declined"
|
|
8722
|
+
]).nullable()
|
|
8723
|
+
}).strict();
|
|
8724
|
+
const emptyJourneyProfile = {
|
|
8725
|
+
address: null,
|
|
8726
|
+
links: [],
|
|
8727
|
+
linksChoice: null
|
|
8728
|
+
};
|
|
8729
|
+
const journeyProfileAddressActionSchema = z.object({
|
|
8730
|
+
kind: z.literal("profile-address"),
|
|
8731
|
+
address: passportAddressSchema
|
|
8732
|
+
}).strict();
|
|
8733
|
+
const journeyProfileLinksActionSchema = z.object({
|
|
8734
|
+
kind: z.literal("profile-links"),
|
|
8735
|
+
links: passportLinksSchema,
|
|
8736
|
+
/** `later` comes back once on the Sent page; `declined` is that page's final Later. */
|
|
8737
|
+
choice: z.enum([
|
|
8738
|
+
"added",
|
|
8739
|
+
"later",
|
|
8740
|
+
"declined"
|
|
8741
|
+
])
|
|
8742
|
+
}).strict();
|
|
8743
|
+
/** The owner's Passport profile settings (`GET /me/profile`), as far as the CLI reads them. */
|
|
8744
|
+
const ownerProfileSchema = z.object({
|
|
8745
|
+
publicId: z.string().min(1).max(64),
|
|
8746
|
+
/** Loose, so a setting Passport adds later goes back unchanged with the next save. */
|
|
8747
|
+
profile: z.looseObject({
|
|
8748
|
+
address: z.union([z.literal(""), passportAddressSchema]),
|
|
8749
|
+
links: passportLinksSchema,
|
|
8750
|
+
contact: z.enum([
|
|
8751
|
+
"account",
|
|
8752
|
+
"other",
|
|
8753
|
+
"hidden"
|
|
8754
|
+
]),
|
|
8755
|
+
contactEmail: z.string().max(254)
|
|
8756
|
+
}),
|
|
8757
|
+
accountEmail: z.string().max(254)
|
|
8758
|
+
});
|
|
8759
|
+
/**
|
|
8760
|
+
* The fields `PUT /me/profile` saves: the Journey's address and links over the owner's current
|
|
8761
|
+
* settings, which keep their contact choice. Unchosen parts keep Passport's current values.
|
|
8762
|
+
*/
|
|
8763
|
+
function mergeOwnerProfile(current, chosen) {
|
|
8764
|
+
return {
|
|
8765
|
+
...current,
|
|
8766
|
+
address: chosen.address ?? current.address,
|
|
8767
|
+
links: chosen.linksChoice === "added" ? chosen.links : current.links
|
|
8768
|
+
};
|
|
8769
|
+
}
|
|
8770
|
+
/** Whether the Send has anything to write. */
|
|
8771
|
+
function profileHasChoices(profile) {
|
|
8772
|
+
return !!profile && (profile.address !== null || profile.linksChoice === "added");
|
|
8773
|
+
}
|
|
8774
|
+
/** Added links replace the list; Later and its final Sent-page form keep it (BL-230). */
|
|
8775
|
+
function respondProfileLinks(current, action) {
|
|
8776
|
+
if (action.choice === "added") return {
|
|
8777
|
+
...current,
|
|
8778
|
+
links: action.links,
|
|
8779
|
+
linksChoice: "added"
|
|
8780
|
+
};
|
|
8781
|
+
return {
|
|
8782
|
+
...current,
|
|
8783
|
+
linksChoice: action.choice
|
|
8784
|
+
};
|
|
8785
|
+
}
|
|
8786
|
+
//#endregion
|
|
8677
8787
|
//#region packages/application/src/source/period.ts
|
|
8678
8788
|
const DAY = /^\d{4}-\d{2}-\d{2}$/;
|
|
8679
8789
|
/** A local calendar day (`YYYY-MM-DD`) or a full ISO timestamp. */
|
|
@@ -9479,7 +9589,9 @@ const nativeJourneySchema = z.object({
|
|
|
9479
9589
|
/** Set when the person abandoned this Journey in chat; a new start may then replace it. */
|
|
9480
9590
|
abandonedAt: z.iso.datetime().optional(),
|
|
9481
9591
|
/** Sessions whose last activity lies in this period (ADR 0206); absent means all. */
|
|
9482
|
-
period: sessionPeriodSchema.optional()
|
|
9592
|
+
period: sessionPeriodSchema.optional(),
|
|
9593
|
+
/** The Passport address and links chosen in this Journey (ADR 0246); absent means none yet. */
|
|
9594
|
+
profile: journeyProfileSchema.optional()
|
|
9483
9595
|
}).strict();
|
|
9484
9596
|
//#endregion
|
|
9485
9597
|
//#region packages/application/src/journey/b/model.ts
|
|
@@ -10672,4 +10784,4 @@ function locateTerms(batches, terms) {
|
|
|
10672
10784
|
};
|
|
10673
10785
|
}
|
|
10674
10786
|
//#endregion
|
|
10675
|
-
export { bCountSchema as $,
|
|
10787
|
+
export { bCountSchema as $, detectStatic as $n, safeField as $t, bDuplicateMirror as A, createReplacementKey as An, journeyTermSchema as At, bEvidenceReader as B, nativeItems as Bn, sessionPeriodSchema as Bt, validateBUnit as C, inspectionSemanticVersions as Cn, cardsSubmitSchema as Ct, uncoveredBObligations as D, createStaticProcessor as Dn, privacyResolveSchema as Dt, bLiterals as E, walkNativeFields as En, packageConfirmActionSchema as Et, bClassificationKey as F, entityDictionaryVersion as Fn, termTypeInfo as Ft, subtractBRanges as G, validateProfile as Gn, ownerProfileSchema as Gt, codePointLength as H, transformRecords as Hn, journeyProfileAddressActionSchema as Ht, bIssue as I, nativeParserVersion as In, termTypeSchema as It, bRetainedGroupSchema as J, validatePlan as Jn, respondProfileLinks as Jt, utf16Offset as K, orderProfile as Kn, passportAddressSchema as Kt, bOverlaps as L, redactionImplementationVersion as Ln, termTypes as Lt, bLegacyBindings as M, projectNativeRecord as Mn, reviewTermsResultSchema as Mt, bUnitFragments as N, parseNativeRecord as Nn, termAssessmentSchema as Nt, indexBRanges as O, staticDefaults as On, privacyTermKey as Ot, bAdoptedObligations as P, cleanupImplementationVersion as Pn, termOverrideValueSchema as Pt, bAnchorSchema as Q, resolveLimits as Qn, safeCode as Qt, unownedBObligations as R, nativeBoolean as Rn, deselectOutsidePeriod as Rt, validateBFields as S, currentDetectorVersion as Sn, cardsConfirmActionSchema as St, bLiteralTerms as T, gapReasons as Tn, emptyJourneyPrivacy as Tt, codePointSlice as U, frameRecords as Un, journeyProfileLinksActionSchema as Ut, bDigest as V, nativeText as Vn, emptyJourneyProfile as Vt, createCodePointIndex as W, retainedMainTextNodes as Wn, mergeOwnerProfile as Wt, bSessionDecisionSchema as X, defaultLimits as Xn, ApplicationError as Xt, bReviewSubmissionSchema as Y, copyData as Yn, classificationTitleMaskSchema as Yt, bTermSchema as Z, recordPointerLimits as Zn, UnfinishedJourneyError as Zt, semanticFindingSchema as _, reviewRoles as _n, hideConfirmSchema as _t, reviewChunkSchema as a, observeSource as an, admitCustomTerm as ar, journeyExceptionSchema as at, validateBReview as b, createSessionPreparation as bn, journeyConfigurationSchema as bt, textDigest as c, inventorySchema as cn, scalarBefore as cr, journeyPreferenceScopeSchema as ct, reviewAlignmentAudit as d, workspaceSchema as dn, fail as dr, nativeJourneySchema as dt, familyNeedsReview as en, isStaticCategory as er, bIdSchema as et, reviewAlignmentAuditSchema as f, nativeSourceIdentitySchema as fn, isProcessingCode as fr, journeyGuidanceSchema as ft, validateReviewAlignment as g, mainReviewRole as gn, journeyWorkSuggestionSchema as gt, reviewFindingsDigest as h, projectNativeReviewInput as hn, journeyDescribeSchema as ht, reviewBatchSchema as i, sourceKey as in, createEntityMatcher as ir, journeyDigestSchema as it, bDuplicateShift as j, sessionNonce as jn, reviewTermsInputSchema as jt, bBindingCap as k, staticOptions as kn, privacyTermSchema as kt, validateReview as l, sessionSchema as ln, defaultDetectionLimits as lr, journeyProjectTypeSchema as lt, reviewAlignmentSchema as m, processNativeRecord as mn, delegatedDecisionSchema as mt, compileBFindings as n, reviewFamilies as nn, jsonSpans as nr, journeyAccessSchema as nt, reviewDigest as o, sourceSnapshotId as on, admitGitName as or, journeyIdSchema as ot, reviewAlignmentInputSchema as p, withMandatoryCustomTerms as pn, journeyInstructionInputSchema as pt, bRepresentationSchema as q, buildPlan as qn, profileHasChoices as qt, reviewBatchChunks as r, sourceGraph as rn, agentContextLocation as rr, journeyChoiceSchema as rt, reviewSubmitSchema as s, fileIdentitySchema as sn, scalarAfter as sr, journeyKindSchema as st, locateTerms as t, familySelected as tn, staticCategories as tr, bMethod as tt, findingReferenceKey as u, sourcePartSchema as un, ProcessingError as ur, journeyWorkTypeSchema as ut, bContextEvidence as v, createSentenceContext as vn, hidePlanInputSchema as vt, bLiteralAdmitted as w, createDetectionSummary as wn, decisionCardInputSchema as wt, createBAnalysisUnits as x, bindInspection as xn, cardAnswerActionSchema as xt, validateBClassification as y, renderNative as yn, hidePlanResourceSchema as yt, bAnchorKey as z, nativeField as zn, filterInventoryByPeriod as zt };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as executorRequestSchema, f as parseOptions, g as startupFailure, i as invoke, m as longCommands, n as readOperation, o as createRuntime, r as waitOperation } from "./query-
|
|
2
|
-
import {
|
|
3
|
-
import "./src
|
|
1
|
+
import { c as executorRequestSchema, f as parseOptions, g as startupFailure, i as invoke, m as longCommands, n as readOperation, o as createRuntime, r as waitOperation } from "./query-Cm5lumS4.mjs";
|
|
2
|
+
import { $t as safeField, Qt as safeCode, Xt as ApplicationError } from "./locate-JYtFmKu-.mjs";
|
|
3
|
+
import "./src--Ln5GHdz.mjs";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { setTimeout } from "node:timers/promises";
|
|
6
6
|
//#region apps/cli/src/operation/executor.ts
|
package/dist/preview-worker.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as assertPreviewHeap, o as previewInputSchema, t as runPreview } from "./run-
|
|
1
|
+
import { n as assertPreviewHeap, o as previewInputSchema, t as runPreview } from "./run-hQ_W2p_Y.mjs";
|
|
2
2
|
import { parentPort, workerData } from "node:worker_threads";
|
|
3
3
|
//#region packages/harnesses/src/preview/worker/index.ts
|
|
4
4
|
function notify(message) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dt as privacyResolveSchema, Ot as privacyTermKey, t as locateTerms, wt as decisionCardInputSchema } from "./locate-
|
|
1
|
+
import { Dt as privacyResolveSchema, Ot as privacyTermKey, t as locateTerms, wt as decisionCardInputSchema } from "./locate-JYtFmKu-.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
//#region apps/cli/src/skill-install/privacy-validator.ts
|
|
4
4
|
const suppliedTerms = z.array(z.object({
|