@phyzess/pappra 0.0.0-stage → 0.1.0-beta.2

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 (221) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +80 -2
  3. package/THIRD_PARTY_NOTICES.md +16 -0
  4. package/assets/integrations/skills/pappra/SKILL.md +68 -0
  5. package/assets/integrations/skills/pappra/references/hosts.md +30 -0
  6. package/assets/integrations/skills/pappra/references/lifecycle.md +37 -0
  7. package/assets/integrations/skills/pappra/references/operations.md +14 -0
  8. package/assets/manifest.json +4 -0
  9. package/dist/app/collaboration.d.ts +170 -0
  10. package/dist/app/collaboration.js +1650 -0
  11. package/dist/app/doctor.d.ts +9 -0
  12. package/dist/app/doctor.js +1030 -0
  13. package/dist/app/init.d.ts +143 -0
  14. package/dist/app/init.js +1111 -0
  15. package/dist/cli/commands/code.d.ts +16 -0
  16. package/dist/cli/commands/code.js +127 -0
  17. package/dist/cli/commands/collaboration.d.ts +13 -0
  18. package/dist/cli/commands/collaboration.js +186 -0
  19. package/dist/cli/commands/continuity.d.ts +29 -0
  20. package/dist/cli/commands/continuity.js +133 -0
  21. package/dist/cli/commands/docs.d.ts +11 -0
  22. package/dist/cli/commands/docs.js +133 -0
  23. package/dist/cli/commands/doctor.d.ts +14 -0
  24. package/dist/cli/commands/doctor.js +57 -0
  25. package/dist/cli/commands/host.d.ts +13 -0
  26. package/dist/cli/commands/host.js +125 -0
  27. package/dist/cli/commands/init.d.ts +51 -0
  28. package/dist/cli/commands/init.js +668 -0
  29. package/dist/cli/main.d.ts +2 -0
  30. package/dist/cli/main.js +10 -0
  31. package/dist/cli/output.d.ts +4 -0
  32. package/dist/cli/output.js +1 -0
  33. package/dist/cli/run.d.ts +2 -0
  34. package/dist/cli/run.js +597 -0
  35. package/dist/code/budget.d.ts +14 -0
  36. package/dist/code/budget.js +39 -0
  37. package/dist/code/exec.d.ts +23 -0
  38. package/dist/code/exec.js +133 -0
  39. package/dist/code/identity.d.ts +13 -0
  40. package/dist/code/identity.js +214 -0
  41. package/dist/code/index.d.ts +6 -0
  42. package/dist/code/index.js +3 -0
  43. package/dist/code/providers/codegraph.d.ts +59 -0
  44. package/dist/code/providers/codegraph.js +567 -0
  45. package/dist/code/registration.d.ts +9 -0
  46. package/dist/code/registration.js +293 -0
  47. package/dist/code/service.d.ts +53 -0
  48. package/dist/code/service.js +633 -0
  49. package/dist/code/text.d.ts +3 -0
  50. package/dist/code/text.js +202 -0
  51. package/dist/collab/admission.d.ts +450 -0
  52. package/dist/collab/admission.js +797 -0
  53. package/dist/collab/canonical.d.ts +26 -0
  54. package/dist/collab/canonical.js +136 -0
  55. package/dist/collab/contracts.d.ts +73 -0
  56. package/dist/collab/contracts.js +76 -0
  57. package/dist/collab/envelope.d.ts +52 -0
  58. package/dist/collab/envelope.js +241 -0
  59. package/dist/collab/fingerprint.d.ts +7 -0
  60. package/dist/collab/fingerprint.js +58 -0
  61. package/dist/collab/handoff.d.ts +350 -0
  62. package/dist/collab/handoff.js +513 -0
  63. package/dist/collab/index.d.ts +9 -0
  64. package/dist/collab/index.js +8 -0
  65. package/dist/collab/lifecycle.d.ts +449 -0
  66. package/dist/collab/lifecycle.js +534 -0
  67. package/dist/collab/messages.d.ts +148 -0
  68. package/dist/collab/messages.js +583 -0
  69. package/dist/collab/notify.d.ts +47 -0
  70. package/dist/collab/notify.js +140 -0
  71. package/dist/collab/preflight.d.ts +31 -0
  72. package/dist/collab/preflight.js +271 -0
  73. package/dist/collab/resources.d.ts +119 -0
  74. package/dist/collab/resources.js +451 -0
  75. package/dist/collab/store.d.ts +143 -0
  76. package/dist/collab/store.js +606 -0
  77. package/dist/collab/types.d.ts +354 -0
  78. package/dist/collab/types.js +1 -0
  79. package/dist/collab/validation.d.ts +10 -0
  80. package/dist/collab/validation.js +303 -0
  81. package/dist/continuity/context.d.ts +24 -0
  82. package/dist/continuity/context.js +179 -0
  83. package/dist/continuity/index.d.ts +3 -0
  84. package/dist/continuity/index.js +1 -0
  85. package/dist/continuity/paths.d.ts +37 -0
  86. package/dist/continuity/paths.js +258 -0
  87. package/dist/continuity/service.d.ts +59 -0
  88. package/dist/continuity/service.js +1258 -0
  89. package/dist/hosts/claude/native.d.ts +79 -0
  90. package/dist/hosts/claude/native.js +853 -0
  91. package/dist/hosts/codex/native.d.ts +345 -0
  92. package/dist/hosts/codex/native.js +1528 -0
  93. package/dist/hosts/codex/protocol.d.ts +51 -0
  94. package/dist/hosts/codex/protocol.js +42 -0
  95. package/dist/hosts/detect.d.ts +28 -0
  96. package/dist/hosts/detect.js +73 -0
  97. package/dist/hosts/index.d.ts +10 -0
  98. package/dist/hosts/index.js +10 -0
  99. package/dist/hosts/integration/bundle.d.ts +16 -0
  100. package/dist/hosts/integration/bundle.js +81 -0
  101. package/dist/hosts/integration/hook-entry.d.ts +1 -0
  102. package/dist/hosts/integration/hook-entry.js +68 -0
  103. package/dist/hosts/integration/hook.d.ts +32 -0
  104. package/dist/hosts/integration/hook.js +781 -0
  105. package/dist/hosts/integration/pi-extension-runtime.d.ts +18 -0
  106. package/dist/hosts/integration/pi-extension-runtime.js +89 -0
  107. package/dist/hosts/integration/pi-template.d.ts +3 -0
  108. package/dist/hosts/integration/pi-template.js +5 -0
  109. package/dist/hosts/integration/service.d.ts +41 -0
  110. package/dist/hosts/integration/service.js +1381 -0
  111. package/dist/hosts/integration/support.d.ts +36 -0
  112. package/dist/hosts/integration/support.js +41 -0
  113. package/dist/hosts/integration/templates.d.ts +22 -0
  114. package/dist/hosts/integration/templates.js +70 -0
  115. package/dist/hosts/pi/protocol.d.ts +22 -0
  116. package/dist/hosts/pi/protocol.js +28 -0
  117. package/dist/hosts/pi/query-result.d.ts +22 -0
  118. package/dist/hosts/pi/query-result.js +710 -0
  119. package/dist/hosts/pi/rpc.d.ts +937 -0
  120. package/dist/hosts/pi/rpc.js +1621 -0
  121. package/dist/hosts/pilot.d.ts +485 -0
  122. package/dist/hosts/pilot.js +593 -0
  123. package/dist/index.d.ts +5 -0
  124. package/dist/index.js +4 -0
  125. package/dist/infra/fs.d.ts +27 -0
  126. package/dist/infra/fs.js +130 -0
  127. package/dist/infra/git.d.ts +60 -0
  128. package/dist/infra/git.js +358 -0
  129. package/dist/infra/owned-process-group.d.ts +173 -0
  130. package/dist/infra/owned-process-group.js +571 -0
  131. package/dist/install/apply.d.ts +65 -0
  132. package/dist/install/apply.js +663 -0
  133. package/dist/install/index.d.ts +5 -0
  134. package/dist/install/index.js +5 -0
  135. package/dist/install/ownership.d.ts +85 -0
  136. package/dist/install/ownership.js +430 -0
  137. package/dist/install/plan.d.ts +39 -0
  138. package/dist/install/plan.js +97 -0
  139. package/dist/install/rollback.d.ts +18 -0
  140. package/dist/install/rollback.js +544 -0
  141. package/dist/install/runtime.d.ts +76 -0
  142. package/dist/install/runtime.js +1145 -0
  143. package/dist/knowledge/catalog.d.ts +47 -0
  144. package/dist/knowledge/catalog.js +308 -0
  145. package/dist/knowledge/context.d.ts +28 -0
  146. package/dist/knowledge/context.js +61 -0
  147. package/dist/knowledge/index.d.ts +3 -0
  148. package/dist/knowledge/index.js +1 -0
  149. package/dist/knowledge/journal.d.ts +16 -0
  150. package/dist/knowledge/journal.js +109 -0
  151. package/dist/knowledge/lifecycle.d.ts +8 -0
  152. package/dist/knowledge/lifecycle.js +1001 -0
  153. package/dist/knowledge/paths.d.ts +37 -0
  154. package/dist/knowledge/paths.js +236 -0
  155. package/dist/knowledge/refs.d.ts +36 -0
  156. package/dist/knowledge/refs.js +267 -0
  157. package/dist/knowledge/service.d.ts +21 -0
  158. package/dist/knowledge/service.js +393 -0
  159. package/dist/knowledge/types.d.ts +171 -0
  160. package/dist/knowledge/types.js +1 -0
  161. package/dist/knowledge/write.d.ts +8 -0
  162. package/dist/knowledge/write.js +1223 -0
  163. package/dist/package-info.d.ts +6 -0
  164. package/dist/package-info.js +19 -0
  165. package/dist/schemas/code.d.ts +377 -0
  166. package/dist/schemas/code.js +145 -0
  167. package/dist/schemas/collaboration.d.ts +115 -0
  168. package/dist/schemas/collaboration.js +106 -0
  169. package/dist/schemas/continuity.d.ts +315 -0
  170. package/dist/schemas/continuity.js +199 -0
  171. package/dist/schemas/diagnostics.d.ts +28 -0
  172. package/dist/schemas/diagnostics.js +27 -0
  173. package/dist/schemas/doctor.d.ts +157 -0
  174. package/dist/schemas/doctor.js +75 -0
  175. package/dist/schemas/document.d.ts +644 -0
  176. package/dist/schemas/document.js +296 -0
  177. package/dist/schemas/errors.d.ts +177 -0
  178. package/dist/schemas/errors.js +176 -0
  179. package/dist/schemas/evidence.d.ts +24 -0
  180. package/dist/schemas/evidence.js +16 -0
  181. package/dist/schemas/host.d.ts +436 -0
  182. package/dist/schemas/host.js +201 -0
  183. package/dist/schemas/index.d.ts +15 -0
  184. package/dist/schemas/index.js +15 -0
  185. package/dist/schemas/init.d.ts +121 -0
  186. package/dist/schemas/init.js +94 -0
  187. package/dist/schemas/install.d.ts +213 -0
  188. package/dist/schemas/install.js +139 -0
  189. package/dist/schemas/machine.d.ts +43 -0
  190. package/dist/schemas/machine.js +96 -0
  191. package/dist/schemas/outcome.d.ts +23 -0
  192. package/dist/schemas/outcome.js +17 -0
  193. package/dist/schemas/paths.d.ts +19 -0
  194. package/dist/schemas/paths.js +63 -0
  195. package/dist/schemas/workspace.d.ts +120 -0
  196. package/dist/schemas/workspace.js +201 -0
  197. package/dist/workspace/config-file.d.ts +36 -0
  198. package/dist/workspace/config-file.js +237 -0
  199. package/dist/workspace/config.d.ts +28 -0
  200. package/dist/workspace/config.js +79 -0
  201. package/dist/workspace/discover.d.ts +34 -0
  202. package/dist/workspace/discover.js +195 -0
  203. package/dist/workspace/documents.d.ts +21 -0
  204. package/dist/workspace/documents.js +395 -0
  205. package/dist/workspace/ignore.d.ts +10 -0
  206. package/dist/workspace/ignore.js +48 -0
  207. package/dist/workspace/index.d.ts +7 -0
  208. package/dist/workspace/index.js +3 -0
  209. package/dist/workspace/repositories.d.ts +24 -0
  210. package/dist/workspace/repositories.js +411 -0
  211. package/dist/workspace/resolve.d.ts +24 -0
  212. package/dist/workspace/resolve.js +268 -0
  213. package/dist/workspace/types.d.ts +71 -0
  214. package/dist/workspace/types.js +1 -0
  215. package/dist/workspace/validation.d.ts +18 -0
  216. package/dist/workspace/validation.js +197 -0
  217. package/package.json +105 -4
  218. package/skills/pappra/SKILL.md +68 -0
  219. package/skills/pappra/references/hosts.md +30 -0
  220. package/skills/pappra/references/lifecycle.md +37 -0
  221. package/skills/pappra/references/operations.md +14 -0
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ export const evidenceScopeSchema = z.enum([
3
+ 'persisted',
4
+ 'live-owned',
5
+ 'declared',
6
+ ]);
7
+ export const evidenceRefSchema = z.strictObject({
8
+ kind: z.enum(['file', 'native-event', 'git', 'runtime-probe']),
9
+ ref: z.string().min(1),
10
+ digest: z
11
+ .string()
12
+ .regex(/^sha256:[0-9a-f]{64}$/)
13
+ .nullable(),
14
+ observedAt: z.iso.datetime({ offset: true }),
15
+ scope: evidenceScopeSchema,
16
+ });
@@ -0,0 +1,436 @@
1
+ import { z } from 'zod';
2
+ export declare const HOST_INTEGRATION_SCHEMA = "pappra/host-integration/1";
3
+ export declare const HOST_CAPABILITIES_SCHEMA = "pappra/host-capabilities/1";
4
+ export declare const HOST_BUNDLE_SCHEMA = "pappra/host-bundle/1";
5
+ export declare const HOST_HOOK_INPUT_SCHEMA = "pappra/host-hook-input/1";
6
+ export declare const HOST_HOOK_RESULT_SCHEMA = "pappra/host-hook-result/1";
7
+ export declare const hostNameSchema: z.ZodEnum<{
8
+ claude: "claude";
9
+ codex: "codex";
10
+ pi: "pi";
11
+ }>;
12
+ export type HostName = z.infer<typeof hostNameSchema>;
13
+ export declare const hostLifecycleEventSchema: z.ZodEnum<{
14
+ "checkpoint-request": "checkpoint-request";
15
+ compact: "compact";
16
+ resume: "resume";
17
+ startup: "startup";
18
+ }>;
19
+ export type HostLifecycleEvent = z.infer<typeof hostLifecycleEventSchema>;
20
+ export declare const hostCapabilityStateSchema: z.ZodEnum<{
21
+ callable: "callable";
22
+ configured: "configured";
23
+ discovered: "discovered";
24
+ installed: "installed";
25
+ unknown: "unknown";
26
+ unsupported: "unsupported";
27
+ verified: "verified";
28
+ }>;
29
+ export type HostCapabilityState = z.infer<typeof hostCapabilityStateSchema>;
30
+ export declare const hostCapabilitySchema: z.ZodObject<{
31
+ event: z.ZodEnum<{
32
+ "checkpoint-request": "checkpoint-request";
33
+ compact: "compact";
34
+ resume: "resume";
35
+ startup: "startup";
36
+ }>;
37
+ nativeEvent: z.ZodNullable<z.ZodString>;
38
+ state: z.ZodEnum<{
39
+ callable: "callable";
40
+ configured: "configured";
41
+ discovered: "discovered";
42
+ installed: "installed";
43
+ unknown: "unknown";
44
+ unsupported: "unsupported";
45
+ verified: "verified";
46
+ }>;
47
+ reason: z.ZodNullable<z.ZodString>;
48
+ evidence: z.ZodArray<z.ZodObject<{
49
+ kind: z.ZodEnum<{
50
+ file: "file";
51
+ git: "git";
52
+ "native-event": "native-event";
53
+ "runtime-probe": "runtime-probe";
54
+ }>;
55
+ ref: z.ZodString;
56
+ digest: z.ZodNullable<z.ZodString>;
57
+ observedAt: z.ZodISODateTime;
58
+ scope: z.ZodEnum<{
59
+ declared: "declared";
60
+ "live-owned": "live-owned";
61
+ persisted: "persisted";
62
+ }>;
63
+ }, z.core.$strict>>;
64
+ }, z.core.$strict>;
65
+ export type HostCapability = z.infer<typeof hostCapabilitySchema>;
66
+ export declare const hostCapabilitiesSchema: z.ZodObject<{
67
+ schema: z.ZodLiteral<"pappra/host-capabilities/1">;
68
+ host: z.ZodEnum<{
69
+ claude: "claude";
70
+ codex: "codex";
71
+ pi: "pi";
72
+ }>;
73
+ surface: z.ZodEnum<{
74
+ "claude-hooks": "claude-hooks";
75
+ "codex-hooks": "codex-hooks";
76
+ "pi-extension": "pi-extension";
77
+ }>;
78
+ version: z.ZodNullable<z.ZodString>;
79
+ observedAt: z.ZodISODateTime;
80
+ executablePath: z.ZodNullable<z.ZodString>;
81
+ configPath: z.ZodNullable<z.ZodString>;
82
+ capabilities: z.ZodArray<z.ZodObject<{
83
+ event: z.ZodEnum<{
84
+ "checkpoint-request": "checkpoint-request";
85
+ compact: "compact";
86
+ resume: "resume";
87
+ startup: "startup";
88
+ }>;
89
+ nativeEvent: z.ZodNullable<z.ZodString>;
90
+ state: z.ZodEnum<{
91
+ callable: "callable";
92
+ configured: "configured";
93
+ discovered: "discovered";
94
+ installed: "installed";
95
+ unknown: "unknown";
96
+ unsupported: "unsupported";
97
+ verified: "verified";
98
+ }>;
99
+ reason: z.ZodNullable<z.ZodString>;
100
+ evidence: z.ZodArray<z.ZodObject<{
101
+ kind: z.ZodEnum<{
102
+ file: "file";
103
+ git: "git";
104
+ "native-event": "native-event";
105
+ "runtime-probe": "runtime-probe";
106
+ }>;
107
+ ref: z.ZodString;
108
+ digest: z.ZodNullable<z.ZodString>;
109
+ observedAt: z.ZodISODateTime;
110
+ scope: z.ZodEnum<{
111
+ declared: "declared";
112
+ "live-owned": "live-owned";
113
+ persisted: "persisted";
114
+ }>;
115
+ }, z.core.$strict>>;
116
+ }, z.core.$strict>>;
117
+ reloadRequired: z.ZodBoolean;
118
+ trustRequired: z.ZodBoolean;
119
+ automaticHandoff: z.ZodEnum<{
120
+ manual: "manual";
121
+ unsupported: "unsupported";
122
+ }>;
123
+ limits: z.ZodArray<z.ZodString>;
124
+ }, z.core.$strict>;
125
+ export type HostCapabilities = z.infer<typeof hostCapabilitiesSchema>;
126
+ export declare const hostPlanFileSchema: z.ZodObject<{
127
+ path: z.ZodString;
128
+ kind: z.ZodEnum<{
129
+ config: "config";
130
+ extension: "extension";
131
+ "hook-entry": "hook-entry";
132
+ manifest: "manifest";
133
+ skill: "skill";
134
+ }>;
135
+ operation: z.ZodEnum<{
136
+ conflict: "conflict";
137
+ create: "create";
138
+ "merge-managed": "merge-managed";
139
+ "replace-managed": "replace-managed";
140
+ unchanged: "unchanged";
141
+ }>;
142
+ beforeDigest: z.ZodNullable<z.ZodString>;
143
+ nextDigest: z.ZodString;
144
+ }, z.core.$strict>;
145
+ export type HostPlanFile = z.infer<typeof hostPlanFileSchema>;
146
+ export declare const hostIntegrationPlanSchema: z.ZodObject<{
147
+ schema: z.ZodLiteral<"pappra/host-integration/1">;
148
+ planId: z.ZodUUID;
149
+ host: z.ZodEnum<{
150
+ claude: "claude";
151
+ codex: "codex";
152
+ pi: "pi";
153
+ }>;
154
+ workspaceRoot: z.ZodString;
155
+ hostRoot: z.ZodString;
156
+ runtimeEntry: z.ZodString;
157
+ bundleDigest: z.ZodString;
158
+ files: z.ZodArray<z.ZodObject<{
159
+ path: z.ZodString;
160
+ kind: z.ZodEnum<{
161
+ config: "config";
162
+ extension: "extension";
163
+ "hook-entry": "hook-entry";
164
+ manifest: "manifest";
165
+ skill: "skill";
166
+ }>;
167
+ operation: z.ZodEnum<{
168
+ conflict: "conflict";
169
+ create: "create";
170
+ "merge-managed": "merge-managed";
171
+ "replace-managed": "replace-managed";
172
+ unchanged: "unchanged";
173
+ }>;
174
+ beforeDigest: z.ZodNullable<z.ZodString>;
175
+ nextDigest: z.ZodString;
176
+ }, z.core.$strict>>;
177
+ reloadRequired: z.ZodBoolean;
178
+ trustRequired: z.ZodBoolean;
179
+ diagnostics: z.ZodArray<z.ZodUnknown>;
180
+ }, z.core.$strict>;
181
+ export type HostIntegrationPlan = z.infer<typeof hostIntegrationPlanSchema>;
182
+ export declare const hostIntegrationResultSchema: z.ZodObject<{
183
+ schema: z.ZodLiteral<"pappra/host-integration/1">;
184
+ ok: z.ZodBoolean;
185
+ status: z.ZodEnum<{
186
+ applied: "applied";
187
+ conflict: "conflict";
188
+ failed: "failed";
189
+ invalid: "invalid";
190
+ partial: "partial";
191
+ planned: "planned";
192
+ unchanged: "unchanged";
193
+ unsupported: "unsupported";
194
+ }>;
195
+ plan: z.ZodNullable<z.ZodObject<{
196
+ schema: z.ZodLiteral<"pappra/host-integration/1">;
197
+ planId: z.ZodUUID;
198
+ host: z.ZodEnum<{
199
+ claude: "claude";
200
+ codex: "codex";
201
+ pi: "pi";
202
+ }>;
203
+ workspaceRoot: z.ZodString;
204
+ hostRoot: z.ZodString;
205
+ runtimeEntry: z.ZodString;
206
+ bundleDigest: z.ZodString;
207
+ files: z.ZodArray<z.ZodObject<{
208
+ path: z.ZodString;
209
+ kind: z.ZodEnum<{
210
+ config: "config";
211
+ extension: "extension";
212
+ "hook-entry": "hook-entry";
213
+ manifest: "manifest";
214
+ skill: "skill";
215
+ }>;
216
+ operation: z.ZodEnum<{
217
+ conflict: "conflict";
218
+ create: "create";
219
+ "merge-managed": "merge-managed";
220
+ "replace-managed": "replace-managed";
221
+ unchanged: "unchanged";
222
+ }>;
223
+ beforeDigest: z.ZodNullable<z.ZodString>;
224
+ nextDigest: z.ZodString;
225
+ }, z.core.$strict>>;
226
+ reloadRequired: z.ZodBoolean;
227
+ trustRequired: z.ZodBoolean;
228
+ diagnostics: z.ZodArray<z.ZodUnknown>;
229
+ }, z.core.$strict>>;
230
+ appliedFiles: z.ZodArray<z.ZodString>;
231
+ residualPaths: z.ZodArray<z.ZodString>;
232
+ diagnostics: z.ZodArray<z.ZodUnknown>;
233
+ }, z.core.$strict>;
234
+ export type HostIntegrationResult = z.infer<typeof hostIntegrationResultSchema>;
235
+ export declare const hostBundleFileSchema: z.ZodObject<{
236
+ path: z.ZodString;
237
+ digest: z.ZodString;
238
+ kind: z.ZodEnum<{
239
+ extension: "extension";
240
+ hook: "hook";
241
+ reference: "reference";
242
+ skill: "skill";
243
+ }>;
244
+ }, z.core.$strict>;
245
+ export type HostBundleFile = z.infer<typeof hostBundleFileSchema>;
246
+ export declare const hostBundleSchema: z.ZodObject<{
247
+ schema: z.ZodLiteral<"pappra/host-bundle/1">;
248
+ host: z.ZodEnum<{
249
+ claude: "claude";
250
+ codex: "codex";
251
+ pi: "pi";
252
+ }>;
253
+ skillId: z.ZodString;
254
+ packageVersion: z.ZodString;
255
+ bundleDigest: z.ZodString;
256
+ files: z.ZodArray<z.ZodObject<{
257
+ path: z.ZodString;
258
+ digest: z.ZodString;
259
+ kind: z.ZodEnum<{
260
+ extension: "extension";
261
+ hook: "hook";
262
+ reference: "reference";
263
+ skill: "skill";
264
+ }>;
265
+ }, z.core.$strict>>;
266
+ observedAt: z.ZodISODateTime;
267
+ }, z.core.$strict>;
268
+ export type HostBundle = z.infer<typeof hostBundleSchema>;
269
+ /** Normalized event accepted by the local hook runtime. */
270
+ export declare const hostHookInputSchema: z.ZodObject<{
271
+ schema: z.ZodLiteral<"pappra/host-hook-input/1">;
272
+ host: z.ZodEnum<{
273
+ claude: "claude";
274
+ codex: "codex";
275
+ pi: "pi";
276
+ }>;
277
+ event: z.ZodEnum<{
278
+ "checkpoint-request": "checkpoint-request";
279
+ compact: "compact";
280
+ resume: "resume";
281
+ startup: "startup";
282
+ }>;
283
+ nativeEvent: z.ZodString;
284
+ eventId: z.ZodNullable<z.ZodString>;
285
+ sessionId: z.ZodNullable<z.ZodString>;
286
+ cwd: z.ZodString;
287
+ root: z.ZodNullable<z.ZodString>;
288
+ taskId: z.ZodNullable<z.ZodString>;
289
+ source: z.ZodNullable<z.ZodString>;
290
+ observedAt: z.ZodISODateTime;
291
+ }, z.core.$strict>;
292
+ export type HostHookInput = z.infer<typeof hostHookInputSchema>;
293
+ export declare const hostHookResultSchema: z.ZodObject<{
294
+ schema: z.ZodLiteral<"pappra/host-hook-result/1">;
295
+ ok: z.ZodBoolean;
296
+ status: z.ZodEnum<{
297
+ duplicate: "duplicate";
298
+ failed: "failed";
299
+ invalid: "invalid";
300
+ processed: "processed";
301
+ timeout: "timeout";
302
+ unsupported: "unsupported";
303
+ }>;
304
+ host: z.ZodNullable<z.ZodEnum<{
305
+ claude: "claude";
306
+ codex: "codex";
307
+ pi: "pi";
308
+ }>>;
309
+ event: z.ZodNullable<z.ZodEnum<{
310
+ "checkpoint-request": "checkpoint-request";
311
+ compact: "compact";
312
+ resume: "resume";
313
+ startup: "startup";
314
+ }>>;
315
+ eventKey: z.ZodNullable<z.ZodString>;
316
+ duplicate: z.ZodBoolean;
317
+ context: z.ZodNullable<z.ZodString>;
318
+ diagnostics: z.ZodArray<z.ZodUnknown>;
319
+ }, z.core.$strict>;
320
+ export type HostHookResult = z.infer<typeof hostHookResultSchema>;
321
+ /** Observed external hook envelope; unknown keys are ignored by design. */
322
+ export declare const commandHookEventSchema: z.ZodObject<{
323
+ hook_event_name: z.ZodString;
324
+ session_id: z.ZodOptional<z.ZodString>;
325
+ cwd: z.ZodString;
326
+ source: z.ZodOptional<z.ZodString>;
327
+ event_id: z.ZodOptional<z.ZodString>;
328
+ pappra_task_id: z.ZodOptional<z.ZodString>;
329
+ }, z.core.$loose>;
330
+ export type CommandHookEvent = z.infer<typeof commandHookEventSchema>;
331
+ export declare const hostVerificationCheckSchema: z.ZodObject<{
332
+ id: z.ZodString;
333
+ status: z.ZodEnum<{
334
+ error: "error";
335
+ ok: "ok";
336
+ unknown: "unknown";
337
+ unsupported: "unsupported";
338
+ warning: "warning";
339
+ }>;
340
+ detail: z.ZodString;
341
+ }, z.core.$strict>;
342
+ export type HostVerificationCheck = z.infer<typeof hostVerificationCheckSchema>;
343
+ export declare const hostVerificationSchema: z.ZodObject<{
344
+ schema: z.ZodLiteral<"pappra/host-verification/1">;
345
+ host: z.ZodEnum<{
346
+ claude: "claude";
347
+ codex: "codex";
348
+ pi: "pi";
349
+ }>;
350
+ version: z.ZodNullable<z.ZodString>;
351
+ hostRoot: z.ZodString;
352
+ status: z.ZodEnum<{
353
+ conflict: "conflict";
354
+ partial: "partial";
355
+ unsupported: "unsupported";
356
+ verified: "verified";
357
+ }>;
358
+ bundleDigest: z.ZodNullable<z.ZodString>;
359
+ checks: z.ZodArray<z.ZodObject<{
360
+ id: z.ZodString;
361
+ status: z.ZodEnum<{
362
+ error: "error";
363
+ ok: "ok";
364
+ unknown: "unknown";
365
+ unsupported: "unsupported";
366
+ warning: "warning";
367
+ }>;
368
+ detail: z.ZodString;
369
+ }, z.core.$strict>>;
370
+ capabilities: z.ZodArray<z.ZodObject<{
371
+ event: z.ZodEnum<{
372
+ "checkpoint-request": "checkpoint-request";
373
+ compact: "compact";
374
+ resume: "resume";
375
+ startup: "startup";
376
+ }>;
377
+ nativeEvent: z.ZodNullable<z.ZodString>;
378
+ state: z.ZodEnum<{
379
+ callable: "callable";
380
+ configured: "configured";
381
+ discovered: "discovered";
382
+ installed: "installed";
383
+ unknown: "unknown";
384
+ unsupported: "unsupported";
385
+ verified: "verified";
386
+ }>;
387
+ reason: z.ZodNullable<z.ZodString>;
388
+ evidence: z.ZodArray<z.ZodObject<{
389
+ kind: z.ZodEnum<{
390
+ file: "file";
391
+ git: "git";
392
+ "native-event": "native-event";
393
+ "runtime-probe": "runtime-probe";
394
+ }>;
395
+ ref: z.ZodString;
396
+ digest: z.ZodNullable<z.ZodString>;
397
+ observedAt: z.ZodISODateTime;
398
+ scope: z.ZodEnum<{
399
+ declared: "declared";
400
+ "live-owned": "live-owned";
401
+ persisted: "persisted";
402
+ }>;
403
+ }, z.core.$strict>>;
404
+ }, z.core.$strict>>;
405
+ diagnostics: z.ZodArray<z.ZodUnknown>;
406
+ residualPaths: z.ZodArray<z.ZodString>;
407
+ }, z.core.$strict>;
408
+ export type HostVerification = z.infer<typeof hostVerificationSchema>;
409
+ export declare const hostInstallManifestSchema: z.ZodObject<{
410
+ schema: z.ZodLiteral<"pappra/host-install/1">;
411
+ host: z.ZodEnum<{
412
+ claude: "claude";
413
+ codex: "codex";
414
+ pi: "pi";
415
+ }>;
416
+ packageVersion: z.ZodString;
417
+ bundleDigest: z.ZodString;
418
+ installedAt: z.ZodISODateTime;
419
+ hostRoot: z.ZodString;
420
+ runtimeEntry: z.ZodString;
421
+ configPath: z.ZodNullable<z.ZodString>;
422
+ files: z.ZodArray<z.ZodObject<{
423
+ path: z.ZodString;
424
+ digest: z.ZodString;
425
+ kind: z.ZodEnum<{
426
+ config: "config";
427
+ extension: "extension";
428
+ hook: "hook";
429
+ reference: "reference";
430
+ skill: "skill";
431
+ }>;
432
+ }, z.core.$strict>>;
433
+ reloadRequired: z.ZodBoolean;
434
+ trustRequired: z.ZodBoolean;
435
+ }, z.core.$strict>;
436
+ export type HostInstallManifest = z.infer<typeof hostInstallManifestSchema>;
@@ -0,0 +1,201 @@
1
+ import { z } from 'zod';
2
+ import { evidenceRefSchema } from './evidence.js';
3
+ export const HOST_INTEGRATION_SCHEMA = 'pappra/host-integration/1';
4
+ export const HOST_CAPABILITIES_SCHEMA = 'pappra/host-capabilities/1';
5
+ export const HOST_BUNDLE_SCHEMA = 'pappra/host-bundle/1';
6
+ export const HOST_HOOK_INPUT_SCHEMA = 'pappra/host-hook-input/1';
7
+ export const HOST_HOOK_RESULT_SCHEMA = 'pappra/host-hook-result/1';
8
+ const digestSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/);
9
+ const digestOrNull = digestSchema.nullable();
10
+ const absolutePathSchema = z
11
+ .string()
12
+ .min(1)
13
+ .max(4096)
14
+ .refine((value) => value.startsWith('/') || /^[A-Za-z]:[\\/]/.test(value), 'Expected an absolute host path.');
15
+ export const hostNameSchema = z.enum(['pi', 'codex', 'claude']);
16
+ export const hostLifecycleEventSchema = z.enum([
17
+ 'startup',
18
+ 'resume',
19
+ 'compact',
20
+ 'checkpoint-request',
21
+ ]);
22
+ export const hostCapabilityStateSchema = z.enum([
23
+ 'installed',
24
+ 'configured',
25
+ 'discovered',
26
+ 'callable',
27
+ 'verified',
28
+ 'unsupported',
29
+ 'unknown',
30
+ ]);
31
+ export const hostCapabilitySchema = z.strictObject({
32
+ event: hostLifecycleEventSchema,
33
+ nativeEvent: z.string().min(1).max(128).nullable(),
34
+ state: hostCapabilityStateSchema,
35
+ reason: z.string().min(1).max(1024).nullable(),
36
+ evidence: z.array(evidenceRefSchema).max(8),
37
+ });
38
+ export const hostCapabilitiesSchema = z.strictObject({
39
+ schema: z.literal(HOST_CAPABILITIES_SCHEMA),
40
+ host: hostNameSchema,
41
+ surface: z.enum(['pi-extension', 'codex-hooks', 'claude-hooks']),
42
+ version: z.string().min(1).max(128).nullable(),
43
+ observedAt: z.iso.datetime({ offset: true }),
44
+ executablePath: absolutePathSchema.nullable(),
45
+ configPath: absolutePathSchema.nullable(),
46
+ capabilities: z.array(hostCapabilitySchema).max(8),
47
+ reloadRequired: z.boolean(),
48
+ trustRequired: z.boolean(),
49
+ automaticHandoff: z.enum(['unsupported', 'manual']),
50
+ limits: z.array(z.string().min(1).max(1024)).max(16),
51
+ });
52
+ export const hostPlanFileSchema = z.strictObject({
53
+ path: z
54
+ .string()
55
+ .min(1)
56
+ .max(2048)
57
+ .refine((value) => !value.startsWith('/') &&
58
+ !value.includes('\\') &&
59
+ !value.includes('\0') &&
60
+ !value.split('/').includes('..'), 'Expected a portable host-relative path.'),
61
+ kind: z.enum(['skill', 'hook-entry', 'extension', 'config', 'manifest']),
62
+ operation: z.enum([
63
+ 'create',
64
+ 'replace-managed',
65
+ 'merge-managed',
66
+ 'unchanged',
67
+ 'conflict',
68
+ ]),
69
+ beforeDigest: digestOrNull,
70
+ nextDigest: digestSchema,
71
+ });
72
+ export const hostIntegrationPlanSchema = z.strictObject({
73
+ schema: z.literal(HOST_INTEGRATION_SCHEMA),
74
+ planId: z.uuid(),
75
+ host: hostNameSchema,
76
+ workspaceRoot: absolutePathSchema,
77
+ hostRoot: absolutePathSchema,
78
+ runtimeEntry: absolutePathSchema,
79
+ bundleDigest: digestSchema,
80
+ files: z.array(hostPlanFileSchema).max(64),
81
+ reloadRequired: z.boolean(),
82
+ trustRequired: z.boolean(),
83
+ diagnostics: z.array(z.unknown()).max(32),
84
+ });
85
+ export const hostIntegrationResultSchema = z.strictObject({
86
+ schema: z.literal(HOST_INTEGRATION_SCHEMA),
87
+ ok: z.boolean(),
88
+ status: z.enum([
89
+ 'planned',
90
+ 'applied',
91
+ 'unchanged',
92
+ 'partial',
93
+ 'conflict',
94
+ 'unsupported',
95
+ 'invalid',
96
+ 'failed',
97
+ ]),
98
+ plan: hostIntegrationPlanSchema.nullable(),
99
+ appliedFiles: z.array(z.string().min(1).max(2048)).max(64),
100
+ residualPaths: z.array(absolutePathSchema).max(32),
101
+ diagnostics: z.array(z.unknown()).max(32),
102
+ });
103
+ export const hostBundleFileSchema = z.strictObject({
104
+ path: z.string().min(1).max(2048),
105
+ digest: digestSchema,
106
+ kind: z.enum(['skill', 'reference', 'hook', 'extension']),
107
+ });
108
+ export const hostBundleSchema = z.strictObject({
109
+ schema: z.literal(HOST_BUNDLE_SCHEMA),
110
+ host: hostNameSchema,
111
+ skillId: z.string().min(1).max(128),
112
+ packageVersion: z.string().min(1).max(128),
113
+ bundleDigest: digestSchema,
114
+ files: z.array(hostBundleFileSchema).max(64),
115
+ observedAt: z.iso.datetime({ offset: true }),
116
+ });
117
+ /** Normalized event accepted by the local hook runtime. */
118
+ export const hostHookInputSchema = z.strictObject({
119
+ schema: z.literal(HOST_HOOK_INPUT_SCHEMA),
120
+ host: hostNameSchema,
121
+ event: hostLifecycleEventSchema,
122
+ nativeEvent: z.string().min(1).max(128),
123
+ eventId: z.string().min(1).max(256).nullable(),
124
+ sessionId: z.string().min(1).max(256).nullable(),
125
+ cwd: absolutePathSchema,
126
+ root: absolutePathSchema.nullable(),
127
+ taskId: z
128
+ .string()
129
+ .min(1)
130
+ .max(64)
131
+ .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/)
132
+ .nullable(),
133
+ source: z.string().min(1).max(128).nullable(),
134
+ observedAt: z.iso.datetime({ offset: true }),
135
+ });
136
+ export const hostHookResultSchema = z.strictObject({
137
+ schema: z.literal(HOST_HOOK_RESULT_SCHEMA),
138
+ ok: z.boolean(),
139
+ status: z.enum([
140
+ 'processed',
141
+ 'duplicate',
142
+ 'unsupported',
143
+ 'invalid',
144
+ 'timeout',
145
+ 'failed',
146
+ ]),
147
+ host: hostNameSchema.nullable(),
148
+ event: hostLifecycleEventSchema.nullable(),
149
+ eventKey: z.string().min(1).max(256).nullable(),
150
+ duplicate: z.boolean(),
151
+ context: z.string().max(8192).nullable(),
152
+ diagnostics: z.array(z.unknown()).max(16),
153
+ });
154
+ /** Observed external hook envelope; unknown keys are ignored by design. */
155
+ export const commandHookEventSchema = z.looseObject({
156
+ hook_event_name: z.string().min(1).max(128),
157
+ session_id: z.string().min(1).max(256).optional(),
158
+ cwd: z.string().min(1).max(4096),
159
+ source: z.string().min(1).max(128).optional(),
160
+ event_id: z.string().min(1).max(256).optional(),
161
+ pappra_task_id: z
162
+ .string()
163
+ .min(1)
164
+ .max(64)
165
+ .regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/)
166
+ .optional(),
167
+ });
168
+ export const hostVerificationCheckSchema = z.strictObject({
169
+ id: z.string().min(1).max(128),
170
+ status: z.enum(['ok', 'warning', 'error', 'unknown', 'unsupported']),
171
+ detail: z.string().min(1).max(2048),
172
+ });
173
+ export const hostVerificationSchema = z.strictObject({
174
+ schema: z.literal('pappra/host-verification/1'),
175
+ host: hostNameSchema,
176
+ version: z.string().min(1).max(128).nullable(),
177
+ hostRoot: absolutePathSchema,
178
+ status: z.enum(['verified', 'partial', 'unsupported', 'conflict']),
179
+ bundleDigest: digestOrNull,
180
+ checks: z.array(hostVerificationCheckSchema).max(32),
181
+ capabilities: z.array(hostCapabilitySchema).max(8),
182
+ diagnostics: z.array(z.unknown()).max(32),
183
+ residualPaths: z.array(absolutePathSchema).max(32),
184
+ });
185
+ export const hostInstallManifestSchema = z.strictObject({
186
+ schema: z.literal('pappra/host-install/1'),
187
+ host: hostNameSchema,
188
+ packageVersion: z.string().min(1).max(128),
189
+ bundleDigest: digestSchema,
190
+ installedAt: z.iso.datetime({ offset: true }),
191
+ hostRoot: absolutePathSchema,
192
+ runtimeEntry: absolutePathSchema,
193
+ configPath: z.string().min(1).max(2048).nullable(),
194
+ files: z.array(z.strictObject({
195
+ path: z.string().min(1).max(2048),
196
+ digest: digestSchema,
197
+ kind: z.enum(['skill', 'reference', 'hook', 'extension', 'config']),
198
+ })),
199
+ reloadRequired: z.boolean(),
200
+ trustRequired: z.boolean(),
201
+ });
@@ -0,0 +1,15 @@
1
+ export * from './diagnostics.js';
2
+ export * from './continuity.js';
3
+ export * from './code.js';
4
+ export * from './collaboration.js';
5
+ export * from './doctor.js';
6
+ export * from './document.js';
7
+ export * from './errors.js';
8
+ export * from './evidence.js';
9
+ export * from './host.js';
10
+ export * from './init.js';
11
+ export * from './install.js';
12
+ export * from './machine.js';
13
+ export * from './outcome.js';
14
+ export * from './paths.js';
15
+ export * from './workspace.js';
@@ -0,0 +1,15 @@
1
+ export * from './diagnostics.js';
2
+ export * from './continuity.js';
3
+ export * from './code.js';
4
+ export * from './collaboration.js';
5
+ export * from './doctor.js';
6
+ export * from './document.js';
7
+ export * from './errors.js';
8
+ export * from './evidence.js';
9
+ export * from './host.js';
10
+ export * from './init.js';
11
+ export * from './install.js';
12
+ export * from './machine.js';
13
+ export * from './outcome.js';
14
+ export * from './paths.js';
15
+ export * from './workspace.js';