@lannguyensi/harness 0.52.0 → 0.54.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.
Files changed (91) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/dist/cli/delegate/index.d.ts +15 -2
  3. package/dist/cli/delegate/index.js +128 -4
  4. package/dist/cli/delegate/index.js.map +1 -1
  5. package/dist/cli/doctor/bypass-without-auto-approve.d.ts +38 -0
  6. package/dist/cli/doctor/bypass-without-auto-approve.js +95 -0
  7. package/dist/cli/doctor/bypass-without-auto-approve.js.map +1 -0
  8. package/dist/cli/doctor/format.js +7 -0
  9. package/dist/cli/doctor/format.js.map +1 -1
  10. package/dist/cli/doctor/index.js +17 -0
  11. package/dist/cli/doctor/index.js.map +1 -1
  12. package/dist/cli/doctor/types.d.ts +11 -0
  13. package/dist/cli/doctor/types.js.map +1 -1
  14. package/dist/cli/doctor/ug-auto-approvals.js +18 -43
  15. package/dist/cli/doctor/ug-auto-approvals.js.map +1 -1
  16. package/dist/cli/dry-run.js +32 -1
  17. package/dist/cli/dry-run.js.map +1 -1
  18. package/dist/cli/gc/index.d.ts +13 -2
  19. package/dist/cli/gc/index.js +203 -1
  20. package/dist/cli/gc/index.js.map +1 -1
  21. package/dist/cli/index.js +57 -11
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/cli/init/composer.js +9 -0
  24. package/dist/cli/init/composer.js.map +1 -1
  25. package/dist/cli/init/profiles.d.ts +2 -2
  26. package/dist/cli/init/profiles.js +100 -8
  27. package/dist/cli/init/profiles.js.map +1 -1
  28. package/dist/cli/init/templates.d.ts +1 -1
  29. package/dist/cli/init/templates.js +174 -3
  30. package/dist/cli/init/templates.js.map +1 -1
  31. package/dist/cli/pack/hook-pre-tool-use.js +219 -115
  32. package/dist/cli/pack/hook-pre-tool-use.js.map +1 -1
  33. package/dist/cli/pack/index.d.ts +1 -0
  34. package/dist/cli/pack/index.js +1 -0
  35. package/dist/cli/pack/index.js.map +1 -1
  36. package/dist/cli/pack/upgrade.d.ts +32 -0
  37. package/dist/cli/pack/upgrade.js +273 -0
  38. package/dist/cli/pack/upgrade.js.map +1 -0
  39. package/dist/cli/record/index.d.ts +8 -0
  40. package/dist/cli/record/index.js +55 -7
  41. package/dist/cli/record/index.js.map +1 -1
  42. package/dist/cli/validate/checks.js +61 -9
  43. package/dist/cli/validate/checks.js.map +1 -1
  44. package/dist/io/extract.d.ts +29 -0
  45. package/dist/io/extract.js +36 -0
  46. package/dist/io/extract.js.map +1 -1
  47. package/dist/io/read-json-dir-entries.d.ts +36 -0
  48. package/dist/io/read-json-dir-entries.js +38 -0
  49. package/dist/io/read-json-dir-entries.js.map +1 -0
  50. package/dist/policies/index.d.ts +1 -1
  51. package/dist/policies/index.js +1 -1
  52. package/dist/policies/index.js.map +1 -1
  53. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.d.ts +35 -0
  54. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js +86 -0
  55. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js.map +1 -0
  56. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.d.ts +51 -0
  57. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +55 -1
  58. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js.map +1 -1
  59. package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +3 -1
  60. package/dist/policy-packs/builtin/understanding-before-execution/index.js +18 -1
  61. package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +1 -1
  62. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.d.ts +71 -0
  63. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js +175 -0
  64. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js.map +1 -0
  65. package/dist/runtime/destructive-shell-floor.d.ts +19 -0
  66. package/dist/runtime/destructive-shell-floor.js +597 -0
  67. package/dist/runtime/destructive-shell-floor.js.map +1 -0
  68. package/dist/runtime/git-context.js +7 -1
  69. package/dist/runtime/git-context.js.map +1 -1
  70. package/dist/runtime/intercept.d.ts +10 -7
  71. package/dist/runtime/intercept.js +108 -9
  72. package/dist/runtime/intercept.js.map +1 -1
  73. package/dist/runtime/read-only-bash.d.ts +21 -0
  74. package/dist/runtime/read-only-bash.js +484 -0
  75. package/dist/runtime/read-only-bash.js.map +1 -1
  76. package/dist/runtime/risk-classifier.js +68 -13
  77. package/dist/runtime/risk-classifier.js.map +1 -1
  78. package/dist/runtime/when-eval.d.ts +18 -5
  79. package/dist/runtime/when-eval.js +64 -11
  80. package/dist/runtime/when-eval.js.map +1 -1
  81. package/dist/runtime/workflow-policies.d.ts +43 -1
  82. package/dist/runtime/workflow-policies.js +158 -1
  83. package/dist/runtime/workflow-policies.js.map +1 -1
  84. package/dist/schema/extract.d.ts +4 -0
  85. package/dist/schema/extract.js +64 -1
  86. package/dist/schema/extract.js.map +1 -1
  87. package/dist/schema/index.d.ts +13 -0
  88. package/dist/schema/policies.d.ts +19 -0
  89. package/dist/schema/policies.js +17 -1
  90. package/dist/schema/policies.js.map +1 -1
  91. package/package.json +1 -1
@@ -54,6 +54,36 @@ import { sha256Hex, signMarker, signingKeyExists, signingKeyPathFor, verifyMarke
54
54
  import { rejectMalformedSessionId } from "../../../runtime/reject-malformed-session-id.js";
55
55
  /** Directory holding delegation markers, a sibling of `.approvals/` under `generatedDir`. */
56
56
  export const DELEGATION_MARKER_DIRNAME = ".delegations";
57
+ /**
58
+ * Directory holding the per-child ADOPTED-ENTRY ledgers (once-per-session
59
+ * transcript-capture bookkeeping written by the PreToolUse hook,
60
+ * `hook-pre-tool-use.ts`), a SIBLING of `.delegations/` itself rather than
61
+ * a subdirectory of it: `<generatedDir>/.delegation-adoptions/<sid>`.
62
+ *
63
+ * Defined here (not in `hook-pre-tool-use.ts`, the only writer) so that a
64
+ * reader that never writes a ledger, such as `harness gc`'s delegation
65
+ * sweep, can name the directory without importing a `cli/` module: this
66
+ * file already owns `DELEGATION_MARKER_DIRNAME`, the sibling constant an
67
+ * adoption-ledger reader also needs, and both dirnames traveling together
68
+ * keeps `.delegations/` and its ledger sibling from drifting apart.
69
+ */
70
+ export const ADOPTION_LEDGER_DIRNAME = ".delegation-adoptions";
71
+ /**
72
+ * Directory holding the CONVENTIONAL launcher-report copies for the
73
+ * `--report` fallback shape, a SIBLING of `.delegations/` and
74
+ * `.delegation-adoptions/` (same reasoning: a reader that only needs the
75
+ * path convention, such as a future gc sweep, has no business importing
76
+ * the CLI module that writes into it). `harness delegate --report` copies
77
+ * the operator's file here, at `<childSessionId>.md`, and the child's own
78
+ * PreToolUse hook reads back from exactly this path (never the operator's
79
+ * original `--report` argument, which the hook has no way to learn): the
80
+ * conventional path is what lets both sides derive the SAME location from
81
+ * nothing but the child session id, closing the gap that used to leave a
82
+ * report-bound delegation issued and signature-verifiable but never
83
+ * actually checked against a file (agent-tasks 49d1ee41, follow-up to
84
+ * slice 3, agent-tasks 37ad0b05).
85
+ */
86
+ export const DELEGATION_REPORT_DIRNAME = ".delegation-reports";
57
87
  /** Prefix of the signed markerId, mirroring `task-<id>` for task markers. */
58
88
  const DELEGATION_MARKER_ID_PREFIX = "delegation-";
59
89
  /** The `approvedBy` segment carrying the parent linkage. Colon-separated, unlike the `key=value` segments after it. */
@@ -88,6 +118,21 @@ export function delegationMarkerPathFor(generatedDir, childSessionId) {
88
118
  rejectMalformedSessionId(childSessionId);
89
119
  return path.join(generatedDir, DELEGATION_MARKER_DIRNAME, childSessionId);
90
120
  }
121
+ /**
122
+ * Filesystem path of a child session's CONVENTIONAL launcher-report copy:
123
+ * `<generatedDir>/.delegation-reports/<childSessionId>.md`. Always `.md`,
124
+ * regardless of the extension the operator's original `--report` file
125
+ * carried: the point of the convention is that both `harness delegate`
126
+ * (the writer) and the child's PreToolUse hook (the reader) derive the
127
+ * SAME path from nothing but the child session id, so a preserved
128
+ * extension would only reintroduce a value the hook has no way to learn.
129
+ * Rejects a malformed session id the same way {@link delegationMarkerPathFor}
130
+ * does (the value lands in a `path.join` verbatim).
131
+ */
132
+ export function delegationReportPathFor(generatedDir, childSessionId) {
133
+ rejectMalformedSessionId(childSessionId);
134
+ return path.join(generatedDir, DELEGATION_REPORT_DIRNAME, `${childSessionId}.md`);
135
+ }
91
136
  /**
92
137
  * sha256 hex of a filesystem path, canonicalized through `realpathSync`
93
138
  * when the path exists and through `path.resolve` when it does not.
@@ -580,6 +625,10 @@ export function verifyDelegation(opts) {
580
625
  };
581
626
  }
582
627
  }
628
+ // Set only inside the `reportPathHash !== undefined` branch below, and
629
+ // only after the content hash has matched: the exact bytes returned to
630
+ // the caller in the ok shape's `reportContent`.
631
+ let reportContent;
583
632
  if (reportPathHash !== undefined) {
584
633
  if (opts.launcherReportPath === undefined) {
585
634
  return {
@@ -620,6 +669,11 @@ export function verifyDelegation(opts) {
620
669
  detail: `launcher-supplied report at ${opts.launcherReportPath} does not match the bound content hash (bound ${boundContentHash}, got ${actualContentHash})`,
621
670
  };
622
671
  }
672
+ // The exact bytes this call just hashed and matched against the
673
+ // bound hash: returned so the caller persists THESE bytes rather
674
+ // than opening the file a second time (a second read would be a
675
+ // second trust decision, and the very race this closes).
676
+ reportContent = reportRead.content;
623
677
  }
624
678
  return {
625
679
  ok: true,
@@ -627,7 +681,7 @@ export function verifyDelegation(opts) {
627
681
  expiresAt,
628
682
  boundCwdHash: cwdHash,
629
683
  boundTaskId: taskId,
630
- ...(reportPathHash !== undefined ? { reportPathHash } : {}),
684
+ ...(reportPathHash !== undefined ? { reportPathHash, reportContent: reportContent } : {}),
631
685
  };
632
686
  }
633
687
  //# sourceMappingURL=delegation-markers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delegation-markers.js","sourceRoot":"","sources":["../../../../src/policy-packs/builtin/understanding-before-execution/delegation-markers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegation-markers.js","sourceRoot":"","sources":["../../../../src/policy-packs/builtin/understanding-before-execution/delegation-markers.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,9 @@ export { APPROVAL_MARKER_DIRNAME, approvalMarkerPathFor, type ApprovalMarker, wr
9
9
  export { type PersistedReport, REPORTS_DIR_ENV, defaultReportsDir, reportsDirForManifest, listPersistedReports, TOLERANT_FALLBACK_MAX_AGE_MS, TOLERANT_FALLBACK_FUTURE_SKEW_MS, type FindReportOptions, type FindReportSelection, selectReportForSession, selectNewestStrictSessionReport, findLatestReportForSession, type PersistedReportEvidence, expirePersistedReport, checkPersistedReport, } from "./persisted-reports.js";
10
10
  export { type ApprovalLifecycle, parseApprovalLifecycle } from "./lifecycle.js";
11
11
  export { AUTO_APPROVED_BY_PREFIX, CLAUDE_CODE_HARNESS, autoApprovedByFor, type ParsedAutoApprovedBy, parseAutoApprovedBy, autoApprovedLedgerTagFor, type AutoApproveConfig, parseAutoApprove, permissionModeAllowed, harnessAllowed, AUTO_APPROVE_HARNESS_VALUES, DEFAULT_AUTO_APPROVE_HARNESSES, DEFAULT_REPORT_SCAN_MAX_WAIT_MS, REPORT_SCAN_MAX_WAIT_CEILING_MS, parseReportScanMaxWait, } from "./auto-approve.js";
12
+ export { type AutoApproveDefaultConfig, defaultAutoApproveConfig, renderAutoApproveSnippet, } from "./auto-approve-default.js";
13
+ export { PERMISSION_MODE_OBSERVATION_DIRNAME, listPermissionModeObservations, permissionModeObservationPathFor, recordPermissionModeObservation, sanitizeForDisplay, type PermissionModeObservation, type PermissionModeObservationsResult, } from "./permission-mode-observations.js";
12
14
  export { APPROVAL_MARKER_TASK_PREFIX, taskApprovalMarkerPathFor, writeTaskApprovalMarker, checkActiveClaimApprovalMarker, type OperatorMarkerApproval, checkOperatorApprovalMarkers, clearTaskApprovalMarker, } from "./task-markers.js";
13
15
  export { DEFAULT_BASH_TOOL_NAMES, toolNameMatchesAny, bashCommandMatchesAny, extractBashCommandFromToolInput, extractTaskIdFromToolInput, extractTasksTransitionStatusFromToolInput, type PostToolUseBoundaryMatch, matchPostToolUseBoundary, type ApplyPostToolUseExpiryResult, applyPostToolUseExpiry, describePostToolUseExpiry, } from "./post-tool-use-boundary.js";
14
16
  export { ACTIVE_CLAIM_FILENAME, activeClaimPathFor, writeActiveClaim, readActiveClaim, clearActiveClaim, } from "./active-claim.js";
15
- export { DELEGATION_MARKER_DIRNAME, delegationMarkerIdFor, delegationMarkerPathFor, hashDelegationCwd, type DelegationApprovedByFields, buildDelegationApprovedBy, type ParsedDelegationApprovedBy, type DelegationApprovedByParse, parseDelegationApprovedBy, type WriteDelegationMarkerOptions, type WriteDelegationMarkerResult, writeDelegationMarker, type DelegationRefusalReason, type DelegationVerification, type VerifyDelegationOptions, verifyDelegation, } from "./delegation-markers.js";
17
+ export { DELEGATION_MARKER_DIRNAME, ADOPTION_LEDGER_DIRNAME, DELEGATION_REPORT_DIRNAME, delegationMarkerIdFor, delegationMarkerPathFor, delegationReportPathFor, hashDelegationCwd, type DelegationApprovedByFields, buildDelegationApprovedBy, type ParsedDelegationApprovedBy, type DelegationApprovedByParse, parseDelegationApprovedBy, type WriteDelegationMarkerOptions, type WriteDelegationMarkerResult, writeDelegationMarker, type DelegationRefusalReason, type DelegationVerification, type VerifyDelegationOptions, verifyDelegation, } from "./delegation-markers.js";
@@ -40,6 +40,23 @@ export { APPROVAL_MARKER_DIRNAME, approvalMarkerPathFor, writeApprovalMarker, ch
40
40
  export { REPORTS_DIR_ENV, defaultReportsDir, reportsDirForManifest, listPersistedReports, TOLERANT_FALLBACK_MAX_AGE_MS, TOLERANT_FALLBACK_FUTURE_SKEW_MS, selectReportForSession, selectNewestStrictSessionReport, findLatestReportForSession, expirePersistedReport, checkPersistedReport, } from "./persisted-reports.js";
41
41
  export { parseApprovalLifecycle } from "./lifecycle.js";
42
42
  export { AUTO_APPROVED_BY_PREFIX, CLAUDE_CODE_HARNESS, autoApprovedByFor, parseAutoApprovedBy, autoApprovedLedgerTagFor, parseAutoApprove, permissionModeAllowed, harnessAllowed, AUTO_APPROVE_HARNESS_VALUES, DEFAULT_AUTO_APPROVE_HARNESSES, DEFAULT_REPORT_SCAN_MAX_WAIT_MS, REPORT_SCAN_MAX_WAIT_CEILING_MS, parseReportScanMaxWait, } from "./auto-approve.js";
43
+ // D-004 shipped default (task 8f637efd): the one `auto_approve` snippet
44
+ // `harness init`, `harness pack upgrade understanding-before-execution`
45
+ // and `harness doctor`'s missing-auto_approve finding all render from,
46
+ // see auto-approve-default.ts's module header for why.
47
+ //
48
+ // `AUTO_APPROVE_DEFAULT_WHEN`, `AUTO_APPROVE_DEFAULT_HARNESSES`, and
49
+ // `AUTO_APPROVE_COMMENT_LINES` are deliberately NOT re-exported here
50
+ // (review round 2 F7): every caller outside this module wants the
51
+ // already-assembled `defaultAutoApproveConfig()` / `renderAutoApproveSnippet()`,
52
+ // never the three raw pieces; grepped before dropping them (task
53
+ // 8f637efd, review round 2) and confirmed no consumer outside
54
+ // auto-approve-default.ts itself used the bare re-export.
55
+ export { defaultAutoApproveConfig, renderAutoApproveSnippet, } from "./auto-approve-default.js";
56
+ // Hook-side `permission_mode` observation feeding `harness doctor`'s
57
+ // missing-`auto_approve` finding (task 8f637efd), see
58
+ // permission-mode-observations.ts's module header.
59
+ export { PERMISSION_MODE_OBSERVATION_DIRNAME, listPermissionModeObservations, permissionModeObservationPathFor, recordPermissionModeObservation, sanitizeForDisplay, } from "./permission-mode-observations.js";
43
60
  export { APPROVAL_MARKER_TASK_PREFIX, taskApprovalMarkerPathFor, writeTaskApprovalMarker, checkActiveClaimApprovalMarker, checkOperatorApprovalMarkers, clearTaskApprovalMarker, } from "./task-markers.js";
44
61
  export { DEFAULT_BASH_TOOL_NAMES, toolNameMatchesAny, bashCommandMatchesAny, extractBashCommandFromToolInput, extractTaskIdFromToolInput, extractTasksTransitionStatusFromToolInput, matchPostToolUseBoundary, applyPostToolUseExpiry, describePostToolUseExpiry, } from "./post-tool-use-boundary.js";
45
62
  export { ACTIVE_CLAIM_FILENAME, activeClaimPathFor, writeActiveClaim, readActiveClaim, clearActiveClaim, } from "./active-claim.js";
@@ -50,5 +67,5 @@ export { ACTIVE_CLAIM_FILENAME, activeClaimPathFor, writeActiveClaim, readActive
50
67
  // delegation-markers.ts for why). Exported through the shim because the
51
68
  // slice's later consumers (the `harness delegate` verb and the child's
52
69
  // PreToolUse hook) import every sibling gate symbol through it.
53
- export { DELEGATION_MARKER_DIRNAME, delegationMarkerIdFor, delegationMarkerPathFor, hashDelegationCwd, buildDelegationApprovedBy, parseDelegationApprovedBy, writeDelegationMarker, verifyDelegation, } from "./delegation-markers.js";
70
+ export { DELEGATION_MARKER_DIRNAME, ADOPTION_LEDGER_DIRNAME, DELEGATION_REPORT_DIRNAME, delegationMarkerIdFor, delegationMarkerPathFor, delegationReportPathFor, hashDelegationCwd, buildDelegationApprovedBy, parseDelegationApprovedBy, writeDelegationMarker, verifyDelegation, } from "./delegation-markers.js";
54
71
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/policy-packs/builtin/understanding-before-execution/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,EAAE;AACF,mEAAmE;AACnE,sEAAsE;AACtE,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,oEAAoE;AACpE,qEAAqE;AACrE,yEAAyE;AACzE,uEAAuE;AACvE,oEAAoE;AACpE,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,sEAAsE;AACtE,oEAAoE;AACpE,yEAAyE;AACzE,gEAAgE;AAChE,0EAA0E;AAC1E,yEAAyE;AACzE,uEAAuE;AACvE,yEAAyE;AACzE,uEAAuE;AACvE,sEAAsE;AACtE,kEAAkE;AAClE,wEAAwE;AACxE,yDAAyD;AACzD,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,oEAAoE;AACpE,sEAAsE;AActE,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EAErB,mBAAmB,EAGnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAGhC,sBAAsB,EACtB,+BAA+B,EAC/B,0BAA0B,EAE1B,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAA0B,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEhF,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EAEjB,mBAAmB,EACnB,wBAAwB,EAExB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAC/B,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,8BAA8B,EAE9B,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,+BAA+B,EAC/B,0BAA0B,EAC1B,yCAAyC,EAEzC,wBAAwB,EAExB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,wEAAwE;AACxE,oEAAoE;AACpE,sEAAsE;AACtE,6DAA6D;AAC7D,wEAAwE;AACxE,uEAAuE;AACvE,gEAAgE;AAChE,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EAEjB,yBAAyB,EAGzB,yBAAyB,EAGzB,qBAAqB,EAIrB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/policy-packs/builtin/understanding-before-execution/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,EAAE;AACF,mEAAmE;AACnE,sEAAsE;AACtE,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,oEAAoE;AACpE,qEAAqE;AACrE,yEAAyE;AACzE,uEAAuE;AACvE,oEAAoE;AACpE,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,sEAAsE;AACtE,oEAAoE;AACpE,yEAAyE;AACzE,gEAAgE;AAChE,0EAA0E;AAC1E,yEAAyE;AACzE,uEAAuE;AACvE,yEAAyE;AACzE,uEAAuE;AACvE,sEAAsE;AACtE,kEAAkE;AAClE,wEAAwE;AACxE,yDAAyD;AACzD,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,oEAAoE;AACpE,sEAAsE;AActE,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EAErB,mBAAmB,EAGnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAGhC,sBAAsB,EACtB,+BAA+B,EAC/B,0BAA0B,EAE1B,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAA0B,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEhF,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EAEjB,mBAAmB,EACnB,wBAAwB,EAExB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAC/B,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,uDAAuD;AACvD,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,kEAAkE;AAClE,iFAAiF;AACjF,iEAAiE;AACjE,8DAA8D;AAC9D,0DAA0D;AAC1D,OAAO,EAEL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAEnC,qEAAqE;AACrE,sDAAsD;AACtD,mDAAmD;AACnD,OAAO,EACL,mCAAmC,EACnC,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAC/B,kBAAkB,GAGnB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,8BAA8B,EAE9B,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,+BAA+B,EAC/B,0BAA0B,EAC1B,yCAAyC,EAEzC,wBAAwB,EAExB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,wEAAwE;AACxE,oEAAoE;AACpE,sEAAsE;AACtE,6DAA6D;AAC7D,wEAAwE;AACxE,uEAAuE;AACvE,gEAAgE;AAChE,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EAEjB,yBAAyB,EAGzB,yBAAyB,EAGzB,qBAAqB,EAIrB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,71 @@
1
+ export declare const PERMISSION_MODE_OBSERVATION_DIRNAME = ".permission-mode-observations";
2
+ export interface PermissionModeObservation {
3
+ sessionId: string;
4
+ permissionMode: string;
5
+ observedAt: string;
6
+ }
7
+ /**
8
+ * `sessionId` is validated with the SAME `rejectMalformedSessionId` used
9
+ * for the approval marker path (`markers.ts`'s `approvalMarkerPathFor`):
10
+ * a value carrying `/`, `\`, `..`, or that is empty/blank throws rather
11
+ * than being joined into the path (review round 3, F1: the earlier
12
+ * version of this function trusted the caller's own empty-string check
13
+ * and joined `sessionId` verbatim, letting a crafted `session_id` on the
14
+ * hook's stdin write outside `<generatedDir>/.permission-mode-observations/`).
15
+ */
16
+ export declare function permissionModeObservationPathFor(generatedDir: string, sessionId: string): string;
17
+ /**
18
+ * Best-effort write/update of the per-session observation.
19
+ *
20
+ * `permissionMode` must be a non-empty string; any other shape (absent,
21
+ * non-string, empty) is a silent no-op: there is nothing to observe.
22
+ * `sessionId` is NOT trusted as pre-validated (review round 3, F1): the
23
+ * caller (`hook-pre-tool-use.ts`) only rejects an EMPTY session id
24
+ * before this is reached, and `session_id` on the hook's stdin payload
25
+ * is otherwise attacker-controllable input to a CLI invocation, not a
26
+ * value this function may assume is already path-safe. A malformed id
27
+ * (path separators, `..`, blank) makes `permissionModeObservationPathFor`
28
+ * throw; that throw is treated exactly like any other write failure
29
+ * below: one `stderr` warning, never escalated into a block, never
30
+ * thrown out of this function.
31
+ */
32
+ export declare function recordPermissionModeObservation(generatedDir: string, sessionId: string, permissionMode: unknown, stderr: {
33
+ write(s: string): unknown;
34
+ }, now?: () => Date): void;
35
+ export interface PermissionModeObservationsResult {
36
+ /** Whether `<generatedDir>/.permission-mode-observations/` exists at all. */
37
+ dirPresent: boolean;
38
+ /** Newest `windowSize` readable observations, newest `observedAt` first. */
39
+ entries: PermissionModeObservation[];
40
+ /** Files present but unparseable / missing a required field. */
41
+ unreadableCount: number;
42
+ }
43
+ /**
44
+ * Strip C0/DEL control characters (including ESC, which could otherwise
45
+ * smuggle an ANSI escape sequence into a terminal) and cap the length,
46
+ * mirroring `persisted-reports.ts`'s `sanitizeDetailValue` for the same
47
+ * reason: `bypass-without-auto-approve.ts` embeds an observation's
48
+ * `sessionId` directly into a doctor finding's `message`, the surface an
49
+ * operator reads (review round 3, F1). This is independent of
50
+ * `permissionModeObservationPathFor`'s write-time
51
+ * `rejectMalformedSessionId` guard: that guard rejects path-traversal
52
+ * shapes, not control characters, and a directory entry's on-disk
53
+ * filename (or the `sessionId` field inside it) is never itself
54
+ * constrained to be display-safe: POSIX filenames may contain any byte
55
+ * but `/` and NUL, and the JSON body's `sessionId` field is a plain
56
+ * string with no such constraint either.
57
+ */
58
+ export declare function sanitizeForDisplay(value: string): string;
59
+ /**
60
+ * Read-side: the newest `windowSize` per-session observations, newest
61
+ * first by `observedAt`. Mirrors `ug-auto-approvals.ts`'s own
62
+ * read-and-window convention (missing dir / empty dir / all-unreadable
63
+ * all resolve to an empty-ish result, never throw: this is a doctor
64
+ * read, not a gate decision). Every returned `sessionId` has already
65
+ * been through {@link sanitizeForDisplay}, so every consumer (today,
66
+ * `bypass-without-auto-approve.ts`'s finding `message`) gets a
67
+ * doctor-output-safe value without having to sanitize it itself.
68
+ */
69
+ export declare function listPermissionModeObservations(generatedDir: string, opts: {
70
+ windowSize: number;
71
+ }): PermissionModeObservationsResult;
@@ -0,0 +1,175 @@
1
+ // Hook-side observation of PreToolUse `permission_mode` (task 8f637efd,
2
+ // docs/decisions/2026-08-27-ug-auto-mode-approval.md's "Amendment:
3
+ // install default"). One small per-session record under
4
+ // `<generatedDir>/.permission-mode-observations/<sessionId>`.
5
+ //
6
+ // WHY A NEW ARTEFACT, NOT THE LEDGER OR THE PERSISTED REPORT. `harness
7
+ // doctor`'s missing-`auto_approve` finding needs to know whether a
8
+ // session actually ran under `bypassPermissions`, and the evidence-ledger
9
+ // trust boundary this pack already enforces for approval
10
+ // (docs/okf/evidence-ledger-trust-boundary.md) applies here too: a fact
11
+ // the AGENT can write (a ledger row, a report field) proves nothing about
12
+ // what the harness process observed. `permission_mode` on the PreToolUse
13
+ // payload is a T1 signal (composed by Claude Code itself, not by the
14
+ // model: same trust class the auto-approval path already relies on,
15
+ // see the ADR's "Signal sources per harness" table), so the write side
16
+ // here is the SAME hook, at the SAME point in its decision order, using
17
+ // the SAME field. The record carries no payload content beyond the
18
+ // mode itself: (sessionId, permissionMode, observedAt), nothing else.
19
+ //
20
+ // WHERE IT IS WRITTEN. `hook-pre-tool-use.ts` calls
21
+ // `recordPermissionModeObservation` once per PreToolUse invocation that
22
+ // reaches the same point `attemptAutoApproval` already runs at
23
+ // (auto-approve-path.ts's module header explains why that point matters:
24
+ // every call that reaches it has already been declined by the signed
25
+ // marker check, the read-only Bash exemption, the recovery-commit
26
+ // exemption, and the escape `ask`: so it is exactly the call that would
27
+ // otherwise need approval). A session whose first tool call already
28
+ // matches a still-valid marker never reaches this point and is therefore
29
+ // never observed for that session; this is an accepted coverage gap
30
+ // (documented at the call site), not a silent failure: the finding this
31
+ // feeds targets the ADR's Mac-mini incident shape (a marker EXPIRED or
32
+ // never existed, the call fell through to the block/auto-approve
33
+ // attempt, and `permission_mode` WAS on the payload at that instant),
34
+ // not perfect per-session coverage.
35
+ //
36
+ // FAIL-OPEN ON WRITE ERRORS. A failed write is one stderr warning line,
37
+ // never escalated into a block: this is telemetry for `harness doctor`,
38
+ // never a gate input, and the write happens on the same fail-open
39
+ // posture every other best-effort write in this pack already uses
40
+ // (`writePendingApproval`, the marker writers).
41
+ //
42
+ // UNSIGNED: ADVISORY ONLY, NOT PROOF (review round 3, F2). Unlike the
43
+ // approval marker (`markers.ts`), this record is NOT HMAC-signed. It is
44
+ // written by the hook PROCESS from whatever `session_id`/`permission_mode`
45
+ // appear on the invocation's PreToolUse payload; that only proves the
46
+ // hook was invoked with that payload, not that any particular session
47
+ // actually ran under that mode: an already-approved session (or anything
48
+ // else able to invoke `harness pack hook pre-tool-use` with crafted
49
+ // stdin) can write, or forge, an observation. That is why
50
+ // `checkBypassWithoutAutoApprove` (bypass-without-auto-approve.ts) is
51
+ // wired as an advisory `harness doctor` finding ONLY: it can never gate a
52
+ // tool call or mint an approval, and the operator who reads the finding
53
+ // is the one who decides what to do about it. Signing the observation
54
+ // was considered and rejected, not deferred: a signature would only
55
+ // prove the hook signed the record, not that the named session actually
56
+ // ran under that mode, and it would open a second, unconditional
57
+ // signing surface for the marker-signing key (not a path to mint an
58
+ // approval marker, which stays namespaced by markerId). See
59
+ // docs/decisions/2026-08-27-ug-auto-mode-approval.md's "Amendment:
60
+ // permission-mode observation stays unsigned" for the full reasoning
61
+ // and the reopen criterion.
62
+ import * as path from "node:path";
63
+ import { atomicWriteFile } from "../../../io/atomic-write.js";
64
+ import { readJsonDirEntriesRejectingSymlinks } from "../../../io/read-json-dir-entries.js";
65
+ import { rejectMalformedSessionId } from "../../../runtime/reject-malformed-session-id.js";
66
+ export const PERMISSION_MODE_OBSERVATION_DIRNAME = ".permission-mode-observations";
67
+ /**
68
+ * `sessionId` is validated with the SAME `rejectMalformedSessionId` used
69
+ * for the approval marker path (`markers.ts`'s `approvalMarkerPathFor`):
70
+ * a value carrying `/`, `\`, `..`, or that is empty/blank throws rather
71
+ * than being joined into the path (review round 3, F1: the earlier
72
+ * version of this function trusted the caller's own empty-string check
73
+ * and joined `sessionId` verbatim, letting a crafted `session_id` on the
74
+ * hook's stdin write outside `<generatedDir>/.permission-mode-observations/`).
75
+ */
76
+ export function permissionModeObservationPathFor(generatedDir, sessionId) {
77
+ rejectMalformedSessionId(sessionId);
78
+ return path.join(generatedDir, PERMISSION_MODE_OBSERVATION_DIRNAME, sessionId);
79
+ }
80
+ /**
81
+ * Best-effort write/update of the per-session observation.
82
+ *
83
+ * `permissionMode` must be a non-empty string; any other shape (absent,
84
+ * non-string, empty) is a silent no-op: there is nothing to observe.
85
+ * `sessionId` is NOT trusted as pre-validated (review round 3, F1): the
86
+ * caller (`hook-pre-tool-use.ts`) only rejects an EMPTY session id
87
+ * before this is reached, and `session_id` on the hook's stdin payload
88
+ * is otherwise attacker-controllable input to a CLI invocation, not a
89
+ * value this function may assume is already path-safe. A malformed id
90
+ * (path separators, `..`, blank) makes `permissionModeObservationPathFor`
91
+ * throw; that throw is treated exactly like any other write failure
92
+ * below: one `stderr` warning, never escalated into a block, never
93
+ * thrown out of this function.
94
+ */
95
+ export function recordPermissionModeObservation(generatedDir, sessionId, permissionMode, stderr, now = () => new Date()) {
96
+ if (typeof permissionMode !== "string" || permissionMode.length === 0)
97
+ return;
98
+ if (sessionId.length === 0)
99
+ return;
100
+ const record = {
101
+ sessionId,
102
+ permissionMode,
103
+ observedAt: now().toISOString(),
104
+ };
105
+ try {
106
+ atomicWriteFile(permissionModeObservationPathFor(generatedDir, sessionId), `${JSON.stringify(record)}\n`);
107
+ }
108
+ catch (err) {
109
+ stderr.write(`harness pack hook: failed to write permission-mode observation for session ${sanitizeForDisplay(sessionId)} (${err.message}), continuing.\n`);
110
+ }
111
+ }
112
+ function isValidObservation(value) {
113
+ if (value === null || typeof value !== "object" || Array.isArray(value))
114
+ return false;
115
+ const obj = value;
116
+ return (typeof obj["sessionId"] === "string" &&
117
+ typeof obj["permissionMode"] === "string" &&
118
+ typeof obj["observedAt"] === "string" &&
119
+ !Number.isNaN(Date.parse(obj["observedAt"])));
120
+ }
121
+ /** Cap applied to a sanitized `sessionId` before it reaches doctor output. */
122
+ const DISPLAY_VALUE_MAX_LENGTH = 200;
123
+ /**
124
+ * Strip C0/DEL control characters (including ESC, which could otherwise
125
+ * smuggle an ANSI escape sequence into a terminal) and cap the length,
126
+ * mirroring `persisted-reports.ts`'s `sanitizeDetailValue` for the same
127
+ * reason: `bypass-without-auto-approve.ts` embeds an observation's
128
+ * `sessionId` directly into a doctor finding's `message`, the surface an
129
+ * operator reads (review round 3, F1). This is independent of
130
+ * `permissionModeObservationPathFor`'s write-time
131
+ * `rejectMalformedSessionId` guard: that guard rejects path-traversal
132
+ * shapes, not control characters, and a directory entry's on-disk
133
+ * filename (or the `sessionId` field inside it) is never itself
134
+ * constrained to be display-safe: POSIX filenames may contain any byte
135
+ * but `/` and NUL, and the JSON body's `sessionId` field is a plain
136
+ * string with no such constraint either.
137
+ */
138
+ export function sanitizeForDisplay(value) {
139
+ const flattened = value.replace(/[\x00-\x1f\x7f]/g, " ");
140
+ return flattened.length > DISPLAY_VALUE_MAX_LENGTH
141
+ ? `${flattened.slice(0, DISPLAY_VALUE_MAX_LENGTH)}...`
142
+ : flattened;
143
+ }
144
+ /**
145
+ * Read-side: the newest `windowSize` per-session observations, newest
146
+ * first by `observedAt`. Mirrors `ug-auto-approvals.ts`'s own
147
+ * read-and-window convention (missing dir / empty dir / all-unreadable
148
+ * all resolve to an empty-ish result, never throw: this is a doctor
149
+ * read, not a gate decision). Every returned `sessionId` has already
150
+ * been through {@link sanitizeForDisplay}, so every consumer (today,
151
+ * `bypass-without-auto-approve.ts`'s finding `message`) gets a
152
+ * doctor-output-safe value without having to sanitize it itself.
153
+ */
154
+ export function listPermissionModeObservations(generatedDir, opts) {
155
+ const dir = path.join(generatedDir, PERMISSION_MODE_OBSERVATION_DIRNAME);
156
+ const { dirPresent, entries: readable, unreadableCount } = readJsonDirEntriesRejectingSymlinks(dir, {
157
+ parse: (raw) => isValidObservation(raw)
158
+ ? {
159
+ ...raw,
160
+ sessionId: sanitizeForDisplay(raw.sessionId),
161
+ // `observedAt` only has to satisfy Date.parse, which accepts
162
+ // parenthesised trailing text, so it is display-sanitised too
163
+ // (review round 3: a crafted timestamp reached doctor output raw).
164
+ observedAt: sanitizeForDisplay(raw.observedAt),
165
+ }
166
+ : null,
167
+ });
168
+ readable.sort((a, b) => Date.parse(b.observedAt) - Date.parse(a.observedAt));
169
+ return {
170
+ dirPresent,
171
+ entries: readable.slice(0, opts.windowSize),
172
+ unreadableCount,
173
+ };
174
+ }
175
+ //# sourceMappingURL=permission-mode-observations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-mode-observations.js","sourceRoot":"","sources":["../../../../src/policy-packs/builtin/understanding-before-execution/permission-mode-observations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { RiskCategory, RiskSeverity } from "../schema/index.js";
2
+ /** One recognised destructive invocation. */
3
+ export interface DestructiveFloorHit {
4
+ severity: RiskSeverity;
5
+ categories: readonly RiskCategory[];
6
+ /** Human-readable, appended to the profile's `reasons`. */
7
+ reason: string;
8
+ }
9
+ /**
10
+ * Recognise every built-in destructive invocation in `command`.
11
+ *
12
+ * Pure and linear in the length of the command: whitespace tokenisation,
13
+ * set lookups, and a bounded wrapper peel. No regex with a backtracking
14
+ * risk runs over the command text (`BOUNDARY_SPLIT_RE` is a character
15
+ * class), so this may be called on the UNCAPPED command string, which it
16
+ * must be, so a destructive tail past the classifier's 16 KiB ReDoS cap
17
+ * cannot be laundered by a long benign head.
18
+ */
19
+ export declare function classifyDestructiveShellFloor(command: string): DestructiveFloorHit[];