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/cadence-runner.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface CadenceResult {
|
|
|
5
5
|
checkpointEntryId?: string;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
|
-
* After logging exchanges:
|
|
8
|
+
* After logging exchanges: derive counters from the store, optionally auto-checkpoint.
|
|
9
9
|
*/
|
|
10
|
-
export declare function afterExchangeLogged(store: TimStore, sessionId: string,
|
|
10
|
+
export declare function afterExchangeLogged(store: TimStore, sessionId: string, _cwd: string): Promise<CadenceResult>;
|
|
11
11
|
//# sourceMappingURL=cadence-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cadence-runner.d.ts","sourceRoot":"","sources":["../src/cadence-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cadence-runner.d.ts","sourceRoot":"","sources":["../src/cadence-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAK1C,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,aAAa,CAAC,CAaxB"}
|
package/dist/cadence-runner.js
CHANGED
|
@@ -3,27 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.afterExchangeLogged = afterExchangeLogged;
|
|
4
4
|
const tim_store_1 = require("tim-store");
|
|
5
5
|
const tim_core_1 = require("tim-core");
|
|
6
|
-
const marker_js_1 = require("./marker.js");
|
|
7
6
|
const cadence_js_1 = require("./cadence.js");
|
|
8
7
|
/**
|
|
9
|
-
* After logging exchanges:
|
|
8
|
+
* After logging exchanges: derive counters from the store, optionally auto-checkpoint.
|
|
10
9
|
*/
|
|
11
|
-
async function afterExchangeLogged(store, sessionId,
|
|
12
|
-
const
|
|
13
|
-
if (!marker) {
|
|
14
|
-
const { exchangeCount } = await (0, tim_store_1.deriveCounters)(store, sessionId);
|
|
15
|
-
return { exchangeCount };
|
|
16
|
-
}
|
|
17
|
-
const reconciled = await (0, marker_js_1.reconcileMarker)(store, cwd);
|
|
10
|
+
async function afterExchangeLogged(store, sessionId, _cwd) {
|
|
11
|
+
const { exchangeCount } = await (0, tim_store_1.deriveCounters)(store, sessionId);
|
|
18
12
|
const everyN = (0, cadence_js_1.getCheckpointEveryN)((0, tim_core_1.loadConfig)());
|
|
19
|
-
const result = { exchangeCount
|
|
20
|
-
if ((0, cadence_js_1.shouldAutoCheckpoint)(
|
|
13
|
+
const result = { exchangeCount };
|
|
14
|
+
if ((0, cadence_js_1.shouldAutoCheckpoint)(exchangeCount, everyN)) {
|
|
21
15
|
const sessions = new tim_store_1.SessionManager(store);
|
|
22
16
|
const entry = await sessions.checkpoint(sessionId);
|
|
23
17
|
result.autoCheckpoint = true;
|
|
24
18
|
result.checkpointEntryId = entry.id;
|
|
25
|
-
const after = await (0, marker_js_1.reconcileMarker)(store, cwd);
|
|
26
|
-
(0, marker_js_1.writeMarker)(cwd, after);
|
|
27
19
|
}
|
|
28
20
|
return result;
|
|
29
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cadence-runner.js","sourceRoot":"","sources":["../src/cadence-runner.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"cadence-runner.js","sourceRoot":"","sources":["../src/cadence-runner.ts"],"names":[],"mappings":";;AAcA,kDAiBC;AA9BD,yCAA2D;AAC3D,uCAAsC;AACtC,6CAAyE;AAQzE;;GAEG;AACI,KAAK,UAAU,mBAAmB,CACvC,KAAe,EACf,SAAiB,EACjB,IAAY;IAEZ,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,0BAAc,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAA,gCAAmB,EAAC,IAAA,qBAAU,GAAE,CAAC,CAAC;IACjD,MAAM,MAAM,GAAkB,EAAE,aAAa,EAAE,CAAC;IAEhD,IAAI,IAAA,iCAAoB,EAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,0BAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC,EAAE,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/checkpoint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAS5C,OAAO,
|
|
1
|
+
{"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAS5C,OAAO,EAML,KAAK,UAAU,EACf,KAAK,QAAQ,EACd,MAAM,WAAW,CAAC;AACnB,OAAO,EAAsB,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAc9D,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CASrD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxB;AAED,2EAA2E;AAC3E,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAI/E;AAyED,wBAAsB,aAAa,CACjC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9E,OAAO,CAAC,KAAK,CAAC,CAGhB;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,kBAAkB,CAAC,CAqD7B;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,KAAK,CAAC,CA2BhB"}
|
package/dist/checkpoint.js
CHANGED
|
@@ -104,47 +104,40 @@ async function resolveSessionProjectId(store, cwd, explicitProjectId) {
|
|
|
104
104
|
if (explicitProjectId !== 'P0000') {
|
|
105
105
|
const resolved = await store.resolveProjectLabel(explicitProjectId);
|
|
106
106
|
if (resolved.status === 'found')
|
|
107
|
-
return resolved.label;
|
|
107
|
+
return { projectId: resolved.label, binding: 'explicit' };
|
|
108
108
|
if (resolved.status === 'not_found') {
|
|
109
109
|
throw new Error(`Project not found: ${explicitProjectId}. Use tim_load_project to pick a real project.`);
|
|
110
110
|
}
|
|
111
111
|
throw new Error(`Ambiguous project label: ${explicitProjectId} matches ${resolved.labels.join(', ')}.`);
|
|
112
112
|
}
|
|
113
|
-
return explicitProjectId;
|
|
113
|
+
return { projectId: explicitProjectId, binding: 'explicit' };
|
|
114
114
|
}
|
|
115
115
|
const located = (0, marker_js_1.discoverMarker)(cwd, marker_js_1.CWD_ONLY_MARKER_DISCOVERY_POLICY);
|
|
116
116
|
if (located) {
|
|
117
117
|
const validated = await (0, marker_js_1.validateMarkerAgainstStore)(located.marker, store);
|
|
118
118
|
if (validated)
|
|
119
|
-
return validated.project;
|
|
119
|
+
return { projectId: validated.project, binding: 'marker' };
|
|
120
120
|
const recovered = await (0, phantom_recovery_js_1.repairPhantomProjectBinding)(store, located.dir);
|
|
121
121
|
if (recovered) {
|
|
122
122
|
if (store.getDatabasePath() !== ':memory:') {
|
|
123
123
|
(0, marker_js_1.writeMarker)(located.dir, (0, phantom_recovery_js_1.markerWithRepairedProject)(located.marker, recovered));
|
|
124
124
|
}
|
|
125
|
-
return recovered;
|
|
125
|
+
return { projectId: recovered, binding: 'phantom' };
|
|
126
126
|
}
|
|
127
127
|
await (0, tim_store_1.ensureInboxProject)(store);
|
|
128
|
-
return tim_store_1.INBOX_PROJECT_LABEL;
|
|
128
|
+
return { projectId: tim_store_1.INBOX_PROJECT_LABEL, binding: 'inbox' };
|
|
129
129
|
}
|
|
130
130
|
const active = getActiveProjectLabel();
|
|
131
131
|
if (active) {
|
|
132
|
-
const validated = await (0, marker_js_1.validateMarkerAgainstStore)({
|
|
133
|
-
version: 2,
|
|
134
|
-
project: active,
|
|
135
|
-
session: '',
|
|
136
|
-
exchanges: 0,
|
|
137
|
-
batch_size: 5,
|
|
138
|
-
batches_summarized: 0,
|
|
139
|
-
}, store);
|
|
132
|
+
const validated = await (0, marker_js_1.validateMarkerAgainstStore)({ version: 3, project: active }, store);
|
|
140
133
|
if (validated)
|
|
141
|
-
return validated.project;
|
|
134
|
+
return { projectId: validated.project, binding: 'active' };
|
|
142
135
|
}
|
|
143
136
|
const auto = await (0, tim_store_1.ensureProjectForPath)(store, cwd);
|
|
144
137
|
if (auto)
|
|
145
|
-
return auto.label;
|
|
138
|
+
return { projectId: auto.label, binding: 'auto' };
|
|
146
139
|
await (0, tim_store_1.ensureInboxProject)(store);
|
|
147
|
-
return tim_store_1.INBOX_PROJECT_LABEL;
|
|
140
|
+
return { projectId: tim_store_1.INBOX_PROJECT_LABEL, binding: 'inbox' };
|
|
148
141
|
}
|
|
149
142
|
async function runCheckpoint(store, sessionId, opts = {}) {
|
|
150
143
|
const sessions = new tim_store_1.SessionManager(store);
|
|
@@ -152,7 +145,7 @@ async function runCheckpoint(store, sessionId, opts = {}) {
|
|
|
152
145
|
}
|
|
153
146
|
async function runSessionStart(store, params) {
|
|
154
147
|
const sessions = new tim_store_1.SessionManager(store);
|
|
155
|
-
const projectId = await resolveSessionProjectId(store, params.cwd, params.projectId);
|
|
148
|
+
const { projectId, binding } = await resolveSessionProjectId(store, params.cwd, params.projectId);
|
|
156
149
|
const session = await sessions.startProjectSession({
|
|
157
150
|
sessionId: params.sessionId,
|
|
158
151
|
projectId,
|
|
@@ -162,16 +155,11 @@ async function runSessionStart(store, params) {
|
|
|
162
155
|
batchSize: params.batchSize,
|
|
163
156
|
});
|
|
164
157
|
if (store.getDatabasePath() !== ':memory:') {
|
|
165
|
-
(0, marker_js_1.
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
? session.metadata.batch_size
|
|
171
|
-
: 5,
|
|
172
|
-
batches_summarized: 0,
|
|
173
|
-
version: 2,
|
|
174
|
-
});
|
|
158
|
+
const existingMarker = (0, marker_js_1.readMarker)(params.cwd);
|
|
159
|
+
const shouldWrite = !existingMarker && (binding === 'explicit' || binding === 'auto');
|
|
160
|
+
if (shouldWrite) {
|
|
161
|
+
(0, marker_js_1.writeMarker)(params.cwd, { project: projectId });
|
|
162
|
+
}
|
|
175
163
|
}
|
|
176
164
|
await (0, hooks_js_1.runConfiguredHooks)('sessionStart', params.hooksConfig, {
|
|
177
165
|
TIM_SESSION_ID: params.sessionId,
|
|
@@ -193,10 +181,10 @@ async function runSessionStart(store, params) {
|
|
|
193
181
|
const updateLine = await (0, update_check_js_1.getUpdateCheckLineBriefing)();
|
|
194
182
|
if (updateLine)
|
|
195
183
|
briefingParts.push(updateLine);
|
|
196
|
-
const
|
|
197
|
-
if (
|
|
184
|
+
const { exchangeCount } = await (0, tim_store_1.deriveCounters)(store, params.sessionId);
|
|
185
|
+
if (exchangeCount > 0) {
|
|
198
186
|
const everyN = (0, cadence_js_1.getCheckpointEveryN)((0, tim_core_1.loadConfig)());
|
|
199
|
-
const reminder = (0, cadence_js_1.checkpointCadenceReminder)(
|
|
187
|
+
const reminder = (0, cadence_js_1.checkpointCadenceReminder)(exchangeCount, everyN);
|
|
200
188
|
if (reminder)
|
|
201
189
|
briefingParts.push(reminder);
|
|
202
190
|
}
|
package/dist/checkpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -2,4 +2,13 @@
|
|
|
2
2
|
export declare const DEFAULT_SUMMARIZER_TIMEOUT_SEC = 600;
|
|
3
3
|
/** Lock must outlive the longest legal summarizer run (+ SIGTERM tail). */
|
|
4
4
|
export declare const LOCK_TTL_MS: number;
|
|
5
|
+
/** Per-cwd metadata directory beside the project marker. */
|
|
6
|
+
export declare const TIM_META_DIR = ".tim";
|
|
7
|
+
/** Summarizer process lock filename (lives under {@link TIM_META_DIR}). */
|
|
8
|
+
export declare const SUMMARIZER_LOCK = "summarizer.lock";
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Pre–marker-slimming lock basename at cwd root. Ignored after v3;
|
|
11
|
+
* use {@link SUMMARIZER_LOCK} under {@link TIM_META_DIR}.
|
|
12
|
+
*/
|
|
13
|
+
export declare const MARKER_LOCK = ".tim-project.lock";
|
|
5
14
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,2EAA2E;AAC3E,eAAO,MAAM,WAAW,QAAgD,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,2EAA2E;AAC3E,eAAO,MAAM,WAAW,QAAgD,CAAC;AAEzE,4DAA4D;AAC5D,eAAO,MAAM,YAAY,SAAS,CAAC;AAEnC,2EAA2E;AAC3E,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,WAAW,sBAAsB,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LOCK_TTL_MS = exports.DEFAULT_SUMMARIZER_TIMEOUT_SEC = void 0;
|
|
3
|
+
exports.MARKER_LOCK = exports.SUMMARIZER_LOCK = exports.TIM_META_DIR = exports.LOCK_TTL_MS = exports.DEFAULT_SUMMARIZER_TIMEOUT_SEC = void 0;
|
|
4
4
|
/** Shared summarizer timing — single source for lock TTL vs CLI timeout. */
|
|
5
5
|
exports.DEFAULT_SUMMARIZER_TIMEOUT_SEC = 600;
|
|
6
6
|
/** Lock must outlive the longest legal summarizer run (+ SIGTERM tail). */
|
|
7
7
|
exports.LOCK_TTL_MS = (exports.DEFAULT_SUMMARIZER_TIMEOUT_SEC + 120) * 1000;
|
|
8
|
+
/** Per-cwd metadata directory beside the project marker. */
|
|
9
|
+
exports.TIM_META_DIR = '.tim';
|
|
10
|
+
/** Summarizer process lock filename (lives under {@link TIM_META_DIR}). */
|
|
11
|
+
exports.SUMMARIZER_LOCK = 'summarizer.lock';
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Pre–marker-slimming lock basename at cwd root. Ignored after v3;
|
|
14
|
+
* use {@link SUMMARIZER_LOCK} under {@link TIM_META_DIR}.
|
|
15
|
+
*/
|
|
16
|
+
exports.MARKER_LOCK = '.tim-project.lock';
|
|
8
17
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC/D,QAAA,8BAA8B,GAAG,GAAG,CAAC;AAElD,2EAA2E;AAC9D,QAAA,WAAW,GAAG,CAAC,sCAA8B,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC/D,QAAA,8BAA8B,GAAG,GAAG,CAAC;AAElD,2EAA2E;AAC9D,QAAA,WAAW,GAAG,CAAC,sCAA8B,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;AAEzE,4DAA4D;AAC/C,QAAA,YAAY,GAAG,MAAM,CAAC;AAEnC,2EAA2E;AAC9D,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAEjD;;;GAGG;AACU,QAAA,WAAW,GAAG,mBAAmB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,9 +5,10 @@ export { getCheckpointEveryN, getBriefingMaxTokens, shouldAutoCheckpoint, checkp
|
|
|
5
5
|
export { afterExchangeLogged, type CadenceResult } from './cadence-runner.js';
|
|
6
6
|
export { runPromptSubmit, type PromptSubmitParams, type PromptSubmitResult, } from './prompt-submit.js';
|
|
7
7
|
export { runClaudeStop, readLastExchange, MAX_TRANSCRIPT_BYTES, MAX_EXCHANGE_CHARS, type ClaudeStopPayload, type ClaudeStopResult, } from './claude-stop.js';
|
|
8
|
-
export { readMarker, writeMarker, writeMarkerAtomic, writeMarkerExclusive, ExclusiveMarkerConflictError,
|
|
8
|
+
export { readMarker, writeMarker, writeMarkerAtomic, writeMarkerExclusive, ExclusiveMarkerConflictError, detectProject, discoverMarker, findMarker, findMarkerOptionsFromEnv, DEFAULT_MARKER_DISCOVERY_POLICY, CWD_ONLY_MARKER_DISCOVERY_POLICY, buildLoadDirective, buildSessionDirective, syncNearestProjectMarker, validateMarkerAgainstStore, validateProjectLabel, isUnsafeMarkerDir, INBOX_LABEL, acquireLock, releaseLock, markerPath, canonicalProjectPath, summarizerLockPath, CANONICAL_PROJECT_FILENAME, MARKER_FILENAME, MARKER_VERSION, SUMMARIZER_LOCK, MARKER_LOCK, LOCK_TTL_MS, isSessionLocked, type ProjectMarker, type ProjectMarkerInput, type MarkerLocation, type FindMarkerOptions, type MarkerDiscoveryPolicy, } from './marker.js';
|
|
9
9
|
export { rebalanceBatch, type RebalanceResult, type RebalanceSkip, } from './rebalance.js';
|
|
10
10
|
export { onSessionStop, maybeSpawnSummarizer, buildSummarizerCommand, spawnSummarizer, detachedSpawner, summarizerLogPath, DEFAULT_SUMMARIZER_TIMEOUT_SEC, type SpawnContext, type Spawner, type SessionStopResult, type SessionStopReason, type MaybeSpawnSummarizerOptions, } from './session-hooks.js';
|
|
11
11
|
export { MODE_ERROR, validateMode, canonicalDirectory, createProjectCoordinated, recoverProjectBinding, ProjectCreationPartialFailureError, type ProjectCreationArgs, type MemoryOnlyProjectCreationResult, type BoundProjectCreationResult, type ProjectCreationResult, type ProjectCreationDeps, type RecoverProjectBindingArgs, type RecoverProjectBindingResult, } from './project-creation.js';
|
|
12
12
|
export { repairPhantomProjectBinding, formatUnboundProjectLabel, stripUnboundProjectSuffix, isUnboundProjectLabel, markerWithRepairedProject, } from './phantom-recovery.js';
|
|
13
|
+
export { bindingDeviceId, classifyProjectPathBinding, collectBindingReport, bindUnboundBindings, formatBindingFindingLine, formatStalePathLine, formatBindOutcomeLine, type ProjectBindingStatus, type ProjectBindingFinding, type StalePathFinding, type BindingReport, type BindOutcome, } from './project-binding-health.js';
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,EACL,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,EAC5B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,EACL,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,EAC5B,aAAa,EACb,cAAc,EACd,UAAU,EACV,wBAAwB,EACxB,+BAA+B,EAC/B,gCAAgC,EAChC,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,8BAA8B,EAC9B,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,GACjC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,kCAAkC,EAClC,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,GACjC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MARKER_LOCK = exports.MARKER_VERSION = exports.MARKER_FILENAME = exports.CANONICAL_PROJECT_FILENAME = exports.canonicalProjectPath = exports.markerPath = exports.releaseLock = exports.acquireLock = exports.INBOX_LABEL = exports.isUnsafeMarkerDir = exports.validateProjectLabel = exports.validateMarkerAgainstStore = exports.syncNearestProjectMarker = exports.
|
|
4
|
-
exports.markerWithRepairedProject = exports.isUnboundProjectLabel = exports.stripUnboundProjectSuffix = exports.formatUnboundProjectLabel = exports.repairPhantomProjectBinding = exports.ProjectCreationPartialFailureError = exports.recoverProjectBinding = exports.createProjectCoordinated = exports.canonicalDirectory = exports.validateMode = exports.MODE_ERROR = exports.DEFAULT_SUMMARIZER_TIMEOUT_SEC = exports.summarizerLogPath = exports.detachedSpawner = exports.spawnSummarizer = exports.buildSummarizerCommand = exports.maybeSpawnSummarizer = exports.onSessionStop = exports.rebalanceBatch = exports.isSessionLocked = exports.LOCK_TTL_MS = void 0;
|
|
3
|
+
exports.MARKER_LOCK = exports.SUMMARIZER_LOCK = exports.MARKER_VERSION = exports.MARKER_FILENAME = exports.CANONICAL_PROJECT_FILENAME = exports.summarizerLockPath = exports.canonicalProjectPath = exports.markerPath = exports.releaseLock = exports.acquireLock = exports.INBOX_LABEL = exports.isUnsafeMarkerDir = exports.validateProjectLabel = exports.validateMarkerAgainstStore = exports.syncNearestProjectMarker = exports.buildSessionDirective = exports.buildLoadDirective = exports.CWD_ONLY_MARKER_DISCOVERY_POLICY = exports.DEFAULT_MARKER_DISCOVERY_POLICY = exports.findMarkerOptionsFromEnv = exports.findMarker = exports.discoverMarker = exports.detectProject = exports.ExclusiveMarkerConflictError = exports.writeMarkerExclusive = exports.writeMarkerAtomic = exports.writeMarker = exports.readMarker = exports.MAX_EXCHANGE_CHARS = exports.MAX_TRANSCRIPT_BYTES = exports.readLastExchange = exports.runClaudeStop = exports.runPromptSubmit = exports.afterExchangeLogged = exports.DEFAULT_BRIEFING_MAX_TOKENS = exports.DEFAULT_CHECKPOINT_EVERY_N = exports.checkpointCadenceReminder = exports.shouldAutoCheckpoint = exports.getBriefingMaxTokens = exports.getCheckpointEveryN = exports.getDeltaBriefing = exports.getActiveProjectLabel = exports.loadProjectContext = exports.runSessionEnd = exports.runSessionStart = exports.runCheckpoint = exports.embedUnembeddedEntries = exports.runConfiguredHooks = exports.runHooks = exports.runHookScript = void 0;
|
|
4
|
+
exports.formatBindOutcomeLine = exports.formatStalePathLine = exports.formatBindingFindingLine = exports.bindUnboundBindings = exports.collectBindingReport = exports.classifyProjectPathBinding = exports.bindingDeviceId = exports.markerWithRepairedProject = exports.isUnboundProjectLabel = exports.stripUnboundProjectSuffix = exports.formatUnboundProjectLabel = exports.repairPhantomProjectBinding = exports.ProjectCreationPartialFailureError = exports.recoverProjectBinding = exports.createProjectCoordinated = exports.canonicalDirectory = exports.validateMode = exports.MODE_ERROR = exports.DEFAULT_SUMMARIZER_TIMEOUT_SEC = exports.summarizerLogPath = exports.detachedSpawner = exports.spawnSummarizer = exports.buildSummarizerCommand = exports.maybeSpawnSummarizer = exports.onSessionStop = exports.rebalanceBatch = exports.isSessionLocked = exports.LOCK_TTL_MS = void 0;
|
|
5
5
|
var hooks_js_1 = require("./hooks.js");
|
|
6
6
|
Object.defineProperty(exports, "runHookScript", { enumerable: true, get: function () { return hooks_js_1.runHookScript; } });
|
|
7
7
|
Object.defineProperty(exports, "runHooks", { enumerable: true, get: function () { return hooks_js_1.runHooks; } });
|
|
@@ -37,7 +37,6 @@ Object.defineProperty(exports, "writeMarker", { enumerable: true, get: function
|
|
|
37
37
|
Object.defineProperty(exports, "writeMarkerAtomic", { enumerable: true, get: function () { return marker_js_1.writeMarkerAtomic; } });
|
|
38
38
|
Object.defineProperty(exports, "writeMarkerExclusive", { enumerable: true, get: function () { return marker_js_1.writeMarkerExclusive; } });
|
|
39
39
|
Object.defineProperty(exports, "ExclusiveMarkerConflictError", { enumerable: true, get: function () { return marker_js_1.ExclusiveMarkerConflictError; } });
|
|
40
|
-
Object.defineProperty(exports, "rotateMarkerSession", { enumerable: true, get: function () { return marker_js_1.rotateMarkerSession; } });
|
|
41
40
|
Object.defineProperty(exports, "detectProject", { enumerable: true, get: function () { return marker_js_1.detectProject; } });
|
|
42
41
|
Object.defineProperty(exports, "discoverMarker", { enumerable: true, get: function () { return marker_js_1.discoverMarker; } });
|
|
43
42
|
Object.defineProperty(exports, "findMarker", { enumerable: true, get: function () { return marker_js_1.findMarker; } });
|
|
@@ -46,7 +45,6 @@ Object.defineProperty(exports, "DEFAULT_MARKER_DISCOVERY_POLICY", { enumerable:
|
|
|
46
45
|
Object.defineProperty(exports, "CWD_ONLY_MARKER_DISCOVERY_POLICY", { enumerable: true, get: function () { return marker_js_1.CWD_ONLY_MARKER_DISCOVERY_POLICY; } });
|
|
47
46
|
Object.defineProperty(exports, "buildLoadDirective", { enumerable: true, get: function () { return marker_js_1.buildLoadDirective; } });
|
|
48
47
|
Object.defineProperty(exports, "buildSessionDirective", { enumerable: true, get: function () { return marker_js_1.buildSessionDirective; } });
|
|
49
|
-
Object.defineProperty(exports, "reconcileMarker", { enumerable: true, get: function () { return marker_js_1.reconcileMarker; } });
|
|
50
48
|
Object.defineProperty(exports, "syncNearestProjectMarker", { enumerable: true, get: function () { return marker_js_1.syncNearestProjectMarker; } });
|
|
51
49
|
Object.defineProperty(exports, "validateMarkerAgainstStore", { enumerable: true, get: function () { return marker_js_1.validateMarkerAgainstStore; } });
|
|
52
50
|
Object.defineProperty(exports, "validateProjectLabel", { enumerable: true, get: function () { return marker_js_1.validateProjectLabel; } });
|
|
@@ -56,9 +54,11 @@ Object.defineProperty(exports, "acquireLock", { enumerable: true, get: function
|
|
|
56
54
|
Object.defineProperty(exports, "releaseLock", { enumerable: true, get: function () { return marker_js_1.releaseLock; } });
|
|
57
55
|
Object.defineProperty(exports, "markerPath", { enumerable: true, get: function () { return marker_js_1.markerPath; } });
|
|
58
56
|
Object.defineProperty(exports, "canonicalProjectPath", { enumerable: true, get: function () { return marker_js_1.canonicalProjectPath; } });
|
|
57
|
+
Object.defineProperty(exports, "summarizerLockPath", { enumerable: true, get: function () { return marker_js_1.summarizerLockPath; } });
|
|
59
58
|
Object.defineProperty(exports, "CANONICAL_PROJECT_FILENAME", { enumerable: true, get: function () { return marker_js_1.CANONICAL_PROJECT_FILENAME; } });
|
|
60
59
|
Object.defineProperty(exports, "MARKER_FILENAME", { enumerable: true, get: function () { return marker_js_1.MARKER_FILENAME; } });
|
|
61
60
|
Object.defineProperty(exports, "MARKER_VERSION", { enumerable: true, get: function () { return marker_js_1.MARKER_VERSION; } });
|
|
61
|
+
Object.defineProperty(exports, "SUMMARIZER_LOCK", { enumerable: true, get: function () { return marker_js_1.SUMMARIZER_LOCK; } });
|
|
62
62
|
Object.defineProperty(exports, "MARKER_LOCK", { enumerable: true, get: function () { return marker_js_1.MARKER_LOCK; } });
|
|
63
63
|
Object.defineProperty(exports, "LOCK_TTL_MS", { enumerable: true, get: function () { return marker_js_1.LOCK_TTL_MS; } });
|
|
64
64
|
Object.defineProperty(exports, "isSessionLocked", { enumerable: true, get: function () { return marker_js_1.isSessionLocked; } });
|
|
@@ -85,4 +85,12 @@ Object.defineProperty(exports, "formatUnboundProjectLabel", { enumerable: true,
|
|
|
85
85
|
Object.defineProperty(exports, "stripUnboundProjectSuffix", { enumerable: true, get: function () { return phantom_recovery_js_1.stripUnboundProjectSuffix; } });
|
|
86
86
|
Object.defineProperty(exports, "isUnboundProjectLabel", { enumerable: true, get: function () { return phantom_recovery_js_1.isUnboundProjectLabel; } });
|
|
87
87
|
Object.defineProperty(exports, "markerWithRepairedProject", { enumerable: true, get: function () { return phantom_recovery_js_1.markerWithRepairedProject; } });
|
|
88
|
+
var project_binding_health_js_1 = require("./project-binding-health.js");
|
|
89
|
+
Object.defineProperty(exports, "bindingDeviceId", { enumerable: true, get: function () { return project_binding_health_js_1.bindingDeviceId; } });
|
|
90
|
+
Object.defineProperty(exports, "classifyProjectPathBinding", { enumerable: true, get: function () { return project_binding_health_js_1.classifyProjectPathBinding; } });
|
|
91
|
+
Object.defineProperty(exports, "collectBindingReport", { enumerable: true, get: function () { return project_binding_health_js_1.collectBindingReport; } });
|
|
92
|
+
Object.defineProperty(exports, "bindUnboundBindings", { enumerable: true, get: function () { return project_binding_health_js_1.bindUnboundBindings; } });
|
|
93
|
+
Object.defineProperty(exports, "formatBindingFindingLine", { enumerable: true, get: function () { return project_binding_health_js_1.formatBindingFindingLine; } });
|
|
94
|
+
Object.defineProperty(exports, "formatStalePathLine", { enumerable: true, get: function () { return project_binding_health_js_1.formatStalePathLine; } });
|
|
95
|
+
Object.defineProperty(exports, "formatBindOutcomeLine", { enumerable: true, get: function () { return project_binding_health_js_1.formatBindOutcomeLine; } });
|
|
88
96
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,uCAQoB;AAPlB,yGAAA,aAAa,OAAA;AACb,oGAAA,QAAQ,OAAA;AACR,8GAAA,kBAAkB,OAAA;AAClB,kHAAA,sBAAsB,OAAA;AAMxB,iDAQyB;AAPvB,8GAAA,aAAa,OAAA;AACb,gHAAA,eAAe,OAAA;AACf,8GAAA,aAAa,OAAA;AACb,mHAAA,kBAAkB,OAAA;AAClB,sHAAA,qBAAqB,OAAA;AAKvB,uCAAyE;AAAhE,4GAAA,gBAAgB,OAAA;AAEzB,2CAOsB;AANpB,iHAAA,mBAAmB,OAAA;AACnB,kHAAA,oBAAoB,OAAA;AACpB,kHAAA,oBAAoB,OAAA;AACpB,uHAAA,yBAAyB,OAAA;AACzB,wHAAA,0BAA0B,OAAA;AAC1B,yHAAA,2BAA2B,OAAA;AAG7B,yDAA8E;AAArE,wHAAA,mBAAmB,OAAA;AAE5B,uDAI4B;AAH1B,mHAAA,eAAe,OAAA;AAKjB,mDAO0B;AANxB,+GAAA,aAAa,OAAA;AACb,kHAAA,gBAAgB,OAAA;AAChB,sHAAA,oBAAoB,OAAA;AACpB,oHAAA,kBAAkB,OAAA;AAKpB,yCAoCqB;AAnCnB,uGAAA,UAAU,OAAA;AACV,wGAAA,WAAW,OAAA;AACX,8GAAA,iBAAiB,OAAA;AACjB,iHAAA,oBAAoB,OAAA;AACpB,yHAAA,4BAA4B,OAAA;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,uCAQoB;AAPlB,yGAAA,aAAa,OAAA;AACb,oGAAA,QAAQ,OAAA;AACR,8GAAA,kBAAkB,OAAA;AAClB,kHAAA,sBAAsB,OAAA;AAMxB,iDAQyB;AAPvB,8GAAA,aAAa,OAAA;AACb,gHAAA,eAAe,OAAA;AACf,8GAAA,aAAa,OAAA;AACb,mHAAA,kBAAkB,OAAA;AAClB,sHAAA,qBAAqB,OAAA;AAKvB,uCAAyE;AAAhE,4GAAA,gBAAgB,OAAA;AAEzB,2CAOsB;AANpB,iHAAA,mBAAmB,OAAA;AACnB,kHAAA,oBAAoB,OAAA;AACpB,kHAAA,oBAAoB,OAAA;AACpB,uHAAA,yBAAyB,OAAA;AACzB,wHAAA,0BAA0B,OAAA;AAC1B,yHAAA,2BAA2B,OAAA;AAG7B,yDAA8E;AAArE,wHAAA,mBAAmB,OAAA;AAE5B,uDAI4B;AAH1B,mHAAA,eAAe,OAAA;AAKjB,mDAO0B;AANxB,+GAAA,aAAa,OAAA;AACb,kHAAA,gBAAgB,OAAA;AAChB,sHAAA,oBAAoB,OAAA;AACpB,oHAAA,kBAAkB,OAAA;AAKpB,yCAoCqB;AAnCnB,uGAAA,UAAU,OAAA;AACV,wGAAA,WAAW,OAAA;AACX,8GAAA,iBAAiB,OAAA;AACjB,iHAAA,oBAAoB,OAAA;AACpB,yHAAA,4BAA4B,OAAA;AAC5B,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AACd,uGAAA,UAAU,OAAA;AACV,qHAAA,wBAAwB,OAAA;AACxB,4HAAA,+BAA+B,OAAA;AAC/B,6HAAA,gCAAgC,OAAA;AAChC,+GAAA,kBAAkB,OAAA;AAClB,kHAAA,qBAAqB,OAAA;AACrB,qHAAA,wBAAwB,OAAA;AACxB,uHAAA,0BAA0B,OAAA;AAC1B,iHAAA,oBAAoB,OAAA;AACpB,8GAAA,iBAAiB,OAAA;AACjB,wGAAA,WAAW,OAAA;AACX,wGAAA,WAAW,OAAA;AACX,wGAAA,WAAW,OAAA;AACX,uGAAA,UAAU,OAAA;AACV,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAClB,uHAAA,0BAA0B,OAAA;AAC1B,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,4GAAA,eAAe,OAAA;AACf,wGAAA,WAAW,OAAA;AACX,wGAAA,WAAW,OAAA;AACX,4GAAA,eAAe,OAAA;AAQjB,+CAIwB;AAHtB,8GAAA,cAAc,OAAA;AAKhB,uDAa4B;AAZ1B,iHAAA,aAAa,OAAA;AACb,wHAAA,oBAAoB,OAAA;AACpB,0HAAA,sBAAsB,OAAA;AACtB,mHAAA,eAAe,OAAA;AACf,mHAAA,eAAe,OAAA;AACf,qHAAA,iBAAiB,OAAA;AACjB,kIAAA,8BAA8B,OAAA;AAQhC,6DAc+B;AAb7B,iHAAA,UAAU,OAAA;AACV,mHAAA,YAAY,OAAA;AACZ,yHAAA,kBAAkB,OAAA;AAClB,+HAAA,wBAAwB,OAAA;AACxB,4HAAA,qBAAqB,OAAA;AACrB,yIAAA,kCAAkC,OAAA;AAUpC,6DAM+B;AAL7B,kIAAA,2BAA2B,OAAA;AAC3B,gIAAA,yBAAyB,OAAA;AACzB,gIAAA,yBAAyB,OAAA;AACzB,4HAAA,qBAAqB,OAAA;AACrB,gIAAA,yBAAyB,OAAA;AAG3B,yEAaqC;AAZnC,4HAAA,eAAe,OAAA;AACf,uIAAA,0BAA0B,OAAA;AAC1B,iIAAA,oBAAoB,OAAA;AACpB,gIAAA,mBAAmB,OAAA;AACnB,qIAAA,wBAAwB,OAAA;AACxB,gIAAA,mBAAmB,OAAA;AACnB,kIAAA,qBAAqB,OAAA"}
|
package/dist/marker.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { TimStore } from 'tim-store';
|
|
2
2
|
export declare const MARKER_FILENAME = ".tim-project";
|
|
3
|
-
export
|
|
3
|
+
export { SUMMARIZER_LOCK, MARKER_LOCK } from './constants.js';
|
|
4
4
|
/**
|
|
5
5
|
* Committed default project label for repos that gitignore `.tim-project`.
|
|
6
|
-
* Contains only the stable `project` field
|
|
7
|
-
*
|
|
8
|
-
* by creating `.tim-project` in the repo root (it wins over tim.json).
|
|
6
|
+
* Contains only the stable `project` field. Override per-machine by creating
|
|
7
|
+
* `.tim-project` in the repo root (it wins over tim.json).
|
|
9
8
|
*/
|
|
10
9
|
export declare const CANONICAL_PROJECT_FILENAME = "tim.json";
|
|
11
10
|
/**
|
|
@@ -13,39 +12,29 @@ export declare const CANONICAL_PROJECT_FILENAME = "tim.json";
|
|
|
13
12
|
* readers detect older files by the missing/unknown `version` field and
|
|
14
13
|
* normalize to the current shape.
|
|
15
14
|
*/
|
|
16
|
-
export declare const MARKER_VERSION =
|
|
15
|
+
export declare const MARKER_VERSION = 3;
|
|
17
16
|
/**
|
|
18
|
-
* .tim-project —
|
|
17
|
+
* .tim-project — v3 schema (label-only binding).
|
|
19
18
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* for the field-by-field rationale.
|
|
24
|
-
*
|
|
25
|
-
* `version` is required on disk; the read path fills it in automatically
|
|
26
|
-
* for v1 files so existing installations keep working without an explicit
|
|
27
|
-
* migration step. The next write upgrades the file to v2.
|
|
19
|
+
* Runtime session id and counters live in the TIM store. v1/v2 files are read
|
|
20
|
+
* as v3 by ignoring their extra fields; the next legitimate write upgrades
|
|
21
|
+
* on-disk content to the two-field shape.
|
|
28
22
|
*/
|
|
29
23
|
export interface ProjectMarker {
|
|
30
|
-
version:
|
|
24
|
+
version: 3;
|
|
31
25
|
project: string;
|
|
32
|
-
session: string;
|
|
33
|
-
exchanges: number;
|
|
34
|
-
batch_size: number;
|
|
35
|
-
batches_summarized: number;
|
|
36
26
|
}
|
|
37
27
|
/**
|
|
38
28
|
* Input shape for writeMarker. Callers MAY omit `version` — the writer
|
|
39
|
-
* always stamps the current version on disk.
|
|
40
|
-
* Kept as a separate alias so the read API can return the strict v2 type
|
|
41
|
-
* while the write API stays convenient for callers that don't care about
|
|
42
|
-
* the version field.
|
|
29
|
+
* always stamps the current version on disk.
|
|
43
30
|
*/
|
|
44
|
-
export type ProjectMarkerInput =
|
|
45
|
-
|
|
31
|
+
export type ProjectMarkerInput = {
|
|
32
|
+
project: string;
|
|
33
|
+
version?: 3;
|
|
46
34
|
};
|
|
47
35
|
export declare function markerPath(cwd: string): string;
|
|
48
36
|
export declare function canonicalProjectPath(cwd: string): string;
|
|
37
|
+
export declare function summarizerLockPath(cwd: string): string;
|
|
49
38
|
export declare function validateProjectLabel(label: string): boolean;
|
|
50
39
|
/**
|
|
51
40
|
* Sentinel label for the Inbox project (P0000). Always treated as
|
|
@@ -58,14 +47,8 @@ export declare const INBOX_LABEL = "P0000";
|
|
|
58
47
|
*
|
|
59
48
|
* - Missing file → null
|
|
60
49
|
* - Corrupt JSON → null
|
|
61
|
-
* - v1 file
|
|
62
|
-
*
|
|
63
|
-
* is NOT rewritten here — the next `writeMarker` call upgrades it.
|
|
64
|
-
* - v2 file → returned as-is.
|
|
65
|
-
*
|
|
66
|
-
* Callers always see a v2-conformant `ProjectMarker` regardless of what's
|
|
67
|
-
* on disk. This is the only safe way to evolve the schema without forcing
|
|
68
|
-
* a one-shot migration.
|
|
50
|
+
* - v1/v2 file → `{ version: 3, project }` (runtime fields ignored)
|
|
51
|
+
* - v3 file → returned as-is
|
|
69
52
|
*
|
|
70
53
|
* When no `.tim-project` exists, falls back to `tim.json` (committed
|
|
71
54
|
* canonical default). A real `.tim-project` always wins — even when
|
|
@@ -74,32 +57,11 @@ export declare const INBOX_LABEL = "P0000";
|
|
|
74
57
|
export declare function readMarker(cwd: string): ProjectMarker | null;
|
|
75
58
|
/**
|
|
76
59
|
* Defense-in-depth check: a project label that matches the
|
|
77
|
-
* pattern but is semantically bogus (e.g. `P9999`
|
|
78
|
-
* was never issued by TIM, often the residue of a hand-edit or a
|
|
79
|
-
* botched commit) must NOT be persisted into `.tim-project`. The
|
|
80
|
-
* original P9999 bug bound the statusline to a non-existent
|
|
81
|
-
* project because the file was trusted blindly.
|
|
82
|
-
*
|
|
83
|
-
* Resolution: pattern-match (already enforced by normalizeMarker)
|
|
84
|
-
* AND the project must exist as a `kind=project` entry in the DB.
|
|
85
|
-
* The Inbox (P0000) is exempt — it's a system project that
|
|
86
|
-
* tim-store creates on first use via `ensureInboxProject`.
|
|
87
|
-
*
|
|
88
|
-
* Returns the marker on success, null on rejection. On DB error
|
|
89
|
-
* (store unavailable, DB locked, etc.) we FAIL OPEN: a corrupted
|
|
90
|
-
* DB is not a license to corrupt the marker, but a transient
|
|
91
|
-
* read failure shouldn't brick the session-start hook. The
|
|
92
|
-
* pattern check in normalizeMarker still ran, so we never accept
|
|
93
|
-
* malformed labels — we just skip the existence confirmation.
|
|
60
|
+
* pattern but is semantically bogus (e.g. `P9999`) must NOT be persisted.
|
|
94
61
|
*/
|
|
95
62
|
export declare function validateMarkerAgainstStore(marker: ProjectMarker, store: Pick<TimStore, 'resolveProjectLabel'>): Promise<ProjectMarker | null>;
|
|
96
63
|
/**
|
|
97
|
-
* Shared/system directories where a `.tim-project` must never live
|
|
98
|
-
* process can have them as cwd, so a marker there leaks into unrelated
|
|
99
|
-
* sessions via walk-up (observed: a cron with cwd=/tmp wrote /tmp/.tim-project
|
|
100
|
-
* and every process under /tmp inherited it). v1 unsafe set — deliberately
|
|
101
|
-
* minimal and explicit: os.tmpdir() itself and the filesystem root.
|
|
102
|
-
* Subdirectories of tmpdir (mkdtemp scratch dirs) are private and stay legal.
|
|
64
|
+
* Shared/system directories where a `.tim-project` must never live.
|
|
103
65
|
*/
|
|
104
66
|
export declare function isUnsafeMarkerDir(dir: string): boolean;
|
|
105
67
|
/** Atomically write JSON to `filePath` (tmp + rename — no torn reads on POSIX). */
|
|
@@ -110,27 +72,16 @@ export declare class ExclusiveMarkerConflictError extends Error {
|
|
|
110
72
|
}
|
|
111
73
|
/** Publish a marker only when no local marker exists already. */
|
|
112
74
|
export declare function writeMarkerExclusive(cwd: string, marker: ProjectMarkerInput): ProjectMarker;
|
|
113
|
-
/** Write a project marker file. Always emits the current schema
|
|
114
|
-
* the on-disk file becomes v2 on first write, regardless of the caller's
|
|
115
|
-
* input. This is the auto-upgrade path for v1 files. */
|
|
75
|
+
/** Write a project marker file. Always emits the current v3 schema. */
|
|
116
76
|
export declare function writeMarker(cwd: string, marker: ProjectMarkerInput): void;
|
|
117
|
-
/**
|
|
118
|
-
* Rotate the session id in cwd's `.tim-project` when the harness supplies a new one.
|
|
119
|
-
* Used by tim-session-start.sh — must not interpolate paths into JS source.
|
|
120
|
-
*/
|
|
121
|
-
export declare function rotateMarkerSession(cwd: string, sessionId: string): void;
|
|
122
77
|
/**
|
|
123
78
|
* Update the nearest `.tim-project` (walk-up from cwd) after tim_load_project.
|
|
124
|
-
* Statusline and hooks read this marker — must match the loaded project label.
|
|
125
79
|
*/
|
|
126
80
|
export declare function syncNearestProjectMarker(startCwd: string, projectLabel: string, options?: {
|
|
127
|
-
sessionId?: string;
|
|
128
81
|
findOptions?: FindMarkerOptions;
|
|
129
82
|
}): boolean;
|
|
130
83
|
/** Project detection — cwd-only marker (no walk-up). */
|
|
131
84
|
export declare function detectProject(cwd: string): ProjectMarker | null;
|
|
132
|
-
/** Re-derive counters from the DB and persist them into the marker. */
|
|
133
|
-
export declare function reconcileMarker(store: TimStore, cwd: string): Promise<ProjectMarker>;
|
|
134
85
|
export { LOCK_TTL_MS } from './constants.js';
|
|
135
86
|
export declare function acquireLock(cwd: string): boolean;
|
|
136
87
|
/** True when an active (non-stale) summarizer/session lock is held. */
|
|
@@ -158,20 +109,14 @@ export declare const CWD_ONLY_MARKER_DISCOVERY_POLICY: MarkerDiscoveryPolicy;
|
|
|
158
109
|
export declare function findMarkerOptionsFromEnv(): FindMarkerOptions | undefined;
|
|
159
110
|
/**
|
|
160
111
|
* Find a project marker from `startCwd` — the single discovery implementation.
|
|
161
|
-
*
|
|
162
|
-
* Policy defaults (when fields omitted): walkUp=true, allowHome=true.
|
|
163
|
-
* Pass `CWD_ONLY_MARKER_DISCOVERY_POLICY` for harness cwd binding.
|
|
164
112
|
*/
|
|
165
113
|
export declare function discoverMarker(startCwd: string, policy?: MarkerDiscoveryPolicy): MarkerLocation | null;
|
|
166
114
|
/**
|
|
167
115
|
* Back-compat wrapper: when `options` is omitted, cwd-only (historical default).
|
|
168
|
-
* Prefer `discoverMarker` with an explicit policy for new code.
|
|
169
116
|
*/
|
|
170
117
|
export declare function findMarker(startCwd: string, options?: FindMarkerOptions): MarkerLocation | null;
|
|
171
118
|
/**
|
|
172
|
-
* Shared, harness-agnostic directive text. Every start hook
|
|
173
|
-
* Claude Code, Cursor) emits exactly this so wording stays DRY. The TIM
|
|
174
|
-
* marker is authoritative for project binding this turn (see plan §end-state).
|
|
119
|
+
* Shared, harness-agnostic directive text. Every start hook emits exactly this.
|
|
175
120
|
*/
|
|
176
121
|
export declare function buildLoadDirective(projectLabel: string, markerDir: string, bindingLabel?: string): string;
|
|
177
122
|
/** Directive when project comes from TIM session metadata (no local .tim-project). */
|
package/dist/marker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../src/marker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../src/marker.ts"],"names":[],"mappings":"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"}
|