tim-hooks 0.1.0-beta.0 → 0.1.0-beta.1
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/cadence-runner.d.ts +2 -2
- package/dist/cadence-runner.d.ts.map +1 -1
- package/dist/cadence-runner.js +5 -13
- package/dist/cadence-runner.js.map +1 -1
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js +18 -30
- package/dist/checkpoint.js.map +1 -1
- package/dist/constants.d.ts +9 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +10 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/marker.d.ts +20 -75
- package/dist/marker.d.ts.map +1 -1
- package/dist/marker.js +30 -136
- package/dist/marker.js.map +1 -1
- package/dist/phantom-recovery.d.ts.map +1 -1
- package/dist/phantom-recovery.js +1 -8
- package/dist/phantom-recovery.js.map +1 -1
- package/dist/project-binding-health.d.ts +33 -0
- package/dist/project-binding-health.d.ts.map +1 -0
- package/dist/project-binding-health.js +149 -0
- package/dist/project-binding-health.js.map +1 -0
- package/dist/project-creation.d.ts +0 -1
- package/dist/project-creation.d.ts.map +1 -1
- package/dist/project-creation.js +28 -10
- package/dist/project-creation.js.map +1 -1
- package/dist/session-hooks.d.ts +3 -1
- package/dist/session-hooks.d.ts.map +1 -1
- package/dist/session-hooks.js +16 -6
- package/dist/session-hooks.js.map +1 -1
- package/package.json +3 -3
- package/scripts/tim-session-start.sh +0 -17
package/dist/project-creation.js
CHANGED
|
@@ -43,6 +43,7 @@ const crypto = __importStar(require("node:crypto"));
|
|
|
43
43
|
const fs = __importStar(require("node:fs"));
|
|
44
44
|
const os = __importStar(require("node:os"));
|
|
45
45
|
const path = __importStar(require("node:path"));
|
|
46
|
+
const tim_store_1 = require("tim-store");
|
|
46
47
|
const marker_js_1 = require("./marker.js");
|
|
47
48
|
exports.MODE_ERROR = 'Exactly one creation mode is required. Pass an absolute project path for a repository/workspace, or memoryOnly: true only when no directory should be bound.';
|
|
48
49
|
class ProjectCreationPartialFailureError extends Error {
|
|
@@ -128,14 +129,29 @@ function localMarkerLabel(projectPath) {
|
|
|
128
129
|
function shellSingleQuote(value) {
|
|
129
130
|
return `'${value.replaceAll("'", "'\"'\"'")}'`;
|
|
130
131
|
}
|
|
131
|
-
function markerInput(label
|
|
132
|
-
return {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
132
|
+
function markerInput(label) {
|
|
133
|
+
return { project: label };
|
|
134
|
+
}
|
|
135
|
+
function bindingDeviceId() {
|
|
136
|
+
return os.hostname();
|
|
137
|
+
}
|
|
138
|
+
async function seedProjectPathInventory(store, label, projectPath) {
|
|
139
|
+
await (0, tim_store_1.upsertProjectPathRow)(store, label, bindingDeviceId(), projectPath);
|
|
140
|
+
}
|
|
141
|
+
async function backfillProjectPathMetadata(store, label, projectPath) {
|
|
142
|
+
const project = await store.requireProject(label);
|
|
143
|
+
const existingPath = project.metadata.path;
|
|
144
|
+
if (typeof existingPath === 'string' && existingPath.length > 0)
|
|
145
|
+
return;
|
|
146
|
+
await store.update(project.id, {
|
|
147
|
+
metadata: { ...project.metadata, path: projectPath },
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
async function enrichBoundProject(store, label, projectPath, options = {}) {
|
|
151
|
+
if (options.backfillPath !== false) {
|
|
152
|
+
await backfillProjectPathMetadata(store, label, projectPath);
|
|
153
|
+
}
|
|
154
|
+
await seedProjectPathInventory(store, label, projectPath);
|
|
139
155
|
}
|
|
140
156
|
function recoveryCommand(databasePath, label, projectPath) {
|
|
141
157
|
return `TIM_DB_PATH=${shellSingleQuote(databasePath)} tim bind-project --label ${shellSingleQuote(label)} --cwd ${shellSingleQuote(projectPath)}`;
|
|
@@ -201,7 +217,7 @@ async function createProjectCoordinated(store, args, deps = {}) {
|
|
|
201
217
|
aliases: args.aliases,
|
|
202
218
|
});
|
|
203
219
|
try {
|
|
204
|
-
runtime.writeExclusive(projectPath, markerInput(args.label
|
|
220
|
+
runtime.writeExclusive(projectPath, markerInput(args.label));
|
|
205
221
|
}
|
|
206
222
|
catch (error) {
|
|
207
223
|
const winner = localMarkerLabel(projectPath);
|
|
@@ -218,6 +234,7 @@ async function createProjectCoordinated(store, args, deps = {}) {
|
|
|
218
234
|
throw publicationRace(args.label, verified, projectPath);
|
|
219
235
|
throw publicationFailure(store.getDatabasePath(), args.label, projectPath, 'the marker is absent after publication');
|
|
220
236
|
}
|
|
237
|
+
await enrichBoundProject(store, args.label, projectPath, { backfillPath: false });
|
|
221
238
|
return { ...entry, mode, projectPath, markerPath };
|
|
222
239
|
}
|
|
223
240
|
async function recoverProjectBinding(store, args, deps = {}) {
|
|
@@ -241,7 +258,7 @@ async function recoverProjectBinding(store, args, deps = {}) {
|
|
|
241
258
|
}
|
|
242
259
|
runtime.preflight(projectPath);
|
|
243
260
|
try {
|
|
244
|
-
runtime.writeExclusive(projectPath, markerInput(args.label
|
|
261
|
+
runtime.writeExclusive(projectPath, markerInput(args.label));
|
|
245
262
|
}
|
|
246
263
|
catch (error) {
|
|
247
264
|
const winner = localMarkerLabel(projectPath);
|
|
@@ -260,6 +277,7 @@ async function recoverProjectBinding(store, args, deps = {}) {
|
|
|
260
277
|
}
|
|
261
278
|
throw new Error(`Could not verify recovered project binding for ${args.label} at ${projectPath}`);
|
|
262
279
|
}
|
|
280
|
+
await enrichBoundProject(store, args.label, projectPath);
|
|
263
281
|
return { label: args.label, projectPath, markerPath, alreadyBound: false };
|
|
264
282
|
}
|
|
265
283
|
//# sourceMappingURL=project-creation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-creation.js","sourceRoot":"","sources":["../src/project-creation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"project-creation.js","sourceRoot":"","sources":["../src/project-creation.ts"],"names":[],"mappings":"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"}
|
package/dist/session-hooks.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export interface SpawnContext {
|
|
|
4
4
|
cwd: string;
|
|
5
5
|
}
|
|
6
6
|
export type Spawner = (command: string, ctx: SpawnContext) => void;
|
|
7
|
-
export type SessionStopReason = 'spawned' | 'no-marker' | 'below-threshold' | 'locked' | 'spawn-failed';
|
|
7
|
+
export type SessionStopReason = 'spawned' | 'no-marker' | 'no-session' | 'below-threshold' | 'locked' | 'spawn-failed';
|
|
8
8
|
export interface SessionStopResult {
|
|
9
9
|
spawned: boolean;
|
|
10
10
|
reason: SessionStopReason;
|
|
@@ -23,6 +23,8 @@ export interface MaybeSpawnSummarizerOptions {
|
|
|
23
23
|
/** Skip pending threshold — use when a batch just filled (live trigger). */
|
|
24
24
|
batchFull?: boolean;
|
|
25
25
|
timeoutSec?: number;
|
|
26
|
+
/** Session to summarize; when omitted, resolved from the store for marker.project + cwd. */
|
|
27
|
+
sessionId?: string;
|
|
26
28
|
}
|
|
27
29
|
/** Shared spawn gate for session-stop hook and live batch-full trigger. */
|
|
28
30
|
export declare function maybeSpawnSummarizer(store: TimStore, cwd: string, opts?: MaybeSpawnSummarizerOptions): Promise<SessionStopResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-hooks.d.ts","sourceRoot":"","sources":["../src/session-hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAU1C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;AAEnE,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,WAAW,GACX,iBAAiB,GACjB,QAAQ,GACR,cAAc,CAAC;AAEnB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,yFAAyF;AACzF,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAuC,GAClD,MAAM,CAOR;AAED,qFAAqF;AACrF,eAAO,MAAM,eAAe,EAAE,OAkC7B,CAAC;AAEF,sCAAsC;AACtC,eAAO,MAAM,eAAe,EAAE,OAAyB,CAAC;AAExD,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session-hooks.d.ts","sourceRoot":"","sources":["../src/session-hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAU1C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;AAEnE,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,QAAQ,GACR,cAAc,CAAC;AAEnB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,yFAAyF;AACzF,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAuC,GAClD,MAAM,CAOR;AAED,qFAAqF;AACrF,eAAO,MAAM,eAAe,EAAE,OAkC7B,CAAC;AAEF,sCAAsC;AACtC,eAAO,MAAM,eAAe,EAAE,OAAyB,CAAC;AAExD,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,2EAA2E;AAC3E,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,2BAAgC,GACrC,OAAO,CAAC,iBAAiB,CAAC,CAqC5B;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AAED,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,+EAA+E;AAC/E,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAuC,GAClD,MAAM,CAIR;AAED,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,UAAU,GACV,aAAa,GACb,iBAAiB,GACjB,cAAc,CAAC;AAEnB,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,+BAA+B;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,IAAI,GAAE,+BAAoC,GACzC,OAAO,CAAC,oBAAoB,CAAC,CAqB/B"}
|
package/dist/session-hooks.js
CHANGED
|
@@ -43,6 +43,7 @@ exports.maybeSpawnProjectSummary = maybeSpawnProjectSummary;
|
|
|
43
43
|
const child_process_1 = require("child_process");
|
|
44
44
|
const fs = __importStar(require("fs"));
|
|
45
45
|
const path = __importStar(require("path"));
|
|
46
|
+
const tim_store_1 = require("tim-store");
|
|
46
47
|
const marker_js_1 = require("./marker.js");
|
|
47
48
|
const constants_js_1 = require("./constants.js");
|
|
48
49
|
var constants_js_2 = require("./constants.js");
|
|
@@ -106,19 +107,28 @@ async function maybeSpawnSummarizer(store, cwd, opts = {}) {
|
|
|
106
107
|
const marker = (0, marker_js_1.detectProject)(cwd);
|
|
107
108
|
if (!marker)
|
|
108
109
|
return { spawned: false, reason: 'no-marker' };
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
const sessionEntry = opts.sessionId
|
|
111
|
+
? await store.read(opts.sessionId)
|
|
112
|
+
: await (0, tim_store_1.resolveCurrentSession)(store, marker.project, cwd);
|
|
113
|
+
if (!sessionEntry)
|
|
114
|
+
return { spawned: false, reason: 'no-session' };
|
|
115
|
+
const sessionId = sessionEntry.id;
|
|
116
|
+
const batchSize = typeof sessionEntry.metadata.batch_size === 'number'
|
|
117
|
+
? sessionEntry.metadata.batch_size
|
|
118
|
+
: 5;
|
|
119
|
+
const { exchangeCount, batchesSummarized } = await (0, tim_store_1.deriveCounters)(store, sessionId);
|
|
120
|
+
const pending = exchangeCount - batchesSummarized * batchSize;
|
|
121
|
+
if (!opts.batchFull && pending < batchSize) {
|
|
112
122
|
return { spawned: false, reason: 'below-threshold', pending };
|
|
113
123
|
}
|
|
114
124
|
if (!(0, marker_js_1.acquireLock)(cwd))
|
|
115
125
|
return { spawned: false, reason: 'locked', pending };
|
|
116
|
-
const lockPath =
|
|
126
|
+
const lockPath = (0, marker_js_1.summarizerLockPath)(cwd);
|
|
117
127
|
const logPath = summarizerLogPath(cwd);
|
|
118
128
|
const timeoutSec = opts.timeoutSec ?? constants_js_1.DEFAULT_SUMMARIZER_TIMEOUT_SEC;
|
|
119
129
|
try {
|
|
120
|
-
spawn(buildSummarizerCommand(
|
|
121
|
-
sessionId
|
|
130
|
+
spawn(buildSummarizerCommand(sessionId, lockPath, logPath, timeoutSec), {
|
|
131
|
+
sessionId,
|
|
122
132
|
cwd,
|
|
123
133
|
});
|
|
124
134
|
return { spawned: true, reason: 'spawned', pending };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-hooks.js","sourceRoot":"","sources":["../src/session-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"session-hooks.js","sourceRoot":"","sources":["../src/session-hooks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tim-hooks",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.1",
|
|
4
4
|
"description": "TIM hook scripts and checkpoint orchestration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"test": "vitest run"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"tim-core": "0.1.0-beta.
|
|
19
|
-
"tim-store": "0.1.0-beta.
|
|
18
|
+
"tim-core": "0.1.0-beta.1",
|
|
19
|
+
"tim-store": "0.1.0-beta.1"
|
|
20
20
|
},
|
|
21
21
|
"optionalDependencies": {
|
|
22
22
|
"fastembed": "^1.0.0"
|
|
@@ -27,7 +27,6 @@ SCRIPT_DIR="$(cd -P "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
|
27
27
|
unset SCRIPT_PATH SCRIPT_LINK_DIR
|
|
28
28
|
# shellcheck source=lib/resolve-tim-cli.sh
|
|
29
29
|
source "$SCRIPT_DIR/lib/resolve-tim-cli.sh"
|
|
30
|
-
TIM_HOOKS_MARKER="${TIM_MARKER_MODULE:-${SCRIPT_DIR}/../dist/marker.js}"
|
|
31
30
|
|
|
32
31
|
# Read stdin once (some harnesses pass payload, some pass nothing)
|
|
33
32
|
payload="$(cat -)"
|
|
@@ -50,9 +49,6 @@ if [[ -z "$cwd" ]]; then
|
|
|
50
49
|
cwd=$(pwd)
|
|
51
50
|
fi
|
|
52
51
|
|
|
53
|
-
# Extract session_id from payload (for marker rotation, Fix F)
|
|
54
|
-
hook_session=$(printf '%s' "$payload" | jq -r '.session_id // empty' 2>/dev/null || true)
|
|
55
|
-
|
|
56
52
|
# --- Resolve project marker ---
|
|
57
53
|
directive=$(run_tim_cli resolve-project --walk-up --cwd "$cwd" --format directive 2>/dev/null || true)
|
|
58
54
|
if [[ -z "$directive" ]]; then
|
|
@@ -60,19 +56,6 @@ if [[ -z "$directive" ]]; then
|
|
|
60
56
|
exit 0
|
|
61
57
|
fi
|
|
62
58
|
|
|
63
|
-
# ── Session rotation: update .tim-project with current session ──
|
|
64
|
-
# Prevents stale cron session IDs from persisting in the marker (PITFALLS-46).
|
|
65
|
-
# cwd/session are passed via env, never interpolated into the JS source —
|
|
66
|
-
# paths or session ids containing quotes/backslashes must not break rotation.
|
|
67
|
-
if [[ -n "$hook_session" && -f "$TIM_HOOKS_MARKER" ]]; then
|
|
68
|
-
TIM_HOOK_CWD="$cwd" TIM_HOOK_SESSION="$hook_session" TIM_MARKER_MODULE="$TIM_HOOKS_MARKER" \
|
|
69
|
-
node --input-type=module -e "
|
|
70
|
-
const { pathToFileURL } = await import('node:url');
|
|
71
|
-
const m = await import(pathToFileURL(process.env.TIM_MARKER_MODULE).href);
|
|
72
|
-
m.rotateMarkerSession(process.env.TIM_HOOK_CWD, process.env.TIM_HOOK_SESSION);
|
|
73
|
-
" 2>/dev/null || true
|
|
74
|
-
fi
|
|
75
|
-
|
|
76
59
|
# --- Detect harness and format output ---
|
|
77
60
|
|
|
78
61
|
# Claude Code sends hook_event_name in hook input. Keep accepting the older
|