cyrus-edge-worker 0.2.39 → 0.2.41
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/cyrus-skills-plugin/.claude-plugin/plugin.json +4 -0
- package/dist/AgentSessionManager.d.ts +4 -58
- package/dist/AgentSessionManager.d.ts.map +1 -1
- package/dist/AgentSessionManager.js +11 -304
- package/dist/AgentSessionManager.js.map +1 -1
- package/dist/ChatSessionHandler.d.ts +2 -2
- package/dist/ChatSessionHandler.d.ts.map +1 -1
- package/dist/ChatSessionHandler.js +2 -4
- package/dist/ChatSessionHandler.js.map +1 -1
- package/dist/DefaultSkillsDeployer.d.ts +32 -0
- package/dist/DefaultSkillsDeployer.d.ts.map +1 -0
- package/dist/DefaultSkillsDeployer.js +82 -0
- package/dist/DefaultSkillsDeployer.js.map +1 -0
- package/dist/EdgeWorker.d.ts +20 -46
- package/dist/EdgeWorker.d.ts.map +1 -1
- package/dist/EdgeWorker.js +98 -450
- package/dist/EdgeWorker.js.map +1 -1
- package/dist/PromptBuilder.d.ts +1 -7
- package/dist/PromptBuilder.d.ts.map +1 -1
- package/dist/PromptBuilder.js +2 -33
- package/dist/PromptBuilder.js.map +1 -1
- package/dist/RunnerConfigBuilder.d.ts +13 -6
- package/dist/RunnerConfigBuilder.d.ts.map +1 -1
- package/dist/RunnerConfigBuilder.js +50 -27
- package/dist/RunnerConfigBuilder.js.map +1 -1
- package/dist/SkillsPluginResolver.d.ts +66 -0
- package/dist/SkillsPluginResolver.d.ts.map +1 -0
- package/dist/SkillsPluginResolver.js +180 -0
- package/dist/SkillsPluginResolver.js.map +1 -0
- package/dist/ToolPermissionResolver.d.ts +1 -12
- package/dist/ToolPermissionResolver.d.ts.map +1 -1
- package/dist/ToolPermissionResolver.js +0 -23
- package/dist/ToolPermissionResolver.js.map +1 -1
- package/dist/cyrus-skills-plugin/.claude-plugin/plugin.json +4 -0
- package/dist/cyrus-skills-plugin/cyrus-skills-plugin/.claude-plugin/plugin.json +4 -0
- package/dist/cyrus-skills-plugin/cyrus-skills-plugin/skills/debug/SKILL.md +29 -0
- package/dist/cyrus-skills-plugin/cyrus-skills-plugin/skills/implementation/SKILL.md +17 -0
- package/dist/cyrus-skills-plugin/cyrus-skills-plugin/skills/investigate/SKILL.md +23 -0
- package/dist/cyrus-skills-plugin/cyrus-skills-plugin/skills/summarize/SKILL.md +47 -0
- package/dist/cyrus-skills-plugin/cyrus-skills-plugin/skills/verify-and-ship/SKILL.md +74 -0
- package/dist/cyrus-skills-plugin/skills/debug/SKILL.md +29 -0
- package/dist/cyrus-skills-plugin/skills/implementation/SKILL.md +17 -0
- package/dist/cyrus-skills-plugin/skills/investigate/SKILL.md +23 -0
- package/dist/cyrus-skills-plugin/skills/summarize/SKILL.md +47 -0
- package/dist/cyrus-skills-plugin/skills/verify-and-ship/SKILL.md +74 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/prompt-assembly/types.d.ts +1 -3
- package/dist/prompt-assembly/types.d.ts.map +1 -1
- package/package.json +17 -16
- package/dist/procedures/ProcedureAnalyzer.d.ts +0 -69
- package/dist/procedures/ProcedureAnalyzer.d.ts.map +0 -1
- package/dist/procedures/ProcedureAnalyzer.js +0 -274
- package/dist/procedures/ProcedureAnalyzer.js.map +0 -1
- package/dist/procedures/index.d.ts +0 -7
- package/dist/procedures/index.d.ts.map +0 -1
- package/dist/procedures/index.js +0 -7
- package/dist/procedures/index.js.map +0 -1
- package/dist/procedures/registry.d.ts +0 -173
- package/dist/procedures/registry.d.ts.map +0 -1
- package/dist/procedures/registry.js +0 -264
- package/dist/procedures/registry.js.map +0 -1
- package/dist/procedures/types.d.ts +0 -101
- package/dist/procedures/types.d.ts.map +0 -1
- package/dist/procedures/types.js +0 -5
- package/dist/procedures/types.js.map +0 -1
- package/dist/prompts/subroutines/changelog-update-gitlab.md +0 -79
- package/dist/prompts/subroutines/changelog-update.md +0 -79
- package/dist/prompts/subroutines/coding-activity.md +0 -12
- package/dist/prompts/subroutines/concise-summary.md +0 -67
- package/dist/prompts/subroutines/debugger-fix.md +0 -92
- package/dist/prompts/subroutines/debugger-reproduction.md +0 -74
- package/dist/prompts/subroutines/get-approval.md +0 -175
- package/dist/prompts/subroutines/gh-pr.md +0 -110
- package/dist/prompts/subroutines/git-commit.md +0 -37
- package/dist/prompts/subroutines/glab-mr.md +0 -106
- package/dist/prompts/subroutines/plan-summary.md +0 -21
- package/dist/prompts/subroutines/preparation.md +0 -16
- package/dist/prompts/subroutines/question-answer.md +0 -8
- package/dist/prompts/subroutines/question-investigation.md +0 -8
- package/dist/prompts/subroutines/release-execution.md +0 -81
- package/dist/prompts/subroutines/release-summary.md +0 -60
- package/dist/prompts/subroutines/user-testing-summary.md +0 -87
- package/dist/prompts/subroutines/user-testing.md +0 -48
- package/dist/prompts/subroutines/validation-fixer.md +0 -56
- package/dist/prompts/subroutines/verbose-summary.md +0 -46
- package/dist/prompts/subroutines/verifications.md +0 -77
- package/dist/validation/ValidationLoopController.d.ts +0 -54
- package/dist/validation/ValidationLoopController.d.ts.map +0 -1
- package/dist/validation/ValidationLoopController.js +0 -242
- package/dist/validation/ValidationLoopController.js.map +0 -1
- package/dist/validation/index.d.ts +0 -7
- package/dist/validation/index.d.ts.map +0 -1
- package/dist/validation/index.js +0 -7
- package/dist/validation/index.js.map +0 -1
- package/dist/validation/types.d.ts +0 -82
- package/dist/validation/types.d.ts.map +0 -1
- package/dist/validation/types.js +0 -29
- package/dist/validation/types.js.map +0 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verify-and-ship
|
|
3
|
+
description: Run all quality checks (tests, lint, typecheck), fix failures, update the changelog, commit, push, and create/update the pull request or merge request.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Verify and Ship
|
|
7
|
+
|
|
8
|
+
After implementing your changes, follow these steps to verify quality and ship the work.
|
|
9
|
+
|
|
10
|
+
## 1. Acceptance Criteria Validation (CRITICAL)
|
|
11
|
+
|
|
12
|
+
Use the issue tracker `get_issue` tool to fetch the current issue details. Extract ALL acceptance criteria from the issue description and verify each one is satisfied by the implementation. If no explicit criteria exist, validate against the implied requirements from the issue title and description.
|
|
13
|
+
|
|
14
|
+
## 2. Quality Checks
|
|
15
|
+
|
|
16
|
+
Run all applicable quality checks:
|
|
17
|
+
- **Tests** — Run the full test suite. If tests fail, fix the issues and re-run. Retry up to 3 times. If you cannot resolve failures after 3 attempts, proceed and note the failures in your summary.
|
|
18
|
+
- **Linting** — Run linting tools and fix any issues found.
|
|
19
|
+
- **Type checking** — Run TypeScript type checking (if applicable) and fix any errors.
|
|
20
|
+
- **Code review** — Review your changes for quality, consistency, and best practices. Remove any debug code, console.logs, or commented-out sections.
|
|
21
|
+
|
|
22
|
+
## 3. Changelog Update
|
|
23
|
+
|
|
24
|
+
Check if the project has changelog files:
|
|
25
|
+
```bash
|
|
26
|
+
ls -la CHANGELOG.md CHANGELOG.internal.md 2>/dev/null || echo "NO_CHANGELOG"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
If changelog files exist:
|
|
30
|
+
- Add an entry under `## [Unreleased]` in the appropriate subsection (`### Added`, `### Changed`, `### Fixed`, `### Removed`)
|
|
31
|
+
- Focus on end-user impact — be concise but descriptive
|
|
32
|
+
- Include the Linear issue identifier and PR/MR link (format: `([ISSUE-ID](linear_url), [#NUMBER](PR_OR_MR_URL))`)
|
|
33
|
+
- Follow [Keep a Changelog](https://keepachangelog.com/) format
|
|
34
|
+
|
|
35
|
+
## 4. Commit and Push
|
|
36
|
+
|
|
37
|
+
- Stage all relevant changes (including changelog updates)
|
|
38
|
+
- Commit with clear, descriptive messages following the project's commit conventions
|
|
39
|
+
- Push to the remote repository
|
|
40
|
+
|
|
41
|
+
## 5. Create or Update PR/MR
|
|
42
|
+
|
|
43
|
+
Determine the platform from the repository context (`<github_url>` or `<gitlab_url>` in the issue context). Use the appropriate tool for the platform.
|
|
44
|
+
|
|
45
|
+
### GitHub (when `<github_url>` is present)
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
git push -u origin HEAD
|
|
49
|
+
gh pr view --json url,number 2>/dev/null || gh pr create --draft --base [base_branch from context] --title "[descriptive title]" --body "Work in progress"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### GitLab (when `<gitlab_url>` is present)
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
git push -u origin HEAD
|
|
56
|
+
glab mr view 2>/dev/null || glab mr create --draft --target-branch [base_branch from context] --title "[descriptive title]" --description "Work in progress"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### PR/MR Description
|
|
60
|
+
|
|
61
|
+
Update the PR/MR with a comprehensive description:
|
|
62
|
+
- **Assignee attribution**: If `<github_username>` is available in the assignee context, add `Assignee: @username ([Display Name](linear_profile_url))` at the top of the body. If only a linear profile URL is available, use `Assignee: [Display Name](linear_profile_url)`.
|
|
63
|
+
- **Summary** of changes, implementation approach, and testing performed
|
|
64
|
+
- **Link** to the Linear issue
|
|
65
|
+
- **Cyrus marker**: Include `<!-- generated-by-cyrus -->` as a hidden HTML comment at the end of the body
|
|
66
|
+
- **Interaction tip**: Add this at the end (before the marker), using the bot username from `<github_bot_username>` or `<gitlab_bot_username>` in the `<agent_context>` block of the system prompt:
|
|
67
|
+
```
|
|
68
|
+
---
|
|
69
|
+
> **Tip:** I will respond to comments that @ mention @<bot_username> on this PR/MR. You can also submit a review with all your feedback at once, and I will automatically wake up to address each comment.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Remove any "WIP:" or "Draft:" prefix from the title. Check `<agent_guidance>` — only mark the PR/MR as ready if guidance does NOT specify keeping them as drafts.
|
|
73
|
+
|
|
74
|
+
Verify the PR/MR targets the correct base branch from `<base_branch>` in the issue context.
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export type { AskUserQuestionHandlerConfig, AskUserQuestionHandlerDeps, } from "
|
|
|
6
6
|
export { AskUserQuestionHandler } from "./AskUserQuestionHandler.js";
|
|
7
7
|
export type { ChatPlatformAdapter, ChatPlatformName, ChatSessionHandlerDeps, } from "./ChatSessionHandler.js";
|
|
8
8
|
export { ChatSessionHandler } from "./ChatSessionHandler.js";
|
|
9
|
+
export { DefaultSkillsDeployer } from "./DefaultSkillsDeployer.js";
|
|
9
10
|
export { EdgeWorker } from "./EdgeWorker.js";
|
|
10
11
|
export type { CreateGitWorktreeOptions } from "./GitService.js";
|
|
11
12
|
export { GitService } from "./GitService.js";
|
|
@@ -17,6 +18,7 @@ export { RepositoryRouter } from "./RepositoryRouter.js";
|
|
|
17
18
|
export type { ChatRunnerConfigInput, IChatToolResolver, IMcpConfigProvider, IRunnerSelector, IssueRunnerConfigInput, } from "./RunnerConfigBuilder.js";
|
|
18
19
|
export { RunnerConfigBuilder } from "./RunnerConfigBuilder.js";
|
|
19
20
|
export { SharedApplicationServer } from "./SharedApplicationServer.js";
|
|
21
|
+
export { SkillsPluginResolver } from "./SkillsPluginResolver.js";
|
|
20
22
|
export { SlackChatAdapter } from "./SlackChatAdapter.js";
|
|
21
23
|
export type { ActivityPostOptions, ActivityPostResult, ActivitySignal, IActivitySink, } from "./sinks/index.js";
|
|
22
24
|
export { LinearActivitySink } from "./sinks/index.js";
|
|
@@ -24,6 +26,5 @@ export type { PromptType } from "./ToolPermissionResolver.js";
|
|
|
24
26
|
export { ToolPermissionResolver } from "./ToolPermissionResolver.js";
|
|
25
27
|
export type { EdgeWorkerEvents } from "./types.js";
|
|
26
28
|
export { type AccessCheckResult, DEFAULT_BLOCK_MESSAGE, UserAccessControl, } from "./UserAccessControl.js";
|
|
27
|
-
export { DEFAULT_VALIDATION_LOOP_CONFIG, parseValidationResult, VALIDATION_RESULT_SCHEMA, type ValidationFixerContext, type ValidationLoopConfig, type ValidationLoopState, type ValidationResult, } from "./validation/index.js";
|
|
28
29
|
export { WorktreeIncludeService } from "./WorktreeIncludeService.js";
|
|
29
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjE,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,SAAS,GACT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACX,4BAA4B,EAC5B,0BAA0B,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EACX,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EACX,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EACX,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,aAAa,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EACN,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,iBAAiB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjE,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,SAAS,GACT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACX,4BAA4B,EAC5B,0BAA0B,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EACX,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EACX,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EACX,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,aAAa,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EACN,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,iBAAiB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export { getAllTools, readOnlyTools } from "cyrus-claude-runner";
|
|
|
2
2
|
export { AgentSessionManager } from "./AgentSessionManager.js";
|
|
3
3
|
export { AskUserQuestionHandler } from "./AskUserQuestionHandler.js";
|
|
4
4
|
export { ChatSessionHandler } from "./ChatSessionHandler.js";
|
|
5
|
+
export { DefaultSkillsDeployer } from "./DefaultSkillsDeployer.js";
|
|
5
6
|
export { EdgeWorker } from "./EdgeWorker.js";
|
|
6
7
|
export { GitService } from "./GitService.js";
|
|
7
8
|
export { GlobalSessionRegistry } from "./GlobalSessionRegistry.js";
|
|
@@ -9,12 +10,11 @@ export { McpConfigService } from "./McpConfigService.js";
|
|
|
9
10
|
export { RepositoryRouter } from "./RepositoryRouter.js";
|
|
10
11
|
export { RunnerConfigBuilder } from "./RunnerConfigBuilder.js";
|
|
11
12
|
export { SharedApplicationServer } from "./SharedApplicationServer.js";
|
|
13
|
+
export { SkillsPluginResolver } from "./SkillsPluginResolver.js";
|
|
12
14
|
export { SlackChatAdapter } from "./SlackChatAdapter.js";
|
|
13
15
|
export { LinearActivitySink } from "./sinks/index.js";
|
|
14
16
|
export { ToolPermissionResolver } from "./ToolPermissionResolver.js";
|
|
15
17
|
// User access control
|
|
16
18
|
export { DEFAULT_BLOCK_MESSAGE, UserAccessControl, } from "./UserAccessControl.js";
|
|
17
|
-
// Export validation loop module
|
|
18
|
-
export { DEFAULT_VALIDATION_LOOP_CONFIG, parseValidationResult, VALIDATION_RESULT_SCHEMA, } from "./validation/index.js";
|
|
19
19
|
export { WorktreeIncludeService } from "./WorktreeIncludeService.js";
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAK/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAMrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAOzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,sBAAsB;AACtB,OAAO,EAEN,qBAAqB,EACrB,iBAAiB,GACjB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAK/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAMrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAOzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,sBAAsB;AACtB,OAAO,EAEN,qBAAqB,EACrB,iBAAiB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -17,8 +17,6 @@ export interface PromptAssembly {
|
|
|
17
17
|
metadata: {
|
|
18
18
|
/** List of components included in the prompt */
|
|
19
19
|
components: PromptComponent[];
|
|
20
|
-
/** Name of the subroutine prompt loaded (if any) */
|
|
21
|
-
subroutineName?: string;
|
|
22
20
|
/** Type of prompt builder used */
|
|
23
21
|
promptType: PromptType;
|
|
24
22
|
/** Whether this was a new session */
|
|
@@ -30,7 +28,7 @@ export interface PromptAssembly {
|
|
|
30
28
|
/**
|
|
31
29
|
* Components that can be included in a prompt
|
|
32
30
|
*/
|
|
33
|
-
export type PromptComponent = "issue-context" | "
|
|
31
|
+
export type PromptComponent = "issue-context" | "user-comment" | "attachment-manifest" | "guidance-rules";
|
|
34
32
|
/**
|
|
35
33
|
* Type of prompt builder used
|
|
36
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/prompt-assembly/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IAEnB,oEAAoE;IACpE,QAAQ,EAAE;QACT,gDAAgD;QAChD,UAAU,EAAE,eAAe,EAAE,CAAC;QAE9B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/prompt-assembly/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IAEnB,oEAAoE;IACpE,QAAQ,EAAE;QACT,gDAAgD;QAChD,UAAU,EAAE,eAAe,EAAE,CAAC;QAE9B,kCAAkC;QAClC,UAAU,EAAE,UAAU,CAAC;QAEvB,qCAAqC;QACrC,YAAY,EAAE,OAAO,CAAC;QAEtB,gDAAgD;QAChD,WAAW,EAAE,OAAO,CAAC;KACrB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACxB,eAAe,GACf,cAAc,GACd,qBAAqB,GACrB,gBAAgB,CAAC;AAEpB;;GAEG;AACH,MAAM,MAAM,UAAU,GACnB,aAAa,GACb,4BAA4B,GAC5B,SAAS,GACT,UAAU,GACV,cAAc,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAEnC,8BAA8B;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAE3B,yBAAyB;IACzB,SAAS,EAAE,KAAK,CAAC;IAEjB,2DAA2D;IAC3D,YAAY,EAAE,gBAAgB,EAAE,CAAC;IAEjC;;OAEG;IACH,UAAU,EAAE,gBAAgB,CAAC;IAG7B,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IAEpB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAG1B,sDAAsD;IACtD,YAAY,EAAE,OAAO,CAAC;IAEtB,sDAAsD;IACtD,WAAW,EAAE,OAAO,CAAC;IAErB,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,mDAAmD;IACnD,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,yDAAyD;IACzD,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAEnC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAE5D,4GAA4G;IAC5G,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IAEf,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cyrus-edge-worker",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.41",
|
|
4
4
|
"description": "Unified edge worker for processing Linear issues with Claude",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"prompt-template-v2.md",
|
|
11
11
|
"prompt-template.md",
|
|
12
12
|
"label-prompt-template.md",
|
|
13
|
-
"prompts"
|
|
13
|
+
"prompts",
|
|
14
|
+
"cyrus-skills-plugin"
|
|
14
15
|
],
|
|
15
16
|
"dependencies": {
|
|
16
17
|
"@linear/sdk": "^64.0.0",
|
|
@@ -21,19 +22,19 @@
|
|
|
21
22
|
"file-type": "^21.3.2",
|
|
22
23
|
"ignore": "^7.0.5",
|
|
23
24
|
"zod": "4.3.6",
|
|
24
|
-
"cyrus-
|
|
25
|
-
"cyrus-config-updater": "0.2.
|
|
26
|
-
"cyrus-
|
|
27
|
-
"cyrus-
|
|
28
|
-
"cyrus-
|
|
29
|
-
"cyrus-
|
|
30
|
-
"cyrus-
|
|
31
|
-
"cyrus-
|
|
32
|
-
"cyrus-gitlab-event-transport": "0.2.
|
|
33
|
-
"cyrus-
|
|
34
|
-
"cyrus-
|
|
35
|
-
"cyrus-
|
|
36
|
-
"cyrus-simple-agent-runner": "0.2.
|
|
25
|
+
"cyrus-codex-runner": "0.2.41",
|
|
26
|
+
"cyrus-config-updater": "0.2.41",
|
|
27
|
+
"cyrus-claude-runner": "0.2.41",
|
|
28
|
+
"cyrus-cloudflare-tunnel-client": "0.2.41",
|
|
29
|
+
"cyrus-cursor-runner": "0.2.41",
|
|
30
|
+
"cyrus-gemini-runner": "0.2.41",
|
|
31
|
+
"cyrus-github-event-transport": "0.2.41",
|
|
32
|
+
"cyrus-linear-event-transport": "0.2.41",
|
|
33
|
+
"cyrus-gitlab-event-transport": "0.2.41",
|
|
34
|
+
"cyrus-slack-event-transport": "0.2.41",
|
|
35
|
+
"cyrus-mcp-tools": "0.2.41",
|
|
36
|
+
"cyrus-core": "0.2.41",
|
|
37
|
+
"cyrus-simple-agent-runner": "0.2.41"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|
|
39
40
|
"@types/node": "^20.0.0",
|
|
@@ -48,7 +49,7 @@
|
|
|
48
49
|
},
|
|
49
50
|
"scripts": {
|
|
50
51
|
"build": "tsc && npm run copy-prompts",
|
|
51
|
-
"copy-prompts": "
|
|
52
|
+
"copy-prompts": "cp label-prompt-template.md dist/ && cp -r prompts dist/ && cp -rL cyrus-skills-plugin dist/cyrus-skills-plugin",
|
|
52
53
|
"dev": "tsc --watch",
|
|
53
54
|
"test": "vitest",
|
|
54
55
|
"test:run": "vitest run",
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ProcedureAnalyzer - Intelligent analysis of agent sessions to determine procedures
|
|
3
|
-
*
|
|
4
|
-
* Uses a SimpleAgentRunner (Claude, Gemini, Codex, or Cursor) to analyze requests
|
|
5
|
-
* and determine which procedure (sequence of subroutines) should be executed.
|
|
6
|
-
*/
|
|
7
|
-
import { type CyrusAgentSession, type ILogger, type RunnerType } from "cyrus-core";
|
|
8
|
-
import type { ProcedureAnalysisDecision, ProcedureDefinition, SubroutineDefinition } from "./types.js";
|
|
9
|
-
export type SimpleRunnerType = RunnerType;
|
|
10
|
-
export interface ProcedureAnalyzerConfig {
|
|
11
|
-
cyrusHome: string;
|
|
12
|
-
model?: string;
|
|
13
|
-
timeoutMs?: number;
|
|
14
|
-
runnerType?: SimpleRunnerType;
|
|
15
|
-
logger?: ILogger;
|
|
16
|
-
}
|
|
17
|
-
export declare class ProcedureAnalyzer {
|
|
18
|
-
private analysisRunner;
|
|
19
|
-
private procedures;
|
|
20
|
-
private logger;
|
|
21
|
-
constructor(config: ProcedureAnalyzerConfig);
|
|
22
|
-
/**
|
|
23
|
-
* Build the system prompt for request analysis and classification
|
|
24
|
-
*/
|
|
25
|
-
private buildAnalysisSystemPrompt;
|
|
26
|
-
/**
|
|
27
|
-
* Load predefined procedures from registry
|
|
28
|
-
*/
|
|
29
|
-
private loadPredefinedProcedures;
|
|
30
|
-
/**
|
|
31
|
-
* Analyze a request and determine which procedure to use
|
|
32
|
-
*/
|
|
33
|
-
determineRoutine(requestText: string): Promise<ProcedureAnalysisDecision>;
|
|
34
|
-
/**
|
|
35
|
-
* Get the next subroutine for a session
|
|
36
|
-
* Returns null if procedure is complete
|
|
37
|
-
*/
|
|
38
|
-
getNextSubroutine(session: CyrusAgentSession): SubroutineDefinition | null;
|
|
39
|
-
/**
|
|
40
|
-
* Get the current subroutine for a session
|
|
41
|
-
*/
|
|
42
|
-
getCurrentSubroutine(session: CyrusAgentSession): SubroutineDefinition | null;
|
|
43
|
-
/**
|
|
44
|
-
* Initialize procedure metadata for a new session
|
|
45
|
-
*/
|
|
46
|
-
initializeProcedureMetadata(session: CyrusAgentSession, procedure: ProcedureDefinition): void;
|
|
47
|
-
/**
|
|
48
|
-
* Record subroutine completion and advance to next
|
|
49
|
-
*/
|
|
50
|
-
advanceToNextSubroutine(session: CyrusAgentSession, sessionId: string | null, result?: string): void;
|
|
51
|
-
/**
|
|
52
|
-
* Get the result from the last completed subroutine in the history.
|
|
53
|
-
* Returns null if there is no history or no result stored.
|
|
54
|
-
*/
|
|
55
|
-
getLastSubroutineResult(session: CyrusAgentSession): string | null;
|
|
56
|
-
/**
|
|
57
|
-
* Check if procedure is complete
|
|
58
|
-
*/
|
|
59
|
-
isProcedureComplete(session: CyrusAgentSession): boolean;
|
|
60
|
-
/**
|
|
61
|
-
* Register a custom procedure
|
|
62
|
-
*/
|
|
63
|
-
registerProcedure(procedure: ProcedureDefinition): void;
|
|
64
|
-
/**
|
|
65
|
-
* Get procedure by name
|
|
66
|
-
*/
|
|
67
|
-
getProcedure(name: string): ProcedureDefinition | undefined;
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=ProcedureAnalyzer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProcedureAnalyzer.d.ts","sourceRoot":"","sources":["../../src/procedures/ProcedureAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACN,KAAK,iBAAiB,EAEtB,KAAK,OAAO,EAEZ,KAAK,UAAU,EACf,MAAM,YAAY,CAAC;AAKpB,OAAO,KAAK,EACX,yBAAyB,EACzB,mBAAmB,EAGnB,oBAAoB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,MAAM,WAAW,uBAAuB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,MAAM,CAAU;gBAEZ,MAAM,EAAE,uBAAuB;IAyD3C;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAmDjC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAMhC;;OAEG;IACG,gBAAgB,CACrB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,yBAAyB,CAAC;IAyCrC;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,oBAAoB,GAAG,IAAI;IA6B1E;;OAEG;IACH,oBAAoB,CACnB,OAAO,EAAE,iBAAiB,GACxB,oBAAoB,GAAG,IAAI;IAwB9B;;OAEG;IACH,2BAA2B,CAC1B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,mBAAmB,GAC5B,IAAI;IAYP;;OAEG;IACH,uBAAuB,CACtB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,MAAM,GACb,IAAI;IAgCP;;;OAGG;IACH,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;IAiBlE;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAIxD;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,mBAAmB,GAAG,IAAI;IAIvD;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;CAG3D"}
|
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ProcedureAnalyzer - Intelligent analysis of agent sessions to determine procedures
|
|
3
|
-
*
|
|
4
|
-
* Uses a SimpleAgentRunner (Claude, Gemini, Codex, or Cursor) to analyze requests
|
|
5
|
-
* and determine which procedure (sequence of subroutines) should be executed.
|
|
6
|
-
*/
|
|
7
|
-
import { SimpleCodexRunner } from "cyrus-codex-runner";
|
|
8
|
-
import { createLogger, } from "cyrus-core";
|
|
9
|
-
import { SimpleCursorRunner } from "cyrus-cursor-runner";
|
|
10
|
-
import { SimpleGeminiRunner } from "cyrus-gemini-runner";
|
|
11
|
-
import { SimpleClaudeRunner } from "cyrus-simple-agent-runner";
|
|
12
|
-
import { getProcedureForClassification, PROCEDURES } from "./registry.js";
|
|
13
|
-
export class ProcedureAnalyzer {
|
|
14
|
-
analysisRunner;
|
|
15
|
-
procedures = new Map();
|
|
16
|
-
logger;
|
|
17
|
-
constructor(config) {
|
|
18
|
-
this.logger =
|
|
19
|
-
config.logger ?? createLogger({ component: "ProcedureAnalyzer" });
|
|
20
|
-
// Determine which runner to use
|
|
21
|
-
const runnerType = config.runnerType || "claude";
|
|
22
|
-
// Use runner-specific default models if not provided
|
|
23
|
-
const defaultModels = {
|
|
24
|
-
claude: { model: "haiku", fallback: "sonnet" },
|
|
25
|
-
gemini: {
|
|
26
|
-
model: "gemini-2.5-flash-lite",
|
|
27
|
-
fallback: "gemini-2.0-flash-exp",
|
|
28
|
-
},
|
|
29
|
-
codex: { model: "gpt-5", fallback: "gpt-5" },
|
|
30
|
-
cursor: { model: "gpt-5", fallback: "gpt-5" },
|
|
31
|
-
};
|
|
32
|
-
const defaults = defaultModels[runnerType];
|
|
33
|
-
// Create runner configuration
|
|
34
|
-
const runnerConfig = {
|
|
35
|
-
validResponses: [
|
|
36
|
-
"question",
|
|
37
|
-
"documentation",
|
|
38
|
-
"transient",
|
|
39
|
-
"planning",
|
|
40
|
-
"code",
|
|
41
|
-
"debugger",
|
|
42
|
-
"orchestrator",
|
|
43
|
-
"user-testing",
|
|
44
|
-
"release",
|
|
45
|
-
],
|
|
46
|
-
cyrusHome: config.cyrusHome,
|
|
47
|
-
model: config.model || defaults.model,
|
|
48
|
-
fallbackModel: defaults.fallback,
|
|
49
|
-
systemPrompt: this.buildAnalysisSystemPrompt(),
|
|
50
|
-
maxTurns: 1,
|
|
51
|
-
timeoutMs: config.timeoutMs || 10000,
|
|
52
|
-
};
|
|
53
|
-
// Initialize the appropriate runner based on type
|
|
54
|
-
this.analysisRunner =
|
|
55
|
-
runnerType === "claude"
|
|
56
|
-
? new SimpleClaudeRunner(runnerConfig)
|
|
57
|
-
: runnerType === "gemini"
|
|
58
|
-
? new SimpleGeminiRunner(runnerConfig)
|
|
59
|
-
: runnerType === "codex"
|
|
60
|
-
? new SimpleCodexRunner(runnerConfig)
|
|
61
|
-
: new SimpleCursorRunner(runnerConfig);
|
|
62
|
-
// Load all predefined procedures from registry
|
|
63
|
-
this.loadPredefinedProcedures();
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Build the system prompt for request analysis and classification
|
|
67
|
-
*/
|
|
68
|
-
buildAnalysisSystemPrompt() {
|
|
69
|
-
return `You are a request classifier for a software agent system.
|
|
70
|
-
|
|
71
|
-
Analyze the Linear issue request and classify it into ONE of these categories:
|
|
72
|
-
|
|
73
|
-
**question**: User is asking a question, seeking information, or requesting explanation.
|
|
74
|
-
- Examples: "How does X work?", "What is the purpose of Y?", "Explain the architecture"
|
|
75
|
-
|
|
76
|
-
**documentation**: User wants documentation, markdown, or comments edited (no code changes).
|
|
77
|
-
- Examples: "Update the README", "Add docstrings to functions", "Fix typos in docs"
|
|
78
|
-
|
|
79
|
-
**transient**: Request involves MCP tools, temporary files, or no codebase interaction.
|
|
80
|
-
- Examples: "Search the web for X", "Generate a diagram", "Use Linear MCP to check issues"
|
|
81
|
-
|
|
82
|
-
**planning**: Request has vague requirements, needs clarification, or asks for an implementation plan.
|
|
83
|
-
- Examples: "Can you help with the authentication system?", "I need to improve performance", "Add a new feature for user management"
|
|
84
|
-
- Use when requirements are unclear, missing details, or user asks for a plan/proposal
|
|
85
|
-
- DO NOT use if the request has clear, specific requirements (use "code" instead)
|
|
86
|
-
- DO NOT use for adding/writing tests, fixing tests, or other test-related work (use "code" instead)
|
|
87
|
-
|
|
88
|
-
**debugger**: User EXPLICITLY requests the full debugging workflow with reproduction and approval.
|
|
89
|
-
- ONLY use this if the user specifically asks for: "debug this with approval workflow", "reproduce the bug first", "show me the root cause before fixing"
|
|
90
|
-
- DO NOT use for regular bug reports - those should use "code"
|
|
91
|
-
- Examples: "Debug this issue and get my approval before fixing", "Reproduce the authentication bug with approval checkpoint"
|
|
92
|
-
|
|
93
|
-
**orchestrator**: User EXPLICITLY requests decomposition into sub-issues with specialized agent delegation.
|
|
94
|
-
- ONLY use this if the user specifically asks for: "break this into sub-issues", "orchestrate this work", "use sub-agents", "delegate to specialized agents"
|
|
95
|
-
- DO NOT use for regular complex work - those should use "code"
|
|
96
|
-
- Examples: "Orchestrate this feature with sub-issues", "Break this down and delegate to specialized agents", "Create sub-tasks for this epic"
|
|
97
|
-
|
|
98
|
-
**code**: Request involves code changes with clear, specific requirements (DEFAULT for most work).
|
|
99
|
-
- Examples: "Fix bug in X", "Add feature Y", "Refactor module Z", "Implement new API endpoint", "Fix the login issue"
|
|
100
|
-
- Use this for ALL standard bug fixes and features with clear requirements
|
|
101
|
-
- Use this for ALL test-related work: "Add unit tests", "Fix failing tests", "Write test coverage", etc.
|
|
102
|
-
- Use this when user explicitly says "Classify as full development", "classify as code", or similar
|
|
103
|
-
|
|
104
|
-
**user-testing**: User EXPLICITLY requests a manual testing or user testing session.
|
|
105
|
-
- ONLY use this if the user specifically asks for: "test this for me", "run a testing session", "perform user testing", "manual testing"
|
|
106
|
-
- Examples: "Test the login flow manually", "Run user testing on the checkout feature", "Help me test this integration"
|
|
107
|
-
- DO NOT use for automated test writing (use "code" instead)
|
|
108
|
-
- This is for interactive, user-guided testing sessions
|
|
109
|
-
|
|
110
|
-
**release**: User EXPLICITLY requests a release, publish, or deployment workflow.
|
|
111
|
-
- ONLY use this if the user specifically asks for: "release", "publish", "deploy to npm", "create a release", "publish packages"
|
|
112
|
-
- Examples: "Release the new version", "Publish to npm", "Create a new release", "Deploy version 1.2.0"
|
|
113
|
-
- DO NOT use for regular code changes that mention versions (use "code" instead)
|
|
114
|
-
- This is for executing the full release/publish workflow
|
|
115
|
-
|
|
116
|
-
IMPORTANT: Respond with ONLY the classification word, nothing else.`;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Load predefined procedures from registry
|
|
120
|
-
*/
|
|
121
|
-
loadPredefinedProcedures() {
|
|
122
|
-
for (const [name, procedure] of Object.entries(PROCEDURES)) {
|
|
123
|
-
this.procedures.set(name, procedure);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Analyze a request and determine which procedure to use
|
|
128
|
-
*/
|
|
129
|
-
async determineRoutine(requestText) {
|
|
130
|
-
try {
|
|
131
|
-
// Classify the request using analysis runner
|
|
132
|
-
const result = await this.analysisRunner.query(`Classify this Linear issue request:\n\n${requestText}`);
|
|
133
|
-
const classification = result.response;
|
|
134
|
-
// Get procedure name for this classification
|
|
135
|
-
const procedureName = getProcedureForClassification(classification);
|
|
136
|
-
// Get procedure definition
|
|
137
|
-
const procedure = this.procedures.get(procedureName);
|
|
138
|
-
if (!procedure) {
|
|
139
|
-
throw new Error(`Procedure "${procedureName}" not found in registry`);
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
classification,
|
|
143
|
-
procedure,
|
|
144
|
-
reasoning: `Classified as "${classification}" → using procedure "${procedureName}"`,
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
catch (error) {
|
|
148
|
-
// Fallback to full-development on error
|
|
149
|
-
this.logger.info("Error during analysis:", error);
|
|
150
|
-
const fallbackProcedure = this.procedures.get("full-development");
|
|
151
|
-
if (!fallbackProcedure) {
|
|
152
|
-
throw new Error("Fallback procedure 'full-development' not found");
|
|
153
|
-
}
|
|
154
|
-
return {
|
|
155
|
-
classification: "code",
|
|
156
|
-
procedure: fallbackProcedure,
|
|
157
|
-
reasoning: `Fallback to full-development due to error: ${error}`,
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Get the next subroutine for a session
|
|
163
|
-
* Returns null if procedure is complete
|
|
164
|
-
*/
|
|
165
|
-
getNextSubroutine(session) {
|
|
166
|
-
const procedureMetadata = session.metadata?.procedure;
|
|
167
|
-
if (!procedureMetadata) {
|
|
168
|
-
// No procedure metadata - session doesn't use procedures
|
|
169
|
-
return null;
|
|
170
|
-
}
|
|
171
|
-
const procedure = this.procedures.get(procedureMetadata.procedureName);
|
|
172
|
-
if (!procedure) {
|
|
173
|
-
this.logger.error(`Procedure "${procedureMetadata.procedureName}" not found`);
|
|
174
|
-
return null;
|
|
175
|
-
}
|
|
176
|
-
const nextIndex = procedureMetadata.currentSubroutineIndex + 1;
|
|
177
|
-
if (nextIndex >= procedure.subroutines.length) {
|
|
178
|
-
// Procedure complete
|
|
179
|
-
return null;
|
|
180
|
-
}
|
|
181
|
-
return procedure.subroutines[nextIndex] ?? null;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Get the current subroutine for a session
|
|
185
|
-
*/
|
|
186
|
-
getCurrentSubroutine(session) {
|
|
187
|
-
const procedureMetadata = session.metadata?.procedure;
|
|
188
|
-
if (!procedureMetadata) {
|
|
189
|
-
return null;
|
|
190
|
-
}
|
|
191
|
-
const procedure = this.procedures.get(procedureMetadata.procedureName);
|
|
192
|
-
if (!procedure) {
|
|
193
|
-
return null;
|
|
194
|
-
}
|
|
195
|
-
const currentIndex = procedureMetadata.currentSubroutineIndex;
|
|
196
|
-
if (currentIndex < 0 || currentIndex >= procedure.subroutines.length) {
|
|
197
|
-
return null;
|
|
198
|
-
}
|
|
199
|
-
return procedure.subroutines[currentIndex] ?? null;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Initialize procedure metadata for a new session
|
|
203
|
-
*/
|
|
204
|
-
initializeProcedureMetadata(session, procedure) {
|
|
205
|
-
if (!session.metadata) {
|
|
206
|
-
session.metadata = {};
|
|
207
|
-
}
|
|
208
|
-
session.metadata.procedure = {
|
|
209
|
-
procedureName: procedure.name,
|
|
210
|
-
currentSubroutineIndex: 0,
|
|
211
|
-
subroutineHistory: [],
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Record subroutine completion and advance to next
|
|
216
|
-
*/
|
|
217
|
-
advanceToNextSubroutine(session, sessionId, result) {
|
|
218
|
-
const procedureMetadata = session.metadata?.procedure;
|
|
219
|
-
if (!procedureMetadata) {
|
|
220
|
-
throw new Error("Cannot advance: session has no procedure metadata");
|
|
221
|
-
}
|
|
222
|
-
const currentSubroutine = this.getCurrentSubroutine(session);
|
|
223
|
-
if (currentSubroutine) {
|
|
224
|
-
// Determine which type of session ID this is
|
|
225
|
-
const isCodexSession = session.codexSessionId !== undefined;
|
|
226
|
-
const isGeminiSession = !isCodexSession && session.geminiSessionId !== undefined;
|
|
227
|
-
// Record completion with the appropriate session ID
|
|
228
|
-
procedureMetadata.subroutineHistory.push({
|
|
229
|
-
subroutine: currentSubroutine.name,
|
|
230
|
-
completedAt: Date.now(),
|
|
231
|
-
claudeSessionId: isGeminiSession || isCodexSession ? null : sessionId,
|
|
232
|
-
geminiSessionId: isGeminiSession ? sessionId : null,
|
|
233
|
-
codexSessionId: isCodexSession ? sessionId : null,
|
|
234
|
-
...(result !== undefined && { result }),
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
// Advance index
|
|
238
|
-
procedureMetadata.currentSubroutineIndex++;
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Get the result from the last completed subroutine in the history.
|
|
242
|
-
* Returns null if there is no history or no result stored.
|
|
243
|
-
*/
|
|
244
|
-
getLastSubroutineResult(session) {
|
|
245
|
-
const procedureMetadata = session.metadata?.procedure;
|
|
246
|
-
if (!procedureMetadata) {
|
|
247
|
-
return null;
|
|
248
|
-
}
|
|
249
|
-
const history = procedureMetadata.subroutineHistory;
|
|
250
|
-
if (history.length === 0) {
|
|
251
|
-
return null;
|
|
252
|
-
}
|
|
253
|
-
return history[history.length - 1]?.result ?? null;
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Check if procedure is complete
|
|
257
|
-
*/
|
|
258
|
-
isProcedureComplete(session) {
|
|
259
|
-
return this.getNextSubroutine(session) === null;
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Register a custom procedure
|
|
263
|
-
*/
|
|
264
|
-
registerProcedure(procedure) {
|
|
265
|
-
this.procedures.set(procedure.name, procedure);
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Get procedure by name
|
|
269
|
-
*/
|
|
270
|
-
getProcedure(name) {
|
|
271
|
-
return this.procedures.get(name);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
//# sourceMappingURL=ProcedureAnalyzer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProcedureAnalyzer.js","sourceRoot":"","sources":["../../src/procedures/ProcedureAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/procedures/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
package/dist/procedures/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/procedures/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|