@abgov/nx-adsp 13.9.0 → 13.9.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.
- package/README.md +42 -42
- package/package.json +1 -1
- package/src/build-assets.spec.ts +3 -3
- package/src/generators/angular-app/angular-app.js +22 -7
- package/src/generators/angular-app/angular-app.js.map +1 -1
- package/src/generators/angular-app/angular-app.spec.ts +8 -5
- package/src/generators/dotnet-service/dotnet-service.spec.ts +1 -1
- package/src/generators/express-service/express-service.js +16 -5
- package/src/generators/express-service/express-service.js.map +1 -1
- package/src/generators/express-service/express-service.spec.ts +39 -16
- package/src/generators/mean/mean.js +3 -2
- package/src/generators/mean/mean.js.map +1 -1
- package/src/generators/mean/mean.spec.ts +5 -2
- package/src/generators/mern/mern.js +3 -2
- package/src/generators/mern/mern.js.map +1 -1
- package/src/generators/mern/mern.spec.ts +5 -2
- package/src/generators/mevn/mevn.js +3 -2
- package/src/generators/mevn/mevn.js.map +1 -1
- package/src/generators/mevn/mevn.spec.ts +5 -2
- package/src/generators/pean/pean.js +3 -2
- package/src/generators/pean/pean.js.map +1 -1
- package/src/generators/pean/pean.spec.ts +5 -2
- package/src/generators/pern/pern.js +3 -2
- package/src/generators/pern/pern.js.map +1 -1
- package/src/generators/pern/pern.spec.ts +5 -2
- package/src/generators/pevn/pevn.js +3 -2
- package/src/generators/pevn/pevn.js.map +1 -1
- package/src/generators/pevn/pevn.spec.ts +5 -2
- package/src/generators/react-app/react-app.js +12 -5
- package/src/generators/react-app/react-app.js.map +1 -1
- package/src/generators/react-app/react-app.spec.ts +4 -4
- package/src/generators/react-dotnet/react-dotnet.spec.ts +1 -1
- package/src/generators/react-form/react-form.js.map +1 -1
- package/src/generators/react-form/react-forms.spec.ts +3 -3
- package/src/generators/react-task-list/react-task-list.js.map +1 -1
- package/src/generators/react-task-list/react-task-list.spec.ts +2 -2
- package/src/generators/vue-app/vue-app.js +13 -5
- package/src/generators/vue-app/vue-app.js.map +1 -1
- package/src/generators/vue-app/vue-app.spec.ts +24 -9
- package/src/generators/vue-components/vue-components.js +7 -2
- package/src/generators/vue-components/vue-components.js.map +1 -1
- package/src/generators/vue-components/vue-components.spec.ts +41 -13
- package/src/types/nx-angular-generators.d.ts +1 -1
- package/src/utils/agent.js +23 -9
- package/src/utils/agent.js.map +1 -1
- package/src/utils/agent.spec.ts +74 -17
- package/src/utils/keycloak-admin.js +16 -5
- package/src/utils/keycloak-admin.js.map +1 -1
- package/src/utils/quality.js.map +1 -1
- package/src/utils/quality.spec.ts +5 -3
|
@@ -26,7 +26,7 @@ utilsMock.getAdspConfiguration.mockResolvedValue({
|
|
|
26
26
|
// jest.mock('@abgov/nx-oc') automocks adspProjectTags too — restore the real
|
|
27
27
|
// (pure, no I/O) implementation so tag-writing behavior is actually exercised.
|
|
28
28
|
utilsMock.adspProjectTags.mockImplementation(
|
|
29
|
-
jest.requireActual('@abgov/nx-oc').adspProjectTags
|
|
29
|
+
jest.requireActual('@abgov/nx-oc').adspProjectTags,
|
|
30
30
|
);
|
|
31
31
|
|
|
32
32
|
describe('Vue App Generator', () => {
|
|
@@ -46,7 +46,9 @@ describe('Vue App Generator', () => {
|
|
|
46
46
|
expect(host.exists('apps/test/src/main.ts')).toBeTruthy();
|
|
47
47
|
expect(host.exists('apps/test/src/App.vue')).toBeTruthy();
|
|
48
48
|
expect(host.exists('apps/test/src/router/index.ts')).toBeTruthy();
|
|
49
|
-
expect(
|
|
49
|
+
expect(
|
|
50
|
+
host.exists('apps/test/src/environments/environment.ts'),
|
|
51
|
+
).toBeTruthy();
|
|
50
52
|
expect(host.exists('apps/test/vite.config.ts')).toBeTruthy();
|
|
51
53
|
// The duplicate @nx/vue-generated config is removed.
|
|
52
54
|
expect(host.exists('apps/test/vite.config.mts')).toBeFalsy();
|
|
@@ -66,7 +68,7 @@ describe('Vue App Generator', () => {
|
|
|
66
68
|
expect(host.exists('apps/test-e2e/project.json')).toBeTruthy();
|
|
67
69
|
expect(
|
|
68
70
|
host.exists('apps/test-e2e/playwright.config.ts') ||
|
|
69
|
-
host.exists('apps/test-e2e/playwright.config.mts')
|
|
71
|
+
host.exists('apps/test-e2e/playwright.config.mts'),
|
|
70
72
|
).toBe(true);
|
|
71
73
|
expect(host.exists('apps/test-e2e/cypress.config.ts')).toBeFalsy();
|
|
72
74
|
// webServer guarded so CI can target a deployed URL (BASE_URL) instead of a local server
|
|
@@ -89,7 +91,9 @@ describe('Vue App Generator', () => {
|
|
|
89
91
|
|
|
90
92
|
// Shared layout component provides the content gutter for every view.
|
|
91
93
|
expect(host.exists('apps/test/src/components/AppLayout.vue')).toBeTruthy();
|
|
92
|
-
const layout = host
|
|
94
|
+
const layout = host
|
|
95
|
+
.read('apps/test/src/components/AppLayout.vue')
|
|
96
|
+
.toString();
|
|
93
97
|
// Three named width variants, token-driven padding.
|
|
94
98
|
expect(layout).toContain('form-content');
|
|
95
99
|
expect(layout).toContain('wide-content');
|
|
@@ -108,8 +112,13 @@ describe('Vue App Generator', () => {
|
|
|
108
112
|
// Wrappers live in a shared workspace lib, not copied into the app.
|
|
109
113
|
const base = 'libs/vue-components/src/lib';
|
|
110
114
|
for (const name of [
|
|
111
|
-
'GoabInput',
|
|
112
|
-
'
|
|
115
|
+
'GoabInput',
|
|
116
|
+
'GoabTextarea',
|
|
117
|
+
'GoabDropdown',
|
|
118
|
+
'GoabCheckbox',
|
|
119
|
+
'GoabRadioGroup',
|
|
120
|
+
'GoabButton',
|
|
121
|
+
'GoabModal',
|
|
113
122
|
]) {
|
|
114
123
|
expect(host.exists(`${base}/${name}.vue`)).toBeTruthy();
|
|
115
124
|
}
|
|
@@ -199,7 +208,9 @@ describe('Vue App Generator', () => {
|
|
|
199
208
|
it('vite.config.ts marks goa-* elements as custom elements', async () => {
|
|
200
209
|
await generator(host, options);
|
|
201
210
|
const viteConfig = host.read('apps/test/vite.config.ts').toString();
|
|
202
|
-
expect(viteConfig).toContain(
|
|
211
|
+
expect(viteConfig).toContain(
|
|
212
|
+
"isCustomElement: (tag) => tag.startsWith('goa-')",
|
|
213
|
+
);
|
|
203
214
|
}, 30000);
|
|
204
215
|
|
|
205
216
|
it('shows the Sign in button without gating on Keycloak readiness', async () => {
|
|
@@ -225,7 +236,9 @@ describe('Vue App Generator', () => {
|
|
|
225
236
|
|
|
226
237
|
it('environment.ts is pre-populated with tenant config', async () => {
|
|
227
238
|
await generator(host, options);
|
|
228
|
-
const env = host
|
|
239
|
+
const env = host
|
|
240
|
+
.read('apps/test/src/environments/environment.ts')
|
|
241
|
+
.toString();
|
|
229
242
|
expect(env).toContain(environments.test.accessServiceUrl);
|
|
230
243
|
expect(env).toContain(environments.test.directoryServiceUrl);
|
|
231
244
|
expect(env).toContain('urn:ads:test:test');
|
|
@@ -259,7 +272,9 @@ describe('Vue App Generator', () => {
|
|
|
259
272
|
proxy: { location: '/test/', proxyPass: 'http://test-service:3333/api/' },
|
|
260
273
|
});
|
|
261
274
|
expect(host.exists('apps/test/vite.proxy.json')).toBeTruthy();
|
|
262
|
-
const proxyConf = JSON.parse(
|
|
275
|
+
const proxyConf = JSON.parse(
|
|
276
|
+
host.read('apps/test/vite.proxy.json').toString(),
|
|
277
|
+
);
|
|
263
278
|
expect(proxyConf['/test/'].target).toBe('http://localhost:3333');
|
|
264
279
|
expect(proxyConf['/test/'].pathRewrite['^/test/']).toBe('/api/');
|
|
265
280
|
});
|
|
@@ -56,7 +56,11 @@ function disableSlotAttributeRule(host, libRoot) {
|
|
|
56
56
|
}
|
|
57
57
|
// `files` is `string | string[]` per the Linter type — normalize before checking.
|
|
58
58
|
const isVueOverride = (o) => (Array.isArray(o.files) ? o.files : o.files ? [o.files] : []).some((f) => f.includes('vue'));
|
|
59
|
-
const alreadyDisabled = (0, internal_1.lintConfigHasOverride)(host, libRoot, (o) => {
|
|
59
|
+
const alreadyDisabled = (0, internal_1.lintConfigHasOverride)(host, libRoot, (o) => {
|
|
60
|
+
var _a;
|
|
61
|
+
return isVueOverride(o) &&
|
|
62
|
+
((_a = o.rules) === null || _a === void 0 ? void 0 : _a['vue/no-deprecated-slot-attribute']) === 'off';
|
|
63
|
+
});
|
|
60
64
|
if (alreadyDisabled) {
|
|
61
65
|
return;
|
|
62
66
|
}
|
|
@@ -74,7 +78,8 @@ function vueComponentsImportPath(host) {
|
|
|
74
78
|
var _a, _b;
|
|
75
79
|
let name = 'workspace';
|
|
76
80
|
try {
|
|
77
|
-
name =
|
|
81
|
+
name =
|
|
82
|
+
JSON.parse((_b = (_a = host.read('package.json')) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '{}').name || name;
|
|
78
83
|
}
|
|
79
84
|
catch (_c) {
|
|
80
85
|
/* keep fallback */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue-components.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/vue-components/vue-components.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"vue-components.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/vue-components/vue-components.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { readProjectConfiguration, Tree } from '@nx/devkit';
|
|
2
2
|
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
|
|
3
|
-
import generator, {
|
|
3
|
+
import generator, {
|
|
4
|
+
ensurePackageExports,
|
|
5
|
+
vueComponentsImportPath,
|
|
6
|
+
} from './vue-components';
|
|
4
7
|
|
|
5
8
|
jest.mock('@nx/devkit', () => ({
|
|
6
9
|
...jest.requireActual('@nx/devkit'),
|
|
@@ -22,18 +25,25 @@ describe('Vue Components Generator', () => {
|
|
|
22
25
|
|
|
23
26
|
const base = 'libs/vue-components/src/lib';
|
|
24
27
|
for (const name of [
|
|
25
|
-
'GoabInput',
|
|
26
|
-
'
|
|
28
|
+
'GoabInput',
|
|
29
|
+
'GoabTextarea',
|
|
30
|
+
'GoabDropdown',
|
|
31
|
+
'GoabCheckbox',
|
|
32
|
+
'GoabRadioGroup',
|
|
33
|
+
'GoabButton',
|
|
34
|
+
'GoabModal',
|
|
27
35
|
]) {
|
|
28
36
|
expect(host.exists(`${base}/${name}.vue`)).toBeTruthy();
|
|
29
37
|
}
|
|
30
38
|
const index = host.read('libs/vue-components/src/index.ts').toString();
|
|
31
|
-
expect(index).toContain(
|
|
39
|
+
expect(index).toContain('export { default as GoabInput }');
|
|
32
40
|
expect(index).toContain('@abgov/vue-components'); // interim marker
|
|
33
41
|
|
|
34
42
|
// Ships a spec so the vitest test target isn't empty (vitest exits non-zero
|
|
35
43
|
// on "no test files found").
|
|
36
|
-
expect(
|
|
44
|
+
expect(
|
|
45
|
+
host.exists('libs/vue-components/src/vue-components.spec.ts'),
|
|
46
|
+
).toBeTruthy();
|
|
37
47
|
|
|
38
48
|
// GoabModal uses goa-modal's native `slot` attribute (web component, not the
|
|
39
49
|
// deprecated Vue 2 slot syntax) — the rule is turned off for this lib.
|
|
@@ -59,14 +69,18 @@ describe('Vue Components Generator', () => {
|
|
|
59
69
|
|
|
60
70
|
expect(host.exists('libs/vue-components/eslint.config.mjs')).toBeTruthy();
|
|
61
71
|
expect(host.exists('libs/vue-components/.eslintrc.json')).toBeFalsy();
|
|
62
|
-
const flatConfig = host
|
|
72
|
+
const flatConfig = host
|
|
73
|
+
.read('libs/vue-components/eslint.config.mjs')
|
|
74
|
+
.toString();
|
|
63
75
|
expect(flatConfig).toContain('"vue/no-deprecated-slot-attribute": "off"');
|
|
64
76
|
}, 30000);
|
|
65
77
|
|
|
66
78
|
it('is idempotent — a second run does not throw and keeps the wrappers', async () => {
|
|
67
79
|
await generator(host);
|
|
68
80
|
await expect(generator(host)).resolves.not.toThrow();
|
|
69
|
-
expect(
|
|
81
|
+
expect(
|
|
82
|
+
host.exists('libs/vue-components/src/lib/GoabInput.vue'),
|
|
83
|
+
).toBeTruthy();
|
|
70
84
|
}, 30000);
|
|
71
85
|
|
|
72
86
|
it('does not duplicate the ESLint override on a second run (legacy or flat)', async () => {
|
|
@@ -74,8 +88,12 @@ describe('Vue Components Generator', () => {
|
|
|
74
88
|
await generator(host);
|
|
75
89
|
await generator(host);
|
|
76
90
|
|
|
77
|
-
const flatConfig = host
|
|
78
|
-
|
|
91
|
+
const flatConfig = host
|
|
92
|
+
.read('libs/vue-components/eslint.config.mjs')
|
|
93
|
+
.toString();
|
|
94
|
+
expect(
|
|
95
|
+
flatConfig.split('vue/no-deprecated-slot-attribute').length - 1,
|
|
96
|
+
).toBe(1);
|
|
79
97
|
}, 30000);
|
|
80
98
|
|
|
81
99
|
it('derives the import path from the workspace scope', () => {
|
|
@@ -84,10 +102,15 @@ describe('Vue Components Generator', () => {
|
|
|
84
102
|
|
|
85
103
|
describe('ensurePackageExports (TS-solution resolution fix)', () => {
|
|
86
104
|
it('backfills exports/main/types when a lib package.json exists', () => {
|
|
87
|
-
host.write(
|
|
105
|
+
host.write(
|
|
106
|
+
'libs/vue-components/package.json',
|
|
107
|
+
JSON.stringify({ name: '@proj/vue-components' }),
|
|
108
|
+
);
|
|
88
109
|
ensurePackageExports(host, 'libs/vue-components');
|
|
89
110
|
|
|
90
|
-
const pkg = JSON.parse(
|
|
111
|
+
const pkg = JSON.parse(
|
|
112
|
+
host.read('libs/vue-components/package.json').toString(),
|
|
113
|
+
);
|
|
91
114
|
expect(pkg.main).toBe('./src/index.ts');
|
|
92
115
|
expect(pkg.types).toBe('./src/index.ts');
|
|
93
116
|
expect(pkg.exports['.'].import).toBe('./src/index.ts');
|
|
@@ -96,11 +119,16 @@ describe('Vue Components Generator', () => {
|
|
|
96
119
|
it('does not clobber exports @nx/vue already wrote', () => {
|
|
97
120
|
host.write(
|
|
98
121
|
'libs/vue-components/package.json',
|
|
99
|
-
JSON.stringify({
|
|
122
|
+
JSON.stringify({
|
|
123
|
+
name: '@proj/vue-components',
|
|
124
|
+
exports: { '.': './dist/index.js' },
|
|
125
|
+
}),
|
|
100
126
|
);
|
|
101
127
|
ensurePackageExports(host, 'libs/vue-components');
|
|
102
128
|
|
|
103
|
-
const pkg = JSON.parse(
|
|
129
|
+
const pkg = JSON.parse(
|
|
130
|
+
host.read('libs/vue-components/package.json').toString(),
|
|
131
|
+
);
|
|
104
132
|
expect(pkg.exports['.']).toBe('./dist/index.js');
|
|
105
133
|
});
|
|
106
134
|
|
package/src/utils/agent.js
CHANGED
|
@@ -151,7 +151,9 @@ function consultAgent(directoryServiceUrl, accessToken, projectContext, host, pr
|
|
|
151
151
|
};
|
|
152
152
|
const buildInitialMessage = () => {
|
|
153
153
|
const { projectType, projectName, tenant, pluginVersion } = projectContext;
|
|
154
|
-
const descriptionLine = description
|
|
154
|
+
const descriptionLine = description
|
|
155
|
+
? `It is described as: "${description}". `
|
|
156
|
+
: '';
|
|
155
157
|
if (isContinuation) {
|
|
156
158
|
const stackDetail = projectType === 'react-app'
|
|
157
159
|
? 'It uses Redux Toolkit slices for state (store.ts, config.slice.ts, intake.slice.ts) and keycloak-js for authentication. '
|
|
@@ -164,7 +166,12 @@ function consultAgent(directoryServiceUrl, accessToken, projectContext, host, pr
|
|
|
164
166
|
`The files (${fileNames}) have been uploaded to your workspace — please read them to understand the current structure before suggesting capabilities. ` +
|
|
165
167
|
`Based on our service discussion, what ADSP frontend integrations would be most useful?`);
|
|
166
168
|
}
|
|
167
|
-
if (projectType === 'mern' ||
|
|
169
|
+
if (projectType === 'mern' ||
|
|
170
|
+
projectType === 'mean' ||
|
|
171
|
+
projectType === 'pern' ||
|
|
172
|
+
projectType === 'pean' ||
|
|
173
|
+
projectType === 'pevn' ||
|
|
174
|
+
projectType === 'mevn') {
|
|
168
175
|
const frontendStack = projectType === 'mern' || projectType === 'pern'
|
|
169
176
|
? 'React frontend using Redux Toolkit slices and keycloak-js'
|
|
170
177
|
: projectType === 'mean' || projectType === 'pean'
|
|
@@ -294,14 +301,21 @@ function consultAgent(directoryServiceUrl, accessToken, projectContext, host, pr
|
|
|
294
301
|
const describeToolCall = (toolName, args) => {
|
|
295
302
|
switch (toolName) {
|
|
296
303
|
// Workspace tools (Mastra built-in names)
|
|
297
|
-
case 'mastra_workspace_write_file':
|
|
298
|
-
|
|
299
|
-
case '
|
|
300
|
-
|
|
304
|
+
case 'mastra_workspace_write_file':
|
|
305
|
+
return `Writing: ${args['path']}`;
|
|
306
|
+
case 'mastra_workspace_edit_file':
|
|
307
|
+
return `Editing: ${args['path']}`;
|
|
308
|
+
case 'mastra_workspace_read_file':
|
|
309
|
+
return `Reading: ${args['path']}`;
|
|
310
|
+
case 'mastra_workspace_list_files':
|
|
311
|
+
return `Listing workspace files`;
|
|
301
312
|
// nx-adsp template tools (Mastra uses the agent registration key, not the tool id)
|
|
302
|
-
case 'listNxAdspTemplatesTool':
|
|
303
|
-
|
|
304
|
-
|
|
313
|
+
case 'listNxAdspTemplatesTool':
|
|
314
|
+
return `Listing available ADSP templates`;
|
|
315
|
+
case 'getNxAdspTemplateTool':
|
|
316
|
+
return `Getting template: ${args['templateId']}`;
|
|
317
|
+
default:
|
|
318
|
+
return `Tool: ${toolName}`;
|
|
305
319
|
}
|
|
306
320
|
};
|
|
307
321
|
let firstDeltaOfTurn = true;
|
package/src/utils/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/agent.ts"],"names":[],"mappings":"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"}
|
package/src/utils/agent.spec.ts
CHANGED
|
@@ -2,7 +2,9 @@ import { consultAgent, isNonInteractive } from './agent';
|
|
|
2
2
|
|
|
3
3
|
jest.mock('readline', () => ({
|
|
4
4
|
createInterface: jest.fn(() => ({
|
|
5
|
-
question: jest.fn((_prompt: string, cb: (answer: string) => void) =>
|
|
5
|
+
question: jest.fn((_prompt: string, cb: (answer: string) => void) =>
|
|
6
|
+
cb(''),
|
|
7
|
+
),
|
|
6
8
|
close: jest.fn(),
|
|
7
9
|
on: jest.fn(),
|
|
8
10
|
})),
|
|
@@ -35,7 +37,10 @@ const PROJECT_CONTEXT = {
|
|
|
35
37
|
},
|
|
36
38
|
};
|
|
37
39
|
|
|
38
|
-
const mockHost = {
|
|
40
|
+
const mockHost = {
|
|
41
|
+
write: jest.fn(),
|
|
42
|
+
read: jest.fn(),
|
|
43
|
+
} as unknown as import('@nx/devkit').Tree;
|
|
39
44
|
|
|
40
45
|
function makeMockSocket() {
|
|
41
46
|
const handlers: Record<string, (...args: unknown[]) => void> = {};
|
|
@@ -58,7 +63,7 @@ function makeMockSocket() {
|
|
|
58
63
|
// Flush the microtask queue so async operations inside consultAgent settle.
|
|
59
64
|
// One tick is enough: the dynamic import and the enquirer mock both resolve
|
|
60
65
|
// as microtasks, so after this all handlers are registered and descriptionReady=true.
|
|
61
|
-
const flushPromises = () => new Promise(resolve => setTimeout(resolve, 0));
|
|
66
|
+
const flushPromises = () => new Promise((resolve) => setTimeout(resolve, 0));
|
|
62
67
|
|
|
63
68
|
describe('consultAgent', () => {
|
|
64
69
|
const ORIGINAL_ARGV = process.argv;
|
|
@@ -70,19 +75,31 @@ describe('consultAgent', () => {
|
|
|
70
75
|
// consultAgent short-circuits when non-interactive; force an interactive
|
|
71
76
|
// TTY (no flag, no CI) so these tests exercise the interactive flow.
|
|
72
77
|
process.argv = ['node', 'nx'];
|
|
73
|
-
Object.defineProperty(process.stdout, 'isTTY', {
|
|
78
|
+
Object.defineProperty(process.stdout, 'isTTY', {
|
|
79
|
+
value: true,
|
|
80
|
+
configurable: true,
|
|
81
|
+
});
|
|
74
82
|
delete process.env.CI;
|
|
75
83
|
});
|
|
76
84
|
afterAll(() => {
|
|
77
85
|
process.argv = ORIGINAL_ARGV;
|
|
78
|
-
Object.defineProperty(process.stdout, 'isTTY', {
|
|
86
|
+
Object.defineProperty(process.stdout, 'isTTY', {
|
|
87
|
+
value: ORIGINAL_TTY,
|
|
88
|
+
configurable: true,
|
|
89
|
+
});
|
|
79
90
|
if (ORIGINAL_CI === undefined) delete process.env.CI;
|
|
80
91
|
else process.env.CI = ORIGINAL_CI;
|
|
81
92
|
});
|
|
82
93
|
|
|
83
94
|
it('returns null when agent-service is not in directory', async () => {
|
|
84
95
|
mockedGetServiceUrls.mockResolvedValue({});
|
|
85
|
-
const result = await consultAgent(
|
|
96
|
+
const result = await consultAgent(
|
|
97
|
+
'https://directory.example.com',
|
|
98
|
+
'token',
|
|
99
|
+
PROJECT_CONTEXT,
|
|
100
|
+
mockHost,
|
|
101
|
+
'apps/test-service',
|
|
102
|
+
);
|
|
86
103
|
expect(result).toBeNull();
|
|
87
104
|
});
|
|
88
105
|
|
|
@@ -91,7 +108,13 @@ describe('consultAgent', () => {
|
|
|
91
108
|
'urn:ads:platform:agent-service:v1': 'https://agent.example.com',
|
|
92
109
|
});
|
|
93
110
|
const socket = makeMockSocket();
|
|
94
|
-
const resultPromise = consultAgent(
|
|
111
|
+
const resultPromise = consultAgent(
|
|
112
|
+
'https://directory.example.com',
|
|
113
|
+
'token',
|
|
114
|
+
PROJECT_CONTEXT,
|
|
115
|
+
mockHost,
|
|
116
|
+
'apps/test-service',
|
|
117
|
+
);
|
|
95
118
|
// After one tick: enquirer mock resolves, descriptionReady=true, conversationPromise returned.
|
|
96
119
|
await flushPromises();
|
|
97
120
|
socket._handlers['connect_error']?.();
|
|
@@ -103,7 +126,13 @@ describe('consultAgent', () => {
|
|
|
103
126
|
'urn:ads:platform:agent-service:v1': 'https://agent.example.com',
|
|
104
127
|
});
|
|
105
128
|
const socket = makeMockSocket();
|
|
106
|
-
const resultPromise = consultAgent(
|
|
129
|
+
const resultPromise = consultAgent(
|
|
130
|
+
'https://directory.example.com',
|
|
131
|
+
'token',
|
|
132
|
+
PROJECT_CONTEXT,
|
|
133
|
+
mockHost,
|
|
134
|
+
'apps/test-service',
|
|
135
|
+
);
|
|
107
136
|
await flushPromises();
|
|
108
137
|
|
|
109
138
|
// descriptionReady=true at this point; workspace-updated fires last → triggers sendInitialMessage.
|
|
@@ -112,7 +141,10 @@ describe('consultAgent', () => {
|
|
|
112
141
|
socket._handlers['message']?.('Connected as user...');
|
|
113
142
|
socket._handlers['workspace-updated']?.();
|
|
114
143
|
// Simulate agent responding with text (sets agentHasResponded = true)
|
|
115
|
-
socket._handlers['stream']?.({
|
|
144
|
+
socket._handlers['stream']?.({
|
|
145
|
+
chunk: { type: 'text-delta', payload: { text: 'I will add events.' } },
|
|
146
|
+
done: false,
|
|
147
|
+
});
|
|
116
148
|
socket._handlers['stream']?.({ chunk: null, done: true });
|
|
117
149
|
socket._handlers['workspace-state']?.({
|
|
118
150
|
files: [
|
|
@@ -122,9 +154,19 @@ describe('consultAgent', () => {
|
|
|
122
154
|
});
|
|
123
155
|
|
|
124
156
|
const result = await resultPromise;
|
|
125
|
-
expect(result).toEqual({
|
|
126
|
-
|
|
127
|
-
|
|
157
|
+
expect(result).toEqual({
|
|
158
|
+
filesWritten: 2,
|
|
159
|
+
userInteracted: true,
|
|
160
|
+
interrupted: false,
|
|
161
|
+
});
|
|
162
|
+
expect(mockHost.write).toHaveBeenCalledWith(
|
|
163
|
+
'apps/test-service/src/roles.ts',
|
|
164
|
+
'export enum ServiceRoles {}',
|
|
165
|
+
);
|
|
166
|
+
expect(mockHost.write).toHaveBeenCalledWith(
|
|
167
|
+
'apps/test-service/src/main.ts',
|
|
168
|
+
'updated main.ts',
|
|
169
|
+
);
|
|
128
170
|
});
|
|
129
171
|
|
|
130
172
|
it('uploads existing files to workspace before sending the initial message', async () => {
|
|
@@ -132,14 +174,26 @@ describe('consultAgent', () => {
|
|
|
132
174
|
'urn:ads:platform:agent-service:v1': 'https://agent.example.com',
|
|
133
175
|
});
|
|
134
176
|
const socket = makeMockSocket();
|
|
135
|
-
const resultPromise = consultAgent(
|
|
177
|
+
const resultPromise = consultAgent(
|
|
178
|
+
'https://directory.example.com',
|
|
179
|
+
'token',
|
|
180
|
+
PROJECT_CONTEXT,
|
|
181
|
+
mockHost,
|
|
182
|
+
'apps/test-service',
|
|
183
|
+
);
|
|
136
184
|
await flushPromises();
|
|
137
185
|
|
|
138
186
|
// connect → server sends 'message' readiness signal → workspace-update emitted → workspace-updated → initial message sent
|
|
139
187
|
socket._handlers['connect']?.();
|
|
140
188
|
socket._handlers['message']?.('Connected as user...');
|
|
141
189
|
socket._handlers['workspace-updated']?.();
|
|
142
|
-
socket._handlers['stream']?.({
|
|
190
|
+
socket._handlers['stream']?.({
|
|
191
|
+
chunk: {
|
|
192
|
+
type: 'text-delta',
|
|
193
|
+
payload: { text: 'What does this service do?' },
|
|
194
|
+
},
|
|
195
|
+
done: false,
|
|
196
|
+
});
|
|
143
197
|
socket._handlers['stream']?.({ chunk: null, done: true });
|
|
144
198
|
socket._handlers['workspace-state']?.({ files: [] });
|
|
145
199
|
await resultPromise;
|
|
@@ -151,14 +205,14 @@ describe('consultAgent', () => {
|
|
|
151
205
|
writes: expect.arrayContaining([
|
|
152
206
|
expect.objectContaining({ path: 'src/main.ts' }),
|
|
153
207
|
]),
|
|
154
|
-
})
|
|
208
|
+
}),
|
|
155
209
|
);
|
|
156
210
|
expect(socket.emit).toHaveBeenCalledWith(
|
|
157
211
|
'message',
|
|
158
212
|
expect.objectContaining({
|
|
159
213
|
agent: 'nxAdspAgent',
|
|
160
214
|
content: expect.stringContaining('src/main.ts'),
|
|
161
|
-
})
|
|
215
|
+
}),
|
|
162
216
|
);
|
|
163
217
|
});
|
|
164
218
|
});
|
|
@@ -168,7 +222,10 @@ describe('isNonInteractive', () => {
|
|
|
168
222
|
const ORIGINAL_TTY = process.stdout.isTTY;
|
|
169
223
|
const ORIGINAL_CI = process.env.CI;
|
|
170
224
|
const setTTY = (v: boolean | undefined) =>
|
|
171
|
-
Object.defineProperty(process.stdout, 'isTTY', {
|
|
225
|
+
Object.defineProperty(process.stdout, 'isTTY', {
|
|
226
|
+
value: v,
|
|
227
|
+
configurable: true,
|
|
228
|
+
});
|
|
172
229
|
|
|
173
230
|
afterEach(() => {
|
|
174
231
|
process.argv = ORIGINAL_ARGV;
|
|
@@ -10,7 +10,8 @@ const tslib_1 = require("tslib");
|
|
|
10
10
|
function listClients(accessServiceUrl, realm, clientId, accessToken) {
|
|
11
11
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
12
12
|
const { default: axios } = yield Promise.resolve().then(() => require('axios'));
|
|
13
|
-
const url = new URL(`/auth/admin/realms/${realm}/clients`, accessServiceUrl)
|
|
13
|
+
const url = new URL(`/auth/admin/realms/${realm}/clients`, accessServiceUrl)
|
|
14
|
+
.href;
|
|
14
15
|
const { data } = yield axios.get(url, {
|
|
15
16
|
params: { clientId },
|
|
16
17
|
headers: { Authorization: `Bearer ${accessToken}` },
|
|
@@ -21,7 +22,8 @@ function listClients(accessServiceUrl, realm, clientId, accessToken) {
|
|
|
21
22
|
function createClient(accessServiceUrl, realm, representation, accessToken) {
|
|
22
23
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
23
24
|
const { default: axios } = yield Promise.resolve().then(() => require('axios'));
|
|
24
|
-
const url = new URL(`/auth/admin/realms/${realm}/clients`, accessServiceUrl)
|
|
25
|
+
const url = new URL(`/auth/admin/realms/${realm}/clients`, accessServiceUrl)
|
|
26
|
+
.href;
|
|
25
27
|
const response = yield axios.post(url, representation, {
|
|
26
28
|
headers: { Authorization: `Bearer ${accessToken}` },
|
|
27
29
|
});
|
|
@@ -168,9 +170,18 @@ function ensureServiceClient(accessServiceUrl, realm, clientId, accessToken) {
|
|
|
168
170
|
try {
|
|
169
171
|
const existing = yield listClients(accessServiceUrl, realm, clientId, accessToken);
|
|
170
172
|
const platformRoles = [
|
|
171
|
-
{
|
|
172
|
-
|
|
173
|
-
|
|
173
|
+
{
|
|
174
|
+
platformClientId: 'urn:ads:platform:tenant-service',
|
|
175
|
+
roleName: 'platform-service',
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
platformClientId: 'urn:ads:platform:event-service',
|
|
179
|
+
roleName: 'event-sender',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
platformClientId: 'urn:ads:platform:configuration-service',
|
|
183
|
+
roleName: 'configured-service',
|
|
184
|
+
},
|
|
174
185
|
];
|
|
175
186
|
const existingClient = existing.find((c) => c.clientId === clientId);
|
|
176
187
|
if (existingClient) {
|