@aviaratech/ai-delivery 0.3.23 → 0.3.25

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 (143) hide show
  1. package/CONTRIBUTING.md +166 -16
  2. package/README.md +75 -446
  3. package/dist/agent.d.ts +5 -11
  4. package/dist/agent.js +4 -8
  5. package/dist/agent.js.map +1 -1
  6. package/dist/agentReadiness.test.d.ts +1 -0
  7. package/dist/agentReadiness.test.js +139 -0
  8. package/dist/agentReadiness.test.js.map +1 -0
  9. package/dist/cli.js +27 -111
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config/deliveryConfig.d.ts +44 -55
  12. package/dist/config/deliveryConfig.js +85 -88
  13. package/dist/config/deliveryConfig.js.map +1 -1
  14. package/dist/config/deliveryConfig.test.js +13 -5
  15. package/dist/config/deliveryConfig.test.js.map +1 -1
  16. package/dist/contributorChecks.test.d.ts +1 -0
  17. package/dist/contributorChecks.test.js +1010 -0
  18. package/dist/contributorChecks.test.js.map +1 -0
  19. package/dist/currentConsumer.test.d.ts +1 -0
  20. package/dist/currentConsumer.test.js +832 -0
  21. package/dist/currentConsumer.test.js.map +1 -0
  22. package/dist/delivery/common.js +7 -2
  23. package/dist/delivery/common.js.map +1 -1
  24. package/dist/delivery/delivery.test.js +2 -3
  25. package/dist/delivery/delivery.test.js.map +1 -1
  26. package/dist/delivery/index.d.ts +0 -6
  27. package/dist/delivery/index.js +0 -3
  28. package/dist/delivery/index.js.map +1 -1
  29. package/dist/delivery/legacy.d.ts +8 -0
  30. package/dist/delivery/legacy.js +5 -0
  31. package/dist/delivery/legacy.js.map +1 -0
  32. package/dist/delivery/policy.js +2 -13
  33. package/dist/delivery/policy.js.map +1 -1
  34. package/dist/dependencyCompatibility.test.d.ts +1 -0
  35. package/dist/dependencyCompatibility.test.js +175 -0
  36. package/dist/dependencyCompatibility.test.js.map +1 -0
  37. package/dist/directoryIndependent.test.d.ts +1 -0
  38. package/dist/directoryIndependent.test.js +352 -0
  39. package/dist/directoryIndependent.test.js.map +1 -0
  40. package/dist/dispatch.d.ts +29 -3
  41. package/dist/dispatch.js +166 -457
  42. package/dist/dispatch.js.map +1 -1
  43. package/dist/genericCompatibility.test.js +0 -35
  44. package/dist/genericCompatibility.test.js.map +1 -1
  45. package/dist/git.js +10 -3
  46. package/dist/git.js.map +1 -1
  47. package/dist/gitProcess.d.ts +6 -0
  48. package/dist/gitProcess.js +56 -0
  49. package/dist/gitProcess.js.map +1 -0
  50. package/dist/github/discovery.d.ts +1 -0
  51. package/dist/github/discovery.js +1 -1
  52. package/dist/github/discovery.js.map +1 -1
  53. package/dist/github/discovery.test.js +25 -20
  54. package/dist/github/discovery.test.js.map +1 -1
  55. package/dist/github/nativeIssueMetadata.d.ts +2 -2
  56. package/dist/github/nativeIssueMetadata.js.map +1 -1
  57. package/dist/github/projectDelivery.d.ts +1 -1
  58. package/dist/github/projectDelivery.js.map +1 -1
  59. package/dist/github/repo.d.ts +7 -1
  60. package/dist/github/repo.js +58 -2
  61. package/dist/github/repo.js.map +1 -1
  62. package/dist/issue.d.ts +18 -6
  63. package/dist/issue.js +136 -319
  64. package/dist/issue.js.map +1 -1
  65. package/dist/issueJournal.d.ts +1 -1
  66. package/dist/issueJournal.test.js +88 -6
  67. package/dist/issueJournal.test.js.map +1 -1
  68. package/dist/lifecycle.test.js +40 -7371
  69. package/dist/lifecycle.test.js.map +1 -1
  70. package/dist/logger.js +4 -4
  71. package/dist/logger.js.map +1 -1
  72. package/dist/mcp/tools.d.ts +32 -42
  73. package/dist/mcp/tools.js +51 -42
  74. package/dist/mcp/tools.js.map +1 -1
  75. package/dist/pluginInstaller.d.ts +1 -1
  76. package/dist/pluginInstaller.js +8 -2
  77. package/dist/pluginInstaller.js.map +1 -1
  78. package/dist/pluginInstaller.test.js +213 -2
  79. package/dist/pluginInstaller.test.js.map +1 -1
  80. package/dist/pluginPackaging.test.js +225 -2
  81. package/dist/pluginPackaging.test.js.map +1 -1
  82. package/dist/pr.d.ts +73 -114
  83. package/dist/pr.js +837 -1085
  84. package/dist/pr.js.map +1 -1
  85. package/dist/pr.test.js +453 -236
  86. package/dist/pr.test.js.map +1 -1
  87. package/dist/prAssociation.test.d.ts +1 -0
  88. package/dist/prAssociation.test.js +1336 -0
  89. package/dist/prAssociation.test.js.map +1 -0
  90. package/dist/prDispatch.test.d.ts +1 -0
  91. package/dist/prDispatch.test.js +96 -0
  92. package/dist/prDispatch.test.js.map +1 -0
  93. package/dist/releaseReconciliation.test.d.ts +1 -0
  94. package/dist/releaseReconciliation.test.js +318 -0
  95. package/dist/releaseReconciliation.test.js.map +1 -0
  96. package/dist/releaseWorkflow.test.d.ts +1 -0
  97. package/dist/releaseWorkflow.test.js +447 -0
  98. package/dist/releaseWorkflow.test.js.map +1 -0
  99. package/dist/review.d.ts +37 -7
  100. package/dist/review.js +106 -45
  101. package/dist/review.js.map +1 -1
  102. package/dist/review.test.js +30 -71
  103. package/dist/review.test.js.map +1 -1
  104. package/dist/services/agentReadinessService.d.ts +1 -1
  105. package/dist/services/agentReadinessService.js +4 -1
  106. package/dist/services/agentReadinessService.js.map +1 -1
  107. package/dist/services/deliveryAdmission.d.ts +4 -4
  108. package/dist/services/deliveryAdmission.js.map +1 -1
  109. package/dist/setup.test.js +10 -5
  110. package/dist/setup.test.js.map +1 -1
  111. package/dist/stagedChecks.test.d.ts +1 -0
  112. package/dist/stagedChecks.test.js +228 -0
  113. package/dist/stagedChecks.test.js.map +1 -0
  114. package/dist/start.test.d.ts +1 -0
  115. package/dist/start.test.js +72 -0
  116. package/dist/start.test.js.map +1 -0
  117. package/dist/stdoutRegression.test.d.ts +1 -0
  118. package/dist/stdoutRegression.test.js +326 -0
  119. package/dist/stdoutRegression.test.js.map +1 -0
  120. package/dist/verification.d.ts +1 -27
  121. package/dist/verification.js +5 -1332
  122. package/dist/verification.js.map +1 -1
  123. package/dist/worktree.d.ts +1 -31
  124. package/dist/worktree.js +5 -200
  125. package/dist/worktree.js.map +1 -1
  126. package/dist/worktreeTransition.d.ts +1 -1
  127. package/dist/worktreeTransition.js +10 -5
  128. package/dist/worktreeTransition.js.map +1 -1
  129. package/dist/worktreeTransition.test.js +2 -3
  130. package/dist/worktreeTransition.test.js.map +1 -1
  131. package/package.json +9 -6
  132. package/plugins/ai-delivery/.claude-plugin/plugin.json +2 -2
  133. package/plugins/ai-delivery/README.md +3 -3
  134. package/plugins/ai-delivery/plugin.json +1 -1
  135. package/plugins/ai-delivery/runtime/dist/THIRD-PARTY-NOTICES.md +1 -1
  136. package/plugins/ai-delivery/runtime/dist/cli.js +50 -59
  137. package/plugins/ai-delivery/runtime/package.json +1 -1
  138. package/plugins/ai-delivery/skills/intake-create/SKILL.md +1 -1
  139. package/plugins/ai-delivery/skills/pr-handoff/SKILL.md +14 -21
  140. package/plugins/ai-delivery/skills/worktree-lifecycle/SKILL.md +12 -23
  141. package/dist/services/deliveryRecordService.d.ts +0 -47
  142. package/dist/services/deliveryRecordService.js +0 -199
  143. package/dist/services/deliveryRecordService.js.map +0 -1
@@ -125,9 +125,29 @@ declare const OverridesSchema: z.ZodObject<{
125
125
  issueTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
126
126
  }, z.core.$strict>;
127
127
  export type DeliveryOverrides = z.infer<typeof OverridesSchema>;
128
- declare const PolicySettingsSchema: z.ZodObject<{
128
+ export type DeliveryPolicySettings = Pick<DeliveryConfig, 'roles' | 'commandPolicy'>;
129
+ /** Historical schema parsing preserves identities; new configuration never imports it. */
130
+ export interface LoadedDeliveryConfig {
131
+ config: DeliveryConfig;
132
+ configDigest: string;
133
+ configPath: string | null;
134
+ policyModulePath: string;
135
+ remote: string | undefined;
136
+ routing: DeliveryRouting;
137
+ }
138
+ export type GitHubDeliveryConfig = Pick<DeliveryConfig, 'roles' | 'repository' | 'native'> & {
139
+ schemaVersion: 'ai-delivery.github@1';
140
+ };
141
+ export interface LoadedGitHubConfig {
142
+ config: GitHubDeliveryConfig;
143
+ configDigest: string;
144
+ configPath: string | null;
145
+ routing: DeliveryRouting;
146
+ }
147
+ declare const UserSettingsSchema: z.ZodObject<{
148
+ schemaVersion: z.ZodLiteral<"ai-delivery.user@1">;
129
149
  roles: z.ZodObject<{
130
- author: z.ZodUnion<readonly [z.ZodObject<{
150
+ author: z.ZodDiscriminatedUnion<[z.ZodObject<{
131
151
  authSource: z.ZodOptional<z.ZodLiteral<"app">>;
132
152
  credentialEnv: z.ZodObject<{
133
153
  appId: z.ZodString;
@@ -141,7 +161,7 @@ declare const PolicySettingsSchema: z.ZodObject<{
141
161
  token: z.ZodString;
142
162
  }, z.core.$strict>;
143
163
  identity: z.ZodString;
144
- }, z.core.$strict>]>;
164
+ }, z.core.$strict>], "authSource">;
145
165
  reviewer: z.ZodObject<{
146
166
  authSource: z.ZodOptional<z.ZodLiteral<"app">>;
147
167
  credentialEnv: z.ZodObject<{
@@ -152,72 +172,41 @@ declare const PolicySettingsSchema: z.ZodObject<{
152
172
  identity: z.ZodString;
153
173
  }, z.core.$strict>;
154
174
  }, z.core.$strict>;
155
- commandPolicy: z.ZodObject<{
156
- checks: z.ZodObject<{
157
- format: z.ZodEnum<{
158
- REQUIRED: "REQUIRED";
159
- OPTIONAL: "OPTIONAL";
160
- SKIP: "SKIP";
161
- }>;
162
- gitClean: z.ZodEnum<{
163
- REQUIRED: "REQUIRED";
164
- OPTIONAL: "OPTIONAL";
165
- SKIP: "SKIP";
166
- }>;
167
- lint: z.ZodEnum<{
168
- REQUIRED: "REQUIRED";
169
- OPTIONAL: "OPTIONAL";
170
- SKIP: "SKIP";
171
- }>;
172
- test: z.ZodEnum<{
173
- REQUIRED: "REQUIRED";
174
- OPTIONAL: "OPTIONAL";
175
- SKIP: "SKIP";
176
- }>;
177
- typecheck: z.ZodEnum<{
178
- REQUIRED: "REQUIRED";
179
- OPTIONAL: "OPTIONAL";
180
- SKIP: "SKIP";
181
- }>;
182
- }, z.core.$strict>;
183
- timeoutsMs: z.ZodObject<{
184
- lint: z.ZodNumber;
185
- test: z.ZodNumber;
186
- typecheck: z.ZodNumber;
187
- }, z.core.$strict>;
188
- }, z.core.$strict>;
175
+ project: z.ZodNumber;
176
+ checkoutRoots: z.ZodArray<z.ZodString>;
177
+ pointsField: z.ZodOptional<z.ZodString>;
178
+ priorityField: z.ZodOptional<z.ZodString>;
179
+ statusField: z.ZodOptional<z.ZodString>;
180
+ statuses: z.ZodOptional<z.ZodObject<{
181
+ blocked: z.ZodString;
182
+ done: z.ZodString;
183
+ inProgress: z.ZodString;
184
+ todo: z.ZodString;
185
+ }, z.core.$strict>>;
186
+ issueTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
189
187
  }, z.core.$strict>;
190
- export type DeliveryPolicySettings = z.infer<typeof PolicySettingsSchema>;
191
- export interface LoadedDeliverySettings extends DeliveryPolicySettings {
192
- configPath: string | null;
188
+ export type UserDeliverySettings = z.infer<typeof UserSettingsSchema>;
189
+ export interface LoadedDeliverySettings {
190
+ roles: DeliveryConfig['roles'];
191
+ configPath: string;
193
192
  overrides: DeliveryOverrides;
194
- policy: DeliveryConfig['policy'];
195
- policyModulePath: string;
196
- repository: string;
193
+ checkoutRoots: string[];
197
194
  sourceDigest: string;
198
195
  }
199
- export interface LoadedDeliveryConfig {
200
- config: DeliveryConfig;
201
- configDigest: string;
202
- configPath: string | null;
203
- policyModulePath: string;
204
- remote: string | undefined;
205
- routing: DeliveryRouting;
206
- }
207
196
  /** The optional file contains choices, never a required copy of GitHub metadata. */
208
197
  export declare function readDeliveryOverrides(repositoryRoot: string): {
209
198
  overrides: DeliveryOverrides;
210
199
  bytes: Buffer;
211
200
  path: string | null;
212
201
  };
213
- /** Explicit credentials and checks stay with the already-required repository policy. */
214
- export declare function loadDeliverySettings(repositoryRoot: string): Promise<LoadedDeliverySettings>;
215
- /** One resolver supplies the CLI, MCP, installer admission and verification evidence. */
202
+ /** Only operator-owned JSON supplies settings. Target repository files are never loaded. */
203
+ export declare function loadDeliverySettings(_repositoryRoot?: string): Promise<LoadedDeliverySettings>;
216
204
  export declare function loadDeliveryConfig(repositoryRoot: string, options?: {
217
205
  clients?: DiscoveryClients;
218
206
  personalAuth?: boolean;
219
207
  signal?: AbortSignal;
220
- }): Promise<LoadedDeliveryConfig>;
208
+ repository?: string;
209
+ }): Promise<LoadedGitHubConfig>;
221
210
  export declare function parseDeliveryConfig(input: unknown): DeliveryConfig;
222
211
  export declare function resolveDeliveryRoleCredentials(input: {
223
212
  config: Pick<DeliveryConfig, 'roles'>;
@@ -1,13 +1,12 @@
1
- import { createHash } from 'node:crypto';
2
1
  import { lstatSync, readFileSync, realpathSync } from 'node:fs';
3
- import { pathToFileURL } from 'node:url';
4
- import { isAbsolute, join, relative, resolve } from 'node:path';
5
- import { spawnSync } from 'node:child_process';
2
+ import { homedir } from 'node:os';
3
+ import { isAbsolute, join, relative } from 'node:path';
6
4
  import { z } from 'zod';
5
+ import { git } from '../git.js';
7
6
  import { DeliveryError } from '../errors.js';
8
7
  import { digestValue } from '../delivery/common.js';
9
8
  import { createDeliveryGitHubClients } from '../github/client.js';
10
- import { resolveGitRemoteName, resolveRepoFromRemote } from '../github/repo.js';
9
+ import { resolveRepoFromRemote } from '../github/repo.js';
11
10
  import { discoverDeliveryRouting } from '../github/discovery.js';
12
11
  export const DELIVERY_CONFIG_FILE = 'ai-delivery.config.json';
13
12
  export const DELIVERY_POLICY_CONTRACT = 'RepositoryDeliveryPolicy@1';
@@ -193,12 +192,41 @@ const OverridesSchema = z
193
192
  issueTypes: UniqueNames.optional(),
194
193
  })
195
194
  .strict();
196
- const PolicySettingsSchema = z
197
- .object({
198
- roles: DeliveryConfigSchema.shape.roles,
199
- commandPolicy: DeliveryConfigSchema.shape.commandPolicy,
195
+ const UserSettingsSchema = z
196
+ .strictObject({
197
+ schemaVersion: z.literal('ai-delivery.user@1'),
198
+ roles: z.strictObject({
199
+ author: z.discriminatedUnion('authSource', [AppRole, AuthorRole.options[1]]),
200
+ reviewer: AppRole,
201
+ }),
202
+ project: PositiveInteger,
203
+ checkoutRoots: z.array(z.string().min(1).refine(isAbsolute, 'Checkout roots must be absolute.')),
204
+ pointsField: Name.optional(),
205
+ priorityField: Name.optional(),
206
+ statusField: Name.optional(),
207
+ statuses: OverridesSchema.shape.statuses,
208
+ issueTypes: UniqueNames.optional(),
200
209
  })
201
- .strict();
210
+ .superRefine((value, context) => {
211
+ const roles = value.roles;
212
+ if (roles.author.identity.toLowerCase() === roles.reviewer.identity.toLowerCase())
213
+ context.addIssue({
214
+ code: 'custom',
215
+ path: ['roles'],
216
+ message: 'Author and reviewer identities must be distinct.',
217
+ });
218
+ if ([roles.author, roles.reviewer].some((role) => role.authSource !== 'personal' && /^personal(?:$|[-_])/iu.test(role.identity)))
219
+ context.addIssue({
220
+ code: 'custom',
221
+ path: ['roles'],
222
+ message: 'App role identities cannot be personal identities.',
223
+ });
224
+ if (value.statuses && new Set(Object.values(value.statuses)).size !== 4)
225
+ context.addIssue({ code: 'custom', path: ['statuses'], message: 'Project statuses must be distinct.' });
226
+ const names = [...Object.values(roles.author.credentialEnv), ...Object.values(roles.reviewer.credentialEnv)];
227
+ if (new Set(names).size !== names.length)
228
+ context.addIssue({ code: 'custom', path: ['roles'], message: 'Credential environment names must be distinct.' });
229
+ });
202
230
  /** The optional file contains choices, never a required copy of GitHub metadata. */
203
231
  export function readDeliveryOverrides(repositoryRoot) {
204
232
  const root = realpathSync(repositoryRoot);
@@ -213,7 +241,12 @@ export function readDeliveryOverrides(repositoryRoot) {
213
241
  }
214
242
  if (!isWithin(root, realpathSync(path)))
215
243
  throw new DeliveryError(`${DELIVERY_CONFIG_FILE} must stay within the repository root.`);
216
- assertSourceControlled({ filePath: path, label: DELIVERY_CONFIG_FILE, root });
244
+ try {
245
+ git(root, 'ls-files', '--error-unmatch', '--', DELIVERY_CONFIG_FILE);
246
+ }
247
+ catch {
248
+ throw new DeliveryError(`${DELIVERY_CONFIG_FILE} must be source-controlled for historical parsing.`);
249
+ }
217
250
  const bytes = readFileSync(path);
218
251
  try {
219
252
  const raw = JSON.parse(bytes.toString('utf8'));
@@ -223,107 +256,81 @@ export function readDeliveryOverrides(repositoryRoot) {
223
256
  throw new DeliveryError(`Invalid ${DELIVERY_CONFIG_FILE}; expected optional ai-delivery.config@2 routing overrides. Migrate authentication and command settings to the policy module's deliverySettings export.`);
224
257
  }
225
258
  }
226
- /** Explicit credentials and checks stay with the already-required repository policy. */
227
- export async function loadDeliverySettings(repositoryRoot) {
228
- const root = realpathSync(repositoryRoot);
229
- const local = readDeliveryOverrides(root);
230
- const module = local.overrides.policy?.module ?? './ai-delivery.policy.mjs';
231
- const selectedPath = resolve(root, module);
232
- let policyModulePath;
259
+ /** Only operator-owned JSON supplies settings. Target repository files are never loaded. */
260
+ export async function loadDeliverySettings(_repositoryRoot) {
261
+ const path = process.env.AI_DELIVERY_CONFIG ?? join(homedir(), '.config', 'aviaratech-ai', 'ai-delivery.json');
262
+ if (!isAbsolute(path))
263
+ throw new DeliveryError('AI_DELIVERY_CONFIG must be an absolute user configuration path.');
264
+ let bytes;
233
265
  try {
234
- policyModulePath = realpathSync(selectedPath);
266
+ bytes = readFileSync(path);
235
267
  }
236
268
  catch {
237
- throw new DeliveryError(`Missing repository delivery policy ${module}. Export explicit deliverySettings and RepositoryDeliveryPolicy@1.`);
269
+ throw new DeliveryError(`Missing user configuration ${path}; configure roles.author, roles.reviewer, project and checkoutRoots.`);
238
270
  }
239
- if (!isWithin(root, policyModulePath))
240
- throw new DeliveryError('Policy module must stay within the repository root.');
241
- assertSourceControlled({ filePath: policyModulePath, label: 'Policy module', root });
242
- const policyBytes = readFileSync(policyModulePath);
243
- const policyHash = createHash('sha256').update(policyBytes).digest('hex');
244
- const imported = await import(`${pathToFileURL(policyModulePath).href}?policy=${policyHash}`);
245
- const contract = z
246
- .enum([DELIVERY_POLICY_CONTRACT, 'RepositoryDeliveryPolicy@2'])
247
- .parse(imported.default?.schemaVersion ?? DELIVERY_POLICY_CONTRACT);
248
- const settings = PolicySettingsSchema.safeParse(imported.deliverySettings);
249
- if (!settings.success)
250
- throw new DeliveryError('Policy module must export valid explicit deliverySettings with commandPolicy and distinct author/reviewer roles.');
251
- const roles = settings.data.roles;
252
- const names = [...Object.values(roles.author.credentialEnv), ...Object.values(roles.reviewer.credentialEnv)];
253
- if (roles.author.identity.toLowerCase() === roles.reviewer.identity.toLowerCase() ||
254
- new Set(names).size !== names.length ||
255
- [roles.author, roles.reviewer].some((role) => role.authSource !== 'personal' && /^personal(?:$|[-_])/iu.test(role.identity))) {
256
- throw new DeliveryError('Policy settings require distinct identities and credential environment names.');
271
+ let raw;
272
+ try {
273
+ raw = JSON.parse(bytes.toString('utf8'));
257
274
  }
258
- const repo = resolveRepoFromRemote(root, local.overrides.remote);
259
- const repository = `${repo.owner}/${repo.repo}`;
260
- if (local.overrides.repository !== undefined &&
261
- local.overrides.repository.toLowerCase() !== repository.toLowerCase()) {
262
- throw new DeliveryError('Repository assertion does not match the selected Git remote.');
275
+ catch {
276
+ throw new DeliveryError(`Invalid user configuration JSON at ${path}.`);
263
277
  }
264
- return {
265
- ...settings.data,
266
- configPath: local.path,
267
- overrides: local.overrides,
268
- policy: { contract, module },
269
- policyModulePath,
270
- repository,
271
- sourceDigest: digestValue({
272
- overrides: local.bytes.toString('utf8'),
273
- policy: policyBytes.toString('utf8'),
274
- repository,
275
- }),
276
- };
278
+ const result = UserSettingsSchema.safeParse(raw);
279
+ if (!result.success) {
280
+ const details = result.error.issues
281
+ .map((issue) => `${issue.path.join('.') || 'configuration'}: ${issue.message}`)
282
+ .join('; ');
283
+ throw new DeliveryError(`Invalid user configuration ${path}: ${details}`);
284
+ }
285
+ const { roles, checkoutRoots, schemaVersion: _schema, ...overrides } = result.data;
286
+ return { roles, checkoutRoots, configPath: path, overrides, sourceDigest: digestValue(result.data) };
277
287
  }
278
- /** One resolver supplies the CLI, MCP, installer admission and verification evidence. */
279
288
  export async function loadDeliveryConfig(repositoryRoot, options = {}) {
280
289
  options.signal?.throwIfAborted();
281
- const settings = await loadDeliverySettings(repositoryRoot);
282
- options.signal?.throwIfAborted();
283
- const legacyPersonalAuth = options.personalAuth === true && settings.roles.author.authSource !== 'personal';
290
+ const settings = await loadDeliverySettings();
291
+ const repository = options.repository ??
292
+ (() => {
293
+ const coordinates = resolveRepoFromRemote(repositoryRoot, 'origin');
294
+ return `${coordinates.owner}/${coordinates.repo}`;
295
+ })();
296
+ if (!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/u.test(repository))
297
+ throw new DeliveryError('Repository must be owner/name.');
284
298
  const clients = options.clients ??
285
299
  (await createDeliveryGitHubClients({
286
300
  config: settings,
287
- identity: legacyPersonalAuth ? 'personal' : settings.roles.author.identity,
288
- ...(legacyPersonalAuth ? { personalAuth: { enabled: true } } : {}),
301
+ identity: options.personalAuth === true && settings.roles.author.authSource !== 'personal'
302
+ ? 'personal'
303
+ : settings.roles.author.identity,
289
304
  role: 'author',
305
+ ...(options.personalAuth === true ? { personalAuth: { enabled: true } } : {}),
290
306
  ...(options.signal === undefined ? {} : { signal: options.signal }),
291
307
  }));
292
308
  let routing;
293
309
  try {
294
310
  routing = await discoverDeliveryRouting({
295
311
  clients,
296
- repository: settings.repository,
312
+ repository,
297
313
  overrides: settings.overrides,
314
+ repositorySelected: options.repository !== undefined,
298
315
  });
299
316
  }
300
317
  catch (error) {
301
318
  if (options.clients === undefined &&
302
319
  settings.roles.author.authSource === 'personal' &&
303
- error.status === 401) {
320
+ error.status === 401)
304
321
  throw new DeliveryError('Configured personal author token is invalid or expired; refresh the selected token.');
305
- }
306
322
  throw error;
307
323
  }
308
- const config = parseDeliveryConfig({
309
- schemaVersion: 'ai-delivery.config@2',
324
+ const config = {
325
+ schemaVersion: 'ai-delivery.github@1',
310
326
  repository: routing.repository,
311
- policy: settings.policy,
312
327
  roles: settings.roles,
313
- commandPolicy: settings.commandPolicy,
314
328
  native: routing.native,
315
- });
329
+ };
316
330
  return {
317
331
  config,
318
- configDigest: digestValue({
319
- sourceDigest: settings.sourceDigest,
320
- routing,
321
- roles: config.roles,
322
- commandPolicy: config.commandPolicy,
323
- }),
332
+ configDigest: digestValue({ sourceDigest: settings.sourceDigest, routing, roles: config.roles }),
324
333
  configPath: settings.configPath,
325
- policyModulePath: settings.policyModulePath,
326
- remote: resolveGitRemoteName(repositoryRoot, settings.overrides.remote),
327
334
  routing,
328
335
  };
329
336
  }
@@ -365,16 +372,6 @@ export function resolveDeliveryRoleCredentials(input) {
365
372
  }
366
373
  return { appId: values.appId, installationId, privateKeyPath: values.privateKeyPath };
367
374
  }
368
- function assertSourceControlled(input) {
369
- const { filePath, label, root } = input;
370
- const result = spawnSync('git', ['ls-files', '--error-unmatch', '--', relative(root, filePath)], {
371
- cwd: root,
372
- stdio: 'ignore',
373
- });
374
- if (result.status !== 0) {
375
- throw new DeliveryError(`${label} must be source-controlled.`);
376
- }
377
- }
378
375
  function isWithin(root, path) {
379
376
  const relation = relative(root, path);
380
377
  return (relation !== '..' && !relation.startsWith(`..${process.platform === 'win32' ? '\\' : '/'}`) && !isAbsolute(relation));
@@ -1 +1 @@
1
- {"version":3,"file":"deliveryConfig.js","sourceRoot":"","sources":["../../src/config/deliveryConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deliveryConfig.js","sourceRoot":"","sources":["../../src/config/deliveryConfig.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,14 @@ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
5
5
  import { spawnSync } from 'node:child_process';
6
6
  import { tmpdir } from 'node:os';
7
7
  import { join } from 'node:path';
8
- import { describe, it } from 'vitest';
8
+ import { afterEach, describe, it, vi } from 'vitest';
9
9
  import { assertDeliveryRolePermissions, createDeliveryGitHubClients, withAuthorGitToken } from '../github/client.js';
10
10
  import { evaluateCommandIdentityPolicy } from '../github/commandIdentityPolicy.js';
11
11
  import { contextFor } from '../dispatch.js';
12
12
  import { clearConfiguredNativeIssuePoints, nativeIssueSettingsFromDeliveryConfig, parseConfiguredNativeIssueMetadata, resolveNativeIssueFieldCatalog, setConfiguredNativeIssueMetadata, validateConfiguredNativeTracking, } from '../github/nativeIssueMetadata.js';
13
13
  import { PROJECT_DELIVERY_STATUSES, projectSettingsFromDeliveryConfig, resolveProjectDeliveryConfiguration, syncIssueProjectStatus, } from '../github/projectDelivery.js';
14
14
  import { resolveDeliveryRepo } from '../github/repo.js';
15
- import { loadDeliveryConfig, parseDeliveryConfig, resolveDeliveryRoleCredentials } from './deliveryConfig.js';
15
+ import { readDeliveryOverrides, loadDeliveryConfig, parseDeliveryConfig, resolveDeliveryRoleCredentials, } from './deliveryConfig.js';
16
16
  function git(args, options = {}) {
17
17
  const result = spawnSync('git', args, { ...options, encoding: 'utf8' });
18
18
  assert.equal(result.status, 0, result.stderr);
@@ -106,6 +106,12 @@ function syntheticProject(config) {
106
106
  viewerCanUpdate: true,
107
107
  };
108
108
  }
109
+ afterEach(() => vi.unstubAllEnvs());
110
+ function userConfig(path, config) {
111
+ const { policy: _policy, repository: _repository, remote: _remote, schemaVersion: _schema, ...overrides } = syntheticOverrides(config);
112
+ writeFileSync(path, JSON.stringify({ schemaVersion: 'ai-delivery.user@1', roles: config.roles, checkoutRoots: [], ...overrides }));
113
+ vi.stubEnv('AI_DELIVERY_CONFIG', path);
114
+ }
109
115
  describe('portable delivery configuration', () => {
110
116
  it('selects a configured personal author token without ambient fallback and keeps the reviewer App role', async () => {
111
117
  const base = syntheticConfig({ owner: 'sample', projectNumber: 7, repo: 'widget' });
@@ -288,6 +294,7 @@ describe('portable delivery configuration', () => {
288
294
  writeFileSync(join(temp, 'policy.mjs'), `export const deliverySettings = ${JSON.stringify({ roles: config.roles, commandPolicy: config.commandPolicy })};\n`);
289
295
  writeFileSync(join(temp, 'ai-delivery.config.json'), JSON.stringify(syntheticOverrides(config)));
290
296
  git(['add', 'policy.mjs', 'ai-delivery.config.json'], { cwd: temp });
297
+ userConfig(join(temp, 'user.json'), config);
291
298
  process.env.AUTHOR_TOKEN = 'selected-token';
292
299
  let selectedRequests = 0;
293
300
  globalThis.fetch = async (_url, init) => {
@@ -327,6 +334,7 @@ describe('portable delivery configuration', () => {
327
334
  writeFileSync(join(root, 'policy.mjs'), `export const deliverySettings = ${JSON.stringify({ roles: configured.roles, commandPolicy: configured.commandPolicy })};\n`);
328
335
  writeFileSync(join(root, 'ai-delivery.config.json'), JSON.stringify(syntheticOverrides(parseDeliveryConfig(syntheticConfig({ owner, projectNumber, repo })))));
329
336
  git(['add', 'policy.mjs', 'ai-delivery.config.json'], { cwd: root });
337
+ userConfig(join(temp, 'user.json'), configured);
330
338
  const loaded = await loadDeliveryConfig(root, { clients: syntheticDiscoveryClients(configured) });
331
339
  assert.match(loaded.configDigest, /^sha256:[a-f0-9]{64}$/u);
332
340
  assert.deepEqual(resolveDeliveryRepo(loaded.config, root), { owner, repo });
@@ -431,7 +439,8 @@ describe('portable delivery configuration', () => {
431
439
  const base = syntheticConfig({ owner: 'sample', projectNumber: 7, repo: 'widget' });
432
440
  const temp = mkdtempSync(join(tmpdir(), 'delivery-invalid-'));
433
441
  try {
434
- await assert.rejects(loadDeliveryConfig(temp), /Missing repository delivery policy/u);
442
+ vi.stubEnv('AI_DELIVERY_CONFIG', join(temp, 'missing.json'));
443
+ await assert.rejects(loadDeliveryConfig(temp), /Missing user configuration/u);
435
444
  assert.throws(() => parseDeliveryConfig({ ...base, policy: { ...base.policy, contract: 'wrong' } }), /policy.contract/u);
436
445
  assert.throws(() => parseDeliveryConfig({
437
446
  ...base,
@@ -460,8 +469,7 @@ describe('portable delivery configuration', () => {
460
469
  git(['init', '--quiet', temp]);
461
470
  writeFileSync(join(temp, 'policy.mjs'), 'export const contract = "RepositoryDeliveryPolicy@1";\n');
462
471
  writeFileSync(join(temp, 'ai-delivery.config.json'), JSON.stringify(syntheticOverrides(parseDeliveryConfig(base))));
463
- git(['add', 'ai-delivery.config.json'], { cwd: temp });
464
- await assert.rejects(loadDeliveryConfig(temp), /must be source-controlled/u);
472
+ assert.throws(() => readDeliveryOverrides(temp), /must be source-controlled/u);
465
473
  assert.throws(() => resolveDeliveryRoleCredentials({ config, env: {}, role: 'author' }), /Missing GitHub App credentials for author/u);
466
474
  await assert.rejects(createDeliveryGitHubClients({ config, env: {}, identity: 'synthetic-reviewer', role: 'author' }), /requires the configured author identity/u);
467
475
  await assert.rejects(createDeliveryGitHubClients({ config, env: {}, identity: 'personal', role: 'reviewer' }), /configured reviewer identity/u);