@copado/agentia-cli 1.0.0-beta.2 → 1.0.0-beta.4
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/CHANGELOG.md +36 -0
- package/README.md +384 -282
- package/dist/commands/cicd/data/template/save-detail.js +2 -2
- package/dist/commands/cicd/repository/auth/https/configure.js +21 -0
- package/dist/commands/cicd/repository/auth/oauth/login.js +56 -0
- package/dist/commands/cicd/repository/auth/setup.js +28 -0
- package/dist/commands/cicd/repository/auth/ssh/configure.js +22 -0
- package/dist/commands/cicd/repository/create.js +2 -2
- package/dist/commands/cicd/repository/reset.js +17 -5
- package/dist/commands/cicd/repository/update.js +6 -14
- package/dist/commands/cicd/work/environment-sync.js +66 -61
- package/dist/commands/cicd/work/get.js +5 -9
- package/dist/commands/cicd/work/submit.js +1 -1
- package/dist/commands/runtime.js +26 -0
- package/dist/hooks/finally/ide-command-event.js +1 -1
- package/dist/hooks/init/plugin-host.js +6 -0
- package/dist/lib/agentia-command.js +16 -0
- package/dist/lib/cursor-mcp-config.js +3 -1
- package/dist/lib/data-types.js +3 -1
- package/dist/lib/git-worktree.js +2 -1
- package/dist/lib/mcp/data-tools.js +2 -2
- package/dist/lib/mcp/server.js +33 -7
- package/dist/lib/mcp/tool-annotations.js +3 -0
- package/dist/lib/mcp/tools.js +55 -12
- package/dist/lib/mcp/work-tools.js +3 -6
- package/dist/lib/plugin-host/auth.js +4 -0
- package/dist/lib/plugin-host/format.js +3 -0
- package/dist/lib/plugin-host/index.js +7 -0
- package/dist/lib/plugin-host/organization.js +4 -0
- package/dist/lib/plugin-host/projection-utils.js +6 -0
- package/dist/lib/plugin-host/registry.js +6 -0
- package/dist/lib/plugin-host/request-scope.js +4 -0
- package/dist/lib/plugin-host/work.js +4 -0
- package/dist/lib/project-root.js +3 -1
- package/dist/lib/repository-auth.js +8 -0
- package/dist/lib/repository-flags.js +2 -2
- package/dist/lib/repository-types.js +6 -1
- package/dist/lib/repository-url-prefill.js +4 -0
- package/dist/lib/runtime-invoke-context.js +6 -0
- package/dist/lib/runtime-rpc.js +14 -0
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/work-environment-sync.js +1 -2
- package/dist/lib/work-get.js +3 -0
- package/oclif.manifest.json +244 -126
- package/package.json +4 -3
package/dist/lib/mcp/server.js
CHANGED
|
@@ -3,19 +3,19 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
3
3
|
import { createRequire } from 'node:module';
|
|
4
4
|
import process from 'node:process';
|
|
5
5
|
import { migrateUserSettingsFromProjectConfig } from '../defaults-store.js';
|
|
6
|
-
import { applyProjectRoot } from '../project-root.js';
|
|
6
|
+
import { applyProjectRoot, hasExplicitProjectRoot } from '../project-root.js';
|
|
7
7
|
import { runWithMcpRequestSignal } from './request-context.js';
|
|
8
8
|
import { runWithMcpToolContext } from './result.js';
|
|
9
9
|
import { withToolAnnotations } from './tool-annotations.js';
|
|
10
10
|
import { registerAgentiaMcpTools } from './tools.js';
|
|
11
11
|
const require = createRequire(import.meta.url);
|
|
12
12
|
const packageJson = require('../../../package.json');
|
|
13
|
-
export function createAgentiaMcpServer(lifecycleSignal) {
|
|
13
|
+
export function createAgentiaMcpServer(lifecycleSignal, projectContextReady = Promise.resolve()) {
|
|
14
14
|
const server = new McpServer({
|
|
15
15
|
name: packageJson.name ?? 'agentia-cli',
|
|
16
16
|
version: packageJson.version,
|
|
17
17
|
});
|
|
18
|
-
wrapMcpToolRegistration(server, lifecycleSignal);
|
|
18
|
+
wrapMcpToolRegistration(server, lifecycleSignal, projectContextReady);
|
|
19
19
|
registerAgentiaMcpTools(server);
|
|
20
20
|
return server;
|
|
21
21
|
}
|
|
@@ -42,13 +42,14 @@ function combineSignals(requestSignal, lifecycleSignal) {
|
|
|
42
42
|
signal: controller.signal,
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
-
function wrapMcpToolRegistration(server, lifecycleSignal) {
|
|
45
|
+
function wrapMcpToolRegistration(server, lifecycleSignal, projectContextReady = Promise.resolve()) {
|
|
46
46
|
const registerTool = server.registerTool.bind(server);
|
|
47
47
|
server.registerTool = ((name, config, handler) => registerTool(name, withToolAnnotations(name, config), (...args) => {
|
|
48
48
|
const extra = args.at(-1);
|
|
49
49
|
const { dispose, signal } = combineSignals(extra?.signal, lifecycleSignal);
|
|
50
50
|
return runWithMcpRequestSignal(signal, async () => {
|
|
51
51
|
try {
|
|
52
|
+
await projectContextReady;
|
|
52
53
|
return await runWithMcpToolContext(name, async () => handler(...args));
|
|
53
54
|
}
|
|
54
55
|
finally {
|
|
@@ -57,13 +58,38 @@ function wrapMcpToolRegistration(server, lifecycleSignal) {
|
|
|
57
58
|
});
|
|
58
59
|
}));
|
|
59
60
|
}
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
function clientSupportsRoots(server) {
|
|
62
|
+
return (server.server._clientCapabilities?.roots !== undefined);
|
|
63
|
+
}
|
|
64
|
+
async function applyMcpProjectRoot(server, includeMcpRoots) {
|
|
65
|
+
const rootUris = includeMcpRoots ? (await server.server.listRoots()).roots.map((root) => root.uri) : undefined;
|
|
66
|
+
applyProjectRoot(undefined, rootUris);
|
|
62
67
|
await migrateUserSettingsFromProjectConfig().catch(() => {
|
|
63
68
|
// Best-effort; MCP tools still fall back to reading legacy project keys.
|
|
64
69
|
});
|
|
70
|
+
}
|
|
71
|
+
export async function startAgentiaMcpServer(transport = new StdioServerTransport()) {
|
|
65
72
|
const lifecycle = new AbortController();
|
|
66
|
-
|
|
73
|
+
let resolveProjectContext;
|
|
74
|
+
let rejectProjectContext;
|
|
75
|
+
const projectContextReady = new Promise((resolve, reject) => {
|
|
76
|
+
resolveProjectContext = resolve;
|
|
77
|
+
rejectProjectContext = reject;
|
|
78
|
+
});
|
|
79
|
+
projectContextReady.catch((error) => {
|
|
80
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
81
|
+
process.stderr.write(`[agentia-mcp] project context error: ${message}\n`);
|
|
82
|
+
});
|
|
83
|
+
const server = createAgentiaMcpServer(lifecycle.signal, projectContextReady);
|
|
84
|
+
if (hasExplicitProjectRoot()) {
|
|
85
|
+
await applyMcpProjectRoot(server, false);
|
|
86
|
+
resolveProjectContext();
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
server.server.oninitialized = () => {
|
|
90
|
+
applyMcpProjectRoot(server, clientSupportsRoots(server)).then(resolveProjectContext, rejectProjectContext);
|
|
91
|
+
};
|
|
92
|
+
}
|
|
67
93
|
let closing = false;
|
|
68
94
|
const close = async () => {
|
|
69
95
|
if (closing)
|
|
@@ -128,6 +128,7 @@ const READ_TOOLS = [
|
|
|
128
128
|
'agentia_function_list',
|
|
129
129
|
'agentia_function_result_get',
|
|
130
130
|
'agentia_function_result_log_get',
|
|
131
|
+
'agentia_health_check',
|
|
131
132
|
'agentia_job_get',
|
|
132
133
|
'agentia_job_list',
|
|
133
134
|
'agentia_job_log_get',
|
|
@@ -212,6 +213,8 @@ const UPDATE_TOOLS = [
|
|
|
212
213
|
'agentia_promotion_conflict_unresolve',
|
|
213
214
|
'agentia_promotion_job_step_update',
|
|
214
215
|
'agentia_repository_update',
|
|
216
|
+
'agentia_repository_auth_https',
|
|
217
|
+
'agentia_repository_auth_ssh',
|
|
215
218
|
'agentia_stage_update',
|
|
216
219
|
'agentia_testing_data_table_update',
|
|
217
220
|
'agentia_testing_job_schedule_set',
|
package/dist/lib/mcp/tools.js
CHANGED
|
@@ -37,7 +37,7 @@ import { buildPromotionManualTaskUpdatePayload, PROMOTION_MANUAL_TASK_STATUSES,
|
|
|
37
37
|
import { performPromotionResume, performPromotionRun, PROMOTION_OPERATIONS, PROMOTION_RUN_DEFAULT_TIMEOUT_SECONDS, } from '../promotion-run.js';
|
|
38
38
|
import { normalizePromotionDetail, normalizePromotionsListPage, promotionEndpoint, promotionListEndpoint, } from '../promotion-types.js';
|
|
39
39
|
import { REPOSITORY_STRING_VALIDATION_KEYS, validateNonEmptyStringFields as validateRepositoryNonEmptyStringFields, } from '../repository-flags.js';
|
|
40
|
-
import { normalizeRepositoriesListPage, normalizeRepository, normalizeRepositoryValidateResult, repositoriesEndpoint,
|
|
40
|
+
import { normalizeRepositoriesListPage, normalizeRepository, normalizeRepositoryValidateResult, repositoriesEndpoint, REPOSITORY_PROVIDERS, REPOSITORY_SOURCE_FORMATS, repositoryEndpoint, repositoryHttpsAuthEndpoint, repositoryResetEndpoint, repositorySshAuthEndpoint, repositoryValidateEndpoint, } from '../repository-types.js';
|
|
41
41
|
import { buildStageMutationPayload, validateStagePayload } from '../stage-flags.js';
|
|
42
42
|
import { normalizePipelineStageConnection, normalizeStage, normalizeStagesListPage, pipelineStageConnectionEndpoint, pipelineStageConnectionsEndpoint, STAGE_META_STAGE_SUGGESTIONS, stageEndpoint, stagesEndpoint, } from '../stage-types.js';
|
|
43
43
|
import { getUserContext } from '../user-context.js';
|
|
@@ -561,17 +561,12 @@ async function repositoryUpdate(args) {
|
|
|
561
561
|
if (Object.keys(explicitPayload).length === 0) {
|
|
562
562
|
throw new Error('Must provide at least one field to update.');
|
|
563
563
|
}
|
|
564
|
-
const
|
|
565
|
-
endpoint: repositoryEndpoint(id),
|
|
566
|
-
method: 'GET',
|
|
567
|
-
});
|
|
568
|
-
const payload = withRequiredRepositoryFields(explicitPayload, normalizeRepository(currentResponse));
|
|
569
|
-
const validationError = validateRepositoryPayload(payload);
|
|
564
|
+
const validationError = validateRepositoryMutationPayload(explicitPayload);
|
|
570
565
|
if (validationError !== undefined) {
|
|
571
566
|
throw new Error(validationError);
|
|
572
567
|
}
|
|
573
568
|
const response = await CicdGateway.call({
|
|
574
|
-
body:
|
|
569
|
+
body: explicitPayload,
|
|
575
570
|
endpoint: repositoryEndpoint(id),
|
|
576
571
|
headers: {
|
|
577
572
|
'Content-Type': 'application/json',
|
|
@@ -580,6 +575,26 @@ async function repositoryUpdate(args) {
|
|
|
580
575
|
});
|
|
581
576
|
return { repository: normalizeRepository(response) };
|
|
582
577
|
}
|
|
578
|
+
async function repositoryAuthHttps(args) {
|
|
579
|
+
const { id, overwrite, ...payload } = args;
|
|
580
|
+
await CicdGateway.call({
|
|
581
|
+
body: payload,
|
|
582
|
+
endpoint: repositoryHttpsAuthEndpoint(assertRequired(id, 'id'), overwrite === true),
|
|
583
|
+
headers: { 'Content-Type': 'application/json' },
|
|
584
|
+
method: 'PUT',
|
|
585
|
+
});
|
|
586
|
+
return { id };
|
|
587
|
+
}
|
|
588
|
+
async function repositoryAuthSsh(args) {
|
|
589
|
+
const { id, overwrite, ...payload } = args;
|
|
590
|
+
const response = await CicdGateway.call({
|
|
591
|
+
body: payload,
|
|
592
|
+
endpoint: repositorySshAuthEndpoint(assertRequired(id, 'id'), overwrite === true),
|
|
593
|
+
headers: { 'Content-Type': 'application/json' },
|
|
594
|
+
method: 'POST',
|
|
595
|
+
});
|
|
596
|
+
return { id, publicKey: response.publicKey };
|
|
597
|
+
}
|
|
583
598
|
async function repositoryDelete(args) {
|
|
584
599
|
const id = assertRequired(args.id, 'id');
|
|
585
600
|
await CicdGateway.call({
|
|
@@ -765,6 +780,9 @@ function validateRepositoryPayload(payload) {
|
|
|
765
780
|
}
|
|
766
781
|
return undefined;
|
|
767
782
|
}
|
|
783
|
+
function validateRepositoryMutationPayload(payload) {
|
|
784
|
+
return validateRepositoryNonEmptyStringFields(payload, REPOSITORY_STRING_VALIDATION_KEYS);
|
|
785
|
+
}
|
|
768
786
|
async function userGet(args = {}) {
|
|
769
787
|
const user = await CicdGateway.call({
|
|
770
788
|
endpoint: userEndpoint(resolveUserId(args.id)),
|
|
@@ -1334,18 +1352,14 @@ const pipelineConnectionMutationSchema = {
|
|
|
1334
1352
|
};
|
|
1335
1353
|
const repositoryMutationSchema = {
|
|
1336
1354
|
allowFunctionsGitCache: z.boolean().optional().describe('Allow Functions Git cache for this repository.'),
|
|
1337
|
-
authType: z.enum(REPOSITORY_AUTH_TYPES).optional().describe('Repository authentication type.'),
|
|
1338
1355
|
branchBaseUrl: z.string().nullable().optional().describe('Base URL for repository branch links.'),
|
|
1339
1356
|
commitBaseUrl: z.string().nullable().optional().describe('Base URL for repository commit links.'),
|
|
1340
|
-
extraHeaders: z.string().nullable().optional().describe('Additional authentication headers.'),
|
|
1341
1357
|
isCopadoTunnelEnabled: z.boolean().optional().describe('Enable Copado tunnel for this repository.'),
|
|
1342
|
-
password: z.string().nullable().optional().describe('Repository password or token. Sensitive input.'),
|
|
1343
1358
|
provider: z.enum(REPOSITORY_PROVIDERS).optional().describe('Git repository provider.'),
|
|
1344
1359
|
pullRequestBaseUrl: z.string().nullable().optional().describe('Base URL for repository pull request links.'),
|
|
1345
1360
|
sourceFormat: z.enum(REPOSITORY_SOURCE_FORMATS).optional().describe('Git repository source format.'),
|
|
1346
1361
|
tagBaseUrl: z.string().nullable().optional().describe('Base URL for repository tag links.'),
|
|
1347
1362
|
uri: z.string().nullable().optional().describe('Repository clone URI.'),
|
|
1348
|
-
username: z.string().nullable().optional().describe('Repository username.'),
|
|
1349
1363
|
};
|
|
1350
1364
|
const promotionListSchema = {
|
|
1351
1365
|
createdById: z.string().optional().describe('Filter by creator ID.'),
|
|
@@ -1955,6 +1969,35 @@ export function registerAgentiaMcpTools(server) {
|
|
|
1955
1969
|
},
|
|
1956
1970
|
title: 'Agentia Repository Update',
|
|
1957
1971
|
}, (args) => safelyHandleTool(() => repositoryUpdate(args)));
|
|
1972
|
+
server.registerTool('agentia_repository_auth_https', {
|
|
1973
|
+
description: 'Configure HTTPS repository authentication. The password and optional headers are sensitive and are redacted from responses.',
|
|
1974
|
+
inputSchema: {
|
|
1975
|
+
branchBaseUrl: z.string(),
|
|
1976
|
+
commitBaseUrl: z.string(),
|
|
1977
|
+
extraHeaders: z.string().optional().describe('Sensitive optional authentication headers.'),
|
|
1978
|
+
id: z.string().describe('Copado Git repository ID.'),
|
|
1979
|
+
overwrite: z.boolean().optional().describe('Explicitly replace an existing validated credential.'),
|
|
1980
|
+
password: z.string().describe('Sensitive HTTPS password or personal access token.'),
|
|
1981
|
+
pullRequestBaseUrl: z.string(),
|
|
1982
|
+
tagBaseUrl: z.string(),
|
|
1983
|
+
uri: z.string(),
|
|
1984
|
+
username: z.string(),
|
|
1985
|
+
},
|
|
1986
|
+
title: 'Agentia Repository HTTPS Authentication',
|
|
1987
|
+
}, (args) => safelyHandleTool(() => repositoryAuthHttps(args)));
|
|
1988
|
+
server.registerTool('agentia_repository_auth_ssh', {
|
|
1989
|
+
description: 'Configure SSH repository authentication and return the generated public key.',
|
|
1990
|
+
inputSchema: {
|
|
1991
|
+
branchBaseUrl: z.string(),
|
|
1992
|
+
commitBaseUrl: z.string(),
|
|
1993
|
+
id: z.string().describe('Copado Git repository ID.'),
|
|
1994
|
+
overwrite: z.boolean().optional().describe('Explicitly replace an existing SSH key.'),
|
|
1995
|
+
pullRequestBaseUrl: z.string(),
|
|
1996
|
+
tagBaseUrl: z.string(),
|
|
1997
|
+
uri: z.string(),
|
|
1998
|
+
},
|
|
1999
|
+
title: 'Agentia Repository SSH Authentication',
|
|
2000
|
+
}, (args) => safelyHandleTool(() => repositoryAuthSsh(args)));
|
|
1958
2001
|
server.registerTool('agentia_repository_delete', {
|
|
1959
2002
|
description: 'Delete a Copado Git repository by ID via the CICD gateway.',
|
|
1960
2003
|
inputSchema: { id: z.string().describe('Copado Git repository ID.') },
|
|
@@ -14,6 +14,7 @@ import { runWorkTestLocalQualityGates } from '../stock-quality-gates.js';
|
|
|
14
14
|
import { getUserContext } from '../user-context.js';
|
|
15
15
|
import { resolveWorkItemId } from '../work-active.js';
|
|
16
16
|
import { DEFAULT_APEX_TEST_WAIT_MINUTES, parseApexTestClassNames, runWorkApexTests, validateApexTestWaitMinutes, } from '../work-apex-test.js';
|
|
17
|
+
import { fetchUserStory } from '../work-get.js';
|
|
17
18
|
import { buildWorkCommitRequest, normalizeWorkCommitInput, performWorkCommit, resolveWorkCommitPlatformExperience, WORK_COMMIT_ACTIONS, WORK_COMMIT_CHANGES_HELP, WORK_COMMIT_DEFAULT_TIMEOUT_SECONDS, WORK_COMMIT_METADATA_CATEGORY_HELP, } from '../work-commit.js';
|
|
18
19
|
import { buildWorkCreatePayload } from '../work-defaults.js';
|
|
19
20
|
import { validateWorkMutationPayload, WORK_LONG_TEXT_MAX_LENGTH, WORK_SHORT_TEXT_MAX_LENGTH, } from '../work-flags.js';
|
|
@@ -128,11 +129,7 @@ async function workList(args = {}) {
|
|
|
128
129
|
return mcpPaginatedListPayload('userStories', normalizeUserStoriesListPage(response));
|
|
129
130
|
}
|
|
130
131
|
async function workGet(args = {}) {
|
|
131
|
-
const
|
|
132
|
-
const userStory = await CicdGateway.call({
|
|
133
|
-
endpoint: workEndpoint(workItemId),
|
|
134
|
-
method: 'GET',
|
|
135
|
-
});
|
|
132
|
+
const userStory = await fetchUserStory(args.id);
|
|
136
133
|
return { userStory };
|
|
137
134
|
}
|
|
138
135
|
async function workCreate(args = {}) {
|
|
@@ -770,7 +767,7 @@ export function registerAgentiaMcpWorkTools(server) {
|
|
|
770
767
|
title: 'Agentia Cloud Promote',
|
|
771
768
|
}, (args) => safelyHandleTool(() => cloudPromote(args || {})));
|
|
772
769
|
server.registerTool('agentia_work_submit', {
|
|
773
|
-
description: 'Submit the current feature/US-XXXX work item for pipeline quality gates and validation. Runs project-root .agentia_quality_gates.sh (macOS/Linux) or .agentia_quality_gates.cmd (Windows) when present, then fetches origin/<lastBaseBranch> and counts origin/<lastBaseBranch>..HEAD before checking origin. Pushes and registers commits when that feature-only range is non-empty and the branch is ahead of origin. When the last pending related job template name contains Commit, waits up to 5 minutes for that job before calling headless work/submit. Before submit or promote, counts user stories ahead and behind between the source environment and the next pipeline environment, and warns when stories behind might cause promotion conflicts. With done=true or deploy=true, matches Copado UI Submit when promoting (headless work/done) and uses the same commit wait. Prefer this over agentia_work_done.',
|
|
770
|
+
description: 'Submit the current feature/US-XXXX work item for pipeline quality gates and validation. Runs project-root .agentia_quality_gates.sh (macOS/Linux) or .agentia_quality_gates.cmd (Windows) when present, then fetches origin/<lastBaseBranch> and counts origin/<lastBaseBranch>..HEAD before checking origin. Pushes and registers commits when that feature-only range is non-empty and the branch is ahead of origin. When the last pending related job template name contains Commit, waits up to 5 minutes for that job before calling headless work/submit. Before submit or promote, counts user stories ahead and behind between the source environment and the next pipeline environment, and warns when stories behind might cause promotion conflicts (advising agentia cicd work environment-sync). With done=true or deploy=true, matches Copado UI Submit when promoting (headless work/done) and uses the same commit wait. Prefer this over agentia_work_done.',
|
|
774
771
|
inputSchema: {
|
|
775
772
|
apexTestClasses: z
|
|
776
773
|
.string()
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import {modules} from '../runtime.js';
|
|
2
|
+
const AGENTIA_PLUGIN_HOST_API_VERSION = modules["plugin-host/index.js"]["AGENTIA_PLUGIN_HOST_API_VERSION"]
|
|
3
|
+
const AGENTIA_PLUGIN_HOST_KEY = modules["plugin-host/index.js"]["AGENTIA_PLUGIN_HOST_KEY"]
|
|
4
|
+
const createPluginHost = modules["plugin-host/index.js"]["createPluginHost"]
|
|
5
|
+
const getRegisteredPluginHost = modules["plugin-host/index.js"]["getRegisteredPluginHost"]
|
|
6
|
+
const registerPluginHost = modules["plugin-host/index.js"]["registerPluginHost"]
|
|
7
|
+
export {AGENTIA_PLUGIN_HOST_API_VERSION, AGENTIA_PLUGIN_HOST_KEY, createPluginHost, getRegisteredPluginHost, registerPluginHost};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import {modules} from '../runtime.js';
|
|
2
|
+
const createOrganizationApi = modules["plugin-host/organization.js"]["createOrganizationApi"]
|
|
3
|
+
const projectHealthReport = modules["plugin-host/organization.js"]["projectHealthReport"]
|
|
4
|
+
export {createOrganizationApi, projectHealthReport};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import {modules} from '../runtime.js';
|
|
2
|
+
const deepFreeze = modules["plugin-host/projection-utils.js"]["deepFreeze"]
|
|
3
|
+
const nonNegativeInt = modules["plugin-host/projection-utils.js"]["nonNegativeInt"]
|
|
4
|
+
const omitUndefined = modules["plugin-host/projection-utils.js"]["omitUndefined"]
|
|
5
|
+
const optionalText = modules["plugin-host/projection-utils.js"]["optionalText"]
|
|
6
|
+
export {deepFreeze, nonNegativeInt, omitUndefined, optionalText};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import {modules} from '../runtime.js';
|
|
2
|
+
const AGENTIA_PLUGIN_HOST_API_VERSION = modules["plugin-host/registry.js"]["AGENTIA_PLUGIN_HOST_API_VERSION"]
|
|
3
|
+
const AGENTIA_PLUGIN_HOST_KEY = modules["plugin-host/registry.js"]["AGENTIA_PLUGIN_HOST_KEY"]
|
|
4
|
+
const getRegisteredPluginHost = modules["plugin-host/registry.js"]["getRegisteredPluginHost"]
|
|
5
|
+
const registerPluginHost = modules["plugin-host/registry.js"]["registerPluginHost"]
|
|
6
|
+
export {AGENTIA_PLUGIN_HOST_API_VERSION, AGENTIA_PLUGIN_HOST_KEY, getRegisteredPluginHost, registerPluginHost};
|
package/dist/lib/project-root.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {modules} from './runtime.js';
|
|
2
2
|
const AGENTIA_PROJECT_ROOT_ENV = modules["project-root.js"]["AGENTIA_PROJECT_ROOT_ENV"]
|
|
3
|
+
const CLAUDE_PROJECT_DIR_ENV = modules["project-root.js"]["CLAUDE_PROJECT_DIR_ENV"]
|
|
3
4
|
const applyProjectRoot = modules["project-root.js"]["applyProjectRoot"]
|
|
5
|
+
const hasExplicitProjectRoot = modules["project-root.js"]["hasExplicitProjectRoot"]
|
|
4
6
|
const resetProjectRootDepsForTests = modules["project-root.js"]["resetProjectRootDepsForTests"]
|
|
5
7
|
const resolveProjectRoot = modules["project-root.js"]["resolveProjectRoot"]
|
|
6
8
|
const setProjectRootDepsForTests = modules["project-root.js"]["setProjectRootDepsForTests"]
|
|
7
|
-
export {AGENTIA_PROJECT_ROOT_ENV, applyProjectRoot, resetProjectRootDepsForTests, resolveProjectRoot, setProjectRootDepsForTests};
|
|
9
|
+
export {AGENTIA_PROJECT_ROOT_ENV, CLAUDE_PROJECT_DIR_ENV, applyProjectRoot, hasExplicitProjectRoot, resetProjectRootDepsForTests, resolveProjectRoot, setProjectRootDepsForTests};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import {modules} from './runtime.js';
|
|
2
|
+
const configureHttps = modules["repository-auth.js"]["configureHttps"]
|
|
3
|
+
const configureSsh = modules["repository-auth.js"]["configureSsh"]
|
|
4
|
+
const getRepository = modules["repository-auth.js"]["getRepository"]
|
|
5
|
+
const promptConnection = modules["repository-auth.js"]["promptConnection"]
|
|
6
|
+
const promptHttpsPayload = modules["repository-auth.js"]["promptHttpsPayload"]
|
|
7
|
+
const readHttpsAuthPayloadFromStdin = modules["repository-auth.js"]["readHttpsAuthPayloadFromStdin"]
|
|
8
|
+
export {configureHttps, configureSsh, getRepository, promptConnection, promptHttpsPayload, readHttpsAuthPayloadFromStdin};
|
|
@@ -6,11 +6,11 @@ const buildRepositoryMutationPayload = modules["repository-flags.js"]["buildRepo
|
|
|
6
6
|
const collectRepositoryMutationFlagKeys = modules["repository-flags.js"]["collectRepositoryMutationFlagKeys"]
|
|
7
7
|
const repositoryBooleanFlags = modules["repository-flags.js"]["repositoryBooleanFlags"]
|
|
8
8
|
const repositoryClearFlags = modules["repository-flags.js"]["repositoryClearFlags"]
|
|
9
|
+
const repositoryConnectionStringFlags = modules["repository-flags.js"]["repositoryConnectionStringFlags"]
|
|
9
10
|
const repositoryCreateFlags = modules["repository-flags.js"]["repositoryCreateFlags"]
|
|
10
11
|
const repositoryListFlags = modules["repository-flags.js"]["repositoryListFlags"]
|
|
11
|
-
const repositoryOptionalStringFlags = modules["repository-flags.js"]["repositoryOptionalStringFlags"]
|
|
12
12
|
const repositoryRequiredMutationFlags = modules["repository-flags.js"]["repositoryRequiredMutationFlags"]
|
|
13
13
|
const repositoryUpdateFlags = modules["repository-flags.js"]["repositoryUpdateFlags"]
|
|
14
14
|
const validateNonEmptyStringFields = modules["repository-flags.js"]["validateNonEmptyStringFields"]
|
|
15
15
|
const validateRepositoryMutationFlags = modules["repository-flags.js"]["validateRepositoryMutationFlags"]
|
|
16
|
-
export {REPOSITORY_STRING_VALIDATION_KEYS, buildRepositoryCreatePayload, buildRepositoryListFilters, buildRepositoryMutationPayload, collectRepositoryMutationFlagKeys, repositoryBooleanFlags, repositoryClearFlags, repositoryCreateFlags, repositoryListFlags,
|
|
16
|
+
export {REPOSITORY_STRING_VALIDATION_KEYS, buildRepositoryCreatePayload, buildRepositoryListFilters, buildRepositoryMutationPayload, collectRepositoryMutationFlagKeys, repositoryBooleanFlags, repositoryClearFlags, repositoryConnectionStringFlags, repositoryCreateFlags, repositoryListFlags, repositoryRequiredMutationFlags, repositoryUpdateFlags, validateNonEmptyStringFields, validateRepositoryMutationFlags};
|
|
@@ -9,8 +9,13 @@ const normalizeRepository = modules["repository-types.js"]["normalizeRepository"
|
|
|
9
9
|
const normalizeRepositoryValidateResult = modules["repository-types.js"]["normalizeRepositoryValidateResult"]
|
|
10
10
|
const repositoriesEndpoint = modules["repository-types.js"]["repositoriesEndpoint"]
|
|
11
11
|
const repositoryEndpoint = modules["repository-types.js"]["repositoryEndpoint"]
|
|
12
|
+
const repositoryHttpsAuthEndpoint = modules["repository-types.js"]["repositoryHttpsAuthEndpoint"]
|
|
13
|
+
const repositoryOAuthEndpoint = modules["repository-types.js"]["repositoryOAuthEndpoint"]
|
|
14
|
+
const repositoryOAuthInitEndpoint = modules["repository-types.js"]["repositoryOAuthInitEndpoint"]
|
|
15
|
+
const repositoryOAuthRepositoriesEndpoint = modules["repository-types.js"]["repositoryOAuthRepositoriesEndpoint"]
|
|
12
16
|
const repositoryResetEndpoint = modules["repository-types.js"]["repositoryResetEndpoint"]
|
|
17
|
+
const repositorySshAuthEndpoint = modules["repository-types.js"]["repositorySshAuthEndpoint"]
|
|
13
18
|
const repositoryValidateEndpoint = modules["repository-types.js"]["repositoryValidateEndpoint"]
|
|
14
19
|
const sanitizeRepository = modules["repository-types.js"]["sanitizeRepository"]
|
|
15
20
|
const withRequiredRepositoryFields = modules["repository-types.js"]["withRequiredRepositoryFields"]
|
|
16
|
-
export {REPOSITORY_AUTH_TYPES, REPOSITORY_PROVIDERS, REPOSITORY_SOURCE_FORMATS, formatRepositoryDetail, formatRepositoryTable, normalizeRepositoriesListPage, normalizeRepository, normalizeRepositoryValidateResult, repositoriesEndpoint, repositoryEndpoint, repositoryResetEndpoint, repositoryValidateEndpoint, sanitizeRepository, withRequiredRepositoryFields};
|
|
21
|
+
export {REPOSITORY_AUTH_TYPES, REPOSITORY_PROVIDERS, REPOSITORY_SOURCE_FORMATS, formatRepositoryDetail, formatRepositoryTable, normalizeRepositoriesListPage, normalizeRepository, normalizeRepositoryValidateResult, repositoriesEndpoint, repositoryEndpoint, repositoryHttpsAuthEndpoint, repositoryOAuthEndpoint, repositoryOAuthInitEndpoint, repositoryOAuthRepositoriesEndpoint, repositoryResetEndpoint, repositorySshAuthEndpoint, repositoryValidateEndpoint, sanitizeRepository, withRequiredRepositoryFields};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import {modules} from './runtime.js';
|
|
2
|
+
const RuntimeProcessExitError = modules["runtime-invoke-context.js"]["RuntimeProcessExitError"]
|
|
3
|
+
const isRuntimeNestedInvoke = modules["runtime-invoke-context.js"]["isRuntimeNestedInvoke"]
|
|
4
|
+
const runRuntimeNestedInvoke = modules["runtime-invoke-context.js"]["runRuntimeNestedInvoke"]
|
|
5
|
+
const runWithoutProcessExit = modules["runtime-invoke-context.js"]["runWithoutProcessExit"]
|
|
6
|
+
export {RuntimeProcessExitError, isRuntimeNestedInvoke, runRuntimeNestedInvoke, runWithoutProcessExit};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {modules} from './runtime.js';
|
|
2
|
+
const AGENTIA_RUNTIME_DEFAULT_IDLE_MS = modules["runtime-rpc.js"]["AGENTIA_RUNTIME_DEFAULT_IDLE_MS"]
|
|
3
|
+
const AGENTIA_RUNTIME_MAX_ARGV = modules["runtime-rpc.js"]["AGENTIA_RUNTIME_MAX_ARGV"]
|
|
4
|
+
const AGENTIA_RUNTIME_MAX_ARG_BYTES = modules["runtime-rpc.js"]["AGENTIA_RUNTIME_MAX_ARG_BYTES"]
|
|
5
|
+
const AGENTIA_RUNTIME_MAX_ID_BYTES = modules["runtime-rpc.js"]["AGENTIA_RUNTIME_MAX_ID_BYTES"]
|
|
6
|
+
const AGENTIA_RUNTIME_MAX_IN_FLIGHT = modules["runtime-rpc.js"]["AGENTIA_RUNTIME_MAX_IN_FLIGHT"]
|
|
7
|
+
const AGENTIA_RUNTIME_MAX_LINE_BYTES = modules["runtime-rpc.js"]["AGENTIA_RUNTIME_MAX_LINE_BYTES"]
|
|
8
|
+
const AGENTIA_RUNTIME_MAX_OUTPUT_BYTES = modules["runtime-rpc.js"]["AGENTIA_RUNTIME_MAX_OUTPUT_BYTES"]
|
|
9
|
+
const AGENTIA_RUNTIME_PROTOCOL_VERSION = modules["runtime-rpc.js"]["AGENTIA_RUNTIME_PROTOCOL_VERSION"]
|
|
10
|
+
const invokeRuntimeCommand = modules["runtime-rpc.js"]["invokeRuntimeCommand"]
|
|
11
|
+
const parseRuntimeRequestLine = modules["runtime-rpc.js"]["parseRuntimeRequestLine"]
|
|
12
|
+
const serveRuntimeRpc = modules["runtime-rpc.js"]["serveRuntimeRpc"]
|
|
13
|
+
const splitArgvToCommand = modules["runtime-rpc.js"]["splitArgvToCommand"]
|
|
14
|
+
export {AGENTIA_RUNTIME_DEFAULT_IDLE_MS, AGENTIA_RUNTIME_MAX_ARGV, AGENTIA_RUNTIME_MAX_ARG_BYTES, AGENTIA_RUNTIME_MAX_ID_BYTES, AGENTIA_RUNTIME_MAX_IN_FLIGHT, AGENTIA_RUNTIME_MAX_LINE_BYTES, AGENTIA_RUNTIME_MAX_OUTPUT_BYTES, AGENTIA_RUNTIME_PROTOCOL_VERSION, invokeRuntimeCommand, parseRuntimeRequestLine, serveRuntimeRpc, splitArgvToCommand};
|