@praveencs/agent 0.1.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 (279) hide show
  1. package/README.md +1007 -0
  2. package/bin/agent.ts +6 -0
  3. package/dist/bin/agent.d.ts +3 -0
  4. package/dist/bin/agent.d.ts.map +1 -0
  5. package/dist/bin/agent.js +5 -0
  6. package/dist/bin/agent.js.map +1 -0
  7. package/dist/src/cli/commands/config.d.ts +3 -0
  8. package/dist/src/cli/commands/config.d.ts.map +1 -0
  9. package/dist/src/cli/commands/config.js +54 -0
  10. package/dist/src/cli/commands/config.js.map +1 -0
  11. package/dist/src/cli/commands/daemon.d.ts +3 -0
  12. package/dist/src/cli/commands/daemon.d.ts.map +1 -0
  13. package/dist/src/cli/commands/daemon.js +43 -0
  14. package/dist/src/cli/commands/daemon.js.map +1 -0
  15. package/dist/src/cli/commands/doctor.d.ts +3 -0
  16. package/dist/src/cli/commands/doctor.d.ts.map +1 -0
  17. package/dist/src/cli/commands/doctor.js +84 -0
  18. package/dist/src/cli/commands/doctor.js.map +1 -0
  19. package/dist/src/cli/commands/init.d.ts +8 -0
  20. package/dist/src/cli/commands/init.d.ts.map +1 -0
  21. package/dist/src/cli/commands/init.js +112 -0
  22. package/dist/src/cli/commands/init.js.map +1 -0
  23. package/dist/src/cli/commands/mcp.d.ts +3 -0
  24. package/dist/src/cli/commands/mcp.d.ts.map +1 -0
  25. package/dist/src/cli/commands/mcp.js +26 -0
  26. package/dist/src/cli/commands/mcp.js.map +1 -0
  27. package/dist/src/cli/commands/plan.d.ts +3 -0
  28. package/dist/src/cli/commands/plan.d.ts.map +1 -0
  29. package/dist/src/cli/commands/plan.js +220 -0
  30. package/dist/src/cli/commands/plan.js.map +1 -0
  31. package/dist/src/cli/commands/run.d.ts +3 -0
  32. package/dist/src/cli/commands/run.d.ts.map +1 -0
  33. package/dist/src/cli/commands/run.js +192 -0
  34. package/dist/src/cli/commands/run.js.map +1 -0
  35. package/dist/src/cli/commands/skills.d.ts +3 -0
  36. package/dist/src/cli/commands/skills.d.ts.map +1 -0
  37. package/dist/src/cli/commands/skills.js +143 -0
  38. package/dist/src/cli/commands/skills.js.map +1 -0
  39. package/dist/src/cli/index.d.ts +6 -0
  40. package/dist/src/cli/index.d.ts.map +1 -0
  41. package/dist/src/cli/index.js +33 -0
  42. package/dist/src/cli/index.js.map +1 -0
  43. package/dist/src/cli/ui/progress.d.ts +17 -0
  44. package/dist/src/cli/ui/progress.d.ts.map +1 -0
  45. package/dist/src/cli/ui/progress.js +43 -0
  46. package/dist/src/cli/ui/progress.js.map +1 -0
  47. package/dist/src/cli/ui/prompt.d.ts +10 -0
  48. package/dist/src/cli/ui/prompt.d.ts.map +1 -0
  49. package/dist/src/cli/ui/prompt.js +53 -0
  50. package/dist/src/cli/ui/prompt.js.map +1 -0
  51. package/dist/src/cli/ui/report.d.ts +6 -0
  52. package/dist/src/cli/ui/report.d.ts.map +1 -0
  53. package/dist/src/cli/ui/report.js +81 -0
  54. package/dist/src/cli/ui/report.js.map +1 -0
  55. package/dist/src/config/defaults.d.ts +3 -0
  56. package/dist/src/config/defaults.d.ts.map +1 -0
  57. package/dist/src/config/defaults.js +82 -0
  58. package/dist/src/config/defaults.js.map +1 -0
  59. package/dist/src/config/loader.d.ts +33 -0
  60. package/dist/src/config/loader.d.ts.map +1 -0
  61. package/dist/src/config/loader.js +161 -0
  62. package/dist/src/config/loader.js.map +1 -0
  63. package/dist/src/config/schema.d.ts +530 -0
  64. package/dist/src/config/schema.d.ts.map +1 -0
  65. package/dist/src/config/schema.js +97 -0
  66. package/dist/src/config/schema.js.map +1 -0
  67. package/dist/src/config/secrets.d.ts +31 -0
  68. package/dist/src/config/secrets.d.ts.map +1 -0
  69. package/dist/src/config/secrets.js +98 -0
  70. package/dist/src/config/secrets.js.map +1 -0
  71. package/dist/src/daemon/manager.d.ts +28 -0
  72. package/dist/src/daemon/manager.d.ts.map +1 -0
  73. package/dist/src/daemon/manager.js +77 -0
  74. package/dist/src/daemon/manager.js.map +1 -0
  75. package/dist/src/daemon/scheduler.d.ts +6 -0
  76. package/dist/src/daemon/scheduler.d.ts.map +1 -0
  77. package/dist/src/daemon/scheduler.js +82 -0
  78. package/dist/src/daemon/scheduler.js.map +1 -0
  79. package/dist/src/daemon/watcher.d.ts +16 -0
  80. package/dist/src/daemon/watcher.d.ts.map +1 -0
  81. package/dist/src/daemon/watcher.js +59 -0
  82. package/dist/src/daemon/watcher.js.map +1 -0
  83. package/dist/src/engine/executor.d.ts +51 -0
  84. package/dist/src/engine/executor.d.ts.map +1 -0
  85. package/dist/src/engine/executor.js +189 -0
  86. package/dist/src/engine/executor.js.map +1 -0
  87. package/dist/src/engine/rollback.d.ts +37 -0
  88. package/dist/src/engine/rollback.d.ts.map +1 -0
  89. package/dist/src/engine/rollback.js +95 -0
  90. package/dist/src/engine/rollback.js.map +1 -0
  91. package/dist/src/engine/types.d.ts +31 -0
  92. package/dist/src/engine/types.d.ts.map +1 -0
  93. package/dist/src/engine/types.js +2 -0
  94. package/dist/src/engine/types.js.map +1 -0
  95. package/dist/src/engine/verification.d.ts +27 -0
  96. package/dist/src/engine/verification.d.ts.map +1 -0
  97. package/dist/src/engine/verification.js +75 -0
  98. package/dist/src/engine/verification.js.map +1 -0
  99. package/dist/src/index.d.ts +17 -0
  100. package/dist/src/index.d.ts.map +1 -0
  101. package/dist/src/index.js +13 -0
  102. package/dist/src/index.js.map +1 -0
  103. package/dist/src/llm/cache.d.ts +20 -0
  104. package/dist/src/llm/cache.d.ts.map +1 -0
  105. package/dist/src/llm/cache.js +45 -0
  106. package/dist/src/llm/cache.js.map +1 -0
  107. package/dist/src/llm/providers/anthropic.d.ts +13 -0
  108. package/dist/src/llm/providers/anthropic.d.ts.map +1 -0
  109. package/dist/src/llm/providers/anthropic.js +69 -0
  110. package/dist/src/llm/providers/anthropic.js.map +1 -0
  111. package/dist/src/llm/providers/azure.d.ts +14 -0
  112. package/dist/src/llm/providers/azure.d.ts.map +1 -0
  113. package/dist/src/llm/providers/azure.js +98 -0
  114. package/dist/src/llm/providers/azure.js.map +1 -0
  115. package/dist/src/llm/providers/ollama.d.ts +13 -0
  116. package/dist/src/llm/providers/ollama.d.ts.map +1 -0
  117. package/dist/src/llm/providers/ollama.js +80 -0
  118. package/dist/src/llm/providers/ollama.js.map +1 -0
  119. package/dist/src/llm/providers/openai.d.ts +13 -0
  120. package/dist/src/llm/providers/openai.d.ts.map +1 -0
  121. package/dist/src/llm/providers/openai.js +74 -0
  122. package/dist/src/llm/providers/openai.js.map +1 -0
  123. package/dist/src/llm/router.d.ts +26 -0
  124. package/dist/src/llm/router.d.ts.map +1 -0
  125. package/dist/src/llm/router.js +104 -0
  126. package/dist/src/llm/router.js.map +1 -0
  127. package/dist/src/llm/types.d.ts +44 -0
  128. package/dist/src/llm/types.d.ts.map +1 -0
  129. package/dist/src/llm/types.js +2 -0
  130. package/dist/src/llm/types.js.map +1 -0
  131. package/dist/src/logging/audit-log.d.ts +89 -0
  132. package/dist/src/logging/audit-log.d.ts.map +1 -0
  133. package/dist/src/logging/audit-log.js +132 -0
  134. package/dist/src/logging/audit-log.js.map +1 -0
  135. package/dist/src/logging/logger.d.ts +13 -0
  136. package/dist/src/logging/logger.d.ts.map +1 -0
  137. package/dist/src/logging/logger.js +57 -0
  138. package/dist/src/logging/logger.js.map +1 -0
  139. package/dist/src/logging/redactor.d.ts +14 -0
  140. package/dist/src/logging/redactor.d.ts.map +1 -0
  141. package/dist/src/logging/redactor.js +48 -0
  142. package/dist/src/logging/redactor.js.map +1 -0
  143. package/dist/src/mcp/handlers.d.ts +21 -0
  144. package/dist/src/mcp/handlers.d.ts.map +1 -0
  145. package/dist/src/mcp/handlers.js +156 -0
  146. package/dist/src/mcp/handlers.js.map +1 -0
  147. package/dist/src/mcp/server.d.ts +8 -0
  148. package/dist/src/mcp/server.d.ts.map +1 -0
  149. package/dist/src/mcp/server.js +40 -0
  150. package/dist/src/mcp/server.js.map +1 -0
  151. package/dist/src/mcp/types.d.ts +20 -0
  152. package/dist/src/mcp/types.d.ts.map +1 -0
  153. package/dist/src/mcp/types.js +2 -0
  154. package/dist/src/mcp/types.js.map +1 -0
  155. package/dist/src/plans/parser.d.ts +33 -0
  156. package/dist/src/plans/parser.d.ts.map +1 -0
  157. package/dist/src/plans/parser.js +93 -0
  158. package/dist/src/plans/parser.js.map +1 -0
  159. package/dist/src/plans/propose.d.ts +26 -0
  160. package/dist/src/plans/propose.d.ts.map +1 -0
  161. package/dist/src/plans/propose.js +85 -0
  162. package/dist/src/plans/propose.js.map +1 -0
  163. package/dist/src/plans/runner.d.ts +19 -0
  164. package/dist/src/plans/runner.d.ts.map +1 -0
  165. package/dist/src/plans/runner.js +159 -0
  166. package/dist/src/plans/runner.js.map +1 -0
  167. package/dist/src/plans/triggers.d.ts +12 -0
  168. package/dist/src/plans/triggers.d.ts.map +1 -0
  169. package/dist/src/plans/triggers.js +43 -0
  170. package/dist/src/plans/triggers.js.map +1 -0
  171. package/dist/src/plans/types.d.ts +454 -0
  172. package/dist/src/plans/types.d.ts.map +1 -0
  173. package/dist/src/plans/types.js +56 -0
  174. package/dist/src/plans/types.js.map +1 -0
  175. package/dist/src/policy/audit.d.ts +35 -0
  176. package/dist/src/policy/audit.d.ts.map +1 -0
  177. package/dist/src/policy/audit.js +39 -0
  178. package/dist/src/policy/audit.js.map +1 -0
  179. package/dist/src/policy/engine.d.ts +35 -0
  180. package/dist/src/policy/engine.d.ts.map +1 -0
  181. package/dist/src/policy/engine.js +134 -0
  182. package/dist/src/policy/engine.js.map +1 -0
  183. package/dist/src/policy/scope.d.ts +27 -0
  184. package/dist/src/policy/scope.d.ts.map +1 -0
  185. package/dist/src/policy/scope.js +89 -0
  186. package/dist/src/policy/scope.js.map +1 -0
  187. package/dist/src/policy/types.d.ts +15 -0
  188. package/dist/src/policy/types.d.ts.map +1 -0
  189. package/dist/src/policy/types.js +2 -0
  190. package/dist/src/policy/types.js.map +1 -0
  191. package/dist/src/self-extend/generator.d.ts +27 -0
  192. package/dist/src/self-extend/generator.d.ts.map +1 -0
  193. package/dist/src/self-extend/generator.js +107 -0
  194. package/dist/src/self-extend/generator.js.map +1 -0
  195. package/dist/src/self-extend/publisher.d.ts +5 -0
  196. package/dist/src/self-extend/publisher.d.ts.map +1 -0
  197. package/dist/src/self-extend/publisher.js +40 -0
  198. package/dist/src/self-extend/publisher.js.map +1 -0
  199. package/dist/src/self-extend/sandbox.d.ts +10 -0
  200. package/dist/src/self-extend/sandbox.d.ts.map +1 -0
  201. package/dist/src/self-extend/sandbox.js +22 -0
  202. package/dist/src/self-extend/sandbox.js.map +1 -0
  203. package/dist/src/skills/hub/lockfile.d.ts +15 -0
  204. package/dist/src/skills/hub/lockfile.d.ts.map +1 -0
  205. package/dist/src/skills/hub/lockfile.js +13 -0
  206. package/dist/src/skills/hub/lockfile.js.map +1 -0
  207. package/dist/src/skills/hub/publisher.d.ts +7 -0
  208. package/dist/src/skills/hub/publisher.d.ts.map +1 -0
  209. package/dist/src/skills/hub/publisher.js +10 -0
  210. package/dist/src/skills/hub/publisher.js.map +1 -0
  211. package/dist/src/skills/hub/registry.d.ts +16 -0
  212. package/dist/src/skills/hub/registry.d.ts.map +1 -0
  213. package/dist/src/skills/hub/registry.js +24 -0
  214. package/dist/src/skills/hub/registry.js.map +1 -0
  215. package/dist/src/skills/index.d.ts +12 -0
  216. package/dist/src/skills/index.d.ts.map +1 -0
  217. package/dist/src/skills/index.js +82 -0
  218. package/dist/src/skills/index.js.map +1 -0
  219. package/dist/src/skills/lifecycle.d.ts +19 -0
  220. package/dist/src/skills/lifecycle.d.ts.map +1 -0
  221. package/dist/src/skills/lifecycle.js +48 -0
  222. package/dist/src/skills/lifecycle.js.map +1 -0
  223. package/dist/src/skills/loader.d.ts +43 -0
  224. package/dist/src/skills/loader.d.ts.map +1 -0
  225. package/dist/src/skills/loader.js +142 -0
  226. package/dist/src/skills/loader.js.map +1 -0
  227. package/dist/src/skills/runner.d.ts +43 -0
  228. package/dist/src/skills/runner.d.ts.map +1 -0
  229. package/dist/src/skills/runner.js +198 -0
  230. package/dist/src/skills/runner.js.map +1 -0
  231. package/dist/src/skills/types.d.ts +150 -0
  232. package/dist/src/skills/types.d.ts.map +1 -0
  233. package/dist/src/skills/types.js +31 -0
  234. package/dist/src/skills/types.js.map +1 -0
  235. package/dist/src/skills/validator.d.ts +19 -0
  236. package/dist/src/skills/validator.d.ts.map +1 -0
  237. package/dist/src/skills/validator.js +92 -0
  238. package/dist/src/skills/validator.js.map +1 -0
  239. package/dist/src/tools/core/cmd.d.ts +24 -0
  240. package/dist/src/tools/core/cmd.d.ts.map +1 -0
  241. package/dist/src/tools/core/cmd.js +55 -0
  242. package/dist/src/tools/core/cmd.js.map +1 -0
  243. package/dist/src/tools/core/fs.d.ts +76 -0
  244. package/dist/src/tools/core/fs.d.ts.map +1 -0
  245. package/dist/src/tools/core/fs.js +173 -0
  246. package/dist/src/tools/core/fs.js.map +1 -0
  247. package/dist/src/tools/core/git.d.ts +62 -0
  248. package/dist/src/tools/core/git.d.ts.map +1 -0
  249. package/dist/src/tools/core/git.js +138 -0
  250. package/dist/src/tools/core/git.js.map +1 -0
  251. package/dist/src/tools/core/project.d.ts +17 -0
  252. package/dist/src/tools/core/project.d.ts.map +1 -0
  253. package/dist/src/tools/core/project.js +104 -0
  254. package/dist/src/tools/core/project.js.map +1 -0
  255. package/dist/src/tools/plugins/loader.d.ts +13 -0
  256. package/dist/src/tools/plugins/loader.d.ts.map +1 -0
  257. package/dist/src/tools/plugins/loader.js +36 -0
  258. package/dist/src/tools/plugins/loader.js.map +1 -0
  259. package/dist/src/tools/registry.d.ts +38 -0
  260. package/dist/src/tools/registry.d.ts.map +1 -0
  261. package/dist/src/tools/registry.js +118 -0
  262. package/dist/src/tools/registry.js.map +1 -0
  263. package/dist/src/tools/types.d.ts +46 -0
  264. package/dist/src/tools/types.d.ts.map +1 -0
  265. package/dist/src/tools/types.js +10 -0
  266. package/dist/src/tools/types.js.map +1 -0
  267. package/dist/src/utils/hash.d.ts +13 -0
  268. package/dist/src/utils/hash.d.ts.map +1 -0
  269. package/dist/src/utils/hash.js +22 -0
  270. package/dist/src/utils/hash.js.map +1 -0
  271. package/dist/src/utils/paths.d.ts +45 -0
  272. package/dist/src/utils/paths.d.ts.map +1 -0
  273. package/dist/src/utils/paths.js +71 -0
  274. package/dist/src/utils/paths.js.map +1 -0
  275. package/dist/src/utils/schema.d.ts +16 -0
  276. package/dist/src/utils/schema.d.ts.map +1 -0
  277. package/dist/src/utils/schema.js +66 -0
  278. package/dist/src/utils/schema.js.map +1 -0
  279. package/package.json +77 -0
@@ -0,0 +1,454 @@
1
+ import { z } from 'zod';
2
+ export interface Goal {
3
+ id: string;
4
+ description: string;
5
+ successCriteria: string[];
6
+ riskLevel: 'low' | 'medium' | 'high';
7
+ }
8
+ export interface PlanStep {
9
+ id: string;
10
+ name: string;
11
+ description?: string;
12
+ skill?: string;
13
+ tool?: string;
14
+ args?: Record<string, unknown>;
15
+ verify?: VerifyConfig;
16
+ onFailure?: 'retry' | 'skip' | 'abort';
17
+ retries?: number;
18
+ dependsOn?: string[];
19
+ }
20
+ export interface VerifyConfig {
21
+ command?: string;
22
+ fileExists?: string;
23
+ exitCode?: number;
24
+ contains?: string;
25
+ }
26
+ export type TriggerType = 'manual' | 'cron' | 'fs_change' | 'git_event' | 'webhook';
27
+ export interface TriggerConfig {
28
+ type: TriggerType;
29
+ cron?: string;
30
+ paths?: string[];
31
+ gitEvents?: ('commit' | 'push' | 'branch_change')[];
32
+ webhookPath?: string;
33
+ }
34
+ export interface PlanPolicy {
35
+ approvals: 'auto' | 'per_step' | 'pre_approve';
36
+ scope?: {
37
+ filesystemAllowlist?: string[];
38
+ commandAllowlist?: string[];
39
+ };
40
+ }
41
+ export interface OutputConfig {
42
+ name: string;
43
+ type: 'file' | 'artifact' | 'log';
44
+ path?: string;
45
+ }
46
+ export type PlanMode = 'execute' | 'propose';
47
+ export interface Plan {
48
+ name: string;
49
+ description: string;
50
+ mode: PlanMode;
51
+ goals: Goal[];
52
+ steps: PlanStep[];
53
+ policy: PlanPolicy;
54
+ trigger: TriggerConfig;
55
+ outputs?: OutputConfig[];
56
+ }
57
+ export interface PlanRun {
58
+ runId: string;
59
+ planName: string;
60
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'aborted' | 'proposed';
61
+ steps: PlanStepRun[];
62
+ startedAt?: string;
63
+ completedAt?: string;
64
+ triggeredBy: string;
65
+ }
66
+ export interface PlanStepRun {
67
+ stepId: string;
68
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
69
+ output?: unknown;
70
+ error?: string;
71
+ durationMs?: number;
72
+ verification?: {
73
+ passed: boolean;
74
+ details: string;
75
+ };
76
+ }
77
+ export declare const GoalSchema: z.ZodObject<{
78
+ id: z.ZodString;
79
+ description: z.ZodString;
80
+ successCriteria: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
81
+ riskLevel: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
82
+ }, "strip", z.ZodTypeAny, {
83
+ description: string;
84
+ id: string;
85
+ successCriteria: string[];
86
+ riskLevel: "low" | "medium" | "high";
87
+ }, {
88
+ description: string;
89
+ id: string;
90
+ successCriteria?: string[] | undefined;
91
+ riskLevel?: "low" | "medium" | "high" | undefined;
92
+ }>;
93
+ export declare const VerifySchema: z.ZodObject<{
94
+ command: z.ZodOptional<z.ZodString>;
95
+ fileExists: z.ZodOptional<z.ZodString>;
96
+ exitCode: z.ZodOptional<z.ZodNumber>;
97
+ contains: z.ZodOptional<z.ZodString>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ command?: string | undefined;
100
+ exitCode?: number | undefined;
101
+ fileExists?: string | undefined;
102
+ contains?: string | undefined;
103
+ }, {
104
+ command?: string | undefined;
105
+ exitCode?: number | undefined;
106
+ fileExists?: string | undefined;
107
+ contains?: string | undefined;
108
+ }>;
109
+ export declare const StepSchema: z.ZodObject<{
110
+ id: z.ZodString;
111
+ name: z.ZodString;
112
+ description: z.ZodOptional<z.ZodString>;
113
+ skill: z.ZodOptional<z.ZodString>;
114
+ tool: z.ZodOptional<z.ZodString>;
115
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
116
+ verify: z.ZodOptional<z.ZodObject<{
117
+ command: z.ZodOptional<z.ZodString>;
118
+ fileExists: z.ZodOptional<z.ZodString>;
119
+ exitCode: z.ZodOptional<z.ZodNumber>;
120
+ contains: z.ZodOptional<z.ZodString>;
121
+ }, "strip", z.ZodTypeAny, {
122
+ command?: string | undefined;
123
+ exitCode?: number | undefined;
124
+ fileExists?: string | undefined;
125
+ contains?: string | undefined;
126
+ }, {
127
+ command?: string | undefined;
128
+ exitCode?: number | undefined;
129
+ fileExists?: string | undefined;
130
+ contains?: string | undefined;
131
+ }>>;
132
+ onFailure: z.ZodDefault<z.ZodEnum<["retry", "skip", "abort"]>>;
133
+ retries: z.ZodDefault<z.ZodNumber>;
134
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
135
+ }, "strip", z.ZodTypeAny, {
136
+ name: string;
137
+ id: string;
138
+ onFailure: "retry" | "skip" | "abort";
139
+ retries: number;
140
+ args?: Record<string, unknown> | undefined;
141
+ description?: string | undefined;
142
+ tool?: string | undefined;
143
+ skill?: string | undefined;
144
+ verify?: {
145
+ command?: string | undefined;
146
+ exitCode?: number | undefined;
147
+ fileExists?: string | undefined;
148
+ contains?: string | undefined;
149
+ } | undefined;
150
+ dependsOn?: string[] | undefined;
151
+ }, {
152
+ name: string;
153
+ id: string;
154
+ args?: Record<string, unknown> | undefined;
155
+ description?: string | undefined;
156
+ tool?: string | undefined;
157
+ skill?: string | undefined;
158
+ verify?: {
159
+ command?: string | undefined;
160
+ exitCode?: number | undefined;
161
+ fileExists?: string | undefined;
162
+ contains?: string | undefined;
163
+ } | undefined;
164
+ onFailure?: "retry" | "skip" | "abort" | undefined;
165
+ retries?: number | undefined;
166
+ dependsOn?: string[] | undefined;
167
+ }>;
168
+ export declare const TriggerSchema: z.ZodObject<{
169
+ type: z.ZodDefault<z.ZodEnum<["manual", "cron", "fs_change", "git_event", "webhook"]>>;
170
+ cron: z.ZodOptional<z.ZodString>;
171
+ paths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
172
+ gitEvents: z.ZodOptional<z.ZodArray<z.ZodEnum<["commit", "push", "branch_change"]>, "many">>;
173
+ webhookPath: z.ZodOptional<z.ZodString>;
174
+ }, "strip", z.ZodTypeAny, {
175
+ type: "manual" | "cron" | "fs_change" | "git_event" | "webhook";
176
+ cron?: string | undefined;
177
+ paths?: string[] | undefined;
178
+ gitEvents?: ("push" | "commit" | "branch_change")[] | undefined;
179
+ webhookPath?: string | undefined;
180
+ }, {
181
+ type?: "manual" | "cron" | "fs_change" | "git_event" | "webhook" | undefined;
182
+ cron?: string | undefined;
183
+ paths?: string[] | undefined;
184
+ gitEvents?: ("push" | "commit" | "branch_change")[] | undefined;
185
+ webhookPath?: string | undefined;
186
+ }>;
187
+ export declare const PlanPolicySchema: z.ZodObject<{
188
+ approvals: z.ZodDefault<z.ZodEnum<["auto", "per_step", "pre_approve"]>>;
189
+ scope: z.ZodOptional<z.ZodObject<{
190
+ filesystemAllowlist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
191
+ commandAllowlist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
192
+ }, "strip", z.ZodTypeAny, {
193
+ filesystemAllowlist?: string[] | undefined;
194
+ commandAllowlist?: string[] | undefined;
195
+ }, {
196
+ filesystemAllowlist?: string[] | undefined;
197
+ commandAllowlist?: string[] | undefined;
198
+ }>>;
199
+ }, "strip", z.ZodTypeAny, {
200
+ approvals: "auto" | "per_step" | "pre_approve";
201
+ scope?: {
202
+ filesystemAllowlist?: string[] | undefined;
203
+ commandAllowlist?: string[] | undefined;
204
+ } | undefined;
205
+ }, {
206
+ scope?: {
207
+ filesystemAllowlist?: string[] | undefined;
208
+ commandAllowlist?: string[] | undefined;
209
+ } | undefined;
210
+ approvals?: "auto" | "per_step" | "pre_approve" | undefined;
211
+ }>;
212
+ export declare const OutputSchema: z.ZodObject<{
213
+ name: z.ZodString;
214
+ type: z.ZodEnum<["file", "artifact", "log"]>;
215
+ path: z.ZodOptional<z.ZodString>;
216
+ }, "strip", z.ZodTypeAny, {
217
+ type: "file" | "log" | "artifact";
218
+ name: string;
219
+ path?: string | undefined;
220
+ }, {
221
+ type: "file" | "log" | "artifact";
222
+ name: string;
223
+ path?: string | undefined;
224
+ }>;
225
+ export declare const PlanSchema: z.ZodObject<{
226
+ name: z.ZodString;
227
+ description: z.ZodString;
228
+ mode: z.ZodDefault<z.ZodEnum<["execute", "propose"]>>;
229
+ goals: z.ZodArray<z.ZodObject<{
230
+ id: z.ZodString;
231
+ description: z.ZodString;
232
+ successCriteria: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
233
+ riskLevel: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
234
+ }, "strip", z.ZodTypeAny, {
235
+ description: string;
236
+ id: string;
237
+ successCriteria: string[];
238
+ riskLevel: "low" | "medium" | "high";
239
+ }, {
240
+ description: string;
241
+ id: string;
242
+ successCriteria?: string[] | undefined;
243
+ riskLevel?: "low" | "medium" | "high" | undefined;
244
+ }>, "many">;
245
+ steps: z.ZodArray<z.ZodObject<{
246
+ id: z.ZodString;
247
+ name: z.ZodString;
248
+ description: z.ZodOptional<z.ZodString>;
249
+ skill: z.ZodOptional<z.ZodString>;
250
+ tool: z.ZodOptional<z.ZodString>;
251
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
252
+ verify: z.ZodOptional<z.ZodObject<{
253
+ command: z.ZodOptional<z.ZodString>;
254
+ fileExists: z.ZodOptional<z.ZodString>;
255
+ exitCode: z.ZodOptional<z.ZodNumber>;
256
+ contains: z.ZodOptional<z.ZodString>;
257
+ }, "strip", z.ZodTypeAny, {
258
+ command?: string | undefined;
259
+ exitCode?: number | undefined;
260
+ fileExists?: string | undefined;
261
+ contains?: string | undefined;
262
+ }, {
263
+ command?: string | undefined;
264
+ exitCode?: number | undefined;
265
+ fileExists?: string | undefined;
266
+ contains?: string | undefined;
267
+ }>>;
268
+ onFailure: z.ZodDefault<z.ZodEnum<["retry", "skip", "abort"]>>;
269
+ retries: z.ZodDefault<z.ZodNumber>;
270
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
271
+ }, "strip", z.ZodTypeAny, {
272
+ name: string;
273
+ id: string;
274
+ onFailure: "retry" | "skip" | "abort";
275
+ retries: number;
276
+ args?: Record<string, unknown> | undefined;
277
+ description?: string | undefined;
278
+ tool?: string | undefined;
279
+ skill?: string | undefined;
280
+ verify?: {
281
+ command?: string | undefined;
282
+ exitCode?: number | undefined;
283
+ fileExists?: string | undefined;
284
+ contains?: string | undefined;
285
+ } | undefined;
286
+ dependsOn?: string[] | undefined;
287
+ }, {
288
+ name: string;
289
+ id: string;
290
+ args?: Record<string, unknown> | undefined;
291
+ description?: string | undefined;
292
+ tool?: string | undefined;
293
+ skill?: string | undefined;
294
+ verify?: {
295
+ command?: string | undefined;
296
+ exitCode?: number | undefined;
297
+ fileExists?: string | undefined;
298
+ contains?: string | undefined;
299
+ } | undefined;
300
+ onFailure?: "retry" | "skip" | "abort" | undefined;
301
+ retries?: number | undefined;
302
+ dependsOn?: string[] | undefined;
303
+ }>, "many">;
304
+ policy: z.ZodDefault<z.ZodObject<{
305
+ approvals: z.ZodDefault<z.ZodEnum<["auto", "per_step", "pre_approve"]>>;
306
+ scope: z.ZodOptional<z.ZodObject<{
307
+ filesystemAllowlist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
308
+ commandAllowlist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
309
+ }, "strip", z.ZodTypeAny, {
310
+ filesystemAllowlist?: string[] | undefined;
311
+ commandAllowlist?: string[] | undefined;
312
+ }, {
313
+ filesystemAllowlist?: string[] | undefined;
314
+ commandAllowlist?: string[] | undefined;
315
+ }>>;
316
+ }, "strip", z.ZodTypeAny, {
317
+ approvals: "auto" | "per_step" | "pre_approve";
318
+ scope?: {
319
+ filesystemAllowlist?: string[] | undefined;
320
+ commandAllowlist?: string[] | undefined;
321
+ } | undefined;
322
+ }, {
323
+ scope?: {
324
+ filesystemAllowlist?: string[] | undefined;
325
+ commandAllowlist?: string[] | undefined;
326
+ } | undefined;
327
+ approvals?: "auto" | "per_step" | "pre_approve" | undefined;
328
+ }>>;
329
+ trigger: z.ZodDefault<z.ZodObject<{
330
+ type: z.ZodDefault<z.ZodEnum<["manual", "cron", "fs_change", "git_event", "webhook"]>>;
331
+ cron: z.ZodOptional<z.ZodString>;
332
+ paths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
333
+ gitEvents: z.ZodOptional<z.ZodArray<z.ZodEnum<["commit", "push", "branch_change"]>, "many">>;
334
+ webhookPath: z.ZodOptional<z.ZodString>;
335
+ }, "strip", z.ZodTypeAny, {
336
+ type: "manual" | "cron" | "fs_change" | "git_event" | "webhook";
337
+ cron?: string | undefined;
338
+ paths?: string[] | undefined;
339
+ gitEvents?: ("push" | "commit" | "branch_change")[] | undefined;
340
+ webhookPath?: string | undefined;
341
+ }, {
342
+ type?: "manual" | "cron" | "fs_change" | "git_event" | "webhook" | undefined;
343
+ cron?: string | undefined;
344
+ paths?: string[] | undefined;
345
+ gitEvents?: ("push" | "commit" | "branch_change")[] | undefined;
346
+ webhookPath?: string | undefined;
347
+ }>>;
348
+ outputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
349
+ name: z.ZodString;
350
+ type: z.ZodEnum<["file", "artifact", "log"]>;
351
+ path: z.ZodOptional<z.ZodString>;
352
+ }, "strip", z.ZodTypeAny, {
353
+ type: "file" | "log" | "artifact";
354
+ name: string;
355
+ path?: string | undefined;
356
+ }, {
357
+ type: "file" | "log" | "artifact";
358
+ name: string;
359
+ path?: string | undefined;
360
+ }>, "many">>;
361
+ }, "strip", z.ZodTypeAny, {
362
+ policy: {
363
+ approvals: "auto" | "per_step" | "pre_approve";
364
+ scope?: {
365
+ filesystemAllowlist?: string[] | undefined;
366
+ commandAllowlist?: string[] | undefined;
367
+ } | undefined;
368
+ };
369
+ name: string;
370
+ description: string;
371
+ mode: "execute" | "propose";
372
+ goals: {
373
+ description: string;
374
+ id: string;
375
+ successCriteria: string[];
376
+ riskLevel: "low" | "medium" | "high";
377
+ }[];
378
+ steps: {
379
+ name: string;
380
+ id: string;
381
+ onFailure: "retry" | "skip" | "abort";
382
+ retries: number;
383
+ args?: Record<string, unknown> | undefined;
384
+ description?: string | undefined;
385
+ tool?: string | undefined;
386
+ skill?: string | undefined;
387
+ verify?: {
388
+ command?: string | undefined;
389
+ exitCode?: number | undefined;
390
+ fileExists?: string | undefined;
391
+ contains?: string | undefined;
392
+ } | undefined;
393
+ dependsOn?: string[] | undefined;
394
+ }[];
395
+ trigger: {
396
+ type: "manual" | "cron" | "fs_change" | "git_event" | "webhook";
397
+ cron?: string | undefined;
398
+ paths?: string[] | undefined;
399
+ gitEvents?: ("push" | "commit" | "branch_change")[] | undefined;
400
+ webhookPath?: string | undefined;
401
+ };
402
+ outputs?: {
403
+ type: "file" | "log" | "artifact";
404
+ name: string;
405
+ path?: string | undefined;
406
+ }[] | undefined;
407
+ }, {
408
+ name: string;
409
+ description: string;
410
+ goals: {
411
+ description: string;
412
+ id: string;
413
+ successCriteria?: string[] | undefined;
414
+ riskLevel?: "low" | "medium" | "high" | undefined;
415
+ }[];
416
+ steps: {
417
+ name: string;
418
+ id: string;
419
+ args?: Record<string, unknown> | undefined;
420
+ description?: string | undefined;
421
+ tool?: string | undefined;
422
+ skill?: string | undefined;
423
+ verify?: {
424
+ command?: string | undefined;
425
+ exitCode?: number | undefined;
426
+ fileExists?: string | undefined;
427
+ contains?: string | undefined;
428
+ } | undefined;
429
+ onFailure?: "retry" | "skip" | "abort" | undefined;
430
+ retries?: number | undefined;
431
+ dependsOn?: string[] | undefined;
432
+ }[];
433
+ policy?: {
434
+ scope?: {
435
+ filesystemAllowlist?: string[] | undefined;
436
+ commandAllowlist?: string[] | undefined;
437
+ } | undefined;
438
+ approvals?: "auto" | "per_step" | "pre_approve" | undefined;
439
+ } | undefined;
440
+ outputs?: {
441
+ type: "file" | "log" | "artifact";
442
+ name: string;
443
+ path?: string | undefined;
444
+ }[] | undefined;
445
+ mode?: "execute" | "propose" | undefined;
446
+ trigger?: {
447
+ type?: "manual" | "cron" | "fs_change" | "git_event" | "webhook" | undefined;
448
+ cron?: string | undefined;
449
+ paths?: string[] | undefined;
450
+ gitEvents?: ("push" | "commit" | "branch_change")[] | undefined;
451
+ webhookPath?: string | undefined;
452
+ } | undefined;
453
+ }>;
454
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plans/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { z } from 'zod';
2
+ // ─── Zod Schemas for Plan YAML ───
3
+ export const GoalSchema = z.object({
4
+ id: z.string(),
5
+ description: z.string(),
6
+ successCriteria: z.array(z.string()).default([]),
7
+ riskLevel: z.enum(['low', 'medium', 'high']).default('low'),
8
+ });
9
+ export const VerifySchema = z.object({
10
+ command: z.string().optional(),
11
+ fileExists: z.string().optional(),
12
+ exitCode: z.number().optional(),
13
+ contains: z.string().optional(),
14
+ });
15
+ export const StepSchema = z.object({
16
+ id: z.string(),
17
+ name: z.string(),
18
+ description: z.string().optional(),
19
+ skill: z.string().optional(),
20
+ tool: z.string().optional(),
21
+ args: z.record(z.string(), z.unknown()).optional(),
22
+ verify: VerifySchema.optional(),
23
+ onFailure: z.enum(['retry', 'skip', 'abort']).default('abort'),
24
+ retries: z.number().default(0),
25
+ dependsOn: z.array(z.string()).optional(),
26
+ });
27
+ export const TriggerSchema = z.object({
28
+ type: z.enum(['manual', 'cron', 'fs_change', 'git_event', 'webhook']).default('manual'),
29
+ cron: z.string().optional(),
30
+ paths: z.array(z.string()).optional(),
31
+ gitEvents: z.array(z.enum(['commit', 'push', 'branch_change'])).optional(),
32
+ webhookPath: z.string().optional(),
33
+ });
34
+ export const PlanPolicySchema = z.object({
35
+ approvals: z.enum(['auto', 'per_step', 'pre_approve']).default('per_step'),
36
+ scope: z.object({
37
+ filesystemAllowlist: z.array(z.string()).optional(),
38
+ commandAllowlist: z.array(z.string()).optional(),
39
+ }).optional(),
40
+ });
41
+ export const OutputSchema = z.object({
42
+ name: z.string(),
43
+ type: z.enum(['file', 'artifact', 'log']),
44
+ path: z.string().optional(),
45
+ });
46
+ export const PlanSchema = z.object({
47
+ name: z.string().min(1),
48
+ description: z.string(),
49
+ mode: z.enum(['execute', 'propose']).default('execute'),
50
+ goals: z.array(GoalSchema).min(1),
51
+ steps: z.array(StepSchema).min(1),
52
+ policy: PlanPolicySchema.default({}),
53
+ trigger: TriggerSchema.default({ type: 'manual' }),
54
+ outputs: z.array(OutputSchema).optional(),
55
+ });
56
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plans/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6FxB,oCAAoC;AACpC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;CAC9D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACvF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC1E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACZ,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACnD,CAAC,CAAC,QAAQ,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { EventEmitter } from 'node:events';
2
+ /**
3
+ * Audit event types
4
+ */
5
+ export declare enum AuditEventType {
6
+ TOOL_CALL = "tool_call",
7
+ TOOL_RESULT = "tool_result",
8
+ PERMISSION_CHECK = "permission_check",
9
+ PERMISSION_DENIED = "permission_denied",
10
+ APPROVAL_GRANTED = "approval_granted",
11
+ APPROVAL_DENIED = "approval_denied",
12
+ STEP_START = "step_start",
13
+ STEP_COMPLETE = "step_complete",
14
+ STEP_FAILED = "step_failed",
15
+ RUN_START = "run_start",
16
+ RUN_COMPLETE = "run_complete",
17
+ SKILL_LOADED = "skill_loaded",
18
+ PLAN_PARSED = "plan_parsed",
19
+ DIFF_GENERATED = "diff_generated"
20
+ }
21
+ export interface AuditEvent {
22
+ type: AuditEventType;
23
+ timestamp: string;
24
+ data: Record<string, unknown>;
25
+ }
26
+ /**
27
+ * Typed audit event emitter
28
+ */
29
+ declare class AuditEmitter extends EventEmitter {
30
+ emit(type: AuditEventType, data: Record<string, unknown>): boolean;
31
+ onAudit(handler: (event: AuditEvent) => void): void;
32
+ }
33
+ export declare const auditEmitter: AuditEmitter;
34
+ export {};
35
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/policy/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,oBAAY,cAAc;IACtB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;CACpC;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,cAAM,YAAa,SAAQ,YAAY;IACnC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IASlE,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;CAGtD;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { EventEmitter } from 'node:events';
2
+ /**
3
+ * Audit event types
4
+ */
5
+ export var AuditEventType;
6
+ (function (AuditEventType) {
7
+ AuditEventType["TOOL_CALL"] = "tool_call";
8
+ AuditEventType["TOOL_RESULT"] = "tool_result";
9
+ AuditEventType["PERMISSION_CHECK"] = "permission_check";
10
+ AuditEventType["PERMISSION_DENIED"] = "permission_denied";
11
+ AuditEventType["APPROVAL_GRANTED"] = "approval_granted";
12
+ AuditEventType["APPROVAL_DENIED"] = "approval_denied";
13
+ AuditEventType["STEP_START"] = "step_start";
14
+ AuditEventType["STEP_COMPLETE"] = "step_complete";
15
+ AuditEventType["STEP_FAILED"] = "step_failed";
16
+ AuditEventType["RUN_START"] = "run_start";
17
+ AuditEventType["RUN_COMPLETE"] = "run_complete";
18
+ AuditEventType["SKILL_LOADED"] = "skill_loaded";
19
+ AuditEventType["PLAN_PARSED"] = "plan_parsed";
20
+ AuditEventType["DIFF_GENERATED"] = "diff_generated";
21
+ })(AuditEventType || (AuditEventType = {}));
22
+ /**
23
+ * Typed audit event emitter
24
+ */
25
+ class AuditEmitter extends EventEmitter {
26
+ emit(type, data) {
27
+ const event = {
28
+ type,
29
+ timestamp: new Date().toISOString(),
30
+ data,
31
+ };
32
+ return super.emit('audit', event);
33
+ }
34
+ onAudit(handler) {
35
+ this.on('audit', handler);
36
+ }
37
+ }
38
+ export const auditEmitter = new AuditEmitter();
39
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/policy/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAN,IAAY,cAeX;AAfD,WAAY,cAAc;IACtB,yCAAuB,CAAA;IACvB,6CAA2B,CAAA;IAC3B,uDAAqC,CAAA;IACrC,yDAAuC,CAAA;IACvC,uDAAqC,CAAA;IACrC,qDAAmC,CAAA;IACnC,2CAAyB,CAAA;IACzB,iDAA+B,CAAA;IAC/B,6CAA2B,CAAA;IAC3B,yCAAuB,CAAA;IACvB,+CAA6B,CAAA;IAC7B,+CAA6B,CAAA;IAC7B,6CAA2B,CAAA;IAC3B,mDAAiC,CAAA;AACrC,CAAC,EAfW,cAAc,KAAd,cAAc,QAezB;AAQD;;GAEG;AACH,MAAM,YAAa,SAAQ,YAAY;IACnC,IAAI,CAAC,IAAoB,EAAE,IAA6B;QACpD,MAAM,KAAK,GAAe;YACtB,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI;SACP,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,OAAoC;QACxC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { AgentConfig } from '../config/schema.js';
2
+ import type { ActionDescriptor, ExecutionContext } from '../tools/types.js';
3
+ import type { PermissionResult } from './types.js';
4
+ /**
5
+ * Policy Engine — enforces permissions, approvals, and scope limits
6
+ * This is an immutable core component that MUST NOT be modified by autonomous runs.
7
+ */
8
+ export declare class PolicyEngine {
9
+ private config;
10
+ private scopeChecker;
11
+ private sessionApprovals;
12
+ constructor(config: AgentConfig, projectRoot: string);
13
+ /**
14
+ * Check if an action is permitted based on policy rules
15
+ */
16
+ checkPermission(action: ActionDescriptor, ctx: ExecutionContext): Promise<PermissionResult>;
17
+ /**
18
+ * Request approval from the user for a specific action
19
+ */
20
+ requestApproval(action: ActionDescriptor, ctx: ExecutionContext): Promise<boolean>;
21
+ /**
22
+ * Check if a tool invocation is within the configured scope
23
+ */
24
+ checkScope(toolName: string, args: Record<string, unknown>): boolean;
25
+ /**
26
+ * Grant session-level approval (persists for current run)
27
+ */
28
+ grantSessionApproval(action: ActionDescriptor): void;
29
+ /**
30
+ * Clear all session approvals
31
+ */
32
+ clearSessionApprovals(): void;
33
+ private findRule;
34
+ }
35
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/policy/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAsB,MAAM,mBAAmB,CAAC;AAChG,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,YAAY,CAAC;AAInE;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAA0B;gBAEtC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM;IAKpD;;OAEG;IACG,eAAe,CACjB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,gBAAgB,GACtB,OAAO,CAAC,gBAAgB,CAAC;IAoC5B;;OAEG;IACG,eAAe,CACjB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,gBAAgB,GACtB,OAAO,CAAC,OAAO,CAAC;IA+BnB;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAgBpE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAMpD;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAM7B,OAAO,CAAC,QAAQ;CAoBnB"}