@aviaratech/ai-delivery 0.1.0 → 0.2.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 (58) hide show
  1. package/CONTRIBUTING.md +1 -1
  2. package/README.md +124 -36
  3. package/dist/agent.d.ts +4 -1
  4. package/dist/agent.js +2 -1
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cli.js +19 -5
  7. package/dist/cli.js.map +1 -1
  8. package/dist/config/deliveryConfig.d.ts +102 -4
  9. package/dist/config/deliveryConfig.js +120 -31
  10. package/dist/config/deliveryConfig.js.map +1 -1
  11. package/dist/config/deliveryConfig.test.js +9 -7
  12. package/dist/config/deliveryConfig.test.js.map +1 -1
  13. package/dist/dispatch.d.ts +1 -0
  14. package/dist/dispatch.js +50 -24
  15. package/dist/dispatch.js.map +1 -1
  16. package/dist/fixtures/discovery.d.ts +74 -0
  17. package/dist/fixtures/discovery.js +94 -0
  18. package/dist/fixtures/discovery.js.map +1 -0
  19. package/dist/git.d.ts +1 -1
  20. package/dist/git.js +13 -9
  21. package/dist/git.js.map +1 -1
  22. package/dist/github/client.d.ts +1 -1
  23. package/dist/github/commandIdentityPolicy.d.ts +1 -1
  24. package/dist/github/discovery.d.ts +22 -0
  25. package/dist/github/discovery.js +226 -0
  26. package/dist/github/discovery.js.map +1 -0
  27. package/dist/github/discovery.test.d.ts +1 -0
  28. package/dist/github/discovery.test.js +195 -0
  29. package/dist/github/discovery.test.js.map +1 -0
  30. package/dist/github/projectDelivery.d.ts +5 -0
  31. package/dist/github/projectDelivery.js +48 -8
  32. package/dist/github/projectDelivery.js.map +1 -1
  33. package/dist/github/repo.d.ts +3 -2
  34. package/dist/github/repo.js +24 -7
  35. package/dist/github/repo.js.map +1 -1
  36. package/dist/issue.d.ts +6 -1
  37. package/dist/issue.js +23 -3
  38. package/dist/issue.js.map +1 -1
  39. package/dist/lifecycle.test.js +416 -33
  40. package/dist/lifecycle.test.js.map +1 -1
  41. package/dist/mcp/index.js +6 -3
  42. package/dist/mcp/index.js.map +1 -1
  43. package/dist/mcp/tools.d.ts +1 -1
  44. package/dist/pr.js +25 -13
  45. package/dist/pr.js.map +1 -1
  46. package/dist/pr.test.js +3 -0
  47. package/dist/pr.test.js.map +1 -1
  48. package/dist/services/deliveryAdmission.d.ts +5 -2
  49. package/dist/services/deliveryAdmission.js +5 -4
  50. package/dist/services/deliveryAdmission.js.map +1 -1
  51. package/dist/verification.d.ts +3 -0
  52. package/dist/verification.js +153 -22
  53. package/dist/verification.js.map +1 -1
  54. package/dist/worktree.d.ts +4 -0
  55. package/dist/worktree.js +9 -7
  56. package/dist/worktree.js.map +1 -1
  57. package/package.json +1 -1
  58. package/plugins/ai-delivery/.claude-plugin/plugin.json +2 -2
@@ -0,0 +1,195 @@
1
+ import assert from 'node:assert/strict';
2
+ import { execFileSync } from 'node:child_process';
3
+ import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
4
+ import { tmpdir } from 'node:os';
5
+ import { join } from 'node:path';
6
+ import { test } from 'vitest';
7
+ import { loadDeliveryConfig } from '../config/deliveryConfig.js';
8
+ import { syntheticDiscoveryClients, syntheticDiscoveryConfig, syntheticOverrides } from '../fixtures/discovery.js';
9
+ import { discoverDeliveryRouting } from './discovery.js';
10
+ import { resolveRepoFromRemote } from './repo.js';
11
+ function record(value) {
12
+ assert.ok(value !== null && typeof value === 'object' && !Array.isArray(value));
13
+ return value;
14
+ }
15
+ function intercept(change) {
16
+ const base = syntheticDiscoveryClients();
17
+ const graphql = async (query, variables) => change(query, variables, record(await base.graphql(query, variables)));
18
+ return { graphql: graphql };
19
+ }
20
+ const overrides = syntheticOverrides(syntheticDiscoveryConfig);
21
+ const { project: _project, ...linked } = overrides;
22
+ const discover = (clients = syntheticDiscoveryClients(), selected = linked) => discoverDeliveryRouting({ clients, repository: 'example/widget', overrides: selected });
23
+ test('discovery selects one linked Project and exposes exact native bindings and selection source', async () => {
24
+ const result = await discover();
25
+ assert.equal(result.repository, 'example/widget');
26
+ assert.equal(result.projectSource, 'linked');
27
+ assert.equal(result.projectId, 'PROJECT-1');
28
+ assert.equal(result.native.points.databaseId, '101');
29
+ assert.equal(result.statusOptionIds['In Progress'], 'STATUS-1');
30
+ assert.equal(result.native.project.statuses.todo, 'Queued');
31
+ });
32
+ test('explicit selection does not depend on linked Projects', async () => {
33
+ const result = await discover(intercept((query, _variables, result) => {
34
+ assert.ok(!query.includes('projectsV2(first:'));
35
+ return result;
36
+ }), overrides);
37
+ assert.equal(result.projectSource, 'explicit');
38
+ });
39
+ test('all linked Project pages are read before choosing, including an empty first page', async () => {
40
+ let pages = 0;
41
+ const result = await discover(intercept((query, variables, result) => {
42
+ if (!query.includes('projectsV2(first:'))
43
+ return result;
44
+ pages++;
45
+ if (variables.cursor === null)
46
+ return { repository: { projectsV2: { nodes: [], pageInfo: { hasNextPage: true, endCursor: 'next' } } } };
47
+ assert.equal(variables.cursor, 'next');
48
+ return result;
49
+ }));
50
+ assert.equal(pages, 2);
51
+ assert.equal(result.projectId, 'PROJECT-1');
52
+ });
53
+ test('zero or multiple compatible Projects refuse selection before any mutation', async () => {
54
+ for (const count of [0, 2]) {
55
+ await assert.rejects(discover(intercept((query, variables, result) => {
56
+ assert.ok(!query.includes('mutation'));
57
+ if (query.includes('projectsV2(first:')) {
58
+ const connection = record(record(result.repository).projectsV2);
59
+ const [first] = connection.nodes;
60
+ connection.nodes = count === 0 ? [] : [first, { ...first, id: 'PROJECT-2', number: 2 }];
61
+ }
62
+ if (query.includes('query ProjectDeliveryConfiguration')) {
63
+ const project = record(record(result.organization).projectV2);
64
+ project.number = variables.number;
65
+ project.id = `PROJECT-${String(variables.number)}`;
66
+ }
67
+ return result;
68
+ })), new RegExp(`Discovered ${count} compatible linked Projects`, 'u'));
69
+ }
70
+ });
71
+ test('permission, partial-page and cursor failures never fall back to a candidate already found', async () => {
72
+ await assert.rejects(discover(intercept((query, variables, result) => {
73
+ if (query.includes('projectsV2(first:')) {
74
+ if (variables.cursor !== null)
75
+ throw new Error('Forbidden on second page');
76
+ record(record(result.repository).projectsV2).pageInfo = { hasNextPage: true, endCursor: 'next' };
77
+ }
78
+ return result;
79
+ })), /Forbidden/u);
80
+ await assert.rejects(discover(intercept((query, _variables, result) => {
81
+ if (query.includes('projectsV2(first:'))
82
+ record(record(result.repository).projectsV2).nodes = [null];
83
+ return result;
84
+ })), /Incomplete/u);
85
+ await assert.rejects(discover(intercept((query, _variables, result) => {
86
+ if (query.includes('projectsV2(first:'))
87
+ record(record(result.repository).projectsV2).pageInfo = { hasNextPage: true, endCursor: null };
88
+ return result;
89
+ })), /cursor/u);
90
+ await assert.rejects(discover(intercept((query, _variables, result) => {
91
+ if (query.includes('query ProjectDeliveryConfiguration'))
92
+ record(record(result.organization).projectV2).viewerCanUpdate = false;
93
+ return result;
94
+ })), /not writable/u);
95
+ });
96
+ test('partial Project field metadata cannot exclude a candidate and manufacture uniqueness', async () => {
97
+ for (const missing of ['id', 'name', 'fullDatabaseId', 'options']) {
98
+ await assert.rejects(discover(intercept((query, variables, result) => {
99
+ if (query.includes('projectsV2(first:')) {
100
+ const connection = record(record(result.repository).projectsV2);
101
+ const [first] = connection.nodes;
102
+ connection.nodes = [first, { ...first, id: 'PROJECT-2', number: 2 }];
103
+ }
104
+ if (query.includes('query ProjectDeliveryConfiguration') && variables.number === 2) {
105
+ const project = record(record(result.organization).projectV2);
106
+ project.id = 'PROJECT-2';
107
+ project.number = 2;
108
+ const fields = record(project.fields).nodes;
109
+ const bound = fields.find((field) => field.isIssueField === true);
110
+ assert.ok(bound);
111
+ delete record(bound.issueField)[missing];
112
+ }
113
+ return result;
114
+ })), /omitted|malformed/u);
115
+ }
116
+ });
117
+ test('forks require an explicit remote choice and repository identity must agree', async () => {
118
+ const fork = intercept((query, _variables, result) => {
119
+ if (query.includes('query DeliveryRepository'))
120
+ record(result.repository).isFork = true;
121
+ return result;
122
+ });
123
+ await assert.rejects(discover(fork), /fork requires an explicit remote/u);
124
+ assert.equal((await discover(fork, { ...linked, remote: 'origin' })).repository, 'example/widget');
125
+ await assert.rejects(discover(intercept((query, _variables, result) => {
126
+ if (query.includes('query DeliveryRepository'))
127
+ record(result.repository).nameWithOwner = 'other/widget';
128
+ return result;
129
+ })), /does not match/u);
130
+ });
131
+ test('custom meanings need explicit mapping and independent Project fields cannot masquerade as native fields', async () => {
132
+ await assert.rejects(discover(syntheticDiscoveryClients(), { project: 1 }), /unambiguous native/u);
133
+ await assert.rejects(discover(intercept((query, _variables, result) => {
134
+ if (query.includes('query ProjectDeliveryConfiguration')) {
135
+ const fields = record(record(record(result.organization).projectV2).fields).nodes;
136
+ const points = fields.find((field) => field.name === 'Estimate');
137
+ assert.ok(points);
138
+ points.isIssueField = false;
139
+ }
140
+ return result;
141
+ }), overrides), /organization issue field/u);
142
+ });
143
+ test('standard discovery needs no JSON file and effective Project identity changes the admission digest', async () => {
144
+ const root = mkdtempSync(join(tmpdir(), 'delivery-discovery-'));
145
+ const git = (...args) => execFileSync('git', args, { cwd: root, encoding: 'utf8' }).trim();
146
+ try {
147
+ git('init', '-q');
148
+ git('remote', 'add', 'origin', 'https://github.com/example/widget.git');
149
+ const roles = Object.fromEntries(['author', 'reviewer'].map((role) => [
150
+ role,
151
+ {
152
+ identity: role,
153
+ credentialEnv: {
154
+ appId: `${role.toUpperCase()}_APP_ID`,
155
+ installationId: `${role.toUpperCase()}_INSTALLATION_ID`,
156
+ privateKeyPath: `${role.toUpperCase()}_KEY_PATH`,
157
+ },
158
+ },
159
+ ]));
160
+ writeFileSync(join(root, 'ai-delivery.policy.mjs'), `export const deliverySettings = ${JSON.stringify({
161
+ roles,
162
+ commandPolicy: {
163
+ checks: {
164
+ format: 'REQUIRED',
165
+ gitClean: 'REQUIRED',
166
+ lint: 'REQUIRED',
167
+ test: 'REQUIRED',
168
+ typecheck: 'REQUIRED',
169
+ },
170
+ timeoutsMs: { lint: 1000, test: 1000, typecheck: 1000 },
171
+ },
172
+ })};`);
173
+ git('add', 'ai-delivery.policy.mjs');
174
+ const standard = structuredClone(syntheticDiscoveryConfig);
175
+ standard.native.points.name = 'Points';
176
+ standard.native.priority.name = 'Priority';
177
+ standard.native.project.statusField = 'Status';
178
+ standard.native.project.statuses = { todo: 'Todo', inProgress: 'In Progress', blocked: 'Blocked', done: 'Done' };
179
+ const clients = syntheticDiscoveryClients(standard);
180
+ const first = await loadDeliveryConfig(root, { clients });
181
+ assert.equal(first.configPath, null);
182
+ assert.equal(first.routing.projectSource, 'linked');
183
+ const changed = structuredClone(standard);
184
+ changed.native.project.number = 2;
185
+ const second = await loadDeliveryConfig(root, { clients: syntheticDiscoveryClients(changed) });
186
+ assert.notEqual(first.configDigest, second.configDigest);
187
+ git('remote', 'add', 'upstream', 'https://github.com/upstream/widget.git');
188
+ assert.throws(() => resolveRepoFromRemote(root), /multiple remotes/u);
189
+ assert.deepEqual(resolveRepoFromRemote(root, 'origin'), { owner: 'example', repo: 'widget' });
190
+ }
191
+ finally {
192
+ rmSync(root, { recursive: true, force: true });
193
+ }
194
+ });
195
+ //# sourceMappingURL=discovery.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.test.js","sourceRoot":"","sources":["../../src/github/discovery.test.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,11 @@ export declare function getProjectDeliveryConfiguration(input: {
56
56
  requireWritable?: boolean;
57
57
  settings: ProjectDeliverySettings;
58
58
  }): Promise<ProjectDeliveryConfiguration>;
59
+ export declare function readProjectDeliveryDefinition(input: {
60
+ graphql: typeof GraphQLType;
61
+ org: string;
62
+ number: number;
63
+ }): Promise<Record<string, unknown>>;
59
64
  export declare function projectSettingsFromDeliveryConfig(config: DeliveryConfig): ProjectDeliverySettings;
60
65
  export declare function resolveProjectDeliveryConfiguration(raw: unknown, options: {
61
66
  requireWritable?: boolean;
@@ -48,10 +48,19 @@ export async function getIssueProjectStatus(input) {
48
48
  }
49
49
  export async function getProjectDeliveryConfiguration(input) {
50
50
  const settings = requireProjectSettings(input.settings);
51
+ const project = await readProjectDeliveryDefinition({
52
+ graphql: input.graphql,
53
+ org: input.org,
54
+ number: settings.number,
55
+ });
56
+ return resolveProjectDeliveryConfiguration(project, { requireWritable: input.requireWritable === true, settings });
57
+ }
58
+ export async function readProjectDeliveryDefinition(input) {
51
59
  const nodes = [];
52
60
  let cursor = null;
53
61
  let hasNextPage = true;
54
62
  const seenCursors = new Set();
63
+ const fieldIds = new Set();
55
64
  let project = null;
56
65
  while (hasNextPage) {
57
66
  const response = await input.graphql(`
@@ -61,6 +70,7 @@ export async function getProjectDeliveryConfiguration(input) {
61
70
  id
62
71
  number
63
72
  title
73
+ closed
64
74
  viewerCanUpdate
65
75
  fields(first: 100, after: $cursor) {
66
76
  nodes {
@@ -99,18 +109,51 @@ export async function getProjectDeliveryConfiguration(input) {
99
109
  }
100
110
  }
101
111
  }
102
- `, { cursor, number: settings.number, org: input.org });
112
+ `, { cursor, number: input.number, org: input.org });
103
113
  const responseRecord = requireRecord(response, 'GitHub returned invalid delivery Project configuration.');
114
+ if ('errors' in responseRecord)
115
+ throw new DeliveryError('GitHub returned partial delivery Project evidence.');
104
116
  const organization = requireRecord(responseRecord.organization, `Organization ${input.org} is unavailable to the selected GitHub identity.`);
105
- const pageProject = requireRecord(organization.projectV2, `Expected organization Project #${String(settings.number)} (${settings.title}).`);
117
+ const pageProject = requireRecord(organization.projectV2, `Expected organization Project #${String(input.number)}.`);
106
118
  const fields = requireRecord(pageProject.fields, 'GitHub omitted delivery Project fields.');
119
+ const previousProject = project;
120
+ if (previousProject !== null &&
121
+ ['id', 'number', 'title', 'closed', 'viewerCanUpdate'].some((key) => previousProject[key] !== pageProject[key])) {
122
+ throw new DeliveryError('Delivery Project identity changed while reading its field pages.');
123
+ }
107
124
  if (!Array.isArray(fields.nodes)) {
108
125
  throw new DeliveryError('GitHub returned invalid delivery Project field nodes.');
109
126
  }
110
- for (const node of fields.nodes)
127
+ for (const node of fields.nodes) {
128
+ const field = requireRecord(node, 'GitHub returned an incomplete delivery Project field.');
129
+ const fieldId = requireString(field.id, 'GitHub omitted a delivery Project field ID.');
130
+ if (fieldIds.has(fieldId))
131
+ throw new DeliveryError('GitHub repeated a delivery Project field.');
132
+ fieldIds.add(fieldId);
133
+ requireString(field.name, 'GitHub omitted a delivery Project field name.');
134
+ requireString(field.__typename, 'GitHub omitted a delivery Project field type.');
135
+ if (field.__typename === 'ProjectV2SingleSelectField') {
136
+ if (typeof field.isIssueField !== 'boolean')
137
+ throw new DeliveryError('GitHub omitted the Project field binding kind.');
138
+ readOptions(field.options, 'Project field');
139
+ if (field.isIssueField) {
140
+ const issueField = requireRecord(field.issueField, 'GitHub omitted the bound organization field.');
141
+ requireString(issueField.__typename, 'GitHub omitted the bound organization field type.');
142
+ if (issueField.__typename === 'IssueFieldSingleSelect') {
143
+ requireString(issueField.id, 'GitHub omitted the bound organization field ID.');
144
+ requireString(issueField.name, 'GitHub omitted the bound organization field name.');
145
+ if (!/^[1-9]\d*$/u.test(String(issueField.fullDatabaseId)))
146
+ throw new DeliveryError('GitHub omitted the bound organization field database ID.');
147
+ readOptions(issueField.options, 'organization field');
148
+ }
149
+ }
150
+ }
111
151
  nodes.push(node);
152
+ }
112
153
  project = { ...pageProject, fields: { nodes } };
113
154
  const pageInfo = requireRecord(fields.pageInfo, 'GitHub omitted delivery Project field pagination.');
155
+ if (typeof pageInfo.hasNextPage !== 'boolean')
156
+ throw new DeliveryError('GitHub omitted delivery Project pagination state.');
114
157
  hasNextPage = pageInfo.hasNextPage === true;
115
158
  const nextCursor = typeof pageInfo.endCursor === 'string' ? pageInfo.endCursor : null;
116
159
  assertAdvancingCursor({ cursor, hasNextPage, nextCursor, seenCursors, surface: 'field' });
@@ -119,12 +162,9 @@ export async function getProjectDeliveryConfiguration(input) {
119
162
  cursor = nextCursor;
120
163
  }
121
164
  if (project === null) {
122
- throw new DeliveryError(`Expected organization Project #${String(settings.number)} (${settings.title}).`);
165
+ throw new DeliveryError(`Expected organization Project #${String(input.number)}.`);
123
166
  }
124
- return resolveProjectDeliveryConfiguration(project, {
125
- requireWritable: input.requireWritable === true,
126
- settings,
127
- });
167
+ return project;
128
168
  }
129
169
  export function projectSettingsFromDeliveryConfig(config) {
130
170
  const project = config.native.project;
@@ -1 +1 @@
1
- {"version":3,"file":"projectDelivery.js","sourceRoot":"","sources":["../../src/github/projectDelivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectDelivery.js","sourceRoot":"","sources":["../../src/github/projectDelivery.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ export interface RepoCoordinates {
4
4
  repo: string;
5
5
  }
6
6
  export declare function formatRepoCoordinates(repo: RepoCoordinates): string;
7
- export declare function resolveDeliveryRepo(config: DeliveryConfig, repoRoot: string): RepoCoordinates;
8
- export declare function resolveRepoFromRemote(repoRoot: string): RepoCoordinates;
7
+ export declare function resolveDeliveryRepo(config: DeliveryConfig, repoRoot: string, selectedRemote?: string): RepoCoordinates;
8
+ export declare function resolveGitRemoteName(repoRoot: string, selectedRemote?: string): string;
9
+ export declare function resolveRepoFromRemote(repoRoot: string, selectedRemote?: string): RepoCoordinates;
@@ -3,31 +3,48 @@ import { DeliveryError } from '../errors.js';
3
3
  export function formatRepoCoordinates(repo) {
4
4
  return `${repo.owner}/${repo.repo}`;
5
5
  }
6
- export function resolveDeliveryRepo(config, repoRoot) {
6
+ export function resolveDeliveryRepo(config, repoRoot, selectedRemote) {
7
7
  if (!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/u.test(config.repository)) {
8
8
  throw new DeliveryError('Invalid configured delivery repository.');
9
9
  }
10
10
  const [owner, repo] = config.repository.split('/');
11
11
  if (!owner || !repo)
12
12
  throw new DeliveryError('Invalid configured delivery repository.');
13
- const remote = resolveRepoFromRemote(repoRoot);
13
+ const remote = resolveRepoFromRemote(repoRoot, selectedRemote);
14
14
  if (owner.toLowerCase() !== remote.owner.toLowerCase() || repo.toLowerCase() !== remote.repo.toLowerCase()) {
15
- throw new DeliveryError('Configured delivery repository does not match remote.origin.url.');
15
+ throw new DeliveryError('Configured delivery repository does not match remote selection.');
16
16
  }
17
17
  return { owner, repo };
18
18
  }
19
- export function resolveRepoFromRemote(repoRoot) {
20
- const result = spawnSync('git', ['config', '--get', 'remote.origin.url'], {
19
+ export function resolveGitRemoteName(repoRoot, selectedRemote) {
20
+ const remotes = spawnSync('git', ['remote'], { cwd: repoRoot, encoding: 'utf8' });
21
+ if (remotes.status !== 0)
22
+ throw new DeliveryError('Unable to list Git remotes.');
23
+ const names = remotes.stdout.trim().split('\n').filter(Boolean);
24
+ if (selectedRemote !== undefined && !names.includes(selectedRemote)) {
25
+ throw new DeliveryError('Selected Git remote does not exist in this checkout.');
26
+ }
27
+ if (selectedRemote === undefined && names.length !== 1) {
28
+ throw new DeliveryError('Select a Git remote explicitly when the checkout has zero or multiple remotes.');
29
+ }
30
+ const remoteName = selectedRemote ?? names[0];
31
+ if (!remoteName)
32
+ throw new DeliveryError('Git remote selection is missing.');
33
+ return remoteName;
34
+ }
35
+ export function resolveRepoFromRemote(repoRoot, selectedRemote) {
36
+ const remoteName = resolveGitRemoteName(repoRoot, selectedRemote);
37
+ const result = spawnSync('git', ['config', '--get', `remote.${remoteName}.url`], {
21
38
  cwd: repoRoot,
22
39
  encoding: 'utf8',
23
40
  });
24
41
  if (result.status !== 0) {
25
- throw new DeliveryError('Unable to determine canonical repository identity from remote.origin.url.');
42
+ throw new DeliveryError('Unable to determine repository identity from the selected Git remote.');
26
43
  }
27
44
  const remote = result.stdout.trim();
28
45
  const match = /^(?:git@github\.com:|ssh:\/\/git@github\.com\/|https:\/\/github\.com\/)([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+?)(?:\.git)?\/?$/u.exec(remote);
29
46
  if (!match?.[1] || !match[2]) {
30
- throw new DeliveryError('remote.origin.url must be a GitHub repository URL.');
47
+ throw new DeliveryError('The selected Git remote must be a github.com repository URL.');
31
48
  }
32
49
  return { owner: match[1], repo: match[2] };
33
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/github/repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAO7C,MAAM,UAAU,qBAAqB,CAAC,IAAqB;IACzD,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAsB,EAAE,QAAgB;IAC1E,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,aAAa,CAAC,yCAAyC,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,yCAAyC,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAC3G,MAAM,IAAI,aAAa,CAAC,kEAAkE,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE;QACxE,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,aAAa,CAAC,2EAA2E,CAAC,CAAC;IACvG,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,KAAK,GACT,6HAA6H,CAAC,IAAI,CAChI,MAAM,CACP,CAAC;IACJ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,aAAa,CAAC,oDAAoD,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/github/repo.ts"],"names":[],"mappings":"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"}
package/dist/issue.d.ts CHANGED
@@ -1,10 +1,13 @@
1
- import type { DeliveryConfig } from './config/deliveryConfig.js';
1
+ import type { DeliveryConfig, LoadedDeliveryConfig } from './config/deliveryConfig.js';
2
2
  import { DeliveryError } from './errors.js';
3
3
  import { type GitHubClients } from './github/client.js';
4
+ import { type ProjectDeliveryConfiguration } from './github/projectDelivery.js';
4
5
  import { type RepoCoordinates } from './github/repo.js';
5
6
  import { type AgentReadinessResult } from './services/agentReadinessService.js';
6
7
  export interface DeliveryContext {
7
8
  clients: GitHubClients;
9
+ configuration?: LoadedDeliveryConfig;
10
+ projectConfiguration?: ProjectDeliveryConfiguration;
8
11
  config: DeliveryConfig;
9
12
  repo: RepoCoordinates;
10
13
  root: string;
@@ -45,6 +48,7 @@ export declare function createIssue(context: DeliveryContext, input: CreateIssue
45
48
  title: string;
46
49
  url: string;
47
50
  };
51
+ routing?: LoadedDeliveryConfig['routing'];
48
52
  }>;
49
53
  export interface UpdateIssueInput {
50
54
  blockedBy?: number[];
@@ -63,6 +67,7 @@ export declare function updateIssue(context: DeliveryContext, input: UpdateIssue
63
67
  /** Complete the native tracking and Project state of an issue created before an interrupted response. */
64
68
  export declare function resumeCreatedIssue(context: DeliveryContext, input: UpdateIssueInput): Promise<IssueInfo>;
65
69
  export interface IssueInfo {
70
+ routing?: LoadedDeliveryConfig['routing'];
66
71
  blockedBy: number[];
67
72
  body: string;
68
73
  issueNumber: number;
package/dist/issue.js CHANGED
@@ -15,15 +15,28 @@ import { prepareIssueWorktree } from './worktree.js';
15
15
  import { writePrivateJsonFileAtomically } from './utils/atomicJson.js';
16
16
  export async function loadDeliveryContext(input) {
17
17
  const root = gitRoot(input.repoRoot);
18
- const config = loadDeliveryConfig(root).config;
19
- const repo = resolveDeliveryRepo(config, root);
18
+ const loaded = await loadDeliveryConfig(root, input.personalAuth === undefined ? {} : { personalAuth: input.personalAuth });
19
+ const config = loaded.config;
20
+ const repo = resolveDeliveryRepo(config, root, loaded.remote);
20
21
  const clients = await createDeliveryGitHubClients({
21
22
  config,
22
23
  identity: input.identity,
23
24
  ...(input.personalAuth ? { personalAuth: { enabled: true } } : {}),
24
25
  role: input.role,
25
26
  });
26
- return { clients, config, repo, root: primaryGitRoot(root) };
27
+ const routing = loaded.routing;
28
+ const projectConfiguration = {
29
+ projectId: routing.projectId,
30
+ projectNumber: config.native.project.number,
31
+ title: config.native.project.title,
32
+ pointsFieldId: routing.pointsFieldId,
33
+ priorityFieldId: routing.priorityFieldId,
34
+ statusFieldId: routing.statusFieldId,
35
+ statusOptionIds: routing.statusOptionIds,
36
+ settings: projectSettingsFromDeliveryConfig(config),
37
+ writable: true,
38
+ };
39
+ return { clients, config, configuration: loaded, projectConfiguration, repo, root: primaryGitRoot(root) };
27
40
  }
28
41
  function labels(input) {
29
42
  const selected = input ?? [];
@@ -114,6 +127,7 @@ export async function createIssue(context, input) {
114
127
  graphql: clients.graphql,
115
128
  issueNodeId: created.data.node_id,
116
129
  org: config.native.organization,
130
+ ...(context.projectConfiguration ? { configuration: context.projectConfiguration } : {}),
117
131
  settings: projectSettingsFromDeliveryConfig(config),
118
132
  status: targets.unresolvedBlockers.length > 0 ? 'Blocked' : 'Todo',
119
133
  });
@@ -122,6 +136,7 @@ export async function createIssue(context, input) {
122
136
  throw new CreatedTrackingIssueError({ number: issueNumber, title: created.data.title, url: created.data.html_url }, error);
123
137
  }
124
138
  return {
139
+ ...(context.configuration ? { routing: context.configuration.routing } : {}),
125
140
  body: created.data.body ?? input.body ?? '',
126
141
  created: { number: issueNumber, title: created.data.title, url: created.data.html_url },
127
142
  };
@@ -220,6 +235,7 @@ export async function resumeCreatedIssue(context, input) {
220
235
  graphql: context.clients.graphql,
221
236
  issueNodeId: issue.node_id,
222
237
  org: context.config.native.organization,
238
+ ...(context.projectConfiguration ? { configuration: context.projectConfiguration } : {}),
223
239
  settings: projectSettingsFromDeliveryConfig(context.config),
224
240
  status: info.blockedBy.length > 0 ? 'Blocked' : 'Todo',
225
241
  });
@@ -271,10 +287,12 @@ export async function issueInfo(context, issueNumber) {
271
287
  graphql: clients.graphql,
272
288
  issueNodeId: issue.node_id,
273
289
  org: config.native.organization,
290
+ ...(context.projectConfiguration ? { configuration: context.projectConfiguration } : {}),
274
291
  settings: projectSettingsFromDeliveryConfig(config),
275
292
  }),
276
293
  ]);
277
294
  const info = {
295
+ ...(context.configuration ? { routing: context.configuration.routing } : {}),
278
296
  blockedBy: relationships.blockers.filter((blocker) => blocker.state === 'OPEN').map((blocker) => blocker.number),
279
297
  body: issue.body ?? '',
280
298
  issueNumber,
@@ -330,6 +348,7 @@ export async function developIssue(context, issueNumber) {
330
348
  if (!readiness.ready)
331
349
  throw new DeliveryError(`Issue #${issueNumber} is not ready: ${readiness.failures.map((f) => f.message).join('; ')}`);
332
350
  const row = await prepareIssueWorktree({
351
+ ...(context.configuration?.remote ? { remote: context.configuration.remote } : {}),
333
352
  identity: context.config.roles.author.identity,
334
353
  issueNumber,
335
354
  repoRoot: context.root,
@@ -339,6 +358,7 @@ export async function developIssue(context, issueNumber) {
339
358
  graphql: context.clients.graphql,
340
359
  issueNodeId: issue.node_id,
341
360
  org: context.config.native.organization,
361
+ ...(context.projectConfiguration ? { configuration: context.projectConfiguration } : {}),
342
362
  settings: projectSettingsFromDeliveryConfig(context.config),
343
363
  status: 'In Progress',
344
364
  });