@catp-protocol/cli 0.5.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/adapters/codex.d.ts +3 -0
  2. package/dist/adapters/codex.d.ts.map +1 -0
  3. package/dist/adapters/codex.js +56 -0
  4. package/dist/adapters/codex.js.map +1 -0
  5. package/dist/adapters/index.d.ts.map +1 -1
  6. package/dist/adapters/index.js +2 -1
  7. package/dist/adapters/index.js.map +1 -1
  8. package/dist/audit/logger.d.ts +5 -1
  9. package/dist/audit/logger.d.ts.map +1 -1
  10. package/dist/audit/logger.js +73 -16
  11. package/dist/audit/logger.js.map +1 -1
  12. package/dist/audit/paths.d.ts +1 -0
  13. package/dist/audit/paths.d.ts.map +1 -1
  14. package/dist/audit/paths.js +7 -1
  15. package/dist/audit/paths.js.map +1 -1
  16. package/dist/audit/verifier.d.ts.map +1 -1
  17. package/dist/audit/verifier.js +21 -1
  18. package/dist/audit/verifier.js.map +1 -1
  19. package/dist/cli.js +11 -6
  20. package/dist/cli.js.map +1 -1
  21. package/dist/commands/anchor.d.ts +7 -1
  22. package/dist/commands/anchor.d.ts.map +1 -1
  23. package/dist/commands/anchor.js +29 -52
  24. package/dist/commands/anchor.js.map +1 -1
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +8 -2
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/log.d.ts +2 -0
  29. package/dist/commands/log.d.ts.map +1 -1
  30. package/dist/commands/log.js +3 -0
  31. package/dist/commands/log.js.map +1 -1
  32. package/dist/commands/receipt.d.ts.map +1 -1
  33. package/dist/commands/receipt.js +12 -1
  34. package/dist/commands/receipt.js.map +1 -1
  35. package/dist/enforcement/core.js +2 -2
  36. package/dist/enforcement/core.js.map +1 -1
  37. package/dist/hook/post.d.ts.map +1 -1
  38. package/dist/hook/post.js +2 -4
  39. package/dist/hook/post.js.map +1 -1
  40. package/dist/hook/pre.d.ts +12 -0
  41. package/dist/hook/pre.d.ts.map +1 -1
  42. package/dist/hook/pre.js +54 -17
  43. package/dist/hook/pre.js.map +1 -1
  44. package/dist/policy/loader.d.ts.map +1 -1
  45. package/dist/policy/loader.js +15 -7
  46. package/dist/policy/loader.js.map +1 -1
  47. package/dist/policy/types.d.ts +3 -0
  48. package/dist/policy/types.d.ts.map +1 -1
  49. package/package.json +6 -4
  50. package/dist/adapters/registry.d.ts +0 -5
  51. package/dist/adapters/registry.d.ts.map +0 -1
  52. package/dist/adapters/registry.js +0 -18
  53. package/dist/adapters/registry.js.map +0 -1
  54. package/dist/commands/event.d.ts +0 -18
  55. package/dist/commands/event.d.ts.map +0 -1
  56. package/dist/commands/event.js +0 -78
  57. package/dist/commands/event.js.map +0 -1
  58. package/dist/runtime/validate.d.ts +0 -8
  59. package/dist/runtime/validate.d.ts.map +0 -1
  60. package/dist/runtime/validate.js +0 -43
  61. package/dist/runtime/validate.js.map +0 -1
@@ -1,18 +0,0 @@
1
- import type { ToolAction } from "../runtime/types.js";
2
- interface ValidateEventOptions {
3
- file?: string;
4
- adapter?: string;
5
- phase?: string;
6
- }
7
- interface EventValidationResult {
8
- ok: boolean;
9
- errors: string[];
10
- action?: ToolAction;
11
- }
12
- export declare function cmdValidateEvent(opts: ValidateEventOptions): Promise<void>;
13
- export declare function cmdNormalizeEvent(opts: ValidateEventOptions): Promise<void>;
14
- export declare function cmdListAdapters(): void;
15
- export declare function validateEventPayload(payload: unknown, opts?: Pick<ValidateEventOptions, "adapter" | "phase">): EventValidationResult;
16
- export declare function formatEventValidationSummary(result: EventValidationResult): string;
17
- export {};
18
- //# sourceMappingURL=event.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/commands/event.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGpE,UAAU,oBAAoB;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,qBAAqB;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjF;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,OAAO,CAAM,GACzD,qBAAqB,CASvB;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAYlF"}
@@ -1,78 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
- import { adaptRuntimePayload, listRuntimeAdapters } from "../adapters/registry.js";
3
- import { validateToolAction } from "../runtime/validate.js";
4
- export async function cmdValidateEvent(opts) {
5
- const result = validateEventPayload(await readEventJson(opts), opts);
6
- if (!result.ok) {
7
- process.stderr.write(formatEventValidationSummary(result));
8
- process.exit(1);
9
- }
10
- process.stdout.write(formatEventValidationSummary(result));
11
- }
12
- export async function cmdNormalizeEvent(opts) {
13
- const result = validateEventPayload(await readEventJson(opts), opts);
14
- if (!result.ok || !result.action) {
15
- process.stderr.write(formatEventValidationSummary(result));
16
- process.exit(1);
17
- }
18
- process.stdout.write(`${JSON.stringify(result.action, null, 2)}\n`);
19
- }
20
- export function cmdListAdapters() {
21
- process.stdout.write(`${listRuntimeAdapters().join("\n")}\n`);
22
- }
23
- export function validateEventPayload(payload, opts = {}) {
24
- const action = adaptPayload(payload, opts);
25
- if (!action) {
26
- return {
27
- ok: false,
28
- errors: [`unsupported or invalid adapter payload: ${opts.adapter ?? "none"}`],
29
- };
30
- }
31
- return validateToolAction(action);
32
- }
33
- export function formatEventValidationSummary(result) {
34
- if (!result.ok) {
35
- return `✗ event invalid\n${result.errors.map((e) => ` ${e}`).join("\n")}\n`;
36
- }
37
- const action = result.action;
38
- return [
39
- "✓ event valid",
40
- ` runtime: ${action?.runtime}`,
41
- ` phase: ${action?.phase}`,
42
- ` tool: ${action?.toolName}`,
43
- ` inputKeys: ${Object.keys(action?.toolInput ?? {}).length}`,
44
- ].join("\n") + "\n";
45
- }
46
- function adaptPayload(payload, opts) {
47
- if (!opts.adapter) {
48
- return validateToolAction(payload).action ?? null;
49
- }
50
- if (opts.adapter !== "claude-code") {
51
- return null;
52
- }
53
- const phase = parsePhase(opts.phase);
54
- return adaptRuntimePayload(opts.adapter, phase, payload);
55
- }
56
- function parsePhase(value) {
57
- return value === "post" ? "post" : "pre";
58
- }
59
- async function readEventJson(opts) {
60
- try {
61
- const raw = opts.file ? readFileSync(opts.file, "utf8") : await readStdin();
62
- return JSON.parse(raw);
63
- }
64
- catch (err) {
65
- process.stderr.write(`catp: invalid event JSON: ${err.message}\n`);
66
- process.exit(1);
67
- }
68
- }
69
- async function readStdin() {
70
- return new Promise((resolve) => {
71
- let data = "";
72
- process.stdin.setEncoding("utf8");
73
- process.stdin.on("data", (chunk) => { data += chunk; });
74
- process.stdin.on("end", () => resolve(data));
75
- process.stdin.on("error", () => resolve(""));
76
- });
77
- }
78
- //# sourceMappingURL=event.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/commands/event.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { ToolAction } from "./types.js";
2
- export interface ToolActionValidation {
3
- ok: boolean;
4
- errors: string[];
5
- action?: ToolAction;
6
- }
7
- export declare function validateToolAction(value: unknown): ToolActionValidation;
8
- //# sourceMappingURL=validate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/runtime/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAsCvE"}
@@ -1,43 +0,0 @@
1
- export function validateToolAction(value) {
2
- const errors = [];
3
- if (!isRecord(value)) {
4
- return { ok: false, errors: ["event must be an object"] };
5
- }
6
- if (!isNonEmptyString(value.runtime)) {
7
- errors.push("runtime must be a non-empty string");
8
- }
9
- if (value.phase !== "pre" && value.phase !== "post") {
10
- errors.push('phase must be "pre" or "post"');
11
- }
12
- if (!isNonEmptyString(value.toolName)) {
13
- errors.push("toolName must be a non-empty string");
14
- }
15
- if (!isRecord(value.toolInput)) {
16
- errors.push("toolInput must be an object");
17
- }
18
- if (value.sessionId !== undefined && typeof value.sessionId !== "string") {
19
- errors.push("sessionId must be a string when present");
20
- }
21
- if (errors.length > 0) {
22
- return { ok: false, errors };
23
- }
24
- return {
25
- ok: true,
26
- errors: [],
27
- action: {
28
- runtime: value.runtime,
29
- phase: value.phase,
30
- sessionId: value.sessionId,
31
- toolName: value.toolName,
32
- toolInput: value.toolInput,
33
- raw: value.raw,
34
- },
35
- };
36
- }
37
- function isNonEmptyString(value) {
38
- return typeof value === "string" && value.length > 0;
39
- }
40
- function isRecord(value) {
41
- return !!value && typeof value === "object" && !Array.isArray(value);
42
- }
43
- //# sourceMappingURL=validate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/runtime/validate.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,EAAE;QACV,MAAM,EAAE;YACN,OAAO,EAAE,KAAK,CAAC,OAAiB;YAChC,KAAK,EAAE,KAAK,CAAC,KAAqB;YAClC,SAAS,EAAE,KAAK,CAAC,SAA+B;YAChD,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,SAAS,EAAE,KAAK,CAAC,SAAoC;YACrD,GAAG,EAAE,KAAK,CAAC,GAAG;SACf;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC"}