@copado/agentia-cli 0.28.0-alpha.0 → 0.29.0-alpha.0
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 +134 -85
- package/dist/commands/environment/list.d.ts +5 -1
- package/dist/commands/environment/list.js +10 -8
- package/dist/commands/environment/list.js.map +1 -1
- package/dist/commands/job/list.d.ts +4 -2
- package/dist/commands/job/list.js +10 -12
- package/dist/commands/job/list.js.map +1 -1
- package/dist/commands/pipeline/list.d.ts +6 -1
- package/dist/commands/pipeline/list.js +10 -7
- package/dist/commands/pipeline/list.js.map +1 -1
- package/dist/commands/project/list.d.ts +4 -1
- package/dist/commands/project/list.js +7 -5
- package/dist/commands/project/list.js.map +1 -1
- package/dist/commands/promotion/list.d.ts +4 -2
- package/dist/commands/promotion/list.js +8 -6
- package/dist/commands/promotion/list.js.map +1 -1
- package/dist/commands/setup.d.ts +12 -0
- package/dist/commands/setup.js +52 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/work/list.d.ts +4 -1
- package/dist/commands/work/list.js +7 -5
- package/dist/commands/work/list.js.map +1 -1
- package/dist/commands/work/set.js +8 -1
- package/dist/commands/work/set.js.map +1 -1
- package/dist/commands/work/submit.d.ts +2 -0
- package/dist/commands/work/submit.js +40 -2
- package/dist/commands/work/submit.js.map +1 -1
- package/dist/lib/defaults-store.d.ts +3 -0
- package/dist/lib/defaults-store.js +24 -0
- package/dist/lib/defaults-store.js.map +1 -1
- package/dist/lib/environment-flags.d.ts +3 -1
- package/dist/lib/environment-flags.js +3 -1
- package/dist/lib/environment-flags.js.map +1 -1
- package/dist/lib/environment-types.d.ts +4 -1
- package/dist/lib/environment-types.js +2 -0
- package/dist/lib/environment-types.js.map +1 -1
- package/dist/lib/git-worktree.d.ts +4 -0
- package/dist/lib/git-worktree.js +46 -2
- package/dist/lib/git-worktree.js.map +1 -1
- package/dist/lib/job-types.d.ts +7 -4
- package/dist/lib/job-types.js +8 -15
- package/dist/lib/job-types.js.map +1 -1
- package/dist/lib/list-pagination.d.ts +46 -0
- package/dist/lib/list-pagination.js +106 -0
- package/dist/lib/list-pagination.js.map +1 -0
- package/dist/lib/mcp/tools.d.ts +20 -31
- package/dist/lib/mcp/tools.js +23 -54
- package/dist/lib/mcp/tools.js.map +1 -1
- package/dist/lib/mcp/work-tools.d.ts +1 -3
- package/dist/lib/mcp/work-tools.js +13 -2
- package/dist/lib/mcp/work-tools.js.map +1 -1
- package/dist/lib/open-browser.d.ts +3 -0
- package/dist/lib/open-browser.js +13 -1
- package/dist/lib/open-browser.js.map +1 -1
- package/dist/lib/pipeline-types.d.ts +6 -1
- package/dist/lib/pipeline-types.js +10 -6
- package/dist/lib/pipeline-types.js.map +1 -1
- package/dist/lib/project-flags.d.ts +3 -2
- package/dist/lib/project-flags.js +3 -1
- package/dist/lib/project-flags.js.map +1 -1
- package/dist/lib/project-setup.d.ts +80 -0
- package/dist/lib/project-setup.js +383 -0
- package/dist/lib/project-setup.js.map +1 -0
- package/dist/lib/project-types.d.ts +5 -1
- package/dist/lib/project-types.js +6 -10
- package/dist/lib/project-types.js.map +1 -1
- package/dist/lib/promotion-flags.d.ts +4 -3
- package/dist/lib/promotion-flags.js +3 -8
- package/dist/lib/promotion-flags.js.map +1 -1
- package/dist/lib/promotion-types.d.ts +8 -5
- package/dist/lib/promotion-types.js +10 -14
- package/dist/lib/promotion-types.js.map +1 -1
- package/dist/lib/setup-templates.d.ts +11 -0
- package/dist/lib/setup-templates.js +181 -0
- package/dist/lib/setup-templates.js.map +1 -0
- package/dist/lib/work-flags.d.ts +3 -1
- package/dist/lib/work-flags.js +3 -1
- package/dist/lib/work-flags.js.map +1 -1
- package/dist/lib/work-types.d.ts +8 -1
- package/dist/lib/work-types.js +16 -3
- package/dist/lib/work-types.js.map +1 -1
- package/oclif.manifest.json +147 -17
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cellValue, table } from './format.js';
|
|
2
|
+
import { appendListPaginationQueryParams, buildPaginatedListResult, paginatedResultFromPage, } from './list-pagination.js';
|
|
2
3
|
import { normalizeSalesforceId } from './salesforce-id.js';
|
|
3
4
|
export const PROMOTION_LIST_FILTER_KEYS = [
|
|
4
5
|
'name',
|
|
@@ -14,7 +15,6 @@ export const PROMOTION_LIST_FILTER_KEYS = [
|
|
|
14
15
|
'isBackPromotion',
|
|
15
16
|
'createdById',
|
|
16
17
|
'createdByName',
|
|
17
|
-
'limit',
|
|
18
18
|
'userStoryId',
|
|
19
19
|
];
|
|
20
20
|
const PROMOTION_LIST_FILTER_QUERY_PARAM = {
|
|
@@ -23,7 +23,6 @@ const PROMOTION_LIST_FILTER_QUERY_PARAM = {
|
|
|
23
23
|
destinationEnvironmentId: 'destinationEnvironmentId',
|
|
24
24
|
destinationEnvironmentName: 'destinationEnvironmentName',
|
|
25
25
|
isBackPromotion: 'isBackPromotion',
|
|
26
|
-
limit: 'limit',
|
|
27
26
|
name: 'name',
|
|
28
27
|
pipelineId: 'pipelineId',
|
|
29
28
|
pipelineName: 'pipelineName',
|
|
@@ -34,8 +33,8 @@ const PROMOTION_LIST_FILTER_QUERY_PARAM = {
|
|
|
34
33
|
status: 'status',
|
|
35
34
|
userStoryId: 'userStoryId',
|
|
36
35
|
};
|
|
37
|
-
export const
|
|
38
|
-
export const
|
|
36
|
+
export const PROMOTION_LIST_PAGE_SIZE_MAX = 200;
|
|
37
|
+
export const PROMOTION_LIST_PAGE_SIZE_MIN = 1;
|
|
39
38
|
export function promotionListEndpoint(filters = {}) {
|
|
40
39
|
const params = new URLSearchParams();
|
|
41
40
|
for (const key of PROMOTION_LIST_FILTER_KEYS) {
|
|
@@ -47,10 +46,6 @@ export function promotionListEndpoint(filters = {}) {
|
|
|
47
46
|
params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], String(value));
|
|
48
47
|
continue;
|
|
49
48
|
}
|
|
50
|
-
if (key === 'limit') {
|
|
51
|
-
params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], String(value));
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
49
|
if (key === 'sourceEnvironmentId' ||
|
|
55
50
|
key === 'destinationEnvironmentId' ||
|
|
56
51
|
key === 'pipelineId' ||
|
|
@@ -62,20 +57,21 @@ export function promotionListEndpoint(filters = {}) {
|
|
|
62
57
|
}
|
|
63
58
|
params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], value);
|
|
64
59
|
}
|
|
60
|
+
appendListPaginationQueryParams(params, filters);
|
|
65
61
|
const query = params.toString();
|
|
66
62
|
return query.length > 0 ? `/release/promotion?${query}` : '/release/promotion';
|
|
67
63
|
}
|
|
68
64
|
export function promotionEndpoint(id) {
|
|
69
65
|
return `/release/promotion/${normalizeSalesforceId(id)}`;
|
|
70
66
|
}
|
|
71
|
-
export function
|
|
67
|
+
export function normalizePromotionsListPage(response) {
|
|
72
68
|
if (Array.isArray(response)) {
|
|
73
|
-
return response;
|
|
69
|
+
return buildPaginatedListResult(response);
|
|
74
70
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return
|
|
71
|
+
return paginatedResultFromPage(response);
|
|
72
|
+
}
|
|
73
|
+
export function normalizePromotions(response) {
|
|
74
|
+
return normalizePromotionsListPage(response).data;
|
|
79
75
|
}
|
|
80
76
|
export function normalizePromotionDetail(response) {
|
|
81
77
|
if ('data' in response && response.data !== undefined && typeof response.data === 'object') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promotion-types.js","sourceRoot":"","sources":["../../src/lib/promotion-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"promotion-types.js","sourceRoot":"","sources":["../../src/lib/promotion-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Published location for AGENTS.md. Empty until the download URL is finalized;
|
|
3
|
+
* setup falls back to the bundled template below.
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_AGENTS_MD_URL = "";
|
|
6
|
+
export declare const AGENTIA_GITIGNORE_ENTRY = ".agentia/";
|
|
7
|
+
export declare const SAMPLE_QUALITY_GATES_UNIX = "#!/usr/bin/env bash\nset -euo pipefail\n\n# Local Agentia quality gates (macOS / Linux).\n# Edit this script to match your project. Agentia runs it from the repo root during\n# `agentia work test --local` and `agentia work submit` (unless --skip-local-tests).\n# The script must exit non-zero if any check fails.\n\nsf code-analyzer run\nsf force lightning lwc test run\n";
|
|
8
|
+
export declare const SAMPLE_QUALITY_GATES_WINDOWS = "@echo off\nsetlocal EnableExtensions\nREM Local Agentia quality gates (Windows).\nREM Edit this script to match your project. Agentia runs it from the repo root during\nREM `agentia work test --local` and `agentia work submit` (unless --skip-local-tests).\nREM The script must exit non-zero if any check fails.\n\nsf code-analyzer run\nif errorlevel 1 exit /b %errorlevel%\nsf force lightning lwc test run\nif errorlevel 1 exit /b %errorlevel%\n";
|
|
9
|
+
/** Bundled AGENTS.md template (mirrors docs/AGENTS.sample.md). Used when DEFAULT_AGENTS_MD_URL is unset or download fails. */
|
|
10
|
+
export declare const BUNDLED_AGENTS_MD = "# Agentia CLI for AI Agents\n\nUse Agentia to manage Copado user stories end-to-end: pick work, prepare a git branch, push changes, submit for review, and promote.\n\n**Prefer the Agentia MCP server when it is available.** If tools such as `agentia_work_list`, `agentia_work_set`, `agentia_work_push`, `agentia_work_submit`, and `agentia_work_done` are registered, call those instead of shelling out to the `agentia` CLI. Fall back to CLI commands only when MCP is not configured.\n\nWhen using the CLI, prefer `--json` on every command so you can parse structured output instead of terminal tables.\n\nAuthentication must already be configured (`agentia auth set` / keychain, or local gateway mode). Run from a git repository that is a Copado-managed project.\n\n## Typical workflow\n\n```text\nlist \u2192 get \u2192 set \u2192 (implement & commit) \u2192 push \u2192 submit \u2192 done\n```\n\n| Step | MCP tool (preferred) | CLI fallback | Purpose |\n| --- | --- | --- | --- |\n| 1 | `agentia_work_list` (`assignedToMe: true`) | `agentia work list --assigned-to-me --json` | Show user stories assigned to you |\n| 2 | `agentia_work_get` | `agentia work get [id] --json` | Read user story details (omit id after `work set`) |\n| 3 | `agentia_work_set` | `agentia work set <id> --json` | Mark in progress and prepare the feature branch |\n| 4 | *(your edits + `git commit`)* | *(your edits + `git commit`)* | Implement the story |\n| 5 | `agentia_work_push` | `agentia work push --json` | Push commits to git and register them with Copado |\n| 6 | `agentia_work_submit` | `agentia work submit --json` | Flag ready for review (pipeline quality gates / validation) |\n| 7 | `agentia_work_done` | `agentia work done --json` | Promote and deploy to the next stage |\n\nDo not skip `work set` before coding. Later steps expect a `feature/<user-story-name>` branch and a recorded base branch from `work set`.\n\n---\n\n## Commands\n\nCLI examples below are the fallback when MCP is unavailable. MCP tool names and arguments mirror these commands (camelCase args instead of flags).\n\n### `agentia work list`\n\nShow user stories. For \u201Cassigned to me\u201D, always use:\n\n```sh\nagentia work list --assigned-to-me --json\n```\n\nUseful filters: `--status`, `--project-name`, `--name`, `--owned-by-me`. Do not combine `--assigned-to-me` with `--owned-by-me` or `--assignee-id`.\n\n### `agentia work get [id]`\n\nRead full details for one user story. After `work set`, omit the ID to use the active work item:\n\n```sh\nagentia work get --json\nagentia work get a0SKC000000CmZ2AU --json\n```\n\nUse this before starting work to understand title, status, acceptance criteria, and related fields.\n\n### `agentia work set <id>`\n\nFlag the user story as the active work item (in progress) and prepare the correct git branch:\n\n```sh\nagentia work set a0SKC000000CmZ2AU --json\n# or by name:\nagentia work set US-0001 --json\n```\n\nWhat it does:\n\n1. Calls Copado to set the work item and resolve the base branch\n2. Requires a **clean tracked working tree** (stash or commit first if dirty)\n3. Fetches `origin/<base-branch>`\n4. Creates or checks out `feature/<user-story-name>`\n5. Records the last work item ID, name, and base branch for later commands\n\nOptional: `--base-branch <name>` overrides the base branch from the API.\n\nAfter success, stay on that feature branch for all implementation commits.\n\n### `agentia work push`\n\nPush committed changes to git and register them with Copado:\n\n```sh\nagentia work push --json\n```\n\nPrerequisites:\n\n- Current branch is `feature/US-XXXX` (from `work set`)\n- No uncommitted tracked changes (commit first)\n- `work set` was run so a base branch is recorded\n\nLocks the tip commit, runs `git push origin <branch>`, then registers the commits with Copado.\n\n### `agentia work test --local`\n\nRun local project quality gates without submitting:\n\n```sh\nagentia work test --local --json\n```\n\nIf the project root contains `.agentia_quality_gates.sh` (macOS/Linux) or `.agentia_quality_gates.cmd` (Windows), that script runs and the command stops on failure. Only `--local` is supported for now.\n\n### `agentia work submit`\n\nFlag the user story as ready for review. Runs local project quality gates (when present), then pipeline quality gates and validation:\n\n```sh\nagentia work submit --json\nagentia work submit --skip-local-tests --json\n```\n\nSame branch/clean-tree rules as `work push`. If the project root contains `.agentia_quality_gates.sh` (macOS/Linux) or `.agentia_quality_gates.cmd` (Windows), that script runs first and submit stops on failure (same local gates as `work test --local`). Use `--skip-local-tests` to skip it. If the branch has unpushed commits, it pushes and registers them next, then submits.\n\n### `agentia work done`\n\nPromote and deploy the user story to the next pipeline stage:\n\n```sh\nagentia work done --json\n```\n\nSame branch/clean-tree rules as `work submit`. Pushes unpushed commits if needed, then promotes (without the validate-only path used by submit).\n\nOnly run this when the story is approved and ready to move to the next environment.\n\n---\n\n## Agent rules\n\n1. **Prefer MCP over CLI.** When Agentia MCP tools are available, use them instead of running `agentia` in the shell.\n2. **Discover before acting.** List assigned stories, then `get` the chosen ID, then `set` before editing files.\n3. **One story, one feature branch.** Do not mix unrelated commits on the same `feature/US-XXXX` branch.\n4. **Commit yourself; push with Agentia.** Use normal `git add` / `git commit` for local commits. Use `agentia_work_push` / `agentia work push` (not bare `git push`) so Copado receives the commit registration.\n5. **Keep the tree clean** before `set`, `push`, `submit`, and `done`. Those steps fail if tracked changes are pending.\n6. **Prefer structured results.** MCP returns JSON; for CLI, use `--json` and do not scrape human table output.\n7. **Order matters.** `set` \u2192 commit \u2192 `push` \u2192 `submit` \u2192 `done`. `submit` and `done` will auto-push if the branch is ahead of origin, but `set` is still required first.\n8. **Confirm intent for `done`.** Promotion deploys to the next stage; do not run it unless the user asked to promote/deploy.\n";
|
|
11
|
+
export declare function qualityGatesExplanation(bin?: string): string;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { QUALITY_GATES_SCRIPT_UNIX, QUALITY_GATES_SCRIPT_WINDOWS, } from './local-quality-gates.js';
|
|
2
|
+
/**
|
|
3
|
+
* Published location for AGENTS.md. Empty until the download URL is finalized;
|
|
4
|
+
* setup falls back to the bundled template below.
|
|
5
|
+
*/
|
|
6
|
+
export const DEFAULT_AGENTS_MD_URL = '';
|
|
7
|
+
export const AGENTIA_GITIGNORE_ENTRY = '.agentia/';
|
|
8
|
+
export const SAMPLE_QUALITY_GATES_UNIX = `#!/usr/bin/env bash
|
|
9
|
+
set -euo pipefail
|
|
10
|
+
|
|
11
|
+
# Local Agentia quality gates (macOS / Linux).
|
|
12
|
+
# Edit this script to match your project. Agentia runs it from the repo root during
|
|
13
|
+
# \`agentia work test --local\` and \`agentia work submit\` (unless --skip-local-tests).
|
|
14
|
+
# The script must exit non-zero if any check fails.
|
|
15
|
+
|
|
16
|
+
sf code-analyzer run
|
|
17
|
+
sf force lightning lwc test run
|
|
18
|
+
`;
|
|
19
|
+
export const SAMPLE_QUALITY_GATES_WINDOWS = `@echo off
|
|
20
|
+
setlocal EnableExtensions
|
|
21
|
+
REM Local Agentia quality gates (Windows).
|
|
22
|
+
REM Edit this script to match your project. Agentia runs it from the repo root during
|
|
23
|
+
REM \`agentia work test --local\` and \`agentia work submit\` (unless --skip-local-tests).
|
|
24
|
+
REM The script must exit non-zero if any check fails.
|
|
25
|
+
|
|
26
|
+
sf code-analyzer run
|
|
27
|
+
if errorlevel 1 exit /b %errorlevel%
|
|
28
|
+
sf force lightning lwc test run
|
|
29
|
+
if errorlevel 1 exit /b %errorlevel%
|
|
30
|
+
`;
|
|
31
|
+
/** Bundled AGENTS.md template (mirrors docs/AGENTS.sample.md). Used when DEFAULT_AGENTS_MD_URL is unset or download fails. */
|
|
32
|
+
export const BUNDLED_AGENTS_MD = `# Agentia CLI for AI Agents
|
|
33
|
+
|
|
34
|
+
Use Agentia to manage Copado user stories end-to-end: pick work, prepare a git branch, push changes, submit for review, and promote.
|
|
35
|
+
|
|
36
|
+
**Prefer the Agentia MCP server when it is available.** If tools such as \`agentia_work_list\`, \`agentia_work_set\`, \`agentia_work_push\`, \`agentia_work_submit\`, and \`agentia_work_done\` are registered, call those instead of shelling out to the \`agentia\` CLI. Fall back to CLI commands only when MCP is not configured.
|
|
37
|
+
|
|
38
|
+
When using the CLI, prefer \`--json\` on every command so you can parse structured output instead of terminal tables.
|
|
39
|
+
|
|
40
|
+
Authentication must already be configured (\`agentia auth set\` / keychain, or local gateway mode). Run from a git repository that is a Copado-managed project.
|
|
41
|
+
|
|
42
|
+
## Typical workflow
|
|
43
|
+
|
|
44
|
+
\`\`\`text
|
|
45
|
+
list → get → set → (implement & commit) → push → submit → done
|
|
46
|
+
\`\`\`
|
|
47
|
+
|
|
48
|
+
| Step | MCP tool (preferred) | CLI fallback | Purpose |
|
|
49
|
+
| --- | --- | --- | --- |
|
|
50
|
+
| 1 | \`agentia_work_list\` (\`assignedToMe: true\`) | \`agentia work list --assigned-to-me --json\` | Show user stories assigned to you |
|
|
51
|
+
| 2 | \`agentia_work_get\` | \`agentia work get [id] --json\` | Read user story details (omit id after \`work set\`) |
|
|
52
|
+
| 3 | \`agentia_work_set\` | \`agentia work set <id> --json\` | Mark in progress and prepare the feature branch |
|
|
53
|
+
| 4 | *(your edits + \`git commit\`)* | *(your edits + \`git commit\`)* | Implement the story |
|
|
54
|
+
| 5 | \`agentia_work_push\` | \`agentia work push --json\` | Push commits to git and register them with Copado |
|
|
55
|
+
| 6 | \`agentia_work_submit\` | \`agentia work submit --json\` | Flag ready for review (pipeline quality gates / validation) |
|
|
56
|
+
| 7 | \`agentia_work_done\` | \`agentia work done --json\` | Promote and deploy to the next stage |
|
|
57
|
+
|
|
58
|
+
Do not skip \`work set\` before coding. Later steps expect a \`feature/<user-story-name>\` branch and a recorded base branch from \`work set\`.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Commands
|
|
63
|
+
|
|
64
|
+
CLI examples below are the fallback when MCP is unavailable. MCP tool names and arguments mirror these commands (camelCase args instead of flags).
|
|
65
|
+
|
|
66
|
+
### \`agentia work list\`
|
|
67
|
+
|
|
68
|
+
Show user stories. For “assigned to me”, always use:
|
|
69
|
+
|
|
70
|
+
\`\`\`sh
|
|
71
|
+
agentia work list --assigned-to-me --json
|
|
72
|
+
\`\`\`
|
|
73
|
+
|
|
74
|
+
Useful filters: \`--status\`, \`--project-name\`, \`--name\`, \`--owned-by-me\`. Do not combine \`--assigned-to-me\` with \`--owned-by-me\` or \`--assignee-id\`.
|
|
75
|
+
|
|
76
|
+
### \`agentia work get [id]\`
|
|
77
|
+
|
|
78
|
+
Read full details for one user story. After \`work set\`, omit the ID to use the active work item:
|
|
79
|
+
|
|
80
|
+
\`\`\`sh
|
|
81
|
+
agentia work get --json
|
|
82
|
+
agentia work get a0SKC000000CmZ2AU --json
|
|
83
|
+
\`\`\`
|
|
84
|
+
|
|
85
|
+
Use this before starting work to understand title, status, acceptance criteria, and related fields.
|
|
86
|
+
|
|
87
|
+
### \`agentia work set <id>\`
|
|
88
|
+
|
|
89
|
+
Flag the user story as the active work item (in progress) and prepare the correct git branch:
|
|
90
|
+
|
|
91
|
+
\`\`\`sh
|
|
92
|
+
agentia work set a0SKC000000CmZ2AU --json
|
|
93
|
+
# or by name:
|
|
94
|
+
agentia work set US-0001 --json
|
|
95
|
+
\`\`\`
|
|
96
|
+
|
|
97
|
+
What it does:
|
|
98
|
+
|
|
99
|
+
1. Calls Copado to set the work item and resolve the base branch
|
|
100
|
+
2. Requires a **clean tracked working tree** (stash or commit first if dirty)
|
|
101
|
+
3. Fetches \`origin/<base-branch>\`
|
|
102
|
+
4. Creates or checks out \`feature/<user-story-name>\`
|
|
103
|
+
5. Records the last work item ID, name, and base branch for later commands
|
|
104
|
+
|
|
105
|
+
Optional: \`--base-branch <name>\` overrides the base branch from the API.
|
|
106
|
+
|
|
107
|
+
After success, stay on that feature branch for all implementation commits.
|
|
108
|
+
|
|
109
|
+
### \`agentia work push\`
|
|
110
|
+
|
|
111
|
+
Push committed changes to git and register them with Copado:
|
|
112
|
+
|
|
113
|
+
\`\`\`sh
|
|
114
|
+
agentia work push --json
|
|
115
|
+
\`\`\`
|
|
116
|
+
|
|
117
|
+
Prerequisites:
|
|
118
|
+
|
|
119
|
+
- Current branch is \`feature/US-XXXX\` (from \`work set\`)
|
|
120
|
+
- No uncommitted tracked changes (commit first)
|
|
121
|
+
- \`work set\` was run so a base branch is recorded
|
|
122
|
+
|
|
123
|
+
Locks the tip commit, runs \`git push origin <branch>\`, then registers the commits with Copado.
|
|
124
|
+
|
|
125
|
+
### \`agentia work test --local\`
|
|
126
|
+
|
|
127
|
+
Run local project quality gates without submitting:
|
|
128
|
+
|
|
129
|
+
\`\`\`sh
|
|
130
|
+
agentia work test --local --json
|
|
131
|
+
\`\`\`
|
|
132
|
+
|
|
133
|
+
If the project root contains \`${QUALITY_GATES_SCRIPT_UNIX}\` (macOS/Linux) or \`${QUALITY_GATES_SCRIPT_WINDOWS}\` (Windows), that script runs and the command stops on failure. Only \`--local\` is supported for now.
|
|
134
|
+
|
|
135
|
+
### \`agentia work submit\`
|
|
136
|
+
|
|
137
|
+
Flag the user story as ready for review. Runs local project quality gates (when present), then pipeline quality gates and validation:
|
|
138
|
+
|
|
139
|
+
\`\`\`sh
|
|
140
|
+
agentia work submit --json
|
|
141
|
+
agentia work submit --skip-local-tests --json
|
|
142
|
+
\`\`\`
|
|
143
|
+
|
|
144
|
+
Same branch/clean-tree rules as \`work push\`. If the project root contains \`${QUALITY_GATES_SCRIPT_UNIX}\` (macOS/Linux) or \`${QUALITY_GATES_SCRIPT_WINDOWS}\` (Windows), that script runs first and submit stops on failure (same local gates as \`work test --local\`). Use \`--skip-local-tests\` to skip it. If the branch has unpushed commits, it pushes and registers them next, then submits.
|
|
145
|
+
|
|
146
|
+
### \`agentia work done\`
|
|
147
|
+
|
|
148
|
+
Promote and deploy the user story to the next pipeline stage:
|
|
149
|
+
|
|
150
|
+
\`\`\`sh
|
|
151
|
+
agentia work done --json
|
|
152
|
+
\`\`\`
|
|
153
|
+
|
|
154
|
+
Same branch/clean-tree rules as \`work submit\`. Pushes unpushed commits if needed, then promotes (without the validate-only path used by submit).
|
|
155
|
+
|
|
156
|
+
Only run this when the story is approved and ready to move to the next environment.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Agent rules
|
|
161
|
+
|
|
162
|
+
1. **Prefer MCP over CLI.** When Agentia MCP tools are available, use them instead of running \`agentia\` in the shell.
|
|
163
|
+
2. **Discover before acting.** List assigned stories, then \`get\` the chosen ID, then \`set\` before editing files.
|
|
164
|
+
3. **One story, one feature branch.** Do not mix unrelated commits on the same \`feature/US-XXXX\` branch.
|
|
165
|
+
4. **Commit yourself; push with Agentia.** Use normal \`git add\` / \`git commit\` for local commits. Use \`agentia_work_push\` / \`agentia work push\` (not bare \`git push\`) so Copado receives the commit registration.
|
|
166
|
+
5. **Keep the tree clean** before \`set\`, \`push\`, \`submit\`, and \`done\`. Those steps fail if tracked changes are pending.
|
|
167
|
+
6. **Prefer structured results.** MCP returns JSON; for CLI, use \`--json\` and do not scrape human table output.
|
|
168
|
+
7. **Order matters.** \`set\` → commit → \`push\` → \`submit\` → \`done\`. \`submit\` and \`done\` will auto-push if the branch is ahead of origin, but \`set\` is still required first.
|
|
169
|
+
8. **Confirm intent for \`done\`.** Promotion deploys to the next stage; do not run it unless the user asked to promote/deploy.
|
|
170
|
+
`;
|
|
171
|
+
export function qualityGatesExplanation(bin = 'agentia') {
|
|
172
|
+
return [
|
|
173
|
+
'Local quality gates:',
|
|
174
|
+
` • ${QUALITY_GATES_SCRIPT_UNIX} runs on macOS/Linux; ${QUALITY_GATES_SCRIPT_WINDOWS} on Windows.`,
|
|
175
|
+
` • ${bin} work test --local and ${bin} work submit run the platform script from the repo root when present.`,
|
|
176
|
+
` • Use ${bin} work submit --skip-local-tests to bypass them for a single submit.`,
|
|
177
|
+
' • Edit the scripts to add or remove checks; they must exit non-zero on failure.',
|
|
178
|
+
' • Sample scripts call Salesforce CLI checks (code analyzer + LWC tests) — replace with your project gates.',
|
|
179
|
+
].join('\n');
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=setup-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-templates.js","sourceRoot":"","sources":["../../src/lib/setup-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAA;AAEjC;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAEvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,WAAW,CAAA;AAElD,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;CAUxC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;CAW3C,CAAA;AAED,8HAA8H;AAC9H,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAqGA,yBAAyB,yBAAyB,4BAA4B;;;;;;;;;;;gFAW/B,yBAAyB,yBAAyB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B7J,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAG,GAAG,SAAS;IACrD,OAAO;QACL,sBAAsB;QACtB,OAAO,yBAAyB,yBAAyB,4BAA4B,cAAc;QACnG,OAAO,GAAG,0BAA0B,GAAG,uEAAuE;QAC9G,WAAW,GAAG,qEAAqE;QACnF,mFAAmF;QACnF,8GAA8G;KAC/G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
|
package/dist/lib/work-flags.d.ts
CHANGED
|
@@ -83,9 +83,11 @@ export declare const workListFilterFlags: {
|
|
|
83
83
|
readonly 'project-name': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
84
84
|
readonly status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
85
85
|
readonly title: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
86
|
+
readonly cursor: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
87
|
+
readonly 'page-size': import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
86
88
|
};
|
|
87
89
|
export type WorkListFilterFlagValues = {
|
|
88
|
-
[K in keyof typeof workListFilterFlags]?:
|
|
90
|
+
[K in keyof typeof workListFilterFlags]?: K extends 'assigned-to-me' | 'owned-by-me' ? boolean : K extends 'page-size' ? number : string;
|
|
89
91
|
};
|
|
90
92
|
export declare function buildWorkListFilters(flags: WorkListFilterFlagValues): WorkListFilters;
|
|
91
93
|
export declare const workMutationFlags: {
|
package/dist/lib/work-flags.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
+
import { buildListPaginationQuery, listPaginationFlags } from './list-pagination.js';
|
|
2
3
|
export const workMutationStringFlags = {
|
|
3
4
|
'acceptance-criteria': Flags.string({
|
|
4
5
|
description: 'Acceptance criteria',
|
|
@@ -138,6 +139,7 @@ export const WORK_STRING_VALIDATION_KEYS = [
|
|
|
138
139
|
'wantTo',
|
|
139
140
|
];
|
|
140
141
|
export const workListFilterFlags = {
|
|
142
|
+
...listPaginationFlags,
|
|
141
143
|
'assigned-to-me': Flags.boolean({
|
|
142
144
|
description: 'Filter by the current user as assignee',
|
|
143
145
|
}),
|
|
@@ -192,7 +194,7 @@ export function buildWorkListFilters(flags) {
|
|
|
192
194
|
Object.assign(filters, { [filterKey]: value });
|
|
193
195
|
}
|
|
194
196
|
}
|
|
195
|
-
return filters;
|
|
197
|
+
return { ...filters, ...buildListPaginationQuery(flags) };
|
|
196
198
|
}
|
|
197
199
|
export const workMutationFlags = {
|
|
198
200
|
...workMutationBooleanFlags,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-flags.js","sourceRoot":"","sources":["../../src/lib/work-flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"work-flags.js","sourceRoot":"","sources":["../../src/lib/work-flags.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/work-types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ListPaginationQuery, type PaginatedListResult } from './list-pagination.js';
|
|
1
2
|
export type UserStory = {
|
|
2
3
|
acceptanceCriteria?: string;
|
|
3
4
|
actualPoints?: number;
|
|
@@ -62,6 +63,8 @@ export type UserStory = {
|
|
|
62
63
|
export type UserStoryListPage = {
|
|
63
64
|
currentPage?: number;
|
|
64
65
|
data?: UserStory[];
|
|
66
|
+
hasMore?: boolean;
|
|
67
|
+
nextCursor?: string;
|
|
65
68
|
pageSize?: number;
|
|
66
69
|
totalPages?: number;
|
|
67
70
|
totalRecords?: number;
|
|
@@ -95,7 +98,7 @@ export type UserStoryMutationPayload = {
|
|
|
95
98
|
title?: string;
|
|
96
99
|
wantTo?: string;
|
|
97
100
|
};
|
|
98
|
-
export type WorkListFilters = {
|
|
101
|
+
export type WorkListFilters = ListPaginationQuery & {
|
|
99
102
|
assigneeId?: string;
|
|
100
103
|
assigneeName?: string;
|
|
101
104
|
name?: string;
|
|
@@ -114,6 +117,7 @@ export type WorkSetResponse = {
|
|
|
114
117
|
baseBranch?: null | string;
|
|
115
118
|
command: string;
|
|
116
119
|
message: string;
|
|
120
|
+
pullRequestBaseUrl?: null | string;
|
|
117
121
|
workItem: UserStory;
|
|
118
122
|
};
|
|
119
123
|
export type WorkSetGitResult = {
|
|
@@ -155,6 +159,8 @@ export type HeadlessWorkStatusResult = {
|
|
|
155
159
|
workItem: UserStory;
|
|
156
160
|
};
|
|
157
161
|
export declare function featureBranchName(userStoryName: string): string;
|
|
162
|
+
/** Builds a GitHub compare URL for opening a new PR: `<repo>/compare/base...feature?expand=1`. */
|
|
163
|
+
export declare function buildPullRequestCompareUrl(pullRequestBaseUrl: string, baseBranch: string, featureBranch: string): string;
|
|
158
164
|
export declare function extractUserStoryFromFeatureBranch(branchName: string): string | undefined;
|
|
159
165
|
export type HeadlessCommitter = {
|
|
160
166
|
date: string;
|
|
@@ -216,6 +222,7 @@ export type WorkDoneResult = {
|
|
|
216
222
|
workItem: string;
|
|
217
223
|
};
|
|
218
224
|
export declare function parseNameStatusLog(stdout: string, workItem: string): HeadlessPushCommit[];
|
|
225
|
+
export declare function normalizeUserStoriesListPage(response: UserStoryListResponse): PaginatedListResult<UserStory>;
|
|
219
226
|
export declare function normalizeUserStories(response: UserStoryListResponse): UserStory[];
|
|
220
227
|
export declare function formatUserStoryTable(userStories: UserStory[]): string;
|
|
221
228
|
export declare function formatUserStoryDetail(userStory: UserStory): string;
|
package/dist/lib/work-types.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cellValue, table } from './format.js';
|
|
2
|
+
import { appendListPaginationQueryParams, buildPaginatedListResult, paginatedResultFromPage, } from './list-pagination.js';
|
|
2
3
|
export const WORK_LIST_FILTER_KEYS = [
|
|
3
4
|
'name',
|
|
4
5
|
'title',
|
|
@@ -18,6 +19,7 @@ export function workListEndpoint(filters = {}) {
|
|
|
18
19
|
params.set(key, value);
|
|
19
20
|
}
|
|
20
21
|
}
|
|
22
|
+
appendListPaginationQueryParams(params, filters);
|
|
21
23
|
const query = params.toString();
|
|
22
24
|
return query.length > 0 ? `/plan/user-stories?${query}` : '/plan/user-stories';
|
|
23
25
|
}
|
|
@@ -50,6 +52,14 @@ export function workStatusEndpoint(workItem) {
|
|
|
50
52
|
export function featureBranchName(userStoryName) {
|
|
51
53
|
return `feature/${userStoryName}`;
|
|
52
54
|
}
|
|
55
|
+
/** Builds a GitHub compare URL for opening a new PR: `<repo>/compare/base...feature?expand=1`. */
|
|
56
|
+
export function buildPullRequestCompareUrl(pullRequestBaseUrl, baseBranch, featureBranch) {
|
|
57
|
+
let base = pullRequestBaseUrl.trim().replaceAll(/\/+$/g, '');
|
|
58
|
+
if (!base.toLowerCase().endsWith('/compare')) {
|
|
59
|
+
base = `${base}/compare`;
|
|
60
|
+
}
|
|
61
|
+
return `${base}/${baseBranch}...${featureBranch}?expand=1`;
|
|
62
|
+
}
|
|
53
63
|
const FEATURE_US_BRANCH_RE = /^feature\/(US-\d+)/i;
|
|
54
64
|
export function extractUserStoryFromFeatureBranch(branchName) {
|
|
55
65
|
const match = FEATURE_US_BRANCH_RE.exec(branchName.trim());
|
|
@@ -139,11 +149,14 @@ export function parseNameStatusLog(stdout, workItem) {
|
|
|
139
149
|
}
|
|
140
150
|
return commits;
|
|
141
151
|
}
|
|
142
|
-
export function
|
|
152
|
+
export function normalizeUserStoriesListPage(response) {
|
|
143
153
|
if (Array.isArray(response)) {
|
|
144
|
-
return response;
|
|
154
|
+
return buildPaginatedListResult(response);
|
|
145
155
|
}
|
|
146
|
-
return
|
|
156
|
+
return paginatedResultFromPage(response);
|
|
157
|
+
}
|
|
158
|
+
export function normalizeUserStories(response) {
|
|
159
|
+
return normalizeUserStoriesListPage(response).data;
|
|
147
160
|
}
|
|
148
161
|
export function formatUserStoryTable(userStories) {
|
|
149
162
|
return table([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-types.js","sourceRoot":"","sources":["../../src/lib/work-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"work-types.js","sourceRoot":"","sources":["../../src/lib/work-types.ts"],"names":[],"mappings":"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"}
|