@pulse-compute/cli 0.0.0 → 1.0.0-beta.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 (190) hide show
  1. package/API.md +539 -0
  2. package/CHANGELOG.md +47 -0
  3. package/README.md +70 -1
  4. package/bin/pulse.js +15 -0
  5. package/bin/pulsewasm-extract.js +22 -0
  6. package/cli-spec.json +575 -0
  7. package/completions/_pulse +106 -0
  8. package/completions/pulse.bash +31 -0
  9. package/completions/pulse.fish +76 -0
  10. package/docs/README.md +77 -0
  11. package/docs/architecture/current-contracts.md +381 -0
  12. package/docs/architecture/overview.md +93 -0
  13. package/docs/architecture/vision.md +515 -0
  14. package/docs/concepts/bodies.md +186 -0
  15. package/docs/concepts/compilation-and-lowering.md +496 -0
  16. package/docs/concepts/contracts-and-providers.md +158 -0
  17. package/docs/concepts/effects-and-continuations.md +243 -0
  18. package/docs/concepts/entities-and-adapters.md +71 -0
  19. package/docs/concepts/package-owned-lowering.md +175 -0
  20. package/docs/concepts/targets-and-hosts.md +62 -0
  21. package/docs/contributing/README.md +38 -0
  22. package/docs/contributing/adding-core-provider.md +315 -0
  23. package/docs/contributing/adding-first-party-lowerer.md +327 -0
  24. package/docs/contributing/entities-lowering.md +91 -0
  25. package/docs/contributing/package-lowerer-contract.md +383 -0
  26. package/docs/contributing/pulse-aware-packages.md +149 -0
  27. package/docs/examples.md +112 -0
  28. package/docs/fixtures/inspect-fetch-composition.selected.json +181 -0
  29. package/docs/getting-started.md +128 -0
  30. package/docs/guides/compatibility-imports.md +60 -0
  31. package/docs/guides/deploying-fastly.md +188 -0
  32. package/docs/guides/deploying-node.md +143 -0
  33. package/docs/guides/events.md +233 -0
  34. package/docs/guides/fastly-capabilities.md +153 -0
  35. package/docs/guides/fetching-and-composition.md +101 -0
  36. package/docs/guides/grip.md +94 -0
  37. package/docs/guides/json-schemas.md +233 -0
  38. package/docs/guides/migrating-from-express.md +192 -0
  39. package/docs/guides/project-lifecycle.md +143 -0
  40. package/docs/guides/routing.md +184 -0
  41. package/docs/guides/troubleshooting.md +47 -0
  42. package/docs/maintainers/README.md +60 -0
  43. package/docs/maintainers/codex-maintainer.md +71 -0
  44. package/docs/maintainers/documentation-deployment.md +147 -0
  45. package/docs/maintainers/documentation-system.md +58 -0
  46. package/docs/maintainers/documentation-versioning.md +65 -0
  47. package/docs/maintainers/maintainer-charter.md +84 -0
  48. package/docs/maintainers/maintenance-policy.json +778 -0
  49. package/docs/maintainers/maintenance-policy.md +124 -0
  50. package/docs/maintainers/npm-publishing.md +154 -0
  51. package/docs/maintainers/plugin-readiness.json +19 -0
  52. package/docs/maintainers/plugin-readiness.md +31 -0
  53. package/docs/maintainers/public-site.md +158 -0
  54. package/docs/maintainers/release-acceptance.md +250 -0
  55. package/docs/maintainers/release-manifest.md +88 -0
  56. package/docs/maintainers/repository-setup.md +145 -0
  57. package/docs/maintainers/scope-policy.md +93 -0
  58. package/docs/maintainers/support-and-triage.md +74 -0
  59. package/docs/maintainers/testing.md +288 -0
  60. package/docs/packages/README.md +59 -0
  61. package/docs/packages/assets.md +85 -0
  62. package/docs/packages/cli.md +190 -0
  63. package/docs/packages/crypto.md +71 -0
  64. package/docs/packages/entities.md +129 -0
  65. package/docs/packages/grip.md +82 -0
  66. package/docs/packages/implementation-packages.md +113 -0
  67. package/docs/packages/jwt.md +55 -0
  68. package/docs/packages/provider-fastly.md +217 -0
  69. package/docs/packages/pulse.md +159 -0
  70. package/docs/packages/runtime.md +256 -0
  71. package/docs/preview-scope.md +142 -0
  72. package/docs/reference/README.md +33 -0
  73. package/docs/reference/cli-spec.json +575 -0
  74. package/docs/reference/cli.md +457 -0
  75. package/docs/reference/compatibility-matrix.md +169 -0
  76. package/docs/reference/diagnostics.md +1872 -0
  77. package/docs/reference/documentation-versions.json +14 -0
  78. package/docs/reference/environment.md +347 -0
  79. package/docs/reference/handler-authoring.md +264 -0
  80. package/docs/reference/project-config.md +554 -0
  81. package/docs/reference/project-config.schema.json +918 -0
  82. package/docs/reference/release-manifest.json +427 -0
  83. package/docs/reference/shell-completion.md +23 -0
  84. package/documentation-site.json +661 -0
  85. package/documentation-versions.json +14 -0
  86. package/examples/01-hello-json/.pulse/.gitignore +3 -0
  87. package/examples/01-hello-json/.pulse/config.ts +16 -0
  88. package/examples/01-hello-json/README.md +119 -0
  89. package/examples/01-hello-json/package.json +20 -0
  90. package/examples/01-hello-json/src/index.ts +9 -0
  91. package/examples/01-hello-json/tests/pulse.harness.ts +22 -0
  92. package/examples/01-hello-json/tsconfig.json +14 -0
  93. package/examples/02-request-schema/.pulse/.gitignore +3 -0
  94. package/examples/02-request-schema/.pulse/config.ts +17 -0
  95. package/examples/02-request-schema/README.md +145 -0
  96. package/examples/02-request-schema/package.json +20 -0
  97. package/examples/02-request-schema/src/index.ts +18 -0
  98. package/examples/02-request-schema/src/schemas.ts +20 -0
  99. package/examples/02-request-schema/tests/pulse.harness.ts +37 -0
  100. package/examples/02-request-schema/tsconfig.json +14 -0
  101. package/examples/03-fetch-composition/.pulse/.gitignore +3 -0
  102. package/examples/03-fetch-composition/.pulse/config.ts +31 -0
  103. package/examples/03-fetch-composition/README.md +210 -0
  104. package/examples/03-fetch-composition/package.json +20 -0
  105. package/examples/03-fetch-composition/src/index.ts +60 -0
  106. package/examples/03-fetch-composition/tests/pulse.harness.ts +47 -0
  107. package/examples/03-fetch-composition/tsconfig.json +14 -0
  108. package/examples/05-fastly-capabilities/.pulse/.gitignore +3 -0
  109. package/examples/05-fastly-capabilities/.pulse/config.ts +57 -0
  110. package/examples/05-fastly-capabilities/README.md +257 -0
  111. package/examples/05-fastly-capabilities/package.json +22 -0
  112. package/examples/05-fastly-capabilities/src/index.ts +55 -0
  113. package/examples/05-fastly-capabilities/tests/pulse.harness.ts +66 -0
  114. package/examples/05-fastly-capabilities/tsconfig.json +14 -0
  115. package/examples/07-opaque-proxy/.pulse/.gitignore +3 -0
  116. package/examples/07-opaque-proxy/.pulse/config.ts +38 -0
  117. package/examples/07-opaque-proxy/README.md +150 -0
  118. package/examples/07-opaque-proxy/package.json +21 -0
  119. package/examples/07-opaque-proxy/src/index.ts +9 -0
  120. package/examples/07-opaque-proxy/tests/pulse.harness.ts +25 -0
  121. package/examples/07-opaque-proxy/tsconfig.json +14 -0
  122. package/examples/09-router-lowering/.pulse/.gitignore +3 -0
  123. package/examples/09-router-lowering/.pulse/config.ts +22 -0
  124. package/examples/09-router-lowering/README.md +287 -0
  125. package/examples/09-router-lowering/package.json +22 -0
  126. package/examples/09-router-lowering/src/index.ts +65 -0
  127. package/examples/09-router-lowering/tests/pulse.harness.ts +91 -0
  128. package/examples/09-router-lowering/tsconfig.json +14 -0
  129. package/examples/10-entities-tools/.pulse/.gitignore +4 -0
  130. package/examples/10-entities-tools/.pulse/config.ts +23 -0
  131. package/examples/10-entities-tools/README.md +165 -0
  132. package/examples/10-entities-tools/package.json +21 -0
  133. package/examples/10-entities-tools/src/handlers.ts +15 -0
  134. package/examples/10-entities-tools/src/index.ts +31 -0
  135. package/examples/10-entities-tools/src/schemas.ts +18 -0
  136. package/examples/10-entities-tools/tests/pulse.harness.ts +40 -0
  137. package/examples/10-entities-tools/tools-facade.cjs +158 -0
  138. package/examples/10-entities-tools/tsconfig.json +14 -0
  139. package/examples/11-events/.pulse/.gitignore +4 -0
  140. package/examples/11-events/.pulse/config.ts +24 -0
  141. package/examples/11-events/README.md +194 -0
  142. package/examples/11-events/package.json +20 -0
  143. package/examples/11-events/src/index.ts +27 -0
  144. package/examples/11-events/src/schemas.ts +19 -0
  145. package/examples/11-events/tests/pulse.harness.ts +34 -0
  146. package/examples/11-events/tsconfig.json +15 -0
  147. package/examples/12-mcp-proxy/.pulse/.gitignore +3 -0
  148. package/examples/12-mcp-proxy/.pulse/config.ts +25 -0
  149. package/examples/12-mcp-proxy/README.md +149 -0
  150. package/examples/12-mcp-proxy/package.json +20 -0
  151. package/examples/12-mcp-proxy/src/index.ts +17 -0
  152. package/examples/12-mcp-proxy/tests/pulse.harness.ts +29 -0
  153. package/examples/12-mcp-proxy/tsconfig.json +14 -0
  154. package/examples/13-jwt-es256/.pulse/config.ts +19 -0
  155. package/examples/13-jwt-es256/README.md +195 -0
  156. package/examples/13-jwt-es256/package.json +21 -0
  157. package/examples/13-jwt-es256/src/index.ts +21 -0
  158. package/examples/13-jwt-es256/tests/pulse.harness.ts +54 -0
  159. package/examples/13-jwt-es256/tsconfig.json +14 -0
  160. package/examples/README.md +36 -0
  161. package/package.json +66 -6
  162. package/project-config.schema.json +918 -0
  163. package/release-manifest.json +427 -0
  164. package/src/command-spec.js +279 -0
  165. package/src/completion.js +113 -0
  166. package/src/diagnostics.js +350 -0
  167. package/src/documentation.js +45 -0
  168. package/src/index.d.ts +133 -0
  169. package/src/index.js +15 -0
  170. package/src/internal/command-executor.d.ts +29 -0
  171. package/src/internal/command-executor.js +143 -0
  172. package/src/internal/command-plan.d.ts +9 -0
  173. package/src/internal/command-plan.js +73 -0
  174. package/src/internal/command-reporter.d.ts +15 -0
  175. package/src/internal/command-reporter.js +133 -0
  176. package/src/internal/command-request.d.ts +35 -0
  177. package/src/internal/command-request.js +154 -0
  178. package/src/internal/node-http.js +54 -0
  179. package/src/internal/project-context.d.ts +66 -0
  180. package/src/internal/project-context.js +175 -0
  181. package/src/project-config-reference.js +4 -0
  182. package/src/project-config-schema.d.ts +23 -0
  183. package/src/project-config-schema.js +271 -0
  184. package/src/project-config.js +724 -0
  185. package/src/project-execution.js +2930 -0
  186. package/src/provider-drivers.js +3 -0
  187. package/src/target-support.js +3 -0
  188. package/src/typescript-module-loader.js +269 -0
  189. package/src/workflow.js +78 -0
  190. package/src/workspace.js +82 -0
@@ -0,0 +1,778 @@
1
+ {
2
+ "schemaVersion": "pulse.maintenance-policy.v2",
3
+ "policyVersion": 6,
4
+ "releaseVersion": "1.0.0-beta.1",
5
+ "reviewedAt": "2026-08-01",
6
+ "maintainerModel": {
7
+ "residentMaintainer": "Codex",
8
+ "architectureAuthority": "human",
9
+ "mergeAuthority": "human-only",
10
+ "releaseAuthority": "human-only",
11
+ "defaultAgentMode": "analyze-review-and-prepare-patches",
12
+ "agentMayMerge": false,
13
+ "agentMayPublish": false,
14
+ "agentMayChangeRepositorySettings": false,
15
+ "agentMayApproveProtectedBoundaryChanges": false
16
+ },
17
+ "github": {
18
+ "codeOwners": [
19
+ "@pulse-compute/pulse-maintainers"
20
+ ],
21
+ "openAiSecret": "OPENAI_API_KEY",
22
+ "codexEnvironment": "codex-maintainer",
23
+ "requiredStatusChecks": [
24
+ "Maintainer scope / scope",
25
+ "Repository validation / maintenance",
26
+ "Repository validation / node-floor",
27
+ "Repository validation / portable",
28
+ "Documentation / build"
29
+ ],
30
+ "codexMode": "manual-policy-review-plus-optional-native-review",
31
+ "actionPins": {
32
+ "actions/checkout": {
33
+ "sha": "9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0",
34
+ "version": "v7.0.0"
35
+ },
36
+ "actions/setup-node": {
37
+ "sha": "48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e",
38
+ "version": "v6.4.0"
39
+ },
40
+ "actions/upload-artifact": {
41
+ "sha": "043fb46d1a93c77aae656e7c1c64a875d1fc6a0a",
42
+ "version": "v7.0.1"
43
+ },
44
+ "actions/download-artifact": {
45
+ "sha": "3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c",
46
+ "version": "v8.0.1"
47
+ },
48
+ "actions/github-script": {
49
+ "sha": "3a2844b7e9c422d3c10d287c895573f7108da1b3",
50
+ "version": "v9.0.0"
51
+ },
52
+ "openai/codex-action": {
53
+ "sha": "52fe01ec70a42f454c9d2ebd47598f9fd6893d56",
54
+ "version": "v1.11"
55
+ }
56
+ },
57
+ "protectedEnvironments": {
58
+ "codex-maintainer": {
59
+ "authority": "human-maintainer",
60
+ "allowedRefs": "default-branch",
61
+ "secrets": [
62
+ "OPENAI_API_KEY"
63
+ ],
64
+ "variables": []
65
+ },
66
+ "npm-publish": {
67
+ "authority": "human-release",
68
+ "allowedRefs": "release-tags",
69
+ "secrets": [],
70
+ "variables": []
71
+ },
72
+ "documentation-production": {
73
+ "authority": "human-release-infrastructure",
74
+ "allowedRefs": "release-tags",
75
+ "secrets": [
76
+ "FASTLY_OBJECT_STORAGE_ACCESS_KEY_ID",
77
+ "FASTLY_OBJECT_STORAGE_SECRET_ACCESS_KEY"
78
+ ],
79
+ "variables": [
80
+ "FASTLY_OBJECT_STORAGE_BUCKET",
81
+ "FASTLY_OBJECT_STORAGE_REGION",
82
+ "FASTLY_OBJECT_STORAGE_ENDPOINT",
83
+ "PULSE_DOCUMENTATION_ORIGIN",
84
+ "PULSE_DOCUMENTATION_BASE_PATH"
85
+ ]
86
+ }
87
+ }
88
+ },
89
+ "changeClasses": {
90
+ "defect": {
91
+ "label": "Defect",
92
+ "summary": "Supported behavior does not match the documented or tested contract.",
93
+ "agentMayImplement": true,
94
+ "humanDecisionRequired": false,
95
+ "defaultScope": "inside-developer-preview"
96
+ },
97
+ "hardening": {
98
+ "label": "Hardening",
99
+ "summary": "Reliability, security, diagnostics, performance, or test strength improves without widening supported behavior.",
100
+ "agentMayImplement": true,
101
+ "humanDecisionRequired": false,
102
+ "defaultScope": "inside-developer-preview"
103
+ },
104
+ "documentation": {
105
+ "label": "Documentation",
106
+ "summary": "Documentation, examples, generated references, or presentation change without runtime behavior expansion.",
107
+ "agentMayImplement": true,
108
+ "humanDecisionRequired": false,
109
+ "defaultScope": "inside-developer-preview"
110
+ },
111
+ "evidence": {
112
+ "label": "Evidence",
113
+ "summary": "A reproduction, benchmark, fixture, experiment, or usage report records information without creating a product promise.",
114
+ "agentMayImplement": true,
115
+ "humanDecisionRequired": false,
116
+ "defaultScope": "evidence-only"
117
+ },
118
+ "scope-expansion": {
119
+ "label": "Scope expansion",
120
+ "summary": "New authoring syntax, capability, provider, effect, public entry point, compatibility promise, or product behavior is proposed.",
121
+ "agentMayImplement": false,
122
+ "humanDecisionRequired": true,
123
+ "defaultScope": "scope-expansion"
124
+ },
125
+ "architecture": {
126
+ "label": "Architecture",
127
+ "summary": "A protected boundary, trust assumption, ownership rule, execution contract, or governance mechanism changes.",
128
+ "agentMayImplement": false,
129
+ "humanDecisionRequired": true,
130
+ "defaultScope": "architecture-change"
131
+ },
132
+ "release": {
133
+ "label": "Release",
134
+ "summary": "Versioning, publication, signing, provenance, package composition, or release-channel behavior changes.",
135
+ "agentMayImplement": false,
136
+ "humanDecisionRequired": true,
137
+ "defaultScope": "release-change"
138
+ }
139
+ },
140
+ "scopeStates": {
141
+ "inside-developer-preview": {
142
+ "label": "Inside Beta",
143
+ "humanDecisionRequired": false
144
+ },
145
+ "evidence-only": {
146
+ "label": "Evidence only",
147
+ "humanDecisionRequired": false
148
+ },
149
+ "scope-expansion": {
150
+ "label": "Scope expansion",
151
+ "humanDecisionRequired": true
152
+ },
153
+ "architecture-change": {
154
+ "label": "Architecture change",
155
+ "humanDecisionRequired": true
156
+ },
157
+ "release-change": {
158
+ "label": "Release change",
159
+ "humanDecisionRequired": true
160
+ }
161
+ },
162
+ "checks": {
163
+ "maintenance-policy": {
164
+ "label": "Maintainer control plane",
165
+ "command": "node scripts/validate-maintainer-control-plane.cjs",
166
+ "portable": true
167
+ },
168
+ "publication-control-plane": {
169
+ "label": "Publication and documentation deployment control plane",
170
+ "command": "node scripts/validate-publication-workflows.cjs",
171
+ "portable": true
172
+ },
173
+ "release-preflight": {
174
+ "label": "Release preflight and documentation inventory",
175
+ "command": "node scripts/release-preflight.cjs --check",
176
+ "portable": true
177
+ },
178
+ "documentation": {
179
+ "label": "Documentation synchronization and site",
180
+ "command": "npm run docs:check",
181
+ "portable": true
182
+ },
183
+ "unit": {
184
+ "label": "Unit and repository contract evidence",
185
+ "command": "node wasm/scripts/run-wasm-tests.cjs --profile unit --no-report",
186
+ "portable": true
187
+ },
188
+ "native": {
189
+ "label": "Native compilation and runtime evidence",
190
+ "command": "node wasm/scripts/run-wasm-tests.cjs --profile native --no-report",
191
+ "portable": true
192
+ },
193
+ "javascript": {
194
+ "label": "JavaScript target evidence",
195
+ "command": "node wasm/scripts/run-wasm-tests.cjs --profile javascript --no-report",
196
+ "portable": true
197
+ },
198
+ "conformance": {
199
+ "label": "Cross-target conformance evidence",
200
+ "command": "node wasm/scripts/run-wasm-tests.cjs --profile conformance --no-report",
201
+ "portable": true
202
+ },
203
+ "cli": {
204
+ "label": "CLI truth profile",
205
+ "command": "node wasm/scripts/run-wasm-tests.cjs --profile cli --no-report",
206
+ "portable": true
207
+ },
208
+ "providers": {
209
+ "label": "Provider realization evidence",
210
+ "command": "node wasm/scripts/run-wasm-tests.cjs --profile providers --no-report",
211
+ "portable": false
212
+ },
213
+ "build": {
214
+ "label": "Workspace TypeScript build",
215
+ "command": "pnpm build",
216
+ "portable": false
217
+ },
218
+ "release": {
219
+ "label": "Aggregate release seal",
220
+ "command": "npm run release:seal",
221
+ "portable": false
222
+ }
223
+ },
224
+ "protectedBoundaries": [
225
+ {
226
+ "id": "public-authoring-api",
227
+ "label": "Public authoring API",
228
+ "summary": "The provider-neutral TypeScript handler and exported application types.",
229
+ "decisionKind": "architecture",
230
+ "contractUpdateRequired": true
231
+ },
232
+ {
233
+ "id": "effect-capability-model",
234
+ "label": "Effect and capability model",
235
+ "summary": "The explicit operations a guest can request and the authority a host can realize.",
236
+ "decisionKind": "architecture",
237
+ "contractUpdateRequired": true
238
+ },
239
+ {
240
+ "id": "continuation-runtime",
241
+ "label": "Continuation runtime",
242
+ "summary": "Suspension, resumption, timeout, identity, and lifecycle semantics between effects.",
243
+ "decisionKind": "architecture",
244
+ "contractUpdateRequired": true
245
+ },
246
+ {
247
+ "id": "lowerer-trust",
248
+ "label": "Lowerer trust boundary",
249
+ "summary": "Discovery and execution of package-owned lowerers and the first-party trust restriction.",
250
+ "decisionKind": "architecture",
251
+ "contractUpdateRequired": true
252
+ },
253
+ {
254
+ "id": "provider-registry",
255
+ "label": "Provider registry",
256
+ "summary": "Provider namespace resolution, exact scoped-package bootstrap, provider contracts, host bindings, and target realization.",
257
+ "decisionKind": "architecture",
258
+ "contractUpdateRequired": true
259
+ },
260
+ {
261
+ "id": "configuration-contract",
262
+ "label": "Configuration contract",
263
+ "summary": "Public project configuration fields, defaults, precedence, and runtime constraints.",
264
+ "decisionKind": "architecture",
265
+ "contractUpdateRequired": false
266
+ },
267
+ {
268
+ "id": "runtime-target-fluidity",
269
+ "label": "Runtime target fluidity",
270
+ "summary": "The stable runtime authoring contract and the explicit boundary between native, JavaScript, and future sidecar execution targets.",
271
+ "decisionKind": "architecture",
272
+ "contractUpdateRequired": true
273
+ },
274
+ {
275
+ "id": "package-publication",
276
+ "label": "Package publication contract",
277
+ "summary": "Published package set, exports, support tiers, exact versions, and packed payloads.",
278
+ "decisionKind": "release",
279
+ "contractUpdateRequired": false
280
+ },
281
+ {
282
+ "id": "maintenance-control-plane",
283
+ "label": "Maintenance control plane",
284
+ "summary": "Agent authority, scope policy, repository workflows, ownership, and review gates.",
285
+ "decisionKind": "architecture",
286
+ "contractUpdateRequired": true
287
+ },
288
+ {
289
+ "id": "documentation-deployment",
290
+ "label": "Documentation deployment contract",
291
+ "summary": "Immutable version objects, mutable promotion surfaces, Object Storage delivery, public routing, and production activation.",
292
+ "decisionKind": "release",
293
+ "contractUpdateRequired": false
294
+ },
295
+ {
296
+ "id": "release-authority",
297
+ "label": "Release authority",
298
+ "summary": "Version, channel, publication, deployment, signing, and provenance decisions.",
299
+ "decisionKind": "release",
300
+ "contractUpdateRequired": false
301
+ }
302
+ ],
303
+ "pathRules": [
304
+ {
305
+ "id": "maintainer-control-plane",
306
+ "patterns": [
307
+ "AGENTS.md",
308
+ "**/AGENTS.md",
309
+ ".github/**",
310
+ "CONTRIBUTING.md",
311
+ "SECURITY.md",
312
+ "SUPPORT.md",
313
+ "release/maintenance-policy.json",
314
+ "scripts/maintenance-policy.cjs",
315
+ "scripts/maintainer-*.cjs",
316
+ "scripts/validate-maintainer-control-plane.cjs",
317
+ "docs/maintainers/README.md",
318
+ "docs/maintainers/maintainer-charter.md",
319
+ "docs/maintainers/scope-policy.md",
320
+ "docs/maintainers/codex-maintainer.md",
321
+ "docs/maintainers/repository-setup.md",
322
+ "docs/maintainers/support-and-triage.md",
323
+ "docs/maintainers/maintenance-policy.*"
324
+ ],
325
+ "areas": [
326
+ "governance"
327
+ ],
328
+ "boundaries": [
329
+ "maintenance-control-plane"
330
+ ],
331
+ "checks": [
332
+ "maintenance-policy",
333
+ "documentation"
334
+ ],
335
+ "risk": "high"
336
+ },
337
+ {
338
+ "id": "public-api",
339
+ "patterns": [
340
+ "API.md",
341
+ "packages/pulse/**",
342
+ "packages/runtime/**"
343
+ ],
344
+ "areas": [
345
+ "api"
346
+ ],
347
+ "boundaries": [
348
+ "public-authoring-api"
349
+ ],
350
+ "checks": [
351
+ "documentation",
352
+ "unit",
353
+ "native",
354
+ "conformance",
355
+ "build"
356
+ ],
357
+ "risk": "high"
358
+ },
359
+ {
360
+ "id": "effects-and-continuations",
361
+ "patterns": [
362
+ "wasm/packages/contracts/src/handler/**",
363
+ "wasm/packages/host-runtime/src/runtime/**",
364
+ "wasm/packages/runtime-core-as/src/compiler/route-handler-effects.js",
365
+ "wasm/packages/runtime-core-as/src/compiler/route-handler-context.js",
366
+ "wasm/packages/compiler/src/codegen/effect-*.js",
367
+ "wasm/packages/compiler/src/codegen/host-runtime-kernel.js"
368
+ ],
369
+ "areas": [
370
+ "compiler",
371
+ "runtime"
372
+ ],
373
+ "boundaries": [
374
+ "effect-capability-model",
375
+ "continuation-runtime"
376
+ ],
377
+ "checks": [
378
+ "unit",
379
+ "native",
380
+ "conformance",
381
+ "build"
382
+ ],
383
+ "risk": "critical"
384
+ },
385
+ {
386
+ "id": "lowerer-trust",
387
+ "patterns": [
388
+ "packages/*/pulsewasm.manifest.cjs",
389
+ "packages/*/pulsewasm.compiler.cjs",
390
+ "packages/*/src/pulsewasm*.ts",
391
+ "wasm/packages/contracts/src/library/**",
392
+ "wasm/packages/library-kit/src/compiler/package-lowering.js",
393
+ "wasm/packages/compiler/src/canonical-project-compiler.js",
394
+ "wasm/packages/library-kit/src/compiler/handler-library-contracts.js"
395
+ ],
396
+ "areas": [
397
+ "lowering"
398
+ ],
399
+ "boundaries": [
400
+ "lowerer-trust"
401
+ ],
402
+ "checks": [
403
+ "unit",
404
+ "native",
405
+ "build"
406
+ ],
407
+ "risk": "critical"
408
+ },
409
+ {
410
+ "id": "providers",
411
+ "patterns": [
412
+ "wasm/packages/cli/src/provider-drivers.js",
413
+ "wasm/packages/compiler/src/provider-toolchain.js",
414
+ "wasm/packages/compiler/src/project-target-support.js",
415
+ "wasm/packages/contracts/src/project/javascript-core-capabilities.js",
416
+ "wasm/packages/contracts/src/project/native-optimization.js",
417
+ "wasm/packages/contracts/src/provider/**",
418
+ "packages/provider-node/**",
419
+ "packages/provider-fastly/**"
420
+ ],
421
+ "areas": [
422
+ "provider"
423
+ ],
424
+ "boundaries": [
425
+ "provider-registry",
426
+ "runtime-target-fluidity"
427
+ ],
428
+ "checks": [
429
+ "unit",
430
+ "native",
431
+ "javascript",
432
+ "conformance",
433
+ "providers",
434
+ "build"
435
+ ],
436
+ "risk": "critical"
437
+ },
438
+ {
439
+ "id": "configuration",
440
+ "patterns": [
441
+ "wasm/packages/cli/src/project-config*.js",
442
+ "wasm/packages/cli/src/project-config*.d.ts",
443
+ "packages/provider-fastly/src/config-schema.*",
444
+ "docs/reference/project-config*"
445
+ ],
446
+ "areas": [
447
+ "cli",
448
+ "configuration"
449
+ ],
450
+ "boundaries": [
451
+ "configuration-contract"
452
+ ],
453
+ "checks": [
454
+ "maintenance-policy",
455
+ "documentation",
456
+ "unit",
457
+ "cli",
458
+ "build"
459
+ ],
460
+ "risk": "high"
461
+ },
462
+ {
463
+ "id": "cli-and-diagnostics",
464
+ "patterns": [
465
+ "wasm/packages/cli/**",
466
+ "wasm/scripts/pulse.cjs",
467
+ "docs/reference/cli*",
468
+ "docs/reference/diagnostics.md",
469
+ "docs/reference/environment.md"
470
+ ],
471
+ "areas": [
472
+ "cli"
473
+ ],
474
+ "boundaries": [],
475
+ "checks": [
476
+ "documentation",
477
+ "unit",
478
+ "cli",
479
+ "build"
480
+ ],
481
+ "risk": "medium"
482
+ },
483
+ {
484
+ "id": "release-system",
485
+ "patterns": [
486
+ "LICENSE",
487
+ "NOTICE",
488
+ "release/pulse-release-manifest.json",
489
+ "release/release-preflight.json",
490
+ "release/documentation-inventory.json",
491
+ "release/documentation-versions.json",
492
+ "release/documentation-site.json",
493
+ "package.json",
494
+ "pnpm-lock.yaml",
495
+ "pnpm-workspace.yaml",
496
+ "packages/*/package.json",
497
+ "wasm/packages/*/package.json",
498
+ "scripts/pack-release.cjs",
499
+ "scripts/release-preflight.cjs",
500
+ "scripts/validate-release.cjs",
501
+ "scripts/bundle_deps.sh",
502
+ "scripts/restore_deps.sh",
503
+ ".gitignore",
504
+ "scripts/package-support.cjs"
505
+ ],
506
+ "areas": [
507
+ "release"
508
+ ],
509
+ "boundaries": [
510
+ "package-publication",
511
+ "release-authority"
512
+ ],
513
+ "checks": [
514
+ "maintenance-policy",
515
+ "release-preflight",
516
+ "documentation",
517
+ "unit",
518
+ "build",
519
+ "release"
520
+ ],
521
+ "risk": "critical"
522
+ },
523
+ {
524
+ "id": "publication-and-delivery",
525
+ "patterns": [
526
+ "LICENSE",
527
+ "NOTICE",
528
+ "release/pulse-release-manifest.json",
529
+ "release/release-preflight.json",
530
+ "release/documentation-inventory.json",
531
+ "release/documentation-deployment.json",
532
+ "scripts/pack-release.cjs",
533
+ "scripts/release-candidate.cjs",
534
+ "scripts/release-publication.cjs",
535
+ "scripts/publish-release.cjs",
536
+ "scripts/verify-npm-release.cjs",
537
+ "scripts/documentation-deployment.cjs",
538
+ "scripts/validate-publication-workflows.cjs",
539
+ "scripts/release-preflight.cjs",
540
+ "wasm/test/release/assert-release-packages.cjs",
541
+ ".github/workflows/npm-publish.yml",
542
+ ".github/workflows/documentation.yml",
543
+ ".github/workflows/documentation-deploy.yml",
544
+ "infra/fastly/documentation/**",
545
+ "docs/maintainers/npm-publishing.md",
546
+ "docs/maintainers/documentation-deployment.md"
547
+ ],
548
+ "areas": [
549
+ "release",
550
+ "documentation",
551
+ "deployment"
552
+ ],
553
+ "boundaries": [
554
+ "package-publication",
555
+ "documentation-deployment",
556
+ "release-authority"
557
+ ],
558
+ "checks": [
559
+ "maintenance-policy",
560
+ "publication-control-plane",
561
+ "release-preflight",
562
+ "documentation",
563
+ "unit",
564
+ "build",
565
+ "release"
566
+ ],
567
+ "risk": "critical"
568
+ },
569
+ {
570
+ "id": "documentation",
571
+ "patterns": [
572
+ "CHANGELOG.md",
573
+ "README.md",
574
+ "docs/**",
575
+ "examples/**",
576
+ "scripts/documentation-*.cjs",
577
+ "scripts/build-docs-site.cjs",
578
+ "scripts/documentation-site/**",
579
+ "wasm/scripts/sync-*.cjs",
580
+ "packages/*/README.md",
581
+ "wasm/packages/*/README.md",
582
+ "wasm/MAPPING.md",
583
+ "scripts/environment-reference.cjs"
584
+ ],
585
+ "areas": [
586
+ "documentation"
587
+ ],
588
+ "boundaries": [],
589
+ "checks": [
590
+ "maintenance-policy",
591
+ "documentation"
592
+ ],
593
+ "risk": "low"
594
+ },
595
+ {
596
+ "id": "tests-and-evidence",
597
+ "patterns": [
598
+ "wasm/test/**"
599
+ ],
600
+ "areas": [
601
+ "testing"
602
+ ],
603
+ "boundaries": [],
604
+ "checks": [
605
+ "maintenance-policy",
606
+ "unit"
607
+ ],
608
+ "risk": "medium"
609
+ },
610
+ {
611
+ "id": "compiler-default",
612
+ "patterns": [
613
+ "wasm/packages/build-support/**",
614
+ "wasm/packages/compiler/**",
615
+ "wasm/packages/contracts/**",
616
+ "wasm/packages/host-runtime/**",
617
+ "wasm/packages/library-kit/**",
618
+ "wasm/packages/runtime-core-as/**",
619
+ "wasm/packages/schema-json/**"
620
+ ],
621
+ "areas": [
622
+ "compiler"
623
+ ],
624
+ "boundaries": [],
625
+ "checks": [
626
+ "unit",
627
+ "native",
628
+ "javascript",
629
+ "conformance",
630
+ "build"
631
+ ],
632
+ "risk": "high"
633
+ }
634
+ ],
635
+ "pullRequestDeclaration": {
636
+ "startMarker": "<!-- pulse-maintainer-declaration:start -->",
637
+ "endMarker": "<!-- pulse-maintainer-declaration:end -->",
638
+ "fields": {
639
+ "Change class": [
640
+ "defect",
641
+ "hardening",
642
+ "documentation",
643
+ "evidence",
644
+ "scope-expansion",
645
+ "architecture",
646
+ "release"
647
+ ],
648
+ "Scope": [
649
+ "inside-developer-preview",
650
+ "evidence-only",
651
+ "scope-expansion",
652
+ "architecture-change",
653
+ "release-change"
654
+ ],
655
+ "Protected boundaries": "boundary-list-or-none",
656
+ "Human decision": [
657
+ "not-required",
658
+ "required"
659
+ ]
660
+ }
661
+ },
662
+ "labels": [
663
+ {
664
+ "name": "type:defect",
665
+ "color": "d73a4a",
666
+ "description": "Supported behavior is broken or inconsistent."
667
+ },
668
+ {
669
+ "name": "type:hardening",
670
+ "color": "fbca04",
671
+ "description": "Reliability, security, diagnostics, performance, or test hardening."
672
+ },
673
+ {
674
+ "name": "type:documentation",
675
+ "color": "0075ca",
676
+ "description": "Documentation, examples, or generated reference work."
677
+ },
678
+ {
679
+ "name": "type:evidence",
680
+ "color": "bfdadc",
681
+ "description": "Reproduction, experiment, benchmark, or usage evidence."
682
+ },
683
+ {
684
+ "name": "type:scope-proposal",
685
+ "color": "c5def5",
686
+ "description": "Proposal to widen current product scope."
687
+ },
688
+ {
689
+ "name": "type:support",
690
+ "color": "d4c5f9",
691
+ "description": "Usage question or support request."
692
+ },
693
+ {
694
+ "name": "decision:human-required",
695
+ "color": "b60205",
696
+ "description": "Architecture, scope, or release authority decision is required."
697
+ },
698
+ {
699
+ "name": "decision:architecture",
700
+ "color": "5319e7",
701
+ "description": "A protected architecture boundary is involved."
702
+ },
703
+ {
704
+ "name": "status:needs-reproduction",
705
+ "color": "fef2c0",
706
+ "description": "A minimal reproduction or additional evidence is required."
707
+ },
708
+ {
709
+ "name": "status:blocked",
710
+ "color": "000000",
711
+ "description": "Work cannot proceed until an explicit dependency or decision is resolved."
712
+ },
713
+ {
714
+ "name": "area:compiler",
715
+ "color": "1d76db",
716
+ "description": "Compiler, lowering, contracts, or generated program work."
717
+ },
718
+ {
719
+ "name": "area:cli",
720
+ "color": "0e8a16",
721
+ "description": "CLI, configuration, diagnostics, or workflow work."
722
+ },
723
+ {
724
+ "name": "area:provider",
725
+ "color": "0052cc",
726
+ "description": "Provider contract, host binding, or target work."
727
+ },
728
+ {
729
+ "name": "area:documentation",
730
+ "color": "006b75",
731
+ "description": "Documentation system or public site work."
732
+ },
733
+ {
734
+ "name": "area:release",
735
+ "color": "e99695",
736
+ "description": "Package publication, versioning, or release acceptance work."
737
+ },
738
+ {
739
+ "name": "area:deployment",
740
+ "color": "0b7285",
741
+ "description": "npm publication, Object Storage, or CDN delivery work."
742
+ },
743
+ {
744
+ "name": "area:governance",
745
+ "color": "7057ff",
746
+ "description": "Maintainer policy, agent guidance, or repository automation work."
747
+ }
748
+ ],
749
+ "issueForms": {
750
+ "bug.yml": {
751
+ "changeClass": "defect",
752
+ "labels": [
753
+ "type:defect",
754
+ "status:needs-reproduction"
755
+ ]
756
+ },
757
+ "documentation.yml": {
758
+ "changeClass": "documentation",
759
+ "labels": [
760
+ "type:documentation",
761
+ "area:documentation"
762
+ ]
763
+ },
764
+ "scope-proposal.yml": {
765
+ "changeClass": "scope-expansion",
766
+ "labels": [
767
+ "type:scope-proposal",
768
+ "decision:human-required"
769
+ ]
770
+ },
771
+ "support.yml": {
772
+ "changeClass": "evidence",
773
+ "labels": [
774
+ "type:support"
775
+ ]
776
+ }
777
+ }
778
+ }