@lannguyensi/harness 0.35.0 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/README.md +14 -7
- package/dist/cli/approve/branch-protection.js +16 -29
- package/dist/cli/approve/branch-protection.js.map +1 -1
- package/dist/cli/approve/risk.js +15 -33
- package/dist/cli/approve/risk.js.map +1 -1
- package/dist/cli/approve/understanding.js +39 -51
- package/dist/cli/approve/understanding.js.map +1 -1
- package/dist/cli/doctor/format.js +11 -2
- package/dist/cli/doctor/format.js.map +1 -1
- package/dist/cli/doctor/index.js +9 -1
- package/dist/cli/doctor/index.js.map +1 -1
- package/dist/cli/doctor/rogue-ledger.d.ts +28 -0
- package/dist/cli/doctor/rogue-ledger.js +47 -0
- package/dist/cli/doctor/rogue-ledger.js.map +1 -1
- package/dist/cli/doctor/types.d.ts +2 -0
- package/dist/cli/doctor/types.js.map +1 -1
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.js +34 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/composer.js +20 -0
- package/dist/cli/init/composer.js.map +1 -1
- package/dist/cli/init/dependencies.js +14 -0
- package/dist/cli/init/dependencies.js.map +1 -1
- package/dist/cli/init/interactive.d.ts +13 -0
- package/dist/cli/init/interactive.js +142 -1
- package/dist/cli/init/interactive.js.map +1 -1
- package/dist/cli/init/templates.d.ts +1 -1
- package/dist/cli/init/templates.js +1 -0
- package/dist/cli/init/templates.js.map +1 -1
- package/dist/cli/pack/hook-codex-pre-tool-use.js +2 -2
- package/dist/cli/pack/hook-codex-pre-tool-use.js.map +1 -1
- package/dist/cli/pack/hook-pre-tool-use.js +2 -2
- package/dist/cli/pack/hook-pre-tool-use.js.map +1 -1
- package/dist/cli/pack/hook-runtime-reality.d.ts +11 -0
- package/dist/cli/pack/hook-runtime-reality.js +20 -0
- package/dist/cli/pack/hook-runtime-reality.js.map +1 -1
- package/dist/cli/pack/hook-solution-acceptance.js +5 -5
- package/dist/cli/pack/hook-solution-acceptance.js.map +1 -1
- package/dist/cli/policy/intercept.js +1 -0
- package/dist/cli/policy/intercept.js.map +1 -1
- package/dist/cli/session-export/transcript.js +2 -0
- package/dist/cli/session-export/transcript.js.map +1 -1
- package/dist/cli/validate/checks.d.ts +1 -0
- package/dist/cli/validate/checks.js +7 -4
- package/dist/cli/validate/checks.js.map +1 -1
- package/dist/policy-packs/builtin/solution-acceptance-runtime.js +10 -0
- package/dist/policy-packs/builtin/solution-acceptance-runtime.js.map +1 -1
- package/dist/policy-packs/builtin/solution-acceptance.js +11 -0
- package/dist/policy-packs/builtin/solution-acceptance.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.js +1 -16
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.js.map +1 -1
- package/dist/runtime/intercept.d.ts +9 -0
- package/dist/runtime/intercept.js +17 -3
- package/dist/runtime/intercept.js.map +1 -1
- package/dist/runtime/read-only-bash.d.ts +20 -0
- package/dist/runtime/read-only-bash.js +180 -14
- package/dist/runtime/read-only-bash.js.map +1 -1
- package/dist/runtime/reject-malformed-session-id.d.ts +8 -0
- package/dist/runtime/reject-malformed-session-id.js +16 -0
- package/dist/runtime/reject-malformed-session-id.js.map +1 -0
- package/dist/runtime/session-id.d.ts +63 -0
- package/dist/runtime/session-id.js +53 -0
- package/dist/runtime/session-id.js.map +1 -1
- package/package.json +1 -1
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
import * as fs from "node:fs";
|
|
34
34
|
import * as os from "node:os";
|
|
35
35
|
import * as path from "node:path";
|
|
36
|
+
import { readPendingApproval } from "./pending-approval.js";
|
|
36
37
|
const FALLBACK = "default";
|
|
37
38
|
/**
|
|
38
39
|
* Resolve the active grounding session id (WRITE path).
|
|
@@ -137,4 +138,56 @@ export function resolveReadSessionId(explicit, opts = {}) {
|
|
|
137
138
|
return discovered;
|
|
138
139
|
return FALLBACK;
|
|
139
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Shared session-id resolver for the `harness approve` verbs.
|
|
143
|
+
*
|
|
144
|
+
* Precedence:
|
|
145
|
+
* 1. explicit --session flag
|
|
146
|
+
* 2. $CLAUDE_CODE_SESSION_ID (the var Claude Code exports into the agent shell)
|
|
147
|
+
* 3. $CLAUDE_SESSION_ID (legacy / docs name; kept for older operator recipes)
|
|
148
|
+
* 4. $CODEX_SESSION_ID (set inside a live Codex session)
|
|
149
|
+
* 5. .pending-approval staging file (written by the gate hook or preflight)
|
|
150
|
+
* 6. newestReportFallback() result -- only understanding.ts uses this tier
|
|
151
|
+
*
|
|
152
|
+
* Returns `{ sessionId: "" }` when no tier resolves. The caller is
|
|
153
|
+
* responsible for throwing a verb-specific HarnessExitError in that case.
|
|
154
|
+
*/
|
|
155
|
+
export function resolveApprovalSessionId(opts) {
|
|
156
|
+
const readPending = opts.readPending ?? readPendingApproval;
|
|
157
|
+
if (typeof opts.session === "string" && opts.session.length > 0) {
|
|
158
|
+
return { sessionId: opts.session, sessionSource: "flag" };
|
|
159
|
+
}
|
|
160
|
+
if (typeof process.env.CLAUDE_CODE_SESSION_ID === "string" &&
|
|
161
|
+
process.env.CLAUDE_CODE_SESSION_ID.length > 0) {
|
|
162
|
+
return {
|
|
163
|
+
sessionId: process.env.CLAUDE_CODE_SESSION_ID,
|
|
164
|
+
sessionSource: "env-claude-code",
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
if (typeof process.env.CLAUDE_SESSION_ID === "string" &&
|
|
168
|
+
process.env.CLAUDE_SESSION_ID.length > 0) {
|
|
169
|
+
return { sessionId: process.env.CLAUDE_SESSION_ID, sessionSource: "env-claude" };
|
|
170
|
+
}
|
|
171
|
+
if (typeof process.env.CODEX_SESSION_ID === "string" &&
|
|
172
|
+
process.env.CODEX_SESSION_ID.length > 0) {
|
|
173
|
+
return { sessionId: process.env.CODEX_SESSION_ID, sessionSource: "env-codex" };
|
|
174
|
+
}
|
|
175
|
+
const staged = readPending(opts.generatedDir);
|
|
176
|
+
if (staged !== null) {
|
|
177
|
+
return { sessionId: staged, sessionSource: "pending-approval" };
|
|
178
|
+
}
|
|
179
|
+
if (opts.newestReportFallback !== undefined) {
|
|
180
|
+
const newest = opts.newestReportFallback();
|
|
181
|
+
if (newest !== null) {
|
|
182
|
+
return {
|
|
183
|
+
sessionId: newest.sessionId,
|
|
184
|
+
sessionSource: "newest-report",
|
|
185
|
+
newestReportPath: newest.filePath,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// Nothing resolved. Callers check sessionId === "" and throw their own
|
|
190
|
+
// verb-specific error messages.
|
|
191
|
+
return { sessionId: "", sessionSource: "flag" };
|
|
192
|
+
}
|
|
140
193
|
//# sourceMappingURL=session-id.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-id.js","sourceRoot":"","sources":["../../src/runtime/session-id.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,uEAAuE;AACvE,iEAAiE;AACjE,qEAAqE;AACrE,8DAA8D;AAC9D,wEAAwE;AACxE,iEAAiE;AACjE,oEAAoE;AACpE,aAAa;AACb,EAAE;AACF,uEAAuE;AACvE,mEAAmE;AACnE,sBAAsB;AACtB,yDAAyD;AACzD,4EAA4E;AAC5E,kDAAkD;AAClD,2BAA2B;AAC3B,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,uEAAuE;AACvE,wEAAwE;AACxE,mEAAmE;AACnE,sEAAsE;AACtE,qEAAqE;AACrE,qEAAqE;AACrE,sCAAsC;AACtC,EAAE;AACF,4EAA4E;AAC5E,+DAA+D;AAC/D,uEAAuE;AAEvE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"session-id.js","sourceRoot":"","sources":["../../src/runtime/session-id.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lannguyensi/harness",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.37.0",
|
|
4
4
|
"description": "Declarative control plane for agent harnesses — one YAML for grounding, tools, memory, and hooks.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/LanNguyenSi/harness",
|