pi-codex-auto-review 0.1.4 → 0.2.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 (127) hide show
  1. package/NOTICE +4 -2
  2. package/README.ko.md +85 -0
  3. package/README.md +51 -52
  4. package/dist/approval-commands.d.ts +3 -3
  5. package/dist/approval-commands.js +112 -58
  6. package/dist/approval-commands.js.map +1 -1
  7. package/dist/approval-settings.d.ts +1 -1
  8. package/dist/approval-settings.js +17 -10
  9. package/dist/approval-settings.js.map +1 -1
  10. package/dist/approvals.d.ts +9 -9
  11. package/dist/approvals.js +195 -75
  12. package/dist/approvals.js.map +1 -1
  13. package/dist/audit.d.ts +1 -1
  14. package/dist/audit.js +37 -13
  15. package/dist/audit.js.map +1 -1
  16. package/dist/cli.js +60 -31
  17. package/dist/cli.js.map +1 -1
  18. package/dist/context-files.d.ts +2 -2
  19. package/dist/context-files.js +40 -19
  20. package/dist/context-files.js.map +1 -1
  21. package/dist/contracts.d.ts +39 -39
  22. package/dist/contracts.js +117 -51
  23. package/dist/contracts.js.map +1 -1
  24. package/dist/index.d.ts +9 -9
  25. package/dist/index.js +145 -48
  26. package/dist/index.js.map +1 -1
  27. package/dist/pi-host.js +3 -3
  28. package/dist/pi-host.js.map +1 -1
  29. package/dist/policy/domains.js +17 -7
  30. package/dist/policy/domains.js.map +1 -1
  31. package/dist/policy/index.d.ts +7 -7
  32. package/dist/policy/index.js +379 -141
  33. package/dist/policy/index.js.map +1 -1
  34. package/dist/policy/paths.js +31 -18
  35. package/dist/policy/paths.js.map +1 -1
  36. package/dist/policy/rule-engine.d.ts +2 -0
  37. package/dist/policy/rule-engine.js +283 -0
  38. package/dist/policy/rule-engine.js.map +1 -0
  39. package/dist/policy/rule-types.d.ts +30 -0
  40. package/dist/policy/rule-types.js +2 -0
  41. package/dist/policy/rule-types.js.map +1 -0
  42. package/dist/policy/rules-sync.d.ts +1 -0
  43. package/dist/policy/rules-sync.js +14 -0
  44. package/dist/policy/rules-sync.js.map +1 -0
  45. package/dist/policy/rules-worker.d.ts +1 -0
  46. package/dist/policy/rules-worker.js +14 -0
  47. package/dist/policy/rules-worker.js.map +1 -0
  48. package/dist/policy/rules.d.ts +4 -31
  49. package/dist/policy/rules.js +126 -38
  50. package/dist/policy/rules.js.map +1 -1
  51. package/dist/policy/shell.js +70 -41
  52. package/dist/policy/shell.js.map +1 -1
  53. package/dist/policy/starlark/builtins.d.ts +6 -0
  54. package/dist/policy/starlark/builtins.js +764 -0
  55. package/dist/policy/starlark/builtins.js.map +1 -0
  56. package/dist/policy/starlark/evaluator.d.ts +18 -0
  57. package/dist/policy/starlark/evaluator.js +518 -0
  58. package/dist/policy/starlark/evaluator.js.map +1 -0
  59. package/dist/policy/starlark/lexer.d.ts +14 -0
  60. package/dist/policy/starlark/lexer.js +189 -0
  61. package/dist/policy/starlark/lexer.js.map +1 -0
  62. package/dist/policy/starlark/parser.d.ts +140 -0
  63. package/dist/policy/starlark/parser.js +508 -0
  64. package/dist/policy/starlark/parser.js.map +1 -0
  65. package/dist/policy/starlark/validation.d.ts +4 -0
  66. package/dist/policy/starlark/validation.js +183 -0
  67. package/dist/policy/starlark/validation.js.map +1 -0
  68. package/dist/policy/starlark/values.d.ts +46 -0
  69. package/dist/policy/starlark/values.js +363 -0
  70. package/dist/policy/starlark/values.js.map +1 -0
  71. package/dist/reports.d.ts +1 -1
  72. package/dist/reports.js +66 -30
  73. package/dist/reports.js.map +1 -1
  74. package/dist/review/context.d.ts +3 -3
  75. package/dist/review/context.js +207 -71
  76. package/dist/review/context.js.map +1 -1
  77. package/dist/review/investigation.d.ts +2 -2
  78. package/dist/review/investigation.js +57 -16
  79. package/dist/review/investigation.js.map +1 -1
  80. package/dist/review/lifecycle.d.ts +1 -1
  81. package/dist/review/lifecycle.js +70 -27
  82. package/dist/review/lifecycle.js.map +1 -1
  83. package/dist/review/policy.js +10 -5
  84. package/dist/review/policy.js.map +1 -1
  85. package/dist/review/upstream-policy.js +1 -1
  86. package/dist/review/upstream-policy.js.map +1 -1
  87. package/dist/review/user-input.d.ts +3 -3
  88. package/dist/review/user-input.js +39 -16
  89. package/dist/review/user-input.js.map +1 -1
  90. package/dist/reviewer.d.ts +8 -8
  91. package/dist/reviewer.js +253 -75
  92. package/dist/reviewer.js.map +1 -1
  93. package/dist/signals.js +24 -9
  94. package/dist/signals.js.map +1 -1
  95. package/dist/startup.d.ts +4 -4
  96. package/dist/startup.js +139 -41
  97. package/dist/startup.js.map +1 -1
  98. package/dist/tools/controller.d.ts +16 -12
  99. package/dist/tools/controller.js +432 -121
  100. package/dist/tools/controller.js.map +1 -1
  101. package/dist/tools/environment.js +3 -1
  102. package/dist/tools/environment.js.map +1 -1
  103. package/dist/tools/executor.d.ts +1 -1
  104. package/dist/tools/executor.js +45 -28
  105. package/dist/tools/executor.js.map +1 -1
  106. package/dist/tools/external.d.ts +8 -8
  107. package/dist/tools/external.js +22 -11
  108. package/dist/tools/external.js.map +1 -1
  109. package/dist/tools/mcp.d.ts +6 -6
  110. package/dist/tools/mcp.js +208 -80
  111. package/dist/tools/mcp.js.map +1 -1
  112. package/dist/tools/mutation-queue.js.map +1 -1
  113. package/docs/publishing.ko.md +114 -0
  114. package/docs/publishing.md +49 -47
  115. package/docs/security/dependencies.ko.md +54 -0
  116. package/docs/security/dependencies.md +27 -26
  117. package/docs/testing/auto-review-protection.ko.md +158 -0
  118. package/docs/testing/auto-review-protection.md +104 -99
  119. package/docs/usage.ko.md +242 -0
  120. package/docs/usage.md +125 -121
  121. package/package.json +106 -95
  122. package/dist/native/darwin-arm64/artifact.json +0 -5
  123. package/dist/native/darwin-arm64/pi-guard-execpolicy +0 -0
  124. package/dist/native/linux-x64/artifact.json +0 -5
  125. package/dist/native/linux-x64/pi-guard-execpolicy +0 -0
  126. package/native/execpolicy/LICENSE +0 -201
  127. package/native/execpolicy/NOTICE +0 -6
@@ -1,18 +1,28 @@
1
- import { isIP } from 'node:net';
1
+ import { isIP } from "node:net";
2
2
  export function normalizeHost(host) {
3
- const value = host.toLowerCase().replace(/\.+$/, '');
4
- const literal = value.startsWith('[') && value.endsWith(']') ? value.slice(1, -1) : value;
5
- return isIP(literal) === 6 ? new URL(`http://[${literal}]/`).hostname.slice(1, -1) : value;
3
+ const value = host.toLowerCase().replace(/\.+$/, "");
4
+ const literal = value.startsWith("[") && value.endsWith("]")
5
+ ? value.slice(1, -1)
6
+ : value;
7
+ return isIP(literal) === 6
8
+ ? new URL(`http://[${literal}]/`).hostname.slice(1, -1)
9
+ : value;
6
10
  }
7
11
  export function isNetworkHost(host) {
8
- return typeof host === 'string' && (isIP(normalizeHost(host)) === 6 || /^[a-z0-9][a-z0-9.-]*$/i.test(host));
12
+ return (typeof host === "string" &&
13
+ (isIP(normalizeHost(host)) === 6 || /^[a-z0-9][a-z0-9.-]*$/i.test(host)));
9
14
  }
10
15
  export function isDomainPattern(pattern) {
11
- return typeof pattern === 'string' && (isNetworkHost(pattern) || pattern.startsWith('*.') && /^[a-z0-9][a-z0-9.-]*$/i.test(pattern.slice(2)));
16
+ return (typeof pattern === "string" &&
17
+ (isNetworkHost(pattern) ||
18
+ (pattern.startsWith("*.") &&
19
+ /^[a-z0-9][a-z0-9.-]*$/i.test(pattern.slice(2)))));
12
20
  }
13
21
  /** Shared with the native configuration so policy and transport agree on subdomains. */
14
22
  export function matchesDomain(host, pattern) {
15
23
  const value = normalizeHost(host), rule = normalizeHost(pattern);
16
- return rule.startsWith('*.') ? value.endsWith(rule.slice(1)) && value !== rule.slice(2) : value === rule;
24
+ return rule.startsWith("*.")
25
+ ? value.endsWith(rule.slice(1)) && value !== rule.slice(2)
26
+ : value === rule;
17
27
  }
18
28
  //# sourceMappingURL=domains.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/policy/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5F,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9G,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChJ,CAAC;AACD,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACzD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;AAC3G,CAAC"}
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/policy/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,MAAM,UAAU,aAAa,CAAC,IAAY;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GACT,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACxC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC;IAChB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACtB,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,KAAK,CAAC;AAChB,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,IAAa;IACvC,OAAO,CACH,OAAO,IAAI,KAAK,QAAQ;QACxB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3E,CAAC;AACN,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC5C,OAAO,CACH,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,aAAa,CAAC,OAAO,CAAC;YACnB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBACrB,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAC;AACN,CAAC;AACD,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACvD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,EAC7B,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACxB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;AACzB,CAAC"}
@@ -1,13 +1,13 @@
1
- import { type GuardAction, type PermissionProfile, type PolicyDecision, type ApprovalPolicy } from '../contracts.js';
2
- import { canonicalPath, isWithin, resolveToolPath } from './paths.js';
3
- import { analyzeShell, matchesPrefix } from './shell.js';
4
- export { canonicalPath, isWithin, analyzeShell, matchesPrefix, resolveToolPath };
1
+ import { type ApprovalPolicy, type GuardAction, type PermissionProfile, type PolicyDecision } from "../contracts.js";
2
+ import { canonicalPath, isWithin, resolveToolPath } from "./paths.js";
3
+ import { analyzeShell, matchesPrefix } from "./shell.js";
4
+ export { analyzeShell, canonicalPath, isWithin, matchesPrefix, resolveToolPath, };
5
5
  export interface CommandRule {
6
6
  readonly prefix: readonly string[];
7
- readonly decision: 'allow' | 'ask' | 'deny';
7
+ readonly decision: "allow" | "ask" | "deny";
8
8
  }
9
9
  export interface GuardSettings {
10
- readonly mode: 'read-only' | 'workspace-write';
10
+ readonly mode: "read-only" | "workspace-write";
11
11
  readonly commandRules: readonly CommandRule[];
12
12
  readonly allowedDomains: readonly string[];
13
13
  readonly reviewTimeoutMs: number;
@@ -15,7 +15,7 @@ export interface GuardSettings {
15
15
  readonly executionTimeoutSeconds: number;
16
16
  readonly trustedTools: readonly string[];
17
17
  readonly approvalPolicy: ApprovalPolicy;
18
- readonly approvalsReviewer: 'auto_review' | 'user';
18
+ readonly approvalsReviewer: "auto_review" | "user";
19
19
  readonly reviewModel: {
20
20
  readonly provider: string;
21
21
  readonly id: string;