@rasensio/aidlc 1.9.0 → 1.9.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/commands/claim.d.ts +9 -0
- package/dist/commands/claim.d.ts.map +1 -1
- package/dist/commands/claim.js +26 -4
- package/dist/commands/claim.js.map +1 -1
- package/dist/commands/cost.d.ts.map +1 -1
- package/dist/commands/cost.js +3 -5
- package/dist/commands/cost.js.map +1 -1
- package/dist/concurrency/session-id.d.ts +12 -0
- package/dist/concurrency/session-id.d.ts.map +1 -1
- package/dist/concurrency/session-id.js +24 -4
- package/dist/concurrency/session-id.js.map +1 -1
- package/dist/cost/agent.d.ts +48 -0
- package/dist/cost/agent.d.ts.map +1 -0
- package/dist/cost/agent.js +167 -0
- package/dist/cost/agent.js.map +1 -0
- package/dist/cost/providers/index.d.ts +13 -0
- package/dist/cost/providers/index.d.ts.map +1 -0
- package/dist/cost/providers/index.js +23 -0
- package/dist/cost/providers/index.js.map +1 -0
- package/dist/cost/sync.d.ts.map +1 -1
- package/dist/cost/sync.js +114 -37
- package/dist/cost/sync.js.map +1 -1
- package/dist/doctor/migrations/index.d.ts.map +1 -1
- package/dist/doctor/migrations/index.js +2 -0
- package/dist/doctor/migrations/index.js.map +1 -1
- package/dist/doctor/migrations/unknown-agent-claims.d.ts +25 -0
- package/dist/doctor/migrations/unknown-agent-claims.d.ts.map +1 -0
- package/dist/doctor/migrations/unknown-agent-claims.js +82 -0
- package/dist/doctor/migrations/unknown-agent-claims.js.map +1 -0
- package/package.json +2 -2
package/dist/commands/claim.d.ts
CHANGED
|
@@ -13,5 +13,14 @@
|
|
|
13
13
|
* process-lifetime agent id (git-worktree design F2).
|
|
14
14
|
*/
|
|
15
15
|
import { Command } from 'commander';
|
|
16
|
+
/**
|
|
17
|
+
* Exported as a test seam (the runDoctorPass precedent): the claim/renew/release
|
|
18
|
+
* agent field is the whole point of cost-claim-attribution, and asserting on it
|
|
19
|
+
* requires driving these without a subprocess.
|
|
20
|
+
*/
|
|
21
|
+
export declare function runClaim(instance: string, opts: {
|
|
22
|
+
renew?: boolean;
|
|
23
|
+
}): void;
|
|
24
|
+
export declare function runRelease(instance: string): void;
|
|
16
25
|
export declare function registerClaim(program: Command): void;
|
|
17
26
|
//# sourceMappingURL=claim.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../src/commands/claim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../src/commands/claim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BpC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAsE1E;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAuBjD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBpD"}
|
package/dist/commands/claim.js
CHANGED
|
@@ -20,10 +20,29 @@ import { loadClaimTimeoutMinutes } from '../cost/config.js';
|
|
|
20
20
|
import { openClaimStore, ClaimConflictError } from '../concurrency/claim-store.js';
|
|
21
21
|
import { resolveSessionIdentity } from '../concurrency/session-id.js';
|
|
22
22
|
import { isLinkedWorktree } from '../concurrency/common-dir.js';
|
|
23
|
+
import { resolveAgent, agentMissWarning } from '../cost/agent.js';
|
|
23
24
|
function instanceYamlPath(root, instance) {
|
|
24
25
|
return join(root, '.aidlc', 'state', instance, 'instance.yaml');
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Resolve the platform for a session event, warning when it cannot be
|
|
29
|
+
* determined (AC-5). Renew and release have no SessionIdentity to hand, so
|
|
30
|
+
* they resolve through the same helper rather than reading the env var
|
|
31
|
+
* directly — the three sites must not diverge (AC-2).
|
|
32
|
+
*/
|
|
33
|
+
function agentForEvent(root) {
|
|
34
|
+
const resolved = resolveAgent(root);
|
|
35
|
+
if (resolved.reason !== null) {
|
|
36
|
+
process.stderr.write(`warning: ${agentMissWarning(resolved.reason)}\n`);
|
|
37
|
+
}
|
|
38
|
+
return resolved.agent;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Exported as a test seam (the runDoctorPass precedent): the claim/renew/release
|
|
42
|
+
* agent field is the whole point of cost-claim-attribution, and asserting on it
|
|
43
|
+
* requires driving these without a subprocess.
|
|
44
|
+
*/
|
|
45
|
+
export function runClaim(instance, opts) {
|
|
27
46
|
const root = process.cwd();
|
|
28
47
|
if (!existsSync(instanceYamlPath(root, instance))) {
|
|
29
48
|
process.stderr.write(`no such instance: ${instance}\n`);
|
|
@@ -45,7 +64,7 @@ function runClaim(instance, opts) {
|
|
|
45
64
|
event: 'renew',
|
|
46
65
|
session_id: current.session,
|
|
47
66
|
id_source: current.id_source,
|
|
48
|
-
agent:
|
|
67
|
+
agent: agentForEvent(root),
|
|
49
68
|
timestamp: now,
|
|
50
69
|
});
|
|
51
70
|
process.stdout.write(`renewed claim on ${instance}\n`);
|
|
@@ -77,6 +96,9 @@ function runClaim(instance, opts) {
|
|
|
77
96
|
}
|
|
78
97
|
throw err;
|
|
79
98
|
}
|
|
99
|
+
if (session.agentMiss !== null) {
|
|
100
|
+
process.stderr.write(`warning: ${agentMissWarning(session.agentMiss)}\n`);
|
|
101
|
+
}
|
|
80
102
|
appendSessionEvent(sessionsPath(root, instance), {
|
|
81
103
|
event: 'claim',
|
|
82
104
|
session_id: session.id,
|
|
@@ -86,7 +108,7 @@ function runClaim(instance, opts) {
|
|
|
86
108
|
});
|
|
87
109
|
process.stdout.write(`claimed ${instance} as ${session.id} (${session.source})\n`);
|
|
88
110
|
}
|
|
89
|
-
function runRelease(instance) {
|
|
111
|
+
export function runRelease(instance) {
|
|
90
112
|
const root = process.cwd();
|
|
91
113
|
if (!existsSync(instanceYamlPath(root, instance))) {
|
|
92
114
|
process.stderr.write(`no such instance: ${instance}\n`);
|
|
@@ -105,7 +127,7 @@ function runRelease(instance) {
|
|
|
105
127
|
event: 'release',
|
|
106
128
|
session_id: current.session,
|
|
107
129
|
id_source: current.id_source,
|
|
108
|
-
agent:
|
|
130
|
+
agent: agentForEvent(root),
|
|
109
131
|
timestamp: now,
|
|
110
132
|
});
|
|
111
133
|
process.stdout.write(`released ${instance}\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/commands/claim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/commands/claim.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/commands/cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/commands/cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+DpC,yEAAyE;AACzE,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CASxE;AAsTD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+EnD"}
|
package/dist/commands/cost.js
CHANGED
|
@@ -12,9 +12,8 @@ import { spawn } from 'node:child_process';
|
|
|
12
12
|
import { readFileSync } from 'node:fs';
|
|
13
13
|
import { fileURLToPath } from 'node:url';
|
|
14
14
|
import { dirname, resolve } from 'node:path';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { kiroProvider } from '../cost/providers/kiro.js';
|
|
15
|
+
import { getProvider, allProviders } from '../cost/providers/provider.js';
|
|
16
|
+
import { registerBuiltinProviders } from '../cost/providers/index.js';
|
|
18
17
|
import { recordUsage, lastCaptureError, logCapture } from '../cost/recorder.js';
|
|
19
18
|
import { stashSession } from '../cost/sessions.js';
|
|
20
19
|
import { appendEntry, ledgerPath } from '../cost/ledger.js';
|
|
@@ -24,8 +23,7 @@ import { loadCostConfig, loadClaimTimeoutMinutes } from '../cost/config.js';
|
|
|
24
23
|
import { installClaudeCodeHooks, removeClaudeCodeHooks, claudeCodeHookStatus, } from '../cost/hooks/claude-code.js';
|
|
25
24
|
import { installKiroHooks, removeKiroHooks, kiroHookStatus } from '../cost/hooks/kiro.js';
|
|
26
25
|
import { SESSION_ID_RE } from '../cost/types.js';
|
|
27
|
-
|
|
28
|
-
registerProvider(kiroProvider);
|
|
26
|
+
registerBuiltinProviders();
|
|
29
27
|
function projectRoot() {
|
|
30
28
|
return process.cwd();
|
|
31
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/commands/cost.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/commands/cost.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,10 +13,22 @@
|
|
|
13
13
|
* still fresh across processes (documented limitation for agents that
|
|
14
14
|
* neither stash nor set the env var).
|
|
15
15
|
*/
|
|
16
|
+
import { type AgentMissReason } from '../cost/agent.js';
|
|
16
17
|
export interface SessionIdentity {
|
|
17
18
|
id: string;
|
|
18
19
|
source: 'platform' | 'agent';
|
|
19
20
|
agent: string;
|
|
21
|
+
/** Set when `agent` could not be determined — the caller warns (AC-5). */
|
|
22
|
+
agentMiss: AgentMissReason | null;
|
|
20
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Session identity and platform are resolved independently.
|
|
26
|
+
*
|
|
27
|
+
* The id falls back to a synthetic `agent-<uuid>` whenever the stash cannot
|
|
28
|
+
* name a single session, but the *platform* is often still determinable — from
|
|
29
|
+
* stash agreement or provider detection. Deriving both from the same
|
|
30
|
+
* single-candidate rule is what made every claim record `agent: "unknown"`
|
|
31
|
+
* (cost-claim-attribution/AC-1, AC-4).
|
|
32
|
+
*/
|
|
21
33
|
export declare function resolveSessionIdentity(projectRoot: string): SessionIdentity;
|
|
22
34
|
//# sourceMappingURL=session-id.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-id.d.ts","sourceRoot":"","sources":["../../src/concurrency/session-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"session-id.d.ts","sourceRoot":"","sources":["../../src/concurrency/session-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;CACnC;AAID;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAyB3E"}
|
|
@@ -15,21 +15,41 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { randomUUID } from 'node:crypto';
|
|
17
17
|
import { resolveCurrentSession } from '../cost/sessions.js';
|
|
18
|
+
import { resolveAgent } from '../cost/agent.js';
|
|
18
19
|
let processAgentId = null;
|
|
20
|
+
/**
|
|
21
|
+
* Session identity and platform are resolved independently.
|
|
22
|
+
*
|
|
23
|
+
* The id falls back to a synthetic `agent-<uuid>` whenever the stash cannot
|
|
24
|
+
* name a single session, but the *platform* is often still determinable — from
|
|
25
|
+
* stash agreement or provider detection. Deriving both from the same
|
|
26
|
+
* single-candidate rule is what made every claim record `agent: "unknown"`
|
|
27
|
+
* (cost-claim-attribution/AC-1, AC-4).
|
|
28
|
+
*/
|
|
19
29
|
export function resolveSessionIdentity(projectRoot) {
|
|
30
|
+
const resolved = resolveAgent(projectRoot);
|
|
31
|
+
const platform = { agent: resolved.agent, agentMiss: resolved.reason };
|
|
20
32
|
const envId = process.env.AIDLC_SESSION_ID;
|
|
21
33
|
if (envId && envId.trim() !== '') {
|
|
22
34
|
return {
|
|
23
35
|
id: envId.trim(),
|
|
24
36
|
source: envId.trim().startsWith('agent-') ? 'agent' : 'platform',
|
|
25
|
-
|
|
37
|
+
...platform,
|
|
26
38
|
};
|
|
27
39
|
}
|
|
28
40
|
const active = resolveCurrentSession(projectRoot);
|
|
29
|
-
|
|
30
|
-
|
|
41
|
+
// A resolved stash entry names the platform directly — strongest evidence
|
|
42
|
+
// there is, short of an explicit AIDLC_AGENT.
|
|
43
|
+
if (active) {
|
|
44
|
+
return {
|
|
45
|
+
id: active.session_id,
|
|
46
|
+
source: 'platform',
|
|
47
|
+
agent: resolved.via === 'env' ? resolved.agent : active.agent,
|
|
48
|
+
agentMiss: null,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
31
51
|
if (processAgentId === null)
|
|
32
52
|
processAgentId = `agent-${randomUUID()}`;
|
|
33
|
-
return { id: processAgentId, source: 'agent',
|
|
53
|
+
return { id: processAgentId, source: 'agent', ...platform };
|
|
34
54
|
}
|
|
35
55
|
//# sourceMappingURL=session-id.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-id.js","sourceRoot":"","sources":["../../src/concurrency/session-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-id.js","sourceRoot":"","sources":["../../src/concurrency/session-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAwB,MAAM,kBAAkB,CAAC;AAUtE,IAAI,cAAc,GAAkB,IAAI,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAEvE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC3C,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjC,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE;YAChB,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;YAChE,GAAG,QAAQ;SACZ,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAClD,0EAA0E;IAC1E,8CAA8C;IAC9C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,UAAU;YACrB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;YAC7D,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,KAAK,IAAI;QAAE,cAAc,GAAG,SAAS,UAAU,EAAE,EAAE,CAAC;IACtE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform ("agent") resolution for session events.
|
|
3
|
+
*
|
|
4
|
+
* Every `sessions.ndjson` event carries an `agent` field naming the platform
|
|
5
|
+
* the session ran on. `aidlc cost sync` resolves a CostProvider by that name,
|
|
6
|
+
* so a wrong or absent value costs the session its attribution permanently.
|
|
7
|
+
*
|
|
8
|
+
* The four write sites used to read `process.env.AIDLC_AGENT ?? 'unknown'`
|
|
9
|
+
* directly, and nothing in the framework ever set that variable — so every
|
|
10
|
+
* real claim recorded `unknown` and every session's usage went unattributed
|
|
11
|
+
* (cost-claim-attribution: 8 instances, 484 unattributed entries). Resolution
|
|
12
|
+
* order here, strongest evidence first:
|
|
13
|
+
*
|
|
14
|
+
* 1. AIDLC_AGENT — an explicit declaration by an agent that knows its own
|
|
15
|
+
* platform always wins (AC-3).
|
|
16
|
+
* 2. Stash agreement — the SessionStart stash records the platform directly.
|
|
17
|
+
* When several entries match this repo but all agree on `agent`, that
|
|
18
|
+
* agreement is usable even though the *session id* stays ambiguous (AC-4).
|
|
19
|
+
* Agent resolution and session-id resolution are independent questions.
|
|
20
|
+
* 3. Provider detection — exactly one detected provider names the platform
|
|
21
|
+
* (AC-1). Several or none is genuinely undetermined (AC-5).
|
|
22
|
+
*
|
|
23
|
+
* `unknown` remains a legal value: it means "nobody could tell", not "nobody
|
|
24
|
+
* looked". Resolution is fail-soft throughout — it must never fail a claim
|
|
25
|
+
* (AC-6, NFR-2).
|
|
26
|
+
*/
|
|
27
|
+
/** The value recorded when the platform cannot be determined. */
|
|
28
|
+
export declare const UNKNOWN_AGENT = "unknown";
|
|
29
|
+
/** Why resolution fell back to `unknown` — drives the caller's warning (AC-5). */
|
|
30
|
+
export type AgentMissReason = 'no-provider-detected' | 'multiple-providers-detected' | 'stash-disagreement';
|
|
31
|
+
export interface AgentResolution {
|
|
32
|
+
agent: string;
|
|
33
|
+
/** How the value was determined; `null` when `agent` is UNKNOWN_AGENT. */
|
|
34
|
+
via: 'env' | 'stash' | 'detect' | null;
|
|
35
|
+
/** Set only when `agent` is UNKNOWN_AGENT. */
|
|
36
|
+
reason: AgentMissReason | null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The platform every matching stash entry agrees on, or null when there are
|
|
40
|
+
* none or they disagree (AC-4).
|
|
41
|
+
*/
|
|
42
|
+
export declare function agentFromStash(projectRoot: string): string | null;
|
|
43
|
+
export declare function resolveAgent(projectRoot: string, home?: string): AgentResolution;
|
|
44
|
+
/** Human-readable warning for an unresolved platform (AC-5). */
|
|
45
|
+
export declare function agentMissWarning(reason: AgentMissReason): string;
|
|
46
|
+
/** Test seam: drop the memoized resolution. */
|
|
47
|
+
export declare function resetAgentCache(): void;
|
|
48
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/cost/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AASH,iEAAiE;AACjE,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,kFAAkF;AAClF,MAAM,MAAM,eAAe,GACvB,sBAAsB,GACtB,6BAA6B,GAC7B,oBAAoB,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,GAAG,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IACvC,8CAA8C;IAC9C,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;CAChC;AA0CD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOjE;AAyBD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAKhF;AAqCD,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAShE;AAED,+CAA+C;AAC/C,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform ("agent") resolution for session events.
|
|
3
|
+
*
|
|
4
|
+
* Every `sessions.ndjson` event carries an `agent` field naming the platform
|
|
5
|
+
* the session ran on. `aidlc cost sync` resolves a CostProvider by that name,
|
|
6
|
+
* so a wrong or absent value costs the session its attribution permanently.
|
|
7
|
+
*
|
|
8
|
+
* The four write sites used to read `process.env.AIDLC_AGENT ?? 'unknown'`
|
|
9
|
+
* directly, and nothing in the framework ever set that variable — so every
|
|
10
|
+
* real claim recorded `unknown` and every session's usage went unattributed
|
|
11
|
+
* (cost-claim-attribution: 8 instances, 484 unattributed entries). Resolution
|
|
12
|
+
* order here, strongest evidence first:
|
|
13
|
+
*
|
|
14
|
+
* 1. AIDLC_AGENT — an explicit declaration by an agent that knows its own
|
|
15
|
+
* platform always wins (AC-3).
|
|
16
|
+
* 2. Stash agreement — the SessionStart stash records the platform directly.
|
|
17
|
+
* When several entries match this repo but all agree on `agent`, that
|
|
18
|
+
* agreement is usable even though the *session id* stays ambiguous (AC-4).
|
|
19
|
+
* Agent resolution and session-id resolution are independent questions.
|
|
20
|
+
* 3. Provider detection — exactly one detected provider names the platform
|
|
21
|
+
* (AC-1). Several or none is genuinely undetermined (AC-5).
|
|
22
|
+
*
|
|
23
|
+
* `unknown` remains a legal value: it means "nobody could tell", not "nobody
|
|
24
|
+
* looked". Resolution is fail-soft throughout — it must never fail a claim
|
|
25
|
+
* (AC-6, NFR-2).
|
|
26
|
+
*/
|
|
27
|
+
import { readFileSync, readdirSync, existsSync, realpathSync } from 'node:fs';
|
|
28
|
+
import { join } from 'node:path';
|
|
29
|
+
import { stashDir, repoIdentity } from './sessions.js';
|
|
30
|
+
import { allProviders } from './providers/provider.js';
|
|
31
|
+
import { registerBuiltinProviders } from './providers/index.js';
|
|
32
|
+
/** The value recorded when the platform cannot be determined. */
|
|
33
|
+
export const UNKNOWN_AGENT = 'unknown';
|
|
34
|
+
/**
|
|
35
|
+
* Stash entries matching this repo, by repo identity.
|
|
36
|
+
*
|
|
37
|
+
* Deliberately does not reuse `resolveCurrentSession`: that function answers
|
|
38
|
+
* "which session am I?" and correctly returns null when several match. This
|
|
39
|
+
* one answers "which platform is this repo on?", where several matching
|
|
40
|
+
* entries are still informative if they agree.
|
|
41
|
+
*/
|
|
42
|
+
function matchingStashEntries(projectRoot) {
|
|
43
|
+
const dir = stashDir(projectRoot);
|
|
44
|
+
if (!existsSync(dir))
|
|
45
|
+
return [];
|
|
46
|
+
const here = repoIdentity(projectRoot);
|
|
47
|
+
const hereReal = canonical(projectRoot);
|
|
48
|
+
const matches = [];
|
|
49
|
+
for (const f of readdirSync(dir)) {
|
|
50
|
+
if (!f.endsWith('.json'))
|
|
51
|
+
continue;
|
|
52
|
+
try {
|
|
53
|
+
const entry = JSON.parse(readFileSync(join(dir, f), 'utf8'));
|
|
54
|
+
const theirs = repoIdentity(entry.cwd);
|
|
55
|
+
if (here !== null && theirs !== null && here === theirs)
|
|
56
|
+
matches.push(entry);
|
|
57
|
+
// Outside a git repo, fall back to the directory itself — canonicalized,
|
|
58
|
+
// because a symlinked path (macOS /var → /private/var) makes two spellings
|
|
59
|
+
// of one directory compare unequal as raw strings.
|
|
60
|
+
else if (here === null && canonical(entry.cwd) === hereReal)
|
|
61
|
+
matches.push(entry);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Unreadable entries are ignored; pruneStash removes them.
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return matches;
|
|
68
|
+
}
|
|
69
|
+
/** Resolve symlinks for comparison; unresolvable paths compare as written. */
|
|
70
|
+
function canonical(p) {
|
|
71
|
+
try {
|
|
72
|
+
return realpathSync(p);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return p;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The platform every matching stash entry agrees on, or null when there are
|
|
80
|
+
* none or they disagree (AC-4).
|
|
81
|
+
*/
|
|
82
|
+
export function agentFromStash(projectRoot) {
|
|
83
|
+
const agents = new Set(matchingStashEntries(projectRoot)
|
|
84
|
+
.map((e) => e.agent)
|
|
85
|
+
.filter((a) => typeof a === 'string' && a !== '' && a !== UNKNOWN_AGENT));
|
|
86
|
+
return agents.size === 1 ? [...agents][0] : null;
|
|
87
|
+
}
|
|
88
|
+
/** Providers reporting `detect() === true`. A throwing provider is skipped (NFR-2). */
|
|
89
|
+
function detectedProviders(projectRoot, home) {
|
|
90
|
+
registerBuiltinProviders();
|
|
91
|
+
const names = [];
|
|
92
|
+
for (const p of allProviders()) {
|
|
93
|
+
try {
|
|
94
|
+
if (p.detect({ projectRoot, home }))
|
|
95
|
+
names.push(p.name);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// A provider that cannot answer is not detected.
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return names;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Resolve the platform for a session event. Memoized per process: this runs on
|
|
105
|
+
* every claim/renew/release and `detect()` touches the filesystem (NFR-4).
|
|
106
|
+
*
|
|
107
|
+
* `home` overrides the provider home directory, mirroring ProviderEnv — without
|
|
108
|
+
* it, detection reads the developer's real ~/.claude and no test could pin it.
|
|
109
|
+
*/
|
|
110
|
+
let cached = null;
|
|
111
|
+
export function resolveAgent(projectRoot, home) {
|
|
112
|
+
if (cached !== null && cached.root === projectRoot && cached.home === home)
|
|
113
|
+
return cached.result;
|
|
114
|
+
const result = computeAgent(projectRoot, home);
|
|
115
|
+
cached = { root: projectRoot, home, result };
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
function computeAgent(projectRoot, home) {
|
|
119
|
+
const declared = process.env.AIDLC_AGENT;
|
|
120
|
+
if (declared !== undefined && declared.trim() !== '') {
|
|
121
|
+
return { agent: declared.trim(), via: 'env', reason: null };
|
|
122
|
+
}
|
|
123
|
+
let stashed = null;
|
|
124
|
+
let stashCount = 0;
|
|
125
|
+
try {
|
|
126
|
+
stashed = agentFromStash(projectRoot);
|
|
127
|
+
stashCount = matchingStashEntries(projectRoot).length;
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
stashed = null;
|
|
131
|
+
}
|
|
132
|
+
if (stashed !== null)
|
|
133
|
+
return { agent: stashed, via: 'stash', reason: null };
|
|
134
|
+
let detected = [];
|
|
135
|
+
try {
|
|
136
|
+
detected = detectedProviders(projectRoot, home);
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
detected = [];
|
|
140
|
+
}
|
|
141
|
+
if (detected.length === 1)
|
|
142
|
+
return { agent: detected[0], via: 'detect', reason: null };
|
|
143
|
+
// Nothing conclusive. Report the most specific reason available: stash
|
|
144
|
+
// entries that disagreed are a sharper signal than the provider count.
|
|
145
|
+
const reason = stashCount > 1
|
|
146
|
+
? 'stash-disagreement'
|
|
147
|
+
: detected.length > 1
|
|
148
|
+
? 'multiple-providers-detected'
|
|
149
|
+
: 'no-provider-detected';
|
|
150
|
+
return { agent: UNKNOWN_AGENT, via: null, reason };
|
|
151
|
+
}
|
|
152
|
+
/** Human-readable warning for an unresolved platform (AC-5). */
|
|
153
|
+
export function agentMissWarning(reason) {
|
|
154
|
+
switch (reason) {
|
|
155
|
+
case 'multiple-providers-detected':
|
|
156
|
+
return 'could not determine the platform (several detected) — usage will not attribute until `aidlc cost sync` runs; set AIDLC_AGENT to declare it';
|
|
157
|
+
case 'stash-disagreement':
|
|
158
|
+
return 'could not determine the platform (active sessions disagree) — usage will not attribute until `aidlc cost sync` runs; set AIDLC_AGENT to declare it';
|
|
159
|
+
case 'no-provider-detected':
|
|
160
|
+
return 'no cost provider detected — usage will not be attributed to this instance';
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/** Test seam: drop the memoized resolution. */
|
|
164
|
+
export function resetAgentCache() {
|
|
165
|
+
cached = null;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/cost/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in provider registration.
|
|
3
|
+
*
|
|
4
|
+
* Registration used to be a bare module-level side effect in
|
|
5
|
+
* commands/cost.ts, so any code path that did not import that module saw an
|
|
6
|
+
* empty registry. The claim path now resolves the platform from provider
|
|
7
|
+
* detection (cost-claim-attribution/AC-1), so it needs the registry populated
|
|
8
|
+
* too — an explicit, idempotent call is what makes that dependency visible
|
|
9
|
+
* instead of relying on import order.
|
|
10
|
+
*/
|
|
11
|
+
/** Register the bundled providers. Idempotent; safe to call from any entry point. */
|
|
12
|
+
export declare function registerBuiltinProviders(): void;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cost/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,qFAAqF;AACrF,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in provider registration.
|
|
3
|
+
*
|
|
4
|
+
* Registration used to be a bare module-level side effect in
|
|
5
|
+
* commands/cost.ts, so any code path that did not import that module saw an
|
|
6
|
+
* empty registry. The claim path now resolves the platform from provider
|
|
7
|
+
* detection (cost-claim-attribution/AC-1), so it needs the registry populated
|
|
8
|
+
* too — an explicit, idempotent call is what makes that dependency visible
|
|
9
|
+
* instead of relying on import order.
|
|
10
|
+
*/
|
|
11
|
+
import { registerProvider } from './provider.js';
|
|
12
|
+
import { claudeCodeProvider } from './claude-code.js';
|
|
13
|
+
import { kiroProvider } from './kiro.js';
|
|
14
|
+
let registered = false;
|
|
15
|
+
/** Register the bundled providers. Idempotent; safe to call from any entry point. */
|
|
16
|
+
export function registerBuiltinProviders() {
|
|
17
|
+
if (registered)
|
|
18
|
+
return;
|
|
19
|
+
registered = true;
|
|
20
|
+
registerProvider(claudeCodeProvider);
|
|
21
|
+
registerProvider(kiroProvider);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cost/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,qFAAqF;AACrF,MAAM,UAAU,wBAAwB;IACtC,IAAI,UAAU;QAAE,OAAO;IACvB,UAAU,GAAG,IAAI,CAAC;IAClB,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACrC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACjC,CAAC"}
|
package/dist/cost/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/cost/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/cost/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,EAAgD,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAOzG,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAkBD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,mBAAmB,EAAE,MAAM,EAC3B,GAAG,GAAE,WAA6B,GACjC,OAAO,CAAC,UAAU,CAAC,CAyJrB"}
|
package/dist/cost/sync.js
CHANGED
|
@@ -14,7 +14,9 @@ import { existsSync, readdirSync, statSync } from 'node:fs';
|
|
|
14
14
|
import { join } from 'node:path';
|
|
15
15
|
import { readEntries, appendEntry, ledgerPath, unattributedPath } from './ledger.js';
|
|
16
16
|
import { sessionsPath, readSessionEvents, resolveIntervals } from './sessions.js';
|
|
17
|
-
import { getProvider } from './providers/provider.js';
|
|
17
|
+
import { getProvider, allProviders } from './providers/provider.js';
|
|
18
|
+
import { registerBuiltinProviders } from './providers/index.js';
|
|
19
|
+
import { UNKNOWN_AGENT } from './agent.js';
|
|
18
20
|
import { transcriptRoot } from './providers/claude-code.js';
|
|
19
21
|
import { phaseWindows } from './recorder.js';
|
|
20
22
|
import { logCapture } from './recorder.js';
|
|
@@ -51,57 +53,90 @@ export async function syncCosts(projectRoot, instanceFilter, claimTimeoutMinutes
|
|
|
51
53
|
sessions.set(iv.session_id, { id_source: iv.id_source, agent: iv.agent });
|
|
52
54
|
}
|
|
53
55
|
}
|
|
56
|
+
// Resolve each session to its record file, then invert to transcript → the
|
|
57
|
+
// sessions that resolved to it.
|
|
58
|
+
//
|
|
59
|
+
// Iterating sessions and extracting per session double-counts: interval
|
|
60
|
+
// matching is mtime-based, so one transcript matches several *different*
|
|
61
|
+
// agent-id sessions (concurrent instances in one checkout do this routinely),
|
|
62
|
+
// and a segment inside two overlapping claim windows was written once per
|
|
63
|
+
// session under each session's own id. The coverage dedup is keyed on
|
|
64
|
+
// session_id, so it could not see the collision — measured at 950 transcript
|
|
65
|
+
// entries counted twice across app-operational-skills and update-spring-clean.
|
|
66
|
+
//
|
|
67
|
+
// Extracting per *transcript* makes each usage segment a single decision:
|
|
68
|
+
// exactly one containing claim window attributes it, several is genuinely
|
|
69
|
+
// ambiguous and goes to unattributed.
|
|
70
|
+
const holders = new Map();
|
|
54
71
|
for (const [sessionId, meta] of sessions) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
72
|
+
// A session recorded before the claim path could name its platform carries
|
|
73
|
+
// agent "unknown" (cost-claim-attribution). sessions.ndjson is append-only,
|
|
74
|
+
// so recovery resolves a provider from the detected set at sync time rather
|
|
75
|
+
// than rewriting history (AC-7). Every other agent value resolves by name.
|
|
76
|
+
const candidateProviders = meta.agent === UNKNOWN_AGENT ? detectedProviders(env) : compact([getProvider(meta.agent)]);
|
|
77
|
+
if (candidateProviders.length === 0) {
|
|
78
|
+
report.skipped.push(meta.agent === UNKNOWN_AGENT
|
|
79
|
+
? `${sessionId}: agent "unknown" and no provider detected locally — cannot recover`
|
|
80
|
+
: `${sessionId}: no provider for agent "${meta.agent}"`);
|
|
58
81
|
continue;
|
|
59
82
|
}
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
83
|
+
// With several candidate providers, a session that resolves under more than
|
|
84
|
+
// one is ambiguous — recovery never guesses (AC-8).
|
|
85
|
+
const attempts = candidateProviders.map((provider) => ({
|
|
86
|
+
provider,
|
|
87
|
+
result: locateRecord(provider, sessionId, meta.id_source, perInstance, env),
|
|
88
|
+
}));
|
|
89
|
+
const located = attempts.filter((a) => a.result.path !== null);
|
|
90
|
+
if (located.length === 0) {
|
|
91
|
+
// Report the first candidate's reason: with one provider it is precise,
|
|
92
|
+
// and with several the distinction is not actionable anyway (AC-15).
|
|
93
|
+
const first = attempts[0];
|
|
94
|
+
report.skipped.push(`${sessionId}: ${first.result.reason ?? `no local ${first.provider.name} records found`}`);
|
|
95
|
+
continue;
|
|
68
96
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
if (candidates.length > 1) {
|
|
76
|
-
report.skipped.push(`${sessionId}: agent-id session, ${candidates.length} candidate records — ambiguous, not guessing`);
|
|
77
|
-
continue;
|
|
78
|
-
}
|
|
79
|
-
recordPath = candidates[0];
|
|
97
|
+
if (located.length > 1) {
|
|
98
|
+
report.skipped.push(`${sessionId}: agent "unknown" resolves under ${located.length} providers ` +
|
|
99
|
+
`(${located.map((l) => l.provider.name).join(', ')}) — ambiguous, not guessing`);
|
|
100
|
+
continue;
|
|
80
101
|
}
|
|
102
|
+
const path = located[0].result.path;
|
|
103
|
+
holders.set(path, [...(holders.get(path) ?? []), { sessionId, provider: located[0].provider }]);
|
|
104
|
+
}
|
|
105
|
+
for (const [recordPath, claimants] of holders) {
|
|
106
|
+
const provider = claimants[0].provider;
|
|
81
107
|
let segments;
|
|
82
108
|
try {
|
|
83
109
|
segments = await provider.extract({ provider: provider.name, path: recordPath }, null, env);
|
|
84
110
|
}
|
|
85
111
|
catch {
|
|
86
112
|
logCapture(projectRoot, 'sync-extract', 'extract-failed');
|
|
87
|
-
|
|
113
|
+
for (const c of claimants)
|
|
114
|
+
report.skipped.push(`${c.sessionId}: extraction failed`);
|
|
88
115
|
continue;
|
|
89
116
|
}
|
|
90
117
|
for (const seg of segments) {
|
|
91
118
|
const at = Date.parse(seg.at);
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
119
|
+
// Every (session, instance) whose claim window contains this segment.
|
|
120
|
+
const targets = [];
|
|
121
|
+
for (const { sessionId } of claimants) {
|
|
122
|
+
for (const { instance, intervals } of perInstance) {
|
|
123
|
+
const mine = intervals.filter((iv) => iv.session_id === sessionId);
|
|
124
|
+
if (mine.some((iv) => at >= Date.parse(iv.from) && at <= Date.parse(iv.to))) {
|
|
125
|
+
targets.push({ sessionId, instance });
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
100
128
|
}
|
|
101
129
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
130
|
+
// One claimant → attribute. Several → the segment cannot be assigned
|
|
131
|
+
// without guessing which instance was really doing the work, so it stays
|
|
132
|
+
// unattributed under the first claimant's id purely for provenance.
|
|
133
|
+
const attributed = targets.length === 1 ? targets[0] : null;
|
|
134
|
+
const sessionId = attributed?.sessionId ?? claimants[0].sessionId;
|
|
135
|
+
const instance = attributed?.instance ?? null;
|
|
136
|
+
const phase = instance !== null
|
|
137
|
+
? (phaseWindows(projectRoot, instance, 'implementation').find((w) => at >= w.from && at < w.to)?.phase ?? null)
|
|
138
|
+
: null;
|
|
139
|
+
const targetPath = instance !== null ? ledgerPath(projectRoot, instance) : unattributedPath(projectRoot);
|
|
105
140
|
const existing = readEntries(targetPath);
|
|
106
141
|
// Skip segments already covered at reconciled-or-better fidelity.
|
|
107
142
|
if (overlapsAny(at, coveredWindows(existing, sessionId, 2)))
|
|
@@ -109,7 +144,7 @@ export async function syncCosts(projectRoot, instanceFilter, claimTimeoutMinutes
|
|
|
109
144
|
const entry = {
|
|
110
145
|
timestamp: new Date().toISOString(),
|
|
111
146
|
session_id: sessionId,
|
|
112
|
-
phase
|
|
147
|
+
phase,
|
|
113
148
|
provider: provider.name,
|
|
114
149
|
fidelity: 'reconciled',
|
|
115
150
|
coverage: { from: seg.at, to: seg.at },
|
|
@@ -118,7 +153,7 @@ export async function syncCosts(projectRoot, instanceFilter, claimTimeoutMinutes
|
|
|
118
153
|
};
|
|
119
154
|
try {
|
|
120
155
|
appendEntry(targetPath, entry);
|
|
121
|
-
if (
|
|
156
|
+
if (instance !== null)
|
|
122
157
|
report.attributed++;
|
|
123
158
|
else
|
|
124
159
|
report.unattributed++;
|
|
@@ -130,6 +165,48 @@ export async function syncCosts(projectRoot, instanceFilter, claimTimeoutMinutes
|
|
|
130
165
|
}
|
|
131
166
|
return report;
|
|
132
167
|
}
|
|
168
|
+
function compact(xs) {
|
|
169
|
+
return xs.filter((x) => x !== undefined);
|
|
170
|
+
}
|
|
171
|
+
/** Providers reporting `detect() === true`; a throwing provider is skipped. */
|
|
172
|
+
function detectedProviders(env) {
|
|
173
|
+
registerBuiltinProviders();
|
|
174
|
+
return allProviders().filter((p) => {
|
|
175
|
+
try {
|
|
176
|
+
return p.detect(env);
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Locate one provider's record file for a session — by id equality for
|
|
185
|
+
* platform-id sessions, by interval overlap for agent-id ones. Ambiguity
|
|
186
|
+
* within a single provider is still a refusal to guess.
|
|
187
|
+
*/
|
|
188
|
+
function locateRecord(provider, sessionId, idSource, perInstance, env) {
|
|
189
|
+
if (idSource === 'platform') {
|
|
190
|
+
const path = locateById(provider.name, sessionId, env);
|
|
191
|
+
return path !== null
|
|
192
|
+
? { path, reason: null }
|
|
193
|
+
: { path: null, reason: `no local ${provider.name} records found` };
|
|
194
|
+
}
|
|
195
|
+
const candidates = locateByInterval(provider.name, sessionId, perInstance, env);
|
|
196
|
+
if (candidates.length === 0) {
|
|
197
|
+
return {
|
|
198
|
+
path: null,
|
|
199
|
+
reason: `agent-id session, no overlapping ${provider.name} records`,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
if (candidates.length > 1) {
|
|
203
|
+
return {
|
|
204
|
+
path: null,
|
|
205
|
+
reason: `agent-id session, ${candidates.length} candidate records — ambiguous, not guessing`,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
return { path: candidates[0], reason: null };
|
|
209
|
+
}
|
|
133
210
|
/** Locate a platform record file by session id equality. */
|
|
134
211
|
function locateById(providerName, sessionId, env) {
|
|
135
212
|
if (providerName === 'claude-code') {
|
package/dist/cost/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/cost/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/cost/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAY7C,eAAO,MAAM,UAAU,EAAE,SAAS,EAWjC,CAAC"}
|
|
@@ -14,6 +14,7 @@ import { pruneSessionStash } from './prune-session-stash.js';
|
|
|
14
14
|
import { pruneCostLocks } from './prune-cost-locks.js';
|
|
15
15
|
import { pruneCaptureLogMigration } from './prune-capture-log.js';
|
|
16
16
|
import { pruneRegistry } from './prune-registry.js';
|
|
17
|
+
import { unknownAgentClaims } from './unknown-agent-claims.js';
|
|
17
18
|
export const MIGRATIONS = [
|
|
18
19
|
costGitignore,
|
|
19
20
|
knowledgeGitignore,
|
|
@@ -24,5 +25,6 @@ export const MIGRATIONS = [
|
|
|
24
25
|
pruneCostLocks,
|
|
25
26
|
pruneCaptureLogMigration,
|
|
26
27
|
pruneRegistry,
|
|
28
|
+
unknownAgentClaims,
|
|
27
29
|
];
|
|
28
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,aAAa;IACb,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,wBAAwB;IACxB,aAAa;IACb,kBAAkB;CACnB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* unknown-agent-claims migration (cost-claim-attribution/AC-14): report
|
|
3
|
+
* instances whose sessions.ndjson holds claim events with agent "unknown".
|
|
4
|
+
*
|
|
5
|
+
* Report-only. There is nothing to apply: sessions.ndjson is append-only, so
|
|
6
|
+
* the repair is `aidlc cost sync`, which the description points at. The
|
|
7
|
+
* finding is `safe` tier because a safe migration that never changes anything
|
|
8
|
+
* is exactly a diagnostic — it can neither prompt nor block.
|
|
9
|
+
*
|
|
10
|
+
* Self-clearing (the cost-capture-noise lesson: a suppression guard needs its
|
|
11
|
+
* counterpart verified to exist). An instance stops being reported once its
|
|
12
|
+
* ledger holds an entry for the affected session, so a successful recovery
|
|
13
|
+
* silences it without anyone editing state. An instance whose transcripts are
|
|
14
|
+
* gone would otherwise report forever — that case is named in the description
|
|
15
|
+
* rather than hidden, because silently dropping it is what let $0.00 sit
|
|
16
|
+
* unnoticed for weeks in the first place.
|
|
17
|
+
*/
|
|
18
|
+
import type { Migration } from '../types.js';
|
|
19
|
+
/**
|
|
20
|
+
* Instances holding claim events with an unresolved platform and no ledger
|
|
21
|
+
* coverage for the affected sessions. Read-only half, exported for reuse.
|
|
22
|
+
*/
|
|
23
|
+
export declare function unknownAgentInstances(projectRoot: string): string[];
|
|
24
|
+
export declare const unknownAgentClaims: Migration;
|
|
25
|
+
//# sourceMappingURL=unknown-agent-claims.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unknown-agent-claims.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/unknown-agent-claims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBnE;AAED,eAAO,MAAM,kBAAkB,EAAE,SAmChC,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* unknown-agent-claims migration (cost-claim-attribution/AC-14): report
|
|
3
|
+
* instances whose sessions.ndjson holds claim events with agent "unknown".
|
|
4
|
+
*
|
|
5
|
+
* Report-only. There is nothing to apply: sessions.ndjson is append-only, so
|
|
6
|
+
* the repair is `aidlc cost sync`, which the description points at. The
|
|
7
|
+
* finding is `safe` tier because a safe migration that never changes anything
|
|
8
|
+
* is exactly a diagnostic — it can neither prompt nor block.
|
|
9
|
+
*
|
|
10
|
+
* Self-clearing (the cost-capture-noise lesson: a suppression guard needs its
|
|
11
|
+
* counterpart verified to exist). An instance stops being reported once its
|
|
12
|
+
* ledger holds an entry for the affected session, so a successful recovery
|
|
13
|
+
* silences it without anyone editing state. An instance whose transcripts are
|
|
14
|
+
* gone would otherwise report forever — that case is named in the description
|
|
15
|
+
* rather than hidden, because silently dropping it is what let $0.00 sit
|
|
16
|
+
* unnoticed for weeks in the first place.
|
|
17
|
+
*/
|
|
18
|
+
import { existsSync, readdirSync } from 'node:fs';
|
|
19
|
+
import { join } from 'node:path';
|
|
20
|
+
import { readSessionEvents, sessionsPath } from '../../cost/sessions.js';
|
|
21
|
+
import { readEntries, ledgerPath } from '../../cost/ledger.js';
|
|
22
|
+
import { UNKNOWN_AGENT } from '../../cost/agent.js';
|
|
23
|
+
/**
|
|
24
|
+
* Instances holding claim events with an unresolved platform and no ledger
|
|
25
|
+
* coverage for the affected sessions. Read-only half, exported for reuse.
|
|
26
|
+
*/
|
|
27
|
+
export function unknownAgentInstances(projectRoot) {
|
|
28
|
+
const stateDir = join(projectRoot, '.aidlc', 'state');
|
|
29
|
+
if (!existsSync(stateDir))
|
|
30
|
+
return [];
|
|
31
|
+
const affected = [];
|
|
32
|
+
for (const d of readdirSync(stateDir, { withFileTypes: true })) {
|
|
33
|
+
if (!d.isDirectory())
|
|
34
|
+
continue;
|
|
35
|
+
const events = readSessionEvents(sessionsPath(projectRoot, d.name));
|
|
36
|
+
const stranded = new Set(events.filter((e) => e.agent === UNKNOWN_AGENT).map((e) => e.session_id));
|
|
37
|
+
if (stranded.size === 0)
|
|
38
|
+
continue;
|
|
39
|
+
// Already recovered? Any ledger entry for one of these sessions means sync
|
|
40
|
+
// has attributed it and the finding has served its purpose.
|
|
41
|
+
const covered = new Set(readEntries(ledgerPath(projectRoot, d.name)).map((e) => e.session_id));
|
|
42
|
+
if ([...stranded].some((s) => !covered.has(s)))
|
|
43
|
+
affected.push(d.name);
|
|
44
|
+
}
|
|
45
|
+
return affected;
|
|
46
|
+
}
|
|
47
|
+
export const unknownAgentClaims = {
|
|
48
|
+
id: 'unknown-agent-claims',
|
|
49
|
+
tier: 'safe',
|
|
50
|
+
check(ctx) {
|
|
51
|
+
const affected = unknownAgentInstances(ctx.projectRoot);
|
|
52
|
+
if (affected.length === 0)
|
|
53
|
+
return { applicable: true, pending: false };
|
|
54
|
+
return {
|
|
55
|
+
applicable: true,
|
|
56
|
+
pending: true,
|
|
57
|
+
description: `${affected.length} instance${affected.length === 1 ? '' : 's'} ` +
|
|
58
|
+
`${affected.length === 1 ? 'has' : 'have'} claims with an unresolved platform ` +
|
|
59
|
+
`(${affected.join(', ')}) — run \`aidlc cost sync\` to attribute their usage`,
|
|
60
|
+
};
|
|
61
|
+
},
|
|
62
|
+
apply(ctx) {
|
|
63
|
+
// Report-only: the repair is `aidlc cost sync`, deliberately not run here —
|
|
64
|
+
// doctor must not rewrite ledgers as a side effect of a diagnostic.
|
|
65
|
+
//
|
|
66
|
+
// `changed: true` is what makes the finding visible: the runner maps
|
|
67
|
+
// changed:false to status 'clean', and commands/doctor.ts filters clean
|
|
68
|
+
// outcomes out of its report entirely. A diagnostic that reported
|
|
69
|
+
// changed:false would be silently swallowed — the same class of bug as the
|
|
70
|
+
// dead `error_code: 'ok'` clearing path in cost-capture-noise. The
|
|
71
|
+
// rendered line is `unknown-agent-claims: <summary>`, which reads as the
|
|
72
|
+
// finding it is; nothing prints the word "applied".
|
|
73
|
+
const affected = unknownAgentInstances(ctx.projectRoot);
|
|
74
|
+
return {
|
|
75
|
+
changed: affected.length > 0,
|
|
76
|
+
summary: `${affected.length} instance${affected.length === 1 ? '' : 's'} with ` +
|
|
77
|
+
`unresolved-platform claims (${affected.join(', ')}) — ` +
|
|
78
|
+
'run `aidlc cost sync` to attribute their usage',
|
|
79
|
+
};
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=unknown-agent-claims.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unknown-agent-claims.js","sourceRoot":"","sources":["../../../src/doctor/migrations/unknown-agent-claims.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rasensio/aidlc",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.1",
|
|
4
4
|
"description": "AI Development Lifecycle Framework — structured lifecycle guidance for AI coding agents across platforms",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cli.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"commander": "15.0.0",
|
|
25
25
|
"picomatch": "4.0.5",
|
|
26
26
|
"yaml": "2.9.0",
|
|
27
|
-
"@rasensio/aidlc-content": "1.9.
|
|
27
|
+
"@rasensio/aidlc-content": "1.9.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "22.15.32",
|