pi-harness-runtime 1.1.320 → 1.1.322

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 (117) hide show
  1. package/RULES.md +19 -0
  2. package/package.json +1 -1
  3. package/packages/a2a-adapter/package.json +1 -1
  4. package/packages/agent-policy/dist/extension.d.ts.map +1 -1
  5. package/packages/agent-policy/dist/extension.js +33 -0
  6. package/packages/agent-policy/dist/extension.js.map +1 -1
  7. package/packages/agent-policy/dist/policy-loader.d.ts +11 -0
  8. package/packages/agent-policy/dist/policy-loader.d.ts.map +1 -1
  9. package/packages/agent-policy/dist/policy-loader.js +44 -19
  10. package/packages/agent-policy/dist/policy-loader.js.map +1 -1
  11. package/packages/agent-policy/dist/ssh-guard.d.ts +51 -0
  12. package/packages/agent-policy/dist/ssh-guard.d.ts.map +1 -0
  13. package/packages/agent-policy/dist/ssh-guard.js +172 -0
  14. package/packages/agent-policy/dist/ssh-guard.js.map +1 -0
  15. package/packages/agent-policy/package.json +1 -1
  16. package/packages/agent-policy/src/extension.ts +23 -0
  17. package/packages/agent-policy/src/policy-loader.ts +49 -20
  18. package/packages/agent-policy/src/ssh-guard.ts +204 -0
  19. package/packages/agent-policy/test/policy-retention.test.ts +299 -0
  20. package/packages/architecture-generator/package.json +1 -1
  21. package/packages/auth/package.json +1 -1
  22. package/packages/autonomous-refactor/package.json +1 -1
  23. package/packages/autonomous-runtime/package.json +1 -1
  24. package/packages/cache-strategy/package.json +1 -1
  25. package/packages/capability-registry/package.json +1 -1
  26. package/packages/checkpoint/package.json +1 -1
  27. package/packages/cli-plugin-sdk/package.json +1 -1
  28. package/packages/clipboard/package.json +1 -1
  29. package/packages/clipboard-plugin/package.json +1 -1
  30. package/packages/code-generation/package.json +1 -1
  31. package/packages/code-review/package.json +1 -1
  32. package/packages/codex-adapter/package.json +1 -1
  33. package/packages/codex-watcher/package.json +1 -1
  34. package/packages/config-capture/package.json +1 -1
  35. package/packages/context-compiler/package.json +1 -1
  36. package/packages/context-discovery/package.json +1 -1
  37. package/packages/context-manager/package.json +1 -1
  38. package/packages/cookie-sanitizer/package.json +1 -1
  39. package/packages/cost-optimizer/package.json +1 -1
  40. package/packages/dependency-analyzer/package.json +1 -1
  41. package/packages/django-plugin/package.json +1 -1
  42. package/packages/doc-generator/package.json +1 -1
  43. package/packages/durable-review/package.json +1 -1
  44. package/packages/e2e-tester/package.json +1 -1
  45. package/packages/evaluation-engine/package.json +1 -1
  46. package/packages/evaluation-runner/package.json +1 -1
  47. package/packages/event-bus/package.json +1 -1
  48. package/packages/event-store/package.json +1 -1
  49. package/packages/experience-replay/package.json +1 -1
  50. package/packages/feedback-collector/package.json +1 -1
  51. package/packages/file-copy-helper/package.json +1 -1
  52. package/packages/framework-detector/package.json +1 -1
  53. package/packages/framework-plugin-sdk/package.json +1 -1
  54. package/packages/frappe-plugin/package.json +1 -1
  55. package/packages/generic-web-plugin/package.json +1 -1
  56. package/packages/health-monitor/package.json +1 -1
  57. package/packages/intent-analyzer/package.json +1 -1
  58. package/packages/jev-judge/package.json +1 -1
  59. package/packages/knowledge-graph/package.json +1 -1
  60. package/packages/knowledge-retrieval/package.json +1 -1
  61. package/packages/laravel-plugin/package.json +1 -1
  62. package/packages/learning-engine/package.json +1 -1
  63. package/packages/mcp-adapter/package.json +1 -1
  64. package/packages/memory-engine/package.json +1 -1
  65. package/packages/milestone-manager/package.json +1 -1
  66. package/packages/model-registry/package.json +1 -1
  67. package/packages/nextjs-plugin/package.json +1 -1
  68. package/packages/notification/package.json +1 -1
  69. package/packages/observability/package.json +1 -1
  70. package/packages/okf-indexer/package.json +1 -1
  71. package/packages/paperclip-integration/package.json +1 -1
  72. package/packages/performance-optimizer/package.json +1 -1
  73. package/packages/privilege-broker/package.json +1 -1
  74. package/packages/project-analyzer/package.json +1 -1
  75. package/packages/project-bootstrap/package.json +1 -1
  76. package/packages/projection-engine/package.json +1 -1
  77. package/packages/prompt-compiler/package.json +1 -1
  78. package/packages/prompt-versioning/package.json +1 -1
  79. package/packages/provider-adapter-sdk/package.json +1 -1
  80. package/packages/provider-router/package.json +1 -1
  81. package/packages/provider-selector/package.json +1 -1
  82. package/packages/providers/package.json +1 -1
  83. package/packages/qdrant-skills/package.json +1 -1
  84. package/packages/quota-manager/package.json +1 -1
  85. package/packages/rate-limiter/package.json +1 -1
  86. package/packages/react-vite-plugin/package.json +1 -1
  87. package/packages/release-manager/package.json +1 -1
  88. package/packages/requirement-compiler/package.json +1 -1
  89. package/packages/runtime/package.json +1 -1
  90. package/packages/scheduler/package.json +1 -1
  91. package/packages/scheduler-adapter/package.json +1 -1
  92. package/packages/session/package.json +1 -1
  93. package/packages/session-api/package.json +1 -1
  94. package/packages/session-export/package.json +1 -1
  95. package/packages/shared-context/package.json +1 -1
  96. package/packages/skill-mcp-client/package.json +1 -1
  97. package/packages/skill-registry/package.json +1 -1
  98. package/packages/skills/package.json +1 -1
  99. package/packages/sprint-planner/package.json +1 -1
  100. package/packages/subscription-engine/package.json +1 -1
  101. package/packages/task-compiler/package.json +1 -1
  102. package/packages/telegram/package.json +1 -1
  103. package/packages/tencentdb-memory/package.json +1 -1
  104. package/packages/tencentdb-sync/package.json +1 -1
  105. package/packages/test-data-generator/package.json +1 -1
  106. package/packages/test-generator/package.json +1 -1
  107. package/packages/todo-bd-sync/package.json +1 -1
  108. package/packages/token-estimation/package.json +1 -1
  109. package/packages/token-optimizer/package.json +1 -1
  110. package/packages/trajectory/package.json +1 -1
  111. package/packages/tui/package.json +1 -1
  112. package/packages/types/package.json +1 -1
  113. package/packages/webmcp-tester/package.json +1 -1
  114. package/packages/workflow-events/package.json +1 -1
  115. package/packages/workspace-scanner/package.json +1 -1
  116. package/packages/worktree/package.json +1 -1
  117. package/packages/write-review/package.json +1 -1
package/RULES.md CHANGED
@@ -52,3 +52,22 @@ Follow conventional commits:
52
52
  - `fix:` for bug fixes
53
53
  - `feat:` for new features
54
54
  - `chore:` for maintenance tasks
55
+
56
+ ## SSH Necessity Check
57
+
58
+ Before every SSH invocation:
59
+
60
+ 1. Run `ip address` in the current execution environment.
61
+ 2. Identify the SSH destination, including any hostname or SSH alias.
62
+ 3. Compare its resolved address with this environment's local addresses.
63
+ 4. If the destination is this same server and the required user,
64
+ filesystem, and execution environment match, run the command locally.
65
+ 5. If SSH is still necessary, briefly state why.
66
+
67
+ Do not assume the current terminal is on a different machine.
68
+
69
+ **Automatic enforcement:** The harness intercepts SSH commands and performs this check automatically using `ip -j address` for machine-readable output. If it detects an unnecessary connection back to the current environment, it returns:
70
+
71
+ > SSH destination matches this environment. Run the command locally, or explain why a separate SSH session is required.
72
+
73
+ Do not automatically rewrite SSH commands into local commands. SSH may intentionally use another account, a container boundary, or forwarding. Hostnames and SSH aliases need resolution; comparing the command's hostname directly with `ip address` output is insufficient.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-harness-runtime",
3
- "version": "1.1.320",
3
+ "version": "1.1.322",
4
4
  "description": "[BETA] Codex-style /usage status + autonomous coding harness for pi. Not production ready — expect breaking changes.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/a2a-adapter",
3
- "version": "1.1.320",
3
+ "version": "1.1.322",
4
4
  "type": "module",
5
5
  "description": "Google Agent-to-Agent (A2A) protocol adapter for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAepB;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAiTN;AAmED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAiBtD"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,YAAY,EAKb,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAgBpB;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAuVN;AAmED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAiBtD"}
@@ -11,6 +11,7 @@ import { logError, logInfo } from "./file-logger.js";
11
11
  import { getPolicyStore } from "./policy-store.js";
12
12
  import { renderSystemContract, renderFullRules, } from "./policy-renderer.js";
13
13
  import { classifyToolCall } from "./types.js";
14
+ import { checkSshNecessity } from "./ssh-guard.js";
14
15
  import { randomUUID } from "node:crypto";
15
16
  // ---------------------------------------------------------------------------
16
17
  // Extension Registration
@@ -106,6 +107,22 @@ Use harness_rules to check policy status.
106
107
  };
107
108
  }
108
109
  }
110
+ // Check SSH guard for shell/bash commands
111
+ if ((toolName === "bash" || toolName === "shell" || toolName === "ctx_execute") && input && typeof input === "object") {
112
+ const inputObj = input;
113
+ const command = String(inputObj.command ?? "");
114
+ // Check if this is an SSH command
115
+ if (/\bssh\b/.test(command)) {
116
+ const sshCheck = await checkSshNecessity(command);
117
+ if (!sshCheck.allowed) {
118
+ logInfo("[agent-policy]", `Blocked SSH to local destination: ${sshCheck.message}`);
119
+ return {
120
+ block: true,
121
+ reason: `[SSH GUARD] ${sshCheck.message}`,
122
+ };
123
+ }
124
+ }
125
+ }
109
126
  // Policy satisfied, allow the call
110
127
  return {};
111
128
  }
@@ -261,6 +278,22 @@ Use harness_rules to check policy status.
261
278
  logInfo("[agent-policy]", `Session started: ${sessionId} in ${cwd}`);
262
279
  });
263
280
  // ---------------------------------------------------------------------------
281
+ // context: Request-time policy delivery
282
+ // ---------------------------------------------------------------------------
283
+ // session_compact: Invalidate delivery coverage for next request
284
+ // ---------------------------------------------------------------------------
285
+ //
286
+ // After compaction, clear receipts so the next before_agent_start delivers fresh policy.
287
+ // This ensures the model sees current rules after context recovery.
288
+ //
289
+ pi.on("session_compact", (_event, ctx) => {
290
+ const sessionId = getSessionIdFromCtx(ctx, fallbackSessionId);
291
+ // Clear receipts for this session so next request gets fresh policy delivery
292
+ // This ensures rules are re-delivered after compaction without stale receipt blocking
293
+ store.clearSession(sessionId);
294
+ logInfo("[agent-policy]", `Session compact: cleared receipts for session ${sessionId}`);
295
+ });
296
+ // ---------------------------------------------------------------------------
264
297
  // agent_end: Cleanup
265
298
  // ---------------------------------------------------------------------------
266
299
  pi.on("agent_end", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,EAAgB,EAChB,MAAyB;IAEzB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;QAC9B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;KAClD,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,gBAAgB,CAAC;IACjE,MAAM,iBAAiB,GAAG,UAAU,UAAU,EAAE,EAAE,CAAC;IAEnD,gCAAgC;IAChC,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,kDAAkD;IAClD,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,KAAwB,EAAE,EAAE;QACxD,4DAA4D;QAC5D,MAAM,cAAc,GAAI,KAAuC,CAAC,cAAc,IAAI,EAAE,CAAC;QACrF,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,6CAA6C;IAC7C,8EAA8E;IAE9E,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAA4B,EAAE,GAAG,EAAE,EAAE;QACtE,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAExC,2BAA2B;YAC3B,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CACjC,SAAS,EACT,QAAQ,EACR,eAAe,CAChB,CAAC;YAEF,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAEhD,gCAAgC;YAChC,MAAM,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;YAE/D,oBAAoB;YACpB,OAAO,CAAC,gBAAgB,EAAE,oBAAoB,QAAQ,CAAC,QAAQ,eAAe,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAEnG,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtE,QAAQ,CAAC,gBAAgB,EAAE,0BAA0B,YAAY,EAAE,CAAC,CAAC;YAErE,2DAA2D;YAC3D,MAAM,gBAAgB,GAAG;;;;;CAK9B,CAAC,IAAI,EAAE,CAAC;YAEH,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAC1E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,kDAAkD;IAClD,8EAA8E;IAE9E,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,KAAoB,EAAE,GAAG,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEnD,0BAA0B;QAC1B,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YAC/F,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YAElE,uCAAuC;YACvC,IAAI,MAAM,CAAC,4BAA4B,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChG,MAAM,WAAW,GAAG,OAAO;oBACzB,CAAC,CAAC,qCAAqC,QAAQ,CAAC,QAAQ,cAAc,OAAO,CAAC,QAAQ,GAAG;oBACzF,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,oBAAoB,CAAC;gBAE7D,OAAO,CAAC,gBAAgB,EAAE,WAAW,QAAQ,KAAK,WAAW,EAAE,CAAC,CAAC;gBAEjE,MAAM,MAAM,GAAG,qBAAqB,WAAW,MAAM;oBACnD,uDAAuD;oBACvD,iDAAiD;oBACjD,kEAAkE,QAAQ,CAAC,QAAQ,UAAU;oBAC7F,gDAAgD,CAAC;gBAEnD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACjC,CAAC;YAED,4BAA4B;YAC5B,IAAI,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC;gBACzD,6DAA6D;gBAC7D,MAAM,gBAAgB,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;gBAC9E,IAAI,gBAAgB,EAAE,CAAC;oBACrB,OAAO;wBACL,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,sEAAsE,gBAAgB,EAAE;qBACjG,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,0CAA0C;YAC1C,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,aAAa,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACtH,MAAM,QAAQ,GAAG,KAAgC,CAAC;gBAClD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAE/C,kCAAkC;gBAClC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAClD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACtB,OAAO,CAAC,gBAAgB,EAAE,qCAAqC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;wBACnF,OAAO;4BACL,KAAK,EAAE,IAAI;4BACX,MAAM,EAAE,eAAe,QAAQ,CAAC,OAAO,EAAE;yBAC1C,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,mCAAmC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtE,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,YAAY,EAAE,CAAC,CAAC;YAEnE,wDAAwD;YACxD,sDAAsD;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,oCAAoC;IACpC,8EAA8E;IAE9E,EAAE,CAAC,YAAY,CAAC;QACd,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE;YACX,gDAAgD;YAChD,UAAU;YACV,wEAAwE;YACxE,yEAAyE;YACzE,yDAAyD;SAC1D,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC;oBACzC,WAAW,EAAE,mBAAmB;iBACjC;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oDAAoD;iBAClE;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sCAAsC;iBACpD;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACvC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACZ;QAEV,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG;YACxD,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;YAE9D,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAA2B,CAAC;gBAE1C,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;oBACrB,KAAK,UAAU,EAAE,CAAC;wBAChB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxC,OAAO;4BACL,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,MAAe;oCACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iCAC5C,CAAC;4BACF,OAAO,EAAE,EAAE,QAAQ,EAAE;yBACtB,CAAC;oBACJ,CAAC;oBAED,KAAK,MAAM,EAAE,CAAC;wBACZ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE;4BACvC,MAAM,EAAE,KAAK,CAAC,MAAM;4BACpB,OAAO,EAAE,KAAK,CAAC,OAAO;yBACvB,CAAC,CAAC;wBAEH,0CAA0C;wBAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;wBAC1E,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;4BACvE,KAAK,CAAC,aAAa,CACjB,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CACzC,CAAC;wBACJ,CAAC;wBAED,iCAAiC;wBACjC,IAAI,MAAM,GAAG,mCAAmC,QAAQ,CAAC,QAAQ,KAAK,CAAC;wBACvE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;wBAElC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;4BACpB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gCACtC,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC;gCACnE,MAAM,IAAI,WAAW,OAAO,CAAC,MAAM,IAAI,CAAC;gCACxC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oCACtB,MAAM,IAAI,eAAe,CAAC;gCAC5B,CAAC;gCACD,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;4BAC5C,CAAC;wBACH,CAAC;wBAED,OAAO;4BACL,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,MAAe;oCACrB,IAAI,EAAE,MAAM;iCACb,CAAC;4BACF,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;yBACvC,CAAC;oBACJ,CAAC;oBAED,KAAK,aAAa,EAAE,CAAC;wBACnB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAExC,2CAA2C;wBAC3C,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;4BAC3D,OAAO;gCACL,OAAO,EAAE,CAAC;wCACR,IAAI,EAAE,MAAe;wCACrB,IAAI,EAAE,sCAAsC,KAAK,CAAC,QAAQ,yBAAyB,QAAQ,CAAC,QAAQ,EAAE;qCACvG,CAAC;gCACF,OAAO,EAAE,IAAI;gCACb,OAAO,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;6BACxC,CAAC;wBACJ,CAAC;wBAED,yBAAyB;wBACzB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CACjC,SAAS,EACT,QAAQ,EACR,MAAM,EACN,CAAC,GAAG,CAAC,CAAC,4BAA4B;yBACnC,CAAC;wBAEF,OAAO;4BACL,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,MAAe;oCACrB,IAAI,EAAE,mCAAmC,OAAO,CAAC,QAAQ,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE;iCACvH,CAAC;4BACF,OAAO,EAAE,EAAE,OAAO,EAAE;yBACrB,CAAC;oBACJ,CAAC;oBAED,SAAS,CAAC;wBACR,MAAM,aAAa,GAAI,KAA0B,CAAC,MAAM,CAAC;wBACzD,OAAO;4BACL,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,MAAe;oCACrB,IAAI,EAAE,0BAA0B,aAAa,EAAE;iCAChD,CAAC;4BACF,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;yBACrC,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtE,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,YAAY,EAAE,CAAC,CAAC;gBACpE,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,4BAA4B,YAAY,EAAE;yBACjD,CAAC;oBACF,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;iBACjC,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,8EAA8E;IAC9E,6CAA6C;IAC7C,8EAA8E;IAE9E,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAAyB,EAAE,GAAY,EAAE,EAAE;QACjE,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEnC,OAAO,CAAC,gBAAgB,EAAE,oBAAoB,SAAS,OAAO,GAAG,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,wCAAwC;IACxC,8EAA8E;IAC9E,iEAAiE;IACjE,8EAA8E;IAC9E,EAAE;IACF,yFAAyF;IACzF,oEAAoE;IACpE,EAAE;IAEF,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAA2B,EAAE,GAAY,EAAE,EAAE;QACrE,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAE9D,6EAA6E;QAC7E,sFAAsF;QACtF,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAE9B,OAAO,CAAC,gBAAgB,EAAE,iDAAiD,SAAS,EAAE,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,qBAAqB;IACrB,8EAA8E;IAE9E,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACtB,sDAAsD;IACxD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAC;AAC/D,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,SAAS,mBAAmB,CAAC,GAAY,EAAE,iBAAyB;IAClE,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,cAA6D,CAAC;IACtF,MAAM,SAAS,GAAG,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC;IAC5C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,MAAM,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO,MAAM,EAAE,EAAE,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,EAAE,CAAC;IACnB,CAAC;IAED,0EAA0E;IAC1E,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAY;IACrC,MAAM,MAAM,GAAG,GAA8B,CAAC;IAE9C,IAAI,OAAO,MAAM,EAAE,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,MAAM,EAAE,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,0BAA0B;IAC1B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,wBAAwB,CACrC,IAAa,EACb,eAAwB;IAExB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,CAAC,uCAAuC;IACtD,CAAC;IAED,kDAAkD;IAClD,oDAAoD;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAgB;IAC9C,2EAA2E;IAC3E,4DAA4D;IAC5D,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE1C,uDAAuD;IACvD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzE,mBAAmB,CAAC,EAAE,EAAE;QACtB,gBAAgB;QAChB,4BAA4B,EAAE,IAAI;QAClC,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;AACL,CAAC"}
@@ -32,6 +32,7 @@ export declare class PolicyLoader {
32
32
  load(projectRoot: string): Promise<PolicyManifest>;
33
33
  /**
34
34
  * Load policy for a specific target file (considers scoped rules).
35
+ * Resolves applicable rules from workspace toward the target directory.
35
36
  */
36
37
  loadForTarget(projectRoot: string, targetPath?: string): Promise<PolicyManifest>;
37
38
  /**
@@ -52,8 +53,18 @@ export declare class PolicyLoader {
52
53
  private loadProjectRules;
53
54
  /**
54
55
  * Evaluate trust level for a project.
56
+ *
57
+ * NOTE: Trust should ultimately be determined by host authorization (ctx.isProjectTrusted()),
58
+ * not by file presence alone. This method provides a fallback assessment.
59
+ * The presence of .git or package.json indicates a repository but does not confer trust
60
+ * without host authorization.
55
61
  */
56
62
  private evaluateTrust;
63
+ /**
64
+ * Check if project has explicit trust from host.
65
+ * This should be called with host authorization state.
66
+ */
67
+ hasExplicitTrust(projectRoot: string): boolean;
57
68
  /**
58
69
  * Infer the scope from a relative path.
59
70
  */
@@ -1 +1 @@
1
- {"version":3,"file":"policy-loader.d.ts","sourceRoot":"","sources":["../src/policy-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AAiC/D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,gBAAgB,EAAE,GAAG,CAAC;IACtB,6CAA6C;IAC7C,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,oBAAoB,CAAQ;IACpC,OAAO,CAAC,KAAK,CAA0E;IACvF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IAErC,YAAY,MAAM,EAAE,kBAAkB,EAGrC;IAED;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAWvD;IAED;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAMrF;IAED;;OAEG;IACH,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAM1C;IAED;;OAEG;YACW,aAAa;IAsC3B;;OAEG;YACW,gBAAgB;IAkD9B;;OAEG;YACW,gBAAgB;IA8C9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,OAAO,CAAC,UAAU;IAoBlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS7C;CACF;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAwBjD"}
1
+ {"version":3,"file":"policy-loader.d.ts","sourceRoot":"","sources":["../src/policy-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AAiC/D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,gBAAgB,EAAE,GAAG,CAAC;IACtB,6CAA6C;IAC7C,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,oBAAoB,CAAQ;IACpC,OAAO,CAAC,KAAK,CAA0E;IACvF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IAErC,YAAY,MAAM,EAAE,kBAAkB,EAGrC;IAED;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAWvD;IAED;;;OAGG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAyBrF;IAED;;OAEG;IACH,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAM1C;IAED;;OAEG;YACW,aAAa;IAkC3B;;OAEG;YACW,gBAAgB;IAkD9B;;OAEG;YACW,gBAAgB;IA8C9B;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAmBrB;;;OAGG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE7C;IAED;;OAEG;IACH,OAAO,CAAC,UAAU;IAoBlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS7C;CACF;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAwBjD"}
@@ -60,13 +60,30 @@ export class PolicyLoader {
60
60
  }
61
61
  /**
62
62
  * Load policy for a specific target file (considers scoped rules).
63
+ * Resolves applicable rules from workspace toward the target directory.
63
64
  */
64
65
  async loadForTarget(projectRoot, targetPath) {
65
- // The current loader collects only project-root and ancestor rules, all of
66
- // which apply to every target. Use the same manifest as harness_rules.
67
- // Filtering here mutated the cached manifest, dropped ancestor rules, and
68
- // hashed advisory sources that load() deliberately excludes from revision.
69
- return this.load(projectRoot);
66
+ // Load base manifest first
67
+ const baseManifest = await this.load(projectRoot);
68
+ // If no target path, return base manifest
69
+ if (!targetPath) {
70
+ return baseManifest;
71
+ }
72
+ // Determine target scope by finding the most specific matching rule
73
+ const targetDir = resolve(targetPath);
74
+ // Filter sources to only those applicable to this target
75
+ // Rules apply if their scope is empty (root) or is a prefix of the target path
76
+ const applicableSources = baseManifest.sources.filter(source => {
77
+ if (!source.scope)
78
+ return true; // Root scope applies everywhere
79
+ const scopePath = resolve(projectRoot, source.scope);
80
+ return targetDir.startsWith(scopePath) || targetDir.startsWith(source.scope);
81
+ });
82
+ // Return manifest with filtered sources
83
+ return {
84
+ ...baseManifest,
85
+ sources: applicableSources,
86
+ };
70
87
  }
71
88
  /**
72
89
  * Invalidate cache for a project root.
@@ -88,17 +105,12 @@ export class PolicyLoader {
88
105
  // 1. Load harness-owned rules first (highest priority)
89
106
  const harnessSources = await this.loadHarnessRules();
90
107
  sources.push(...harnessSources);
91
- // 2. Load project rules (if project is trusted)
108
+ // 2. Load project rules
109
+ // Load both AGENTS.md (mandatory if present) and RULES.md (advisory if present)
110
+ const projectSources = await this.loadProjectRules(projectRoot);
111
+ sources.push(...projectSources);
112
+ // Evaluate trust after loading rules (trust is determined by host, not just files)
92
113
  const trust = this.evaluateTrust(projectRoot);
93
- if (trust !== "unknown") {
94
- const projectSources = await this.loadProjectRules(projectRoot);
95
- sources.push(...projectSources);
96
- }
97
- else {
98
- // Project not trusted, but we still try to load AGENTS.md as advisory
99
- const untrustedSources = await this.loadProjectRules(projectRoot, true);
100
- sources.push(...untrustedSources);
101
- }
102
114
  // 3. Compute revision from mandatory sources
103
115
  const mandatorySources = sources.filter(s => s.priority === "mandatory");
104
116
  const revision = this.computeRevision(mandatorySources);
@@ -207,22 +219,35 @@ export class PolicyLoader {
207
219
  }
208
220
  /**
209
221
  * Evaluate trust level for a project.
222
+ *
223
+ * NOTE: Trust should ultimately be determined by host authorization (ctx.isProjectTrusted()),
224
+ * not by file presence alone. This method provides a fallback assessment.
225
+ * The presence of .git or package.json indicates a repository but does not confer trust
226
+ * without host authorization.
210
227
  */
211
228
  evaluateTrust(projectRoot) {
229
+ // Check for trust indicators
212
230
  let trustIndicatorsFound = 0;
213
- let untrustIndicatorsFound = 0;
214
231
  for (const indicator of TRUST_INDICATORS) {
215
232
  if (existsSync(join(projectRoot, indicator))) {
216
233
  trustIndicatorsFound++;
217
234
  }
218
235
  }
219
- // Check for untrusted indicators (e.g., downloaded zip, unknown origin)
220
- // For now, presence of .git or package.json means trusted
236
+ // Trust is "unknown" unless explicitly set by host authorization
237
+ // File presence alone does not determine trust
221
238
  if (trustIndicatorsFound > 0) {
222
- return "trusted";
239
+ // Repository detected, but trust requires host authorization
240
+ return "unknown";
223
241
  }
224
242
  return "unknown";
225
243
  }
244
+ /**
245
+ * Check if project has explicit trust from host.
246
+ * This should be called with host authorization state.
247
+ */
248
+ hasExplicitTrust(projectRoot) {
249
+ return this.evaluateTrust(projectRoot) === "trusted";
250
+ }
226
251
  /**
227
252
  * Infer the scope from a relative path.
228
253
  */
@@ -1 +1 @@
1
- {"version":3,"file":"policy-loader.js","sourceRoot":"","sources":["../src/policy-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-loader.js","sourceRoot":"","sources":["../src/policy-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE9D,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,eAAe,GAAG;IACtB,WAAW,EAAO,gCAAgC;IAClD,UAAU,EAAQ,WAAW;IAC7B,kBAAkB,EAAE,WAAW;IAC/B,WAAW,EAAO,WAAW;IAC7B,iBAAiB,EAAE,wCAAwC;CACnD,CAAC;AAEX;;GAEG;AACH,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC;AAgBnF;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,gBAAgB,CAAM;IACtB,oBAAoB,CAAQ;IAC5B,KAAK,GAAgE,IAAI,GAAG,EAAE,CAAC;IACtE,YAAY,GAAG,IAAI,CAAC,CAAC,oCAAoC;IAE1E,YAAY,MAA0B;QACpC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/D,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,UAAmB;QAC1D,2BAA2B;QAC3B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAElD,0CAA0C;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,oEAAoE;QACpE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAEtC,yDAAyD;QACzD,+EAA+E;QAC/E,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YAC7D,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC,CAAC,gCAAgC;YAChE,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,OAAO;YACL,GAAG,YAAY;YACf,OAAO,EAAE,iBAAiB;SAC3B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,WAAoB;QAClC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC7C,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,uDAAuD;QACvD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAEhC,wBAAwB;QACxB,gFAAgF;QAChF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAEhC,mFAAmF;QACnF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE9C,6CAA6C;QAC7C,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAExD,wBAAwB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEzD,OAAO;YACL,QAAQ;YACR,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC;YACjC,KAAK;YACL,QAAQ;YACR,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC7D,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB;QAC5B,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,8BAA8B;QAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;gBAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAE5C,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBACtC,KAAK,EAAE,EAAE,EAAE,kCAAkC;oBAC7C,QAAQ,EAAE,WAAW;oBACrB,MAAM;oBACN,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;oBACzC,YAAY,EAAE,IAAI;iBACnB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,gBAAgB,KAAK,GAAG,EAAE,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,gCAAgC;QAChC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAClD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBAChD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBAClD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAE5C,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE;wBAC1B,KAAK,EAAE,EAAE,EAAE,aAAa;wBACxB,QAAQ,EAAE,WAAW;wBACrB,MAAM;wBACN,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;wBACzC,YAAY,EAAE,IAAI;qBACnB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,QAAQ,CAAC,gBAAgB,EAAE,wCAAwC,SAAS,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,WAAmB,EACnB,aAAa,GAAG,KAAK;QAErB,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,IAAI,GAAG,GAAG,WAAW,CAAC;QACtB,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,GAAG,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;YACrC,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAErC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;wBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;wBAClD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;wBAE5C,+BAA+B;wBAC/B,MAAM,WAAW,GAAG,QAAQ,KAAK,WAAW,IAAI,CAAC,aAAa,CAAC;wBAC/D,MAAM,KAAK,GAAG,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;wBAE1E,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI,EAAE,QAAQ;4BACd,KAAK;4BACL,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;4BAChD,MAAM;4BACN,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;4BACzC,YAAY,EAAE,KAAK;yBACpB,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,QAAQ,CAAC,gBAAgB,EAAE,+BAA+B,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;oBAChF,CAAC;gBACH,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM;YAC1B,GAAG,GAAG,MAAM,CAAC;YACb,KAAK,EAAE,CAAC;QACV,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACK,aAAa,CAAC,WAAmB;QACvC,6BAA6B;QAC7B,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAC7B,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;YACzC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC7C,oBAAoB,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,+CAA+C;QAC/C,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;YAC7B,6DAA6D;YAC7D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC;IACvD,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,YAAoB;QACrC,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC,CAAC,aAAa;QAC1B,CAAC;QAED,6DAA6D;QAC7D,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;YACxD,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3B,CAAC;QAED,mDAAmD;QACnD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAC/C,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAe;QACtC,OAAO,OAAO;aACX,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAE,yBAAyB;aACjD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAE,iBAAiB;aACzC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,2BAA2B;aACpD,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,8BAA8B;IAC/D,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,OAAe;QACjC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAuB;QAC7C,0CAA0C;QAC1C,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,OAAuB,EAAE,MAAgB;QACjE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC;QACzE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,UAAU,CAAC,CAAC,4BAA4B;QACjD,CAAC;QAED,8DAA8D;QAC9D,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,WAAmB;QACrC,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,IAAY;QAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,2EAA2E;IAC3E,gEAAgE;IAChE,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzD,uDAAuD;IACvD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnD,uBAAuB;IACvB,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzE,6CAA6C;IAC7C,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IAC5F,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,gBAAgB,EAAE,wBAAwB,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,gBAAgB,EAAE,+DAA+D,CAAC,CAAC;IAC7F,CAAC;IAED,OAAO,IAAI,YAAY,CAAC;QACtB,gBAAgB;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * SSH Guard Tool
3
+ *
4
+ * Intercepts SSH commands and checks if the destination matches the local environment.
5
+ * Combines automatic checking with a fresh reminder when the agent proposes SSH.
6
+ */
7
+ /**
8
+ * Result of SSH guard check
9
+ */
10
+ export interface SshGuardResult {
11
+ /** Whether SSH is allowed to proceed */
12
+ allowed: boolean;
13
+ /** Message explaining the decision */
14
+ message: string;
15
+ /** Whether the destination matches local */
16
+ isLocal: boolean;
17
+ /** Resolved destination address */
18
+ destinationAddress?: string;
19
+ }
20
+ /**
21
+ * Check if destination is local
22
+ */
23
+ export declare function checkSshNecessity(command: string): Promise<SshGuardResult>;
24
+ /**
25
+ * Tool definition for SSH guard
26
+ */
27
+ export declare const SshGuardTool: {
28
+ readonly name: "ssh_guard_check";
29
+ readonly description: "Check if SSH destination matches local environment before allowing SSH";
30
+ readonly parameters: {
31
+ readonly type: "object";
32
+ readonly properties: {
33
+ readonly command: {
34
+ readonly type: "string";
35
+ readonly description: "The SSH command to check";
36
+ };
37
+ };
38
+ readonly required: readonly ["command"];
39
+ };
40
+ };
41
+ /**
42
+ * Execute SSH guard check
43
+ */
44
+ export declare function executeSshGuard(args: {
45
+ command: string;
46
+ }, _api: unknown, _context: unknown): Promise<{
47
+ allowed: boolean;
48
+ message: string;
49
+ isLocal: boolean;
50
+ }>;
51
+ //# sourceMappingURL=ssh-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh-guard.d.ts","sourceRoot":"","sources":["../src/ssh-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAkGD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0ChF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;aACvB,IAAI,EAAE,iBAAiB;aACvB,WAAW,EAAE,wEAAwE;aACrF,UAAU;iBACR,IAAI,EAAE,QAAQ;iBACd,UAAU;qBACR,OAAO;yBACL,IAAI,EAAE,QAAQ;yBACd,WAAW,EAAE,0BAA0B;;;iBAG3C,QAAQ,YAAG,SAAS;;CAEd,CAAC;AAEX;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EACzB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAOlE"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * SSH Guard Tool
3
+ *
4
+ * Intercepts SSH commands and checks if the destination matches the local environment.
5
+ * Combines automatic checking with a fresh reminder when the agent proposes SSH.
6
+ */
7
+ import { execSync } from "node:child_process";
8
+ import dns from "node:dns";
9
+ import { promisify } from "node:util";
10
+ const lookupAsync = promisify(dns.lookup);
11
+ /**
12
+ * Parse SSH destination from command line
13
+ */
14
+ function parseSshDestination(command) {
15
+ // Match patterns like:
16
+ // ssh user@host
17
+ // ssh host
18
+ // ssh -p port user@host
19
+ // ssh host.domain.com
20
+ const match = command.match(/ssh\s+(?:-[a-z]+\s+)*((?:[a-zA-Z0-9_-]+\@)?[a-zA-Z0-9._-]+)/);
21
+ return match ? match[1] : null;
22
+ }
23
+ /**
24
+ * Get local IP addresses (cross-platform)
25
+ */
26
+ function getLocalAddresses() {
27
+ try {
28
+ const isWindows = process.platform === "win32";
29
+ let output;
30
+ if (isWindows) {
31
+ // Windows: use ipconfig
32
+ output = execSync("ipconfig", { encoding: "utf8", timeout: 5000, windowsHide: true });
33
+ }
34
+ else {
35
+ // Unix-like: use ip address
36
+ output = execSync("ip -j address 2>/dev/null || ip address 2>/dev/null", {
37
+ encoding: "utf8",
38
+ timeout: 5000,
39
+ });
40
+ }
41
+ const addresses = ["127.0.0.1", "::1", "localhost"];
42
+ // Parse JSON output if available (Linux)
43
+ try {
44
+ const json = JSON.parse(output);
45
+ for (const iface of json) {
46
+ for (const addr of iface.addr_info || []) {
47
+ if (addr.local !== addr.peer) {
48
+ addresses.push(addr.local);
49
+ }
50
+ }
51
+ }
52
+ }
53
+ catch {
54
+ // Fallback to text parsing
55
+ if (isWindows) {
56
+ // Windows ipconfig: parse "IPv4 Address. . . . . . . . . . : X.X.X.X"
57
+ const windowsMatch = output.matchAll(/IPv4[^:]*:\s*([0-9.]+)/gi);
58
+ for (const match of windowsMatch) {
59
+ const ip = match[1];
60
+ if (ip !== "127.0.0.1") {
61
+ addresses.push(ip);
62
+ }
63
+ }
64
+ // Also check for IPv6
65
+ const ipv6Match = output.matchAll(/IPv6[^:]*:\s*([0-9a-f:]+)/gi);
66
+ for (const match of ipv6Match) {
67
+ addresses.push(match[1]);
68
+ }
69
+ }
70
+ else {
71
+ // Unix-like: parse "inet X.X.X.X"
72
+ const ipMatch = output.match(/inet\s+([0-9.]+)/g);
73
+ if (ipMatch) {
74
+ for (const match of ipMatch) {
75
+ const ip = match.replace("inet ", "");
76
+ if (ip !== "127.0.0.1") {
77
+ addresses.push(ip);
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }
83
+ return [...new Set(addresses)];
84
+ }
85
+ catch {
86
+ return ["127.0.0.1", "::1", "localhost"];
87
+ }
88
+ }
89
+ /**
90
+ * Resolve hostname to IP address
91
+ */
92
+ async function resolveHost(hostname) {
93
+ // Skip if already an IP
94
+ if (/^[0-9.]+$/.test(hostname))
95
+ return hostname;
96
+ if (/^[0-9a-f:]+$/i.test(hostname))
97
+ return hostname;
98
+ try {
99
+ const result = await lookupAsync(hostname);
100
+ return result.address;
101
+ }
102
+ catch {
103
+ return null;
104
+ }
105
+ }
106
+ /**
107
+ * Check if destination is local
108
+ */
109
+ export async function checkSshNecessity(command) {
110
+ const destination = parseSshDestination(command);
111
+ if (!destination) {
112
+ return {
113
+ allowed: true,
114
+ message: "Could not parse SSH destination",
115
+ isLocal: false,
116
+ };
117
+ }
118
+ const localAddresses = getLocalAddresses();
119
+ const resolved = await resolveHost(destination);
120
+ if (!resolved) {
121
+ return {
122
+ allowed: true,
123
+ message: `Could not resolve SSH destination: ${destination}`,
124
+ isLocal: false,
125
+ destinationAddress: undefined,
126
+ };
127
+ }
128
+ const isLocal = localAddresses.some((addr) => addr === resolved || resolved === addr);
129
+ if (isLocal) {
130
+ return {
131
+ allowed: false,
132
+ message: `SSH destination ${destination} (${resolved}) matches this environment (local addresses: ${localAddresses.join(", ")}). Run the command locally, or explain why a separate SSH session is required.`,
133
+ isLocal: true,
134
+ destinationAddress: resolved,
135
+ };
136
+ }
137
+ return {
138
+ allowed: true,
139
+ message: `SSH to ${destination} (${resolved}) appears necessary - destination differs from local addresses`,
140
+ isLocal: false,
141
+ destinationAddress: resolved,
142
+ };
143
+ }
144
+ /**
145
+ * Tool definition for SSH guard
146
+ */
147
+ export const SshGuardTool = {
148
+ name: "ssh_guard_check",
149
+ description: "Check if SSH destination matches local environment before allowing SSH",
150
+ parameters: {
151
+ type: "object",
152
+ properties: {
153
+ command: {
154
+ type: "string",
155
+ description: "The SSH command to check",
156
+ },
157
+ },
158
+ required: ["command"],
159
+ },
160
+ };
161
+ /**
162
+ * Execute SSH guard check
163
+ */
164
+ export async function executeSshGuard(args, _api, _context) {
165
+ const result = await checkSshNecessity(args.command);
166
+ return {
167
+ allowed: result.allowed,
168
+ message: result.message,
169
+ isLocal: result.isLocal,
170
+ };
171
+ }
172
+ //# sourceMappingURL=ssh-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh-guard.js","sourceRoot":"","sources":["../src/ssh-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAgB1C;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAe;IAC1C,uBAAuB;IACvB,gBAAgB;IAChB,WAAW;IACX,wBAAwB;IACxB,sBAAsB;IACtB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC3F,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;QAC/C,IAAI,MAAc,CAAC;QAEnB,IAAI,SAAS,EAAE,CAAC;YACd,wBAAwB;YACxB,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,4BAA4B;YAC5B,MAAM,GAAG,QAAQ,CAAC,qDAAqD,EAAE;gBACvE,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAa,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAE9D,yCAAyC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;gBACzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;oBACzC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC7B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;YAC3B,IAAI,SAAS,EAAE,CAAC;gBACd,sEAAsE;gBACtE,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;gBACjE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;oBACjC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;wBACvB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;gBACD,sBAAsB;gBACtB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;gBACjE,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;oBAC9B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,kCAAkC;gBAClC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAClD,IAAI,OAAO,EAAE,CAAC;oBACZ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;wBAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wBACtC,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;4BACvB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,QAAgB;IACzC,wBAAwB;IACxB,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChD,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe;IACrD,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,iCAAiC;YAC1C,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,sCAAsC,WAAW,EAAE;YAC5D,OAAO,EAAE,KAAK;YACd,kBAAkB,EAAE,SAAS;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CACjC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,CACjD,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,mBAAmB,WAAW,KAAK,QAAQ,gDAAgD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,gFAAgF;YAC7M,OAAO,EAAE,IAAI;YACb,kBAAkB,EAAE,QAAQ;SAC7B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,UAAU,WAAW,KAAK,QAAQ,gEAAgE;QAC3G,OAAO,EAAE,KAAK;QACd,kBAAkB,EAAE,QAAQ;KAC7B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,wEAAwE;IACrF,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;aACxC;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACO,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAyB,EACzB,IAAa,EACb,QAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/agent-policy",
3
- "version": "1.1.320",
3
+ "version": "1.1.322",
4
4
  "description": "Agent policy runtime for pi-harness - enforces mandatory rule delivery and mutation gating",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -12,7 +12,10 @@ import type {
12
12
  ToolCallEvent,
13
13
  SessionStartEvent,
14
14
  BeforeAgentStartEvent,
15
+ SessionCompactEvent,
15
16
  } from "@earendil-works/pi-coding-agent";
17
+
18
+
16
19
  import type {
17
20
  AgentPolicyConfig,
18
21
  HarnessRulesInput,
@@ -333,6 +336,26 @@ Use harness_rules to check policy status.
333
336
  logInfo("[agent-policy]", `Session started: ${sessionId} in ${cwd}`);
334
337
  });
335
338
 
339
+ // ---------------------------------------------------------------------------
340
+ // context: Request-time policy delivery
341
+ // ---------------------------------------------------------------------------
342
+ // session_compact: Invalidate delivery coverage for next request
343
+ // ---------------------------------------------------------------------------
344
+ //
345
+ // After compaction, clear receipts so the next before_agent_start delivers fresh policy.
346
+ // This ensures the model sees current rules after context recovery.
347
+ //
348
+
349
+ pi.on("session_compact", (_event: SessionCompactEvent, ctx: unknown) => {
350
+ const sessionId = getSessionIdFromCtx(ctx, fallbackSessionId);
351
+
352
+ // Clear receipts for this session so next request gets fresh policy delivery
353
+ // This ensures rules are re-delivered after compaction without stale receipt blocking
354
+ store.clearSession(sessionId);
355
+
356
+ logInfo("[agent-policy]", `Session compact: cleared receipts for session ${sessionId}`);
357
+ });
358
+
336
359
  // ---------------------------------------------------------------------------
337
360
  // agent_end: Cleanup
338
361
  // ---------------------------------------------------------------------------