@latchet/core 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/dist/src/diff.d.ts +15 -0
- package/dist/src/diff.d.ts.map +1 -0
- package/dist/src/diff.js +29 -0
- package/dist/src/diff.js.map +1 -0
- package/dist/src/errors.d.ts +4 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +7 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/exporters.d.ts +4 -0
- package/dist/src/exporters.d.ts.map +1 -0
- package/dist/src/exporters.js +16 -0
- package/dist/src/exporters.js.map +1 -0
- package/dist/src/git.d.ts +3 -0
- package/dist/src/git.d.ts.map +1 -0
- package/dist/src/git.js +29 -0
- package/dist/src/git.js.map +1 -0
- package/dist/src/importers.d.ts +4 -0
- package/dist/src/importers.d.ts.map +1 -0
- package/dist/src/importers.js +35 -0
- package/dist/src/importers.js.map +1 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +11 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/markdown.d.ts +3 -0
- package/dist/src/markdown.d.ts.map +1 -0
- package/dist/src/markdown.js +69 -0
- package/dist/src/markdown.js.map +1 -0
- package/dist/src/projector.d.ts +3 -0
- package/dist/src/projector.d.ts.map +1 -0
- package/dist/src/projector.js +89 -0
- package/dist/src/projector.js.map +1 -0
- package/dist/src/redact.d.ts +10 -0
- package/dist/src/redact.d.ts.map +1 -0
- package/dist/src/redact.js +223 -0
- package/dist/src/redact.js.map +1 -0
- package/dist/src/store.d.ts +44 -0
- package/dist/src/store.d.ts.map +1 -0
- package/dist/src/store.js +273 -0
- package/dist/src/store.js.map +1 -0
- package/dist/src/utils.d.ts +14 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +78 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/src/verify.d.ts +3 -0
- package/dist/src/verify.d.ts.map +1 -0
- package/dist/src/verify.js +33 -0
- package/dist/src/verify.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TaskState } from "@latchet/spec";
|
|
2
|
+
export interface StateDiff {
|
|
3
|
+
decisions_added: string[];
|
|
4
|
+
decisions_removed: string[];
|
|
5
|
+
failures_added: string[];
|
|
6
|
+
failures_removed: string[];
|
|
7
|
+
env_quirks_added: string[];
|
|
8
|
+
env_quirks_removed: string[];
|
|
9
|
+
next_action_changed: {
|
|
10
|
+
before: string | null;
|
|
11
|
+
after: string | null;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function diffStates(before: TaskState, after: TaskState): StateDiff;
|
|
15
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,mBAAmB,EAAE;QACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AAeD,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,CAyBzE"}
|
package/dist/src/diff.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
function values(items) {
|
|
2
|
+
return new Set(items);
|
|
3
|
+
}
|
|
4
|
+
function delta(before, after) {
|
|
5
|
+
const beforeSet = values(before);
|
|
6
|
+
const afterSet = values(after);
|
|
7
|
+
return {
|
|
8
|
+
added: after.filter((item) => !beforeSet.has(item)),
|
|
9
|
+
removed: before.filter((item) => !afterSet.has(item))
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function diffStates(before, after) {
|
|
13
|
+
const decisions = delta(before.active_decisions.map((event) => event.payload.summary), after.active_decisions.map((event) => event.payload.summary));
|
|
14
|
+
const quirks = delta(before.active_env_quirks.map((event) => event.payload.summary), after.active_env_quirks.map((event) => event.payload.summary));
|
|
15
|
+
const failures = delta(before.recent_failures.map((event) => event.payload.summary), after.recent_failures.map((event) => event.payload.summary));
|
|
16
|
+
return {
|
|
17
|
+
decisions_added: decisions.added,
|
|
18
|
+
decisions_removed: decisions.removed,
|
|
19
|
+
failures_added: failures.added,
|
|
20
|
+
failures_removed: failures.removed,
|
|
21
|
+
env_quirks_added: quirks.added,
|
|
22
|
+
env_quirks_removed: quirks.removed,
|
|
23
|
+
next_action_changed: {
|
|
24
|
+
before: before.next_action?.payload.summary ?? null,
|
|
25
|
+
after: after.next_action?.payload.summary ?? null
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/diff.ts"],"names":[],"mappings":"AAeA,SAAS,MAAM,CAAC,KAAe;IAC7B,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,MAAgB,EAAE,KAAe;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,KAAgB;IAC5D,MAAM,SAAS,GAAG,KAAK,CACrB,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAC7D,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAC7D,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAC9D,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAC9D,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,CACpB,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAC5D,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAC5D,CAAC;IACF,OAAO;QACL,eAAe,EAAE,SAAS,CAAC,KAAK;QAChC,iBAAiB,EAAE,SAAS,CAAC,OAAO;QACpC,cAAc,EAAE,QAAQ,CAAC,KAAK;QAC9B,gBAAgB,EAAE,QAAQ,CAAC,OAAO;QAClC,gBAAgB,EAAE,MAAM,CAAC,KAAK;QAC9B,kBAAkB,EAAE,MAAM,CAAC,OAAO;QAClC,mBAAmB,EAAE;YACnB,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YACnD,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;SAClD;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { HandoffPack, LedgerEvent, TaskState } from "@latchet/spec";
|
|
2
|
+
export declare function createHandoffPack(state: TaskState, events?: LedgerEvent[]): HandoffPack;
|
|
3
|
+
export declare function exportMarkdown(state: TaskState): string;
|
|
4
|
+
//# sourceMappingURL=exporters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporters.d.ts","sourceRoot":"","sources":["../../src/exporters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAIzE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,WAAW,CASvF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAEvD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HANDOFF_FORMAT, TASK_LEDGER_VERSION } from "@latchet/spec";
|
|
2
|
+
import { renderStateMarkdown } from "./markdown.js";
|
|
3
|
+
export function createHandoffPack(state, events) {
|
|
4
|
+
return {
|
|
5
|
+
version: TASK_LEDGER_VERSION,
|
|
6
|
+
format: HANDOFF_FORMAT,
|
|
7
|
+
exported_at: new Date().toISOString(),
|
|
8
|
+
task: state.task,
|
|
9
|
+
state,
|
|
10
|
+
events
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function exportMarkdown(state) {
|
|
14
|
+
return renderStateMarkdown(state);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=exporters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporters.js","sourceRoot":"","sources":["../../src/exporters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,UAAU,iBAAiB,CAAC,KAAgB,EAAE,MAAsB;IACxE,OAAO;QACL,OAAO,EAAE,mBAAmB;QAC5B,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAgB;IAC7C,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/git.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAcjD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAcnE"}
|
package/dist/src/git.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
function git(args, cwd) {
|
|
3
|
+
try {
|
|
4
|
+
return execFileSync("git", args, {
|
|
5
|
+
cwd,
|
|
6
|
+
encoding: "utf8",
|
|
7
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
8
|
+
}).trim();
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function getGitSnapshot(cwd) {
|
|
15
|
+
const root = git(["rev-parse", "--show-toplevel"], cwd);
|
|
16
|
+
if (!root) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
const branch = git(["branch", "--show-current"], cwd) ?? undefined;
|
|
20
|
+
const commit = git(["rev-parse", "HEAD"], cwd) ?? undefined;
|
|
21
|
+
const dirty = Boolean(git(["status", "--porcelain"], cwd));
|
|
22
|
+
return {
|
|
23
|
+
root,
|
|
24
|
+
branch,
|
|
25
|
+
commit,
|
|
26
|
+
dirty
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,SAAS,GAAG,CAAC,IAAc,EAAE,GAAW;IACtC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;YAC/B,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC;IACnE,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,OAAO;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;KACN,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { HandoffPack, LedgerEvent, TaskState } from "@latchet/spec";
|
|
2
|
+
export declare function readImportFile(path: string): HandoffPack | TaskState | LedgerEvent[];
|
|
3
|
+
export declare function stateToSyntheticEvents(taskId: string, state: TaskState): LedgerEvent[];
|
|
4
|
+
//# sourceMappingURL=importers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importers.d.ts","sourceRoot":"","sources":["../../src/importers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,WAAW,EACX,WAAW,EAGX,SAAS,EACV,MAAM,eAAe,CAAC;AAGvB,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,EAAE,CAQpF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,EAAE,CAyBtF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { fileExists, readJson, readJsonLines } from "./utils.js";
|
|
2
|
+
export function readImportFile(path) {
|
|
3
|
+
if (!fileExists(path)) {
|
|
4
|
+
throw new Error(`Import file not found: ${path}`);
|
|
5
|
+
}
|
|
6
|
+
if (path.endsWith(".jsonl")) {
|
|
7
|
+
return readJsonLines(path);
|
|
8
|
+
}
|
|
9
|
+
return readJson(path);
|
|
10
|
+
}
|
|
11
|
+
export function stateToSyntheticEvents(taskId, state) {
|
|
12
|
+
const events = [];
|
|
13
|
+
const stamp = state.generated_at;
|
|
14
|
+
function push(type, payload) {
|
|
15
|
+
events.push({
|
|
16
|
+
id: `imp_${events.length + 1}`,
|
|
17
|
+
task_id: taskId,
|
|
18
|
+
timestamp: stamp,
|
|
19
|
+
actor: { kind: "system", name: "import" },
|
|
20
|
+
source: { kind: "import", provider: "latchet" },
|
|
21
|
+
type,
|
|
22
|
+
payload
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
state.active_decisions.forEach((event) => push("decision", event.payload));
|
|
26
|
+
state.recent_failures.forEach((event) => push("failure", event.payload));
|
|
27
|
+
state.active_env_quirks.forEach((event) => push("env_quirk", event.payload));
|
|
28
|
+
state.open_questions.forEach((event) => push("open_question", event.payload));
|
|
29
|
+
state.artifact_refs.forEach((event) => push("artifact_ref", event.payload));
|
|
30
|
+
if (state.next_action) {
|
|
31
|
+
push("next_action", state.next_action.payload);
|
|
32
|
+
}
|
|
33
|
+
return events;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=importers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importers.js","sourceRoot":"","sources":["../../src/importers.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAc,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,QAAQ,CAA0B,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,KAAgB;IACrE,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;IAEjC,SAAS,IAAI,CAAW,IAAyB,EAAE,OAAiB;QAClE,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE;YAC/C,IAAI;YACJ,OAAO;SACO,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAkB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5F,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAiB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACzF,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAkB,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAsB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACnG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAqB,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAChG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,IAAI,CAAoB,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./diff.js";
|
|
2
|
+
export * from "./errors.js";
|
|
3
|
+
export * from "./exporters.js";
|
|
4
|
+
export * from "./git.js";
|
|
5
|
+
export * from "./importers.js";
|
|
6
|
+
export * from "./markdown.js";
|
|
7
|
+
export * from "./projector.js";
|
|
8
|
+
export * from "./redact.js";
|
|
9
|
+
export * from "./store.js";
|
|
10
|
+
export * from "./verify.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./diff.js";
|
|
2
|
+
export * from "./errors.js";
|
|
3
|
+
export * from "./exporters.js";
|
|
4
|
+
export * from "./git.js";
|
|
5
|
+
export * from "./importers.js";
|
|
6
|
+
export * from "./markdown.js";
|
|
7
|
+
export * from "./projector.js";
|
|
8
|
+
export * from "./redact.js";
|
|
9
|
+
export * from "./store.js";
|
|
10
|
+
export * from "./verify.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAiF5D"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
function renderList(lines) {
|
|
2
|
+
return lines.length > 0 ? lines.map((line) => `- ${line}`).join("\n") : "- None";
|
|
3
|
+
}
|
|
4
|
+
export function renderStateMarkdown(state) {
|
|
5
|
+
const task = state.task;
|
|
6
|
+
const freshnessLines = state.freshness
|
|
7
|
+
? state.freshness.checks.map((check) => `${check.ok ? "OK" : "WARN"}: ${check.message}`)
|
|
8
|
+
: [];
|
|
9
|
+
return [
|
|
10
|
+
`# ${task.title}`,
|
|
11
|
+
"",
|
|
12
|
+
`Goal: ${task.goal}`,
|
|
13
|
+
`Status: ${task.status}`,
|
|
14
|
+
`Task ID: ${task.id}`,
|
|
15
|
+
`Generated: ${state.generated_at}`,
|
|
16
|
+
"",
|
|
17
|
+
"## Active Constraints",
|
|
18
|
+
renderList(state.active_constraints.map((event) => event.payload.summary)),
|
|
19
|
+
"",
|
|
20
|
+
"## Active Decisions",
|
|
21
|
+
renderList(state.active_decisions.map((event) => event.payload.reason ? `${event.payload.summary} — ${event.payload.reason}` : event.payload.summary)),
|
|
22
|
+
"",
|
|
23
|
+
"## Recent Attempts",
|
|
24
|
+
renderList(state.recent_attempts?.map((event) => {
|
|
25
|
+
const suffix = event.payload.outcome ? ` — ${event.payload.outcome}` : "";
|
|
26
|
+
const result = event.payload.result ?? "unknown";
|
|
27
|
+
return `[${result}] ${event.payload.summary}${suffix}`;
|
|
28
|
+
}) ?? []),
|
|
29
|
+
"",
|
|
30
|
+
"## Recent Failures",
|
|
31
|
+
renderList(state.recent_failures.map((event) => {
|
|
32
|
+
const suffix = event.payload.error ? ` — ${event.payload.error}` : "";
|
|
33
|
+
const status = event.payload.status ?? "open";
|
|
34
|
+
return `[${status}] ${event.payload.summary}${suffix}`;
|
|
35
|
+
})),
|
|
36
|
+
"",
|
|
37
|
+
"## Environment Quirks",
|
|
38
|
+
renderList(state.active_env_quirks.map((event) => {
|
|
39
|
+
const parts = [event.payload.summary];
|
|
40
|
+
if (event.payload.workaround) {
|
|
41
|
+
parts.push(`workaround: ${event.payload.workaround}`);
|
|
42
|
+
}
|
|
43
|
+
return parts.join(" — ");
|
|
44
|
+
})),
|
|
45
|
+
"",
|
|
46
|
+
"## Open Questions",
|
|
47
|
+
renderList(state.open_questions.map((event) => event.payload.question)),
|
|
48
|
+
"",
|
|
49
|
+
"## Next Action",
|
|
50
|
+
state.next_action
|
|
51
|
+
? renderList([
|
|
52
|
+
`${state.next_action.payload.summary}${state.next_action.payload.priority ? ` [${state.next_action.payload.priority}]` : ""}`
|
|
53
|
+
])
|
|
54
|
+
: "- None",
|
|
55
|
+
"",
|
|
56
|
+
"## Artifact References",
|
|
57
|
+
renderList(state.artifact_refs.map((event) => event.payload.revision ? `${event.payload.path} @ ${event.payload.revision}` : event.payload.path)),
|
|
58
|
+
"",
|
|
59
|
+
"## Blockers",
|
|
60
|
+
renderList(state.blockers),
|
|
61
|
+
"",
|
|
62
|
+
"## Freshness",
|
|
63
|
+
renderList(freshnessLines),
|
|
64
|
+
"",
|
|
65
|
+
"## Notes",
|
|
66
|
+
renderList(state.notes.map((event) => event.payload.summary))
|
|
67
|
+
].join("\n");
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projector.d.ts","sourceRoot":"","sources":["../../src/projector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAQV,eAAe,EACf,WAAW,EAIX,YAAY,EACZ,SAAS,EAEV,MAAM,eAAe,CAAC;AAoDvB,wBAAgB,eAAe,CAC7B,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,WAAW,EAAE,EACrB,SAAS,CAAC,EAAE,eAAe,GAC1B,SAAS,CAwDX"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { TASK_LEDGER_VERSION } from "@latchet/spec";
|
|
2
|
+
import { nowIso, uniqueBy } from "./utils.js";
|
|
3
|
+
function sortEvents(events) {
|
|
4
|
+
return [...events].sort((a, b) => {
|
|
5
|
+
if (a.timestamp === b.timestamp) {
|
|
6
|
+
return a.id.localeCompare(b.id);
|
|
7
|
+
}
|
|
8
|
+
return a.timestamp.localeCompare(b.timestamp);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
function collectSuperseded(events) {
|
|
12
|
+
const superseded = new Set();
|
|
13
|
+
for (const event of events) {
|
|
14
|
+
for (const target of event.supersedes ?? []) {
|
|
15
|
+
superseded.add(target);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return superseded;
|
|
19
|
+
}
|
|
20
|
+
function latestStatus(task, events, superseded) {
|
|
21
|
+
const statusEvent = [...events]
|
|
22
|
+
.reverse()
|
|
23
|
+
.find((event) => event.type === "status_change" && !superseded.has(event.id));
|
|
24
|
+
if (!statusEvent) {
|
|
25
|
+
return task.status;
|
|
26
|
+
}
|
|
27
|
+
return statusEvent.payload.to;
|
|
28
|
+
}
|
|
29
|
+
function filterActive(events, type, superseded) {
|
|
30
|
+
return events
|
|
31
|
+
.filter((event) => event.type === type && !superseded.has(event.id))
|
|
32
|
+
.map((event) => event);
|
|
33
|
+
}
|
|
34
|
+
function latestActive(events, type, superseded) {
|
|
35
|
+
const active = filterActive(events, type, superseded);
|
|
36
|
+
return active.length > 0 ? active[active.length - 1] : null;
|
|
37
|
+
}
|
|
38
|
+
export function deriveTaskState(task, events, freshness) {
|
|
39
|
+
const ordered = sortEvents(events);
|
|
40
|
+
const superseded = collectSuperseded(ordered);
|
|
41
|
+
const activeConstraints = filterActive(ordered, "constraint", superseded);
|
|
42
|
+
const activeDecisions = filterActive(ordered, "decision", superseded)
|
|
43
|
+
.filter((event) => {
|
|
44
|
+
const status = event.payload.status ?? "accepted";
|
|
45
|
+
return status === "accepted" || status === "proposed";
|
|
46
|
+
});
|
|
47
|
+
const recentAttempts = filterActive(ordered, "attempt", superseded).slice(-10).reverse();
|
|
48
|
+
const recentFailures = filterActive(ordered, "failure", superseded).slice(-10).reverse();
|
|
49
|
+
const activeEnvQuirks = filterActive(ordered, "env_quirk", superseded);
|
|
50
|
+
const openQuestions = filterActive(ordered, "open_question", superseded);
|
|
51
|
+
const nextAction = latestActive(ordered, "next_action", superseded);
|
|
52
|
+
const artifactRefs = uniqueBy(filterActive(ordered, "artifact_ref", superseded).reverse(), (event) => event.payload.path);
|
|
53
|
+
const notes = filterActive(ordered, "note", superseded).slice(-10).reverse();
|
|
54
|
+
const openFailures = recentFailures.filter((event) => (event.payload.status ?? "open") !== "resolved");
|
|
55
|
+
const blockers = [
|
|
56
|
+
...openFailures.map((event) => event.payload.summary),
|
|
57
|
+
...activeEnvQuirks
|
|
58
|
+
.filter((event) => Boolean(event.payload.impact))
|
|
59
|
+
.map((event) => `${event.payload.summary}${event.payload.impact ? ` (${event.payload.impact})` : ""}`)
|
|
60
|
+
];
|
|
61
|
+
return {
|
|
62
|
+
version: TASK_LEDGER_VERSION,
|
|
63
|
+
generated_at: nowIso(),
|
|
64
|
+
task: {
|
|
65
|
+
...task,
|
|
66
|
+
status: latestStatus(task, ordered, superseded),
|
|
67
|
+
updated_at: ordered[ordered.length - 1]?.timestamp ?? task.updated_at
|
|
68
|
+
},
|
|
69
|
+
counts: {
|
|
70
|
+
total_events: ordered.length,
|
|
71
|
+
active_decisions: activeDecisions.length,
|
|
72
|
+
open_failures: openFailures.length,
|
|
73
|
+
env_quirks: activeEnvQuirks.length,
|
|
74
|
+
open_questions: openQuestions.length
|
|
75
|
+
},
|
|
76
|
+
active_constraints: activeConstraints,
|
|
77
|
+
active_decisions: activeDecisions,
|
|
78
|
+
recent_attempts: recentAttempts,
|
|
79
|
+
recent_failures: recentFailures,
|
|
80
|
+
active_env_quirks: activeEnvQuirks,
|
|
81
|
+
open_questions: openQuestions,
|
|
82
|
+
next_action: nextAction,
|
|
83
|
+
blockers,
|
|
84
|
+
artifact_refs: artifactRefs,
|
|
85
|
+
notes,
|
|
86
|
+
freshness
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=projector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projector.js","sourceRoot":"","sources":["../../src/projector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { HandoffPack, TaskState } from "@latchet/spec";
|
|
2
|
+
export interface RedactionOptions {
|
|
3
|
+
removePaths?: boolean;
|
|
4
|
+
removeRevisions?: boolean;
|
|
5
|
+
removeReasons?: boolean;
|
|
6
|
+
maskSecrets?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function redactState(state: TaskState, options: RedactionOptions): TaskState;
|
|
9
|
+
export declare function redactHandoff(pack: HandoffPack, options: RedactionOptions): HandoffPack;
|
|
10
|
+
//# sourceMappingURL=redact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/redact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,SAAS,EAAE,MAAM,eAAe,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA0CD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAiFlF;AA8FD,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,WAAW,CASvF"}
|