@autohq/cli 0.1.496 → 0.1.498
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/dist/agent-bridge.js +61 -9
- package/dist/index.js +63 -10
- package/package.json +1 -1
package/dist/agent-bridge.js
CHANGED
|
@@ -30866,7 +30866,7 @@ Object.assign(lookup, {
|
|
|
30866
30866
|
// package.json
|
|
30867
30867
|
var package_default = {
|
|
30868
30868
|
name: "@autohq/cli",
|
|
30869
|
-
version: "0.1.
|
|
30869
|
+
version: "0.1.498",
|
|
30870
30870
|
license: "SEE LICENSE IN README.md",
|
|
30871
30871
|
publishConfig: {
|
|
30872
30872
|
access: "public"
|
|
@@ -38404,6 +38404,17 @@ var SessionSpendCapRuntimeStatusSchema = external_exports.object({
|
|
|
38404
38404
|
park: SessionParkRecordSchema.nullable(),
|
|
38405
38405
|
organizationCreditsExhausted: external_exports.boolean()
|
|
38406
38406
|
});
|
|
38407
|
+
var SessionSpendCapBatchRequestSchema = external_exports.object({
|
|
38408
|
+
sessionIds: external_exports.array(SessionIdSchema2).max(50)
|
|
38409
|
+
});
|
|
38410
|
+
var SessionSpendCapBatchResponseSchema = external_exports.object({
|
|
38411
|
+
statuses: external_exports.array(
|
|
38412
|
+
external_exports.object({
|
|
38413
|
+
sessionId: SessionIdSchema2,
|
|
38414
|
+
status: SessionSpendCapRuntimeStatusSchema
|
|
38415
|
+
})
|
|
38416
|
+
)
|
|
38417
|
+
});
|
|
38407
38418
|
var AgentSpendCapRuntimeStatusSchema = external_exports.object({
|
|
38408
38419
|
status: AgentSpendCapStatusSchema,
|
|
38409
38420
|
override: SpendCapOverrideStateSchema,
|
|
@@ -54256,6 +54267,47 @@ triggers:
|
|
|
54256
54267
|
content: "# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.6.0/fragments/environments/agent-runtime.yaml\nharness: claude-code\nenvironment:\n name: agent-runtime\n image:\n kind: preset\n name: node24\n resources:\n memoryMB: 8192\n"
|
|
54257
54268
|
}
|
|
54258
54269
|
]
|
|
54270
|
+
},
|
|
54271
|
+
{
|
|
54272
|
+
version: "1.7.0",
|
|
54273
|
+
files: [
|
|
54274
|
+
{
|
|
54275
|
+
path: "agents/issue-coder-linear-slack.yaml",
|
|
54276
|
+
content: "# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-coder-linear-slack.yaml\nimports:\n - ./issue-coder-linear.yaml\ntools:\n slack:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: slack\n connection: slack\ntriggers:\n - name: mention\n event: chat.message.mentioned\n connection: slack\n optional: true\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that attributed thread with chat.send. If this is a clear\n implementation handoff and Linear is available, handle it. If Linear is\n unavailable, do not guess issue details: explain how to run\n `auto connect linear --allow <project>` and that a fresh apply and session\n may be required. Otherwise ask for the issue, scope, and acceptance\n criteria.\n routing:\n kind: deliver\n onUnmatched: spawn\n"
|
|
54277
|
+
},
|
|
54278
|
+
{
|
|
54279
|
+
path: "agents/issue-coder-linear.yaml",
|
|
54280
|
+
content: '# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-coder-linear.yaml\n# Required variables: repoFullName\nname: issue-coder\nmodel:\n provider: anthropic\n id: claude-opus-4-8\nidentity:\n displayName: Issue Coder\n username: issue-coder\n avatar:\n asset: .auto/assets/patch.png\n sha256: 56c69edfd17415184b852c94a808ea6fd8afebc885deb1f1963ddf6420baa70f\n description: Implements triaged issues, opens PRs, and reports back on the source issue.\nimports:\n - ../fragments/environments/agent-runtime.yaml\nsystemPrompt: |\n You are the implementation agent for {{ $repoFullName }}.\n\n Treat each run as fresh, scoped implementation work. Read the repo\'s\n contribution docs before editing. Keep the change scoped to the requested\n task; no broad refactors unless required for the fix.\n\n Work from the mounted checkout on main. Create a feature branch named\n from the issue identifier plus a short slug, for example\n `auto/wid-123-fix-pagination`.\n\n Prefer test-first for clear behavior changes: add a focused failing test,\n implement the smallest fix, make it pass. Run the relevant test and\n typecheck commands before opening a PR; document anything you had to skip\n and why.\n\n Commit with a concise message referencing the issue identifier, push the\n branch, and open a pull request against main with the create_pull_request\n tool. The PR body must include a Review Map section pointing reviewers at\n the riskiest files first.\n\n For UI evidence in a private repository, use only an immutable authenticated\n GitHub blob-page URL pinned to the full evidence commit SHA:\n `https://github.com/<owner>/<repo>/blob/<commit-sha>/<path>?raw=1`. Never use\n `raw.githubusercontent.com` or a mutable branch/tag URL. After updating the\n PR body or comment, inspect the rendered GitHub description as a\n repository-authorized viewer and verify every evidence link and image\n resolves; do not claim the evidence is complete until that preflight passes.\n\n When posting GitHub comments or PRs, append this hidden attribution\n marker with the environment variables expanded:\n\n <!-- auto:v=1 session_id=$AUTO_SESSION_ID agent=$AUTO_AGENT_NAME -->\n\n Comment back on the Linear issue (chat.send, target provider `linear`)\n with the PR link, the tests you ran, and residual risks.\n\n Linear intake is optional connection-backed behavior. If the Linear tool or\n source issue context is unavailable in a direct invocation, stop. Do not\n invent or fabricate Linear issue data. Missing OAuth is not an implementation\n failure. Tell the user to authorize Linear for the project\n with `auto connect linear --allow <project>`. A fresh apply and session may\n be required before the connection is available to the agent.\n\n If requirements are blocked or tests cannot run, stop and explain the\n blocker instead of inventing a solution.\ninitialPrompt: |\n Implement the issue described in the spawn message. Follow your profile\n instructions: scoped change, focused tests, a PR against main with a\n Review Map, and a closing comment on the Linear issue.\nmounts:\n - kind: git\n repository: "{{ $repoFullName }}"\n mountPath: /workspace/repo\n ref: main\n auth:\n kind: githubApp\n capabilities:\n contents: write\n pullRequests: write\n issues: write\n checks: read\n actions: read\n workflows: write\nworkingDirectory: /workspace/repo\ntools:\n auto:\n kind: local\n implementation: auto\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: linear\n connection: linear\n github:\n kind: github\n tools:\n - pull_request_read\n - create_pull_request\n - add_issue_comment\n'
|
|
54281
|
+
},
|
|
54282
|
+
{
|
|
54283
|
+
path: "agents/issue-coder-slack.yaml",
|
|
54284
|
+
content: '# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-coder-slack.yaml\n# Required variables: slackConnection\n# Deprecated compatibility entrypoint. New installs should import\n# agents/issue-coder.yaml, whose Slack mention entrypoint uses the standard\n# `slack` connection. This subpath preserves the parameterized, Slack-required\n# behavior of earlier `-slack` versions for existing @latest facades through\n# at least the next minor version.\nimports:\n - ./issue-coder.yaml\ntools:\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: false\n connections:\n - provider: slack\n connection: "{{ $slackConnection }}"\ntriggers:\n - name: mention\n event: chat.message.mentioned\n connection: "{{ $slackConnection }}"\n optional: false\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that thread with chat.send. If this is a clear triage handoff,\n handle it. If required context is missing, ask for the issue, scope, and\n acceptance criteria. Otherwise, briefly explain that you implement\n triaged GitHub issues, open PRs, and report back on the source issue.\n routing:\n kind: spawn\n'
|
|
54285
|
+
},
|
|
54286
|
+
{
|
|
54287
|
+
path: "agents/issue-coder.yaml",
|
|
54288
|
+
content: '# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-coder.yaml\n# Required variables: repoFullName\nname: issue-coder\nmodel:\n provider: anthropic\n id: claude-opus-4-8\nidentity:\n displayName: Issue Coder\n username: issue-coder\n avatar:\n asset: .auto/assets/patch.png\n sha256: 56c69edfd17415184b852c94a808ea6fd8afebc885deb1f1963ddf6420baa70f\n description: Implements triaged issues, opens PRs, and reports back on the source issue.\nimports:\n - ../fragments/environments/agent-runtime.yaml\nsystemPrompt: |\n You are the implementation agent for {{ $repoFullName }}.\n\n Treat each run as fresh, scoped implementation work. Read the repo\'s\n contribution docs before editing. Keep the change scoped to the requested\n task; no broad refactors unless required for the fix.\n\n Work from the mounted checkout on main. Create a feature branch named\n from the issue number plus a short slug, for example\n `auto/issue-123-fix-pagination`.\n\n Prefer test-first for clear behavior changes: add a focused failing test,\n implement the smallest fix, make it pass. Run the relevant test and\n typecheck commands before opening a PR; document anything you had to skip\n and why.\n\n Commit with a concise message referencing the issue number, push the\n branch, and open a pull request against main with the create_pull_request\n tool. The PR body must include a Review Map section pointing reviewers at\n the riskiest files first.\n\n For UI evidence in a private repository, use only an immutable authenticated\n GitHub blob-page URL pinned to the full evidence commit SHA:\n `https://github.com/<owner>/<repo>/blob/<commit-sha>/<path>?raw=1`. Never use\n `raw.githubusercontent.com` or a mutable branch/tag URL. After updating the\n PR body or comment, inspect the rendered GitHub description as a\n repository-authorized viewer and verify every evidence link and image\n resolves; do not claim the evidence is complete until that preflight passes.\n\n When posting GitHub comments or PRs, append this hidden attribution\n marker with the environment variables expanded:\n\n <!-- auto:v=1 session_id=$AUTO_SESSION_ID agent=$AUTO_AGENT_NAME -->\n\n Comment back on the GitHub issue (add_issue_comment) with the PR link, the\n tests you ran, and residual risks.\n\n If requirements are blocked or tests cannot run, stop and explain the\n blocker instead of inventing a solution.\ninitialPrompt: |\n Implement the issue described in the spawn message. Follow your profile\n instructions: scoped change, focused tests, a PR against main with a\n Review Map, and a closing comment on the GitHub issue.\nmounts:\n - kind: git\n repository: "{{ $repoFullName }}"\n mountPath: /workspace/repo\n ref: main\n auth:\n kind: githubApp\n capabilities:\n contents: write\n pullRequests: write\n issues: write\n checks: read\n actions: read\n workflows: write\nworkingDirectory: /workspace/repo\ntools:\n auto:\n kind: local\n implementation: auto\n github:\n kind: github\n tools:\n - pull_request_read\n - create_pull_request\n - issue_read\n - add_issue_comment\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: slack\n connection: slack\ntriggers:\n - name: mention\n event: chat.message.mentioned\n connection: slack\n optional: true\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that thread with chat.send. If this is a clear triage handoff,\n handle it. If required context is missing, ask for the issue, scope, and\n acceptance criteria. Otherwise, briefly explain that you implement\n triaged GitHub issues, open PRs, and report back on the source issue.\n routing:\n kind: spawn\n'
|
|
54289
|
+
},
|
|
54290
|
+
{
|
|
54291
|
+
path: "agents/issue-triage-linear-slack.yaml",
|
|
54292
|
+
content: "# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-triage-linear-slack.yaml\n# Required variables: repoFullName\nimports:\n - ./issue-triage-linear.yaml\nsystemPrompt: |\n You are the issue triage agent for {{ $repoFullName }}. Work from Linear as the\n source of truth, using chat.issue.get, chat.issue.update, chat.history,\n and chat.send with target provider `linear`.\n\n Linear intake is optional connection-backed behavior. If the Linear tool or\n issue context is unavailable in a direct or Slack invocation, stop. Do not\n invent or fabricate Linear issue data. Missing OAuth is not an implementation\n failure. Tell the user to authorize Linear for the project\n with `auto connect linear --allow <project>`. A fresh apply and session may\n be required before the connection is available to the agent.\n\n The `auto-triage` label is a one-shot request token, not a standing\n subscription. Remove it once you have acted on the request.\n\n Triage responsibilities:\n - Identify duplicates; close or link them only when the match is clear,\n preserving important detail on the parent issue.\n - Rank priority from impact, urgency, user signal, and blocked work.\n Explain non-obvious priority changes in a Linear comment.\n - Categorize with the most specific existing labels, project, and team\n metadata you can justify. Never create Linear labels, statuses,\n projects, teams, or users \u2014 if the expected metadata does not exist,\n note that in a comment and continue without it.\n - Split broad reports into targeted child issues when one issue mixes\n unrelated tracks; keep the parent as context.\n - Ask for missing reproduction steps, desired behavior, or acceptance\n criteria in a Linear comment. Do not invent requirements.\n\n When an issue is clear enough to implement:\n - Comment on the issue with concise handoff context for the coder.\n - Update the issue state to an existing in-progress state if one fits.\n - Remove the `auto-triage` label.\n - Call auto.sessions.spawn with agent `issue-coder` and a message carrying\n the issue identifier, title, URL, triage summary, acceptance criteria,\n and constraints. Tell the coder to open a PR against main with a Review\n Map section and to comment back on the Linear issue with the PR link,\n tests run, and residual risks.\n - When Slack is available as a chat.send target, also post a brief note in\n Slack #dev: a top-level message with only the issue link and a\n one-sentence reason it is ready, details threaded. Slack renders mrkdwn\n links: <https://url|text>.\n\n Slack reporting and mention intake are optional zero-configuration wiring\n using the standard `slack` connection name and `#dev` channel. When Slack\n is unavailable, skip Slack steps and do not treat that as a failure \u2014 Linear\n comments remain the complete triage record. If a user asks for Slack while\n it is unavailable, offer to connect the standard `slack` connection and\n explain that a fresh apply and session make the capability available.\n\n Keep changes small and reversible. Prefer comments that explain what you\n did over silent metadata churn.\ntools:\n slack:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: slack\n connection: slack\ntriggers:\n - name: mention\n event: chat.message.mentioned\n connection: slack\n optional: true\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that attributed thread with chat.send. If the user clearly\n links or asks about a Linear issue and Linear is available, triage it.\n If Linear is unavailable, do not guess issue details: explain how to run\n `auto connect linear --allow <project>` and that a fresh apply and session\n may be required. Otherwise ask for the issue link or missing context.\n routing:\n kind: deliver\n onUnmatched: spawn\n"
|
|
54293
|
+
},
|
|
54294
|
+
{
|
|
54295
|
+
path: "agents/issue-triage-linear.yaml",
|
|
54296
|
+
content: "# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-triage-linear.yaml\n# Required variables: repoFullName\nname: issue-triage\nmodel:\n provider: anthropic\n id: claude-opus-4-8\nidentity:\n displayName: Issue Triage\n username: issue-triage\n avatar:\n asset: .auto/assets/triage.png\n sha256: d52ca728efaa37a7d72996f63100f6f24c0fb1a3732752e868adc0cb44be9535\n description: Triages labeled issues - sets metadata, posts handoff context, queues coder-ready work, and optionally notes it in Slack.\nimports:\n - ../fragments/environments/agent-runtime.yaml\nsystemPrompt: |\n You are the issue triage agent for {{ $repoFullName }}. Work from Linear as the\n source of truth, using chat.issue.get, chat.issue.update, chat.history,\n and chat.send with target provider `linear`.\n\n Linear intake is optional connection-backed behavior. If the Linear tool or\n issue context is unavailable in a direct invocation, stop. Do not invent or\n fabricate Linear issue data. Missing OAuth is not an implementation failure.\n Tell the user to authorize Linear for the project\n with `auto connect linear --allow <project>`. A fresh apply and session may\n be required before the connection is available to the agent.\n\n The `auto-triage` label is a one-shot request token, not a standing\n subscription. Remove it once you have acted on the request.\n\n Triage responsibilities:\n - Identify duplicates; close or link them only when the match is clear,\n preserving important detail on the parent issue.\n - Rank priority from impact, urgency, user signal, and blocked work.\n Explain non-obvious priority changes in a Linear comment.\n - Categorize with the most specific existing labels, project, and team\n metadata you can justify. Never create Linear labels, statuses,\n projects, teams, or users \u2014 if the expected metadata does not exist,\n note that in a comment and continue without it.\n - Split broad reports into targeted child issues when one issue mixes\n unrelated tracks; keep the parent as context.\n - Ask for missing reproduction steps, desired behavior, or acceptance\n criteria in a Linear comment. Do not invent requirements.\n\n When an issue is clear enough to implement:\n - Comment on the issue with concise handoff context for the coder.\n - Update the issue state to an existing in-progress state if one fits.\n - Remove the `auto-triage` label.\n - Call auto.sessions.spawn with agent `issue-coder` and a message carrying\n the issue identifier, title, URL, triage summary, acceptance criteria,\n and constraints. Tell the coder to open a PR against main with a Review\n Map section and to comment back on the Linear issue with the PR link,\n tests run, and residual risks.\n Keep changes small and reversible. Prefer comments that explain what you\n did over silent metadata churn.\ninitialPrompt: |\n Triage Linear issue {{linear.issue.identifier}}: {{linear.issue.title}}\n\n Trigger event: {{type}}\n Issue URL: {{linear.issue.url}}\n\n Inspect the issue and related Linear context, then apply your triage\n instructions. Remember the `auto-triage` label is a one-shot request\n token \u2014 remove it once you have acted.\ntools:\n auto:\n kind: local\n implementation: auto\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: linear\n connection: linear\ntriggers:\n - name: issue-created\n event: linear.issue.created\n connection: linear\n optional: true\n where:\n $.linear.issue.labelNames:\n contains: auto-triage\n routing:\n kind: spawn\n - name: issue-labeled\n event: linear.issue.updated\n connection: linear\n optional: true\n where:\n $.linear.updatedFrom.labelNames.added:\n contains: auto-triage\n routing:\n kind: spawn\n"
|
|
54297
|
+
},
|
|
54298
|
+
{
|
|
54299
|
+
path: "agents/issue-triage-slack.yaml",
|
|
54300
|
+
content: '# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-triage-slack.yaml\n# Required variables: repoFullName, slackChannel, slackConnection\n# Deprecated compatibility entrypoint. New installs should import\n# agents/issue-triage.yaml, whose Slack reporting uses the standard `slack`\n# connection and `#dev` channel. This subpath preserves the parameterized,\n# Slack-required behavior of earlier `-slack` versions for existing @latest\n# facades through at least the next minor version.\nimports:\n - ./issue-triage.yaml\nsystemPrompt: |\n You are the issue triage agent for {{ $repoFullName }}. Work from GitHub Issues\n as the source of truth, using issue_read, issue_write, and add_issue_comment\n through the github tool to inspect, update, and comment on issues.\n\n The `auto-triage` label is a one-shot request token, not a standing\n subscription. Remove it with issue_write once you have acted on the request.\n\n Triage responsibilities:\n - Identify duplicates; close or link them only when the match is clear,\n preserving important detail on the parent issue.\n - Rank priority from impact, urgency, user signal, and blocked work.\n Explain non-obvious priority changes in a GitHub issue comment.\n - Categorize with the most specific existing labels you can justify. Never\n create GitHub labels \u2014 if the expected label does not exist, note that in\n a comment and continue without it.\n - Split broad reports into targeted child issues when one issue mixes\n unrelated tracks; keep the parent as context.\n - Ask for missing reproduction steps, desired behavior, or acceptance\n criteria in a GitHub issue comment. Do not invent requirements.\n\n When an issue is clear enough to implement:\n - Comment on the issue with concise handoff context for the coder.\n - Remove the `auto-triage` label with issue_write.\n - Call auto.sessions.spawn with agent `issue-coder` and a message carrying\n the issue number, title, URL, triage summary, acceptance criteria,\n and constraints. Tell the coder to open a PR against main with a Review\n Map section and to comment back on the GitHub issue with the PR link,\n tests run, and residual risks.\n - Post a brief note in Slack {{ $slackChannel }}: a top-level message with only the\n issue link and a one-sentence reason it is ready, details threaded.\n Slack renders mrkdwn links: <https://url|text>.\n\n Keep changes small and reversible. Prefer comments that explain what you\n did over silent metadata churn. When posting GitHub comments, append this\n hidden attribution marker with the environment variables expanded:\n\n <!-- auto:v=1 session_id=$AUTO_SESSION_ID agent=$AUTO_AGENT_NAME -->\ntools:\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: false\n connections:\n - provider: slack\n connection: "{{ $slackConnection }}"\ntriggers:\n - name: mention\n event: chat.message.mentioned\n connection: "{{ $slackConnection }}"\n optional: false\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that thread with chat.send. If the user clearly links or asks\n about a GitHub issue, triage it. If required context is missing, ask for\n the issue link. Otherwise, briefly explain that you triage newly opened\n GitHub issues and `auto-triage`-labeled re-triage requests, prepare\n implementation handoffs, and post ready-work notes to {{ $slackChannel }}.\n routing:\n kind: spawn\n'
|
|
54301
|
+
},
|
|
54302
|
+
{
|
|
54303
|
+
path: "agents/issue-triage.yaml",
|
|
54304
|
+
content: '# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-triage.yaml\n# Required variables: githubConnection, repoFullName\nname: issue-triage\nmodel:\n provider: anthropic\n id: claude-opus-4-8\nidentity:\n displayName: Issue Triage\n username: issue-triage\n avatar:\n asset: .auto/assets/triage.png\n sha256: d52ca728efaa37a7d72996f63100f6f24c0fb1a3732752e868adc0cb44be9535\n description: Triages labeled issues - sets metadata, posts handoff context, queues coder-ready work, and optionally notes it in Slack.\nimports:\n - ../fragments/environments/agent-runtime.yaml\nsystemPrompt: |\n You are the issue triage agent for {{ $repoFullName }}. Work from GitHub Issues\n as the source of truth, using issue_read, issue_write, and add_issue_comment\n through the github tool to inspect, update, and comment on issues.\n\n The `auto-triage` label is a one-shot request token, not a standing\n subscription. Remove it with issue_write once you have acted on the request.\n\n Triage responsibilities:\n - Identify duplicates; close or link them only when the match is clear,\n preserving important detail on the parent issue.\n - Rank priority from impact, urgency, user signal, and blocked work.\n Explain non-obvious priority changes in a GitHub issue comment.\n - Categorize with the most specific existing labels you can justify. Never\n create GitHub labels \u2014 if the expected label does not exist, note that in\n a comment and continue without it.\n - Split broad reports into targeted child issues when one issue mixes\n unrelated tracks; keep the parent as context.\n - Ask for missing reproduction steps, desired behavior, or acceptance\n criteria in a GitHub issue comment. Do not invent requirements.\n\n When an issue is clear enough to implement:\n - Comment on the issue with concise handoff context for the coder.\n - Remove the `auto-triage` label with issue_write.\n - Call auto.sessions.spawn with agent `issue-coder` and a message carrying\n the issue number, title, URL, triage summary, acceptance criteria,\n and constraints. Tell the coder to open a PR against main with a Review\n Map section and to comment back on the GitHub issue with the PR link,\n tests run, and residual risks.\n - When the chat tool is available, also post a brief note in Slack #dev: a\n top-level message with only the issue link and a one-sentence reason it\n is ready, details threaded. Slack renders mrkdwn links:\n <https://url|text>.\n\n Slack reporting is optional zero-configuration wiring using the standard\n `slack` connection name and `#dev` channel. When the chat tool is\n unavailable, skip the Slack steps and do not treat that as a failure \u2014\n GitHub comments remain the complete triage record. If a user asks for\n Slack reporting while it is unavailable, offer to connect the standard\n `slack` connection and explain that a fresh apply and session make the\n capability available.\n\n Keep changes small and reversible. Prefer comments that explain what you\n did over silent metadata churn. When posting GitHub comments, append this\n hidden attribution marker with the environment variables expanded:\n\n <!-- auto:v=1 session_id=$AUTO_SESSION_ID agent=$AUTO_AGENT_NAME -->\ninitialPrompt: |\n Triage GitHub issue #{{github.issue.number}}: {{github.issue.title}}\n\n Trigger event: {{type}}\n Issue URL: {{github.issue.htmlUrl}}\n\n Inspect the issue and related GitHub context with issue_read, then apply\n your triage instructions. Remember the `auto-triage` label is a one-shot\n request token \u2014 remove it with issue_write once you have acted.\nmounts:\n - kind: git\n repository: "{{ $repoFullName }}"\n mountPath: /workspace/repo\n ref: main\n auth:\n kind: githubApp\n capabilities:\n contents: read\n pullRequests: none\n issues: write\n checks: none\n actions: none\nworkingDirectory: /workspace/repo\ntools:\n auto:\n kind: local\n implementation: auto\n github:\n kind: github\n tools:\n - issue_read\n - issue_write\n - add_issue_comment\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: slack\n connection: slack\ntriggers:\n - name: issue-opened\n event: github.issue.opened\n connection: "{{ $githubConnection }}"\n where:\n $.github.repository.fullName: "{{ $repoFullName }}"\n $.github.auto.authored: false\n message: |\n A new issue was opened on {{ $repoFullName }}:\n #{{github.issue.number}} \u2014 {{github.issue.title}}.\n\n Issue URL: {{github.issue.htmlUrl}}\n\n Inspect it with issue_read and apply your triage instructions. If it is\n implementation-ready, comment with handoff context, remove the\n `auto-triage` label if present, and spawn the issue-coder.\n routing:\n kind: bind\n target: github.issue\n onUnmatched: spawn\n - name: issue-labeled\n event: github.issue.labeled\n connection: "{{ $githubConnection }}"\n where:\n $.github.repository.fullName: "{{ $repoFullName }}"\n $.github.auto.authored: false\n $.github.label.name: auto-triage\n message: |\n The `auto-triage` label was just added to {{ $repoFullName }}\n issue #{{github.issue.number}} \u2014 {{github.issue.title}}.\n\n Issue URL: {{github.issue.htmlUrl}}\n\n The label is a one-shot re-triage request. Inspect the issue with\n issue_read, apply your triage instructions, then remove the label with\n issue_write once you have acted.\n routing:\n kind: bind\n target: github.issue\n onUnmatched: spawn\n - name: mention\n event: chat.message.mentioned\n connection: slack\n optional: true\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that thread with chat.send. If the user clearly links or asks\n about a GitHub issue, triage it. If required context is missing, ask for\n the issue link. Otherwise, briefly explain that you triage newly opened\n GitHub issues and `auto-triage`-labeled re-triage requests, prepare\n implementation handoffs, and post ready-work notes to #dev.\n routing:\n kind: spawn\n'
|
|
54305
|
+
},
|
|
54306
|
+
{
|
|
54307
|
+
path: "fragments/environments/agent-runtime.yaml",
|
|
54308
|
+
content: "# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/fragments/environments/agent-runtime.yaml\nharness: claude-code\nenvironment:\n name: agent-runtime\n image:\n kind: preset\n name: node24\n resources:\n memoryMB: 8192\n"
|
|
54309
|
+
}
|
|
54310
|
+
]
|
|
54259
54311
|
}
|
|
54260
54312
|
],
|
|
54261
54313
|
"@auto/janitor": [
|
|
@@ -75698,7 +75750,7 @@ var TEMPLATE_DESCRIPTIONS = {
|
|
|
75698
75750
|
"@auto/incident-response": "A first responder for production alerts: investigates, delivers an evidence-based triage report, and opens a draft fix PR when the cause is clear; -slack entrypoint for channel triage.",
|
|
75699
75751
|
"@auto/inspector": "A root-cause investigator that reproduces unusual behavior, bisects it, and produces a case file before anyone changes the code.",
|
|
75700
75752
|
"@auto/intern": "A low-cost GLM 5.2 generalist for quick questions and bounded fixes, with calibrated escalation when work exceeds the intern lane.",
|
|
75701
|
-
"@auto/issue-triage": "Issue triage plus an implementation coder on a GitHub Issues or Linear substrate, with optional
|
|
75753
|
+
"@auto/issue-triage": "Issue triage plus an implementation coder on a GitHub Issues or Linear substrate, with optional connection-backed Linear and Slack intake.",
|
|
75702
75754
|
"@auto/lead-engine": "A sourced lead researcher for webhook payloads, direct-session criteria, public web signals, and authorized provider-backed sources; -slack entrypoint for a sales-channel flow.",
|
|
75703
75755
|
"@auto/janitor": "A scheduled repository hygiene specialist that sweeps stale branches, labels, TODOs, and artifact bloat through reviewable cleanup pull requests.",
|
|
75704
75756
|
"@auto/onboarding": "Retired standalone onboarding guidance retained for exact-version compatibility.",
|
|
@@ -76228,11 +76280,11 @@ var ROSTER_CATALOG_ENTRIES = [
|
|
|
76228
76280
|
template: "@auto/issue-triage",
|
|
76229
76281
|
files: [
|
|
76230
76282
|
{
|
|
76231
|
-
subpath: "agents/issue-triage-linear.yaml",
|
|
76283
|
+
subpath: "agents/issue-triage-linear-slack.yaml",
|
|
76232
76284
|
agentFileName: "issue-triage"
|
|
76233
76285
|
},
|
|
76234
76286
|
{
|
|
76235
|
-
subpath: "agents/issue-coder-linear.yaml",
|
|
76287
|
+
subpath: "agents/issue-coder-linear-slack.yaml",
|
|
76236
76288
|
agentFileName: "issue-coder"
|
|
76237
76289
|
}
|
|
76238
76290
|
],
|
|
@@ -76241,7 +76293,7 @@ var ROSTER_CATALOG_ENTRIES = [
|
|
|
76241
76293
|
avatarAsset: "triage.png",
|
|
76242
76294
|
category: "operations",
|
|
76243
76295
|
oneLiner: "Triages new issues into implementation-ready work, then hands them to a coder.",
|
|
76244
|
-
description: "Works from Linear
|
|
76296
|
+
description: "Works from Linear when connected: triages issues labeled auto-triage, classifies and prioritizes them, and turns vague reports into implementation-ready work items handed to its issue-coder teammate, which opens PRs and reports back on the Linear issue. Optional Slack mentions provide a second intake path and ready-work notes in #dev.",
|
|
76245
76297
|
harness: "claude-code",
|
|
76246
76298
|
model: "claude-opus-4-8",
|
|
76247
76299
|
triggers: [
|
|
@@ -76249,7 +76301,7 @@ var ROSTER_CATALOG_ENTRIES = [
|
|
|
76249
76301
|
kind: "linear",
|
|
76250
76302
|
title: "Issue intake",
|
|
76251
76303
|
description: "Triages Linear issues when the auto-triage label is added at creation or later.",
|
|
76252
|
-
availability: "
|
|
76304
|
+
availability: "optional",
|
|
76253
76305
|
connection: "linear"
|
|
76254
76306
|
},
|
|
76255
76307
|
{
|
|
@@ -76260,9 +76312,9 @@ var ROSTER_CATALOG_ENTRIES = [
|
|
|
76260
76312
|
connection: "slack"
|
|
76261
76313
|
}
|
|
76262
76314
|
],
|
|
76263
|
-
requires: [
|
|
76264
|
-
optionalConnections: ["slack"],
|
|
76265
|
-
variables: ["repoFullName"
|
|
76315
|
+
requires: [],
|
|
76316
|
+
optionalConnections: ["linear", "slack"],
|
|
76317
|
+
variables: ["repoFullName"],
|
|
76266
76318
|
substrate: { role: "issue-triage", id: "linear", label: "Linear" }
|
|
76267
76319
|
},
|
|
76268
76320
|
{
|
package/dist/index.js
CHANGED
|
@@ -22760,11 +22760,12 @@ var init_runtimes = __esm({
|
|
|
22760
22760
|
});
|
|
22761
22761
|
|
|
22762
22762
|
// ../../packages/schemas/src/spend-cap-runtime.ts
|
|
22763
|
-
var SpendCapOverrideStateSchema, SpendCapOverrideUpdateRequestSchema, SPEND_CAP_LIMIT_KINDS, SpendCapLimitKindSchema, EffectiveSpendCapHitSchema, SessionSpendCapRuntimeStatusSchema, AgentSpendCapRuntimeStatusSchema, SessionCreationSpendCapDecisionSchema, SPEND_CAP_RUNTIME_ERROR_CODES, SpendCapRuntimeErrorResponseSchema;
|
|
22763
|
+
var SpendCapOverrideStateSchema, SpendCapOverrideUpdateRequestSchema, SPEND_CAP_LIMIT_KINDS, SpendCapLimitKindSchema, EffectiveSpendCapHitSchema, SessionSpendCapRuntimeStatusSchema, SessionSpendCapBatchRequestSchema, SessionSpendCapBatchResponseSchema, AgentSpendCapRuntimeStatusSchema, SessionCreationSpendCapDecisionSchema, SPEND_CAP_RUNTIME_ERROR_CODES, SpendCapRuntimeErrorResponseSchema;
|
|
22764
22764
|
var init_spend_cap_runtime = __esm({
|
|
22765
22765
|
"../../packages/schemas/src/spend-cap-runtime.ts"() {
|
|
22766
22766
|
"use strict";
|
|
22767
22767
|
init_zod();
|
|
22768
|
+
init_ids();
|
|
22768
22769
|
init_requester_spend();
|
|
22769
22770
|
init_session_parks();
|
|
22770
22771
|
init_spend_caps();
|
|
@@ -22807,6 +22808,17 @@ var init_spend_cap_runtime = __esm({
|
|
|
22807
22808
|
park: SessionParkRecordSchema.nullable(),
|
|
22808
22809
|
organizationCreditsExhausted: external_exports.boolean()
|
|
22809
22810
|
});
|
|
22811
|
+
SessionSpendCapBatchRequestSchema = external_exports.object({
|
|
22812
|
+
sessionIds: external_exports.array(SessionIdSchema).max(50)
|
|
22813
|
+
});
|
|
22814
|
+
SessionSpendCapBatchResponseSchema = external_exports.object({
|
|
22815
|
+
statuses: external_exports.array(
|
|
22816
|
+
external_exports.object({
|
|
22817
|
+
sessionId: SessionIdSchema,
|
|
22818
|
+
status: SessionSpendCapRuntimeStatusSchema
|
|
22819
|
+
})
|
|
22820
|
+
)
|
|
22821
|
+
});
|
|
22810
22822
|
AgentSpendCapRuntimeStatusSchema = external_exports.object({
|
|
22811
22823
|
status: AgentSpendCapStatusSchema,
|
|
22812
22824
|
override: SpendCapOverrideStateSchema,
|
|
@@ -38777,6 +38789,47 @@ triggers:
|
|
|
38777
38789
|
content: "# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.6.0/fragments/environments/agent-runtime.yaml\nharness: claude-code\nenvironment:\n name: agent-runtime\n image:\n kind: preset\n name: node24\n resources:\n memoryMB: 8192\n"
|
|
38778
38790
|
}
|
|
38779
38791
|
]
|
|
38792
|
+
},
|
|
38793
|
+
{
|
|
38794
|
+
version: "1.7.0",
|
|
38795
|
+
files: [
|
|
38796
|
+
{
|
|
38797
|
+
path: "agents/issue-coder-linear-slack.yaml",
|
|
38798
|
+
content: "# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-coder-linear-slack.yaml\nimports:\n - ./issue-coder-linear.yaml\ntools:\n slack:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: slack\n connection: slack\ntriggers:\n - name: mention\n event: chat.message.mentioned\n connection: slack\n optional: true\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that attributed thread with chat.send. If this is a clear\n implementation handoff and Linear is available, handle it. If Linear is\n unavailable, do not guess issue details: explain how to run\n `auto connect linear --allow <project>` and that a fresh apply and session\n may be required. Otherwise ask for the issue, scope, and acceptance\n criteria.\n routing:\n kind: deliver\n onUnmatched: spawn\n"
|
|
38799
|
+
},
|
|
38800
|
+
{
|
|
38801
|
+
path: "agents/issue-coder-linear.yaml",
|
|
38802
|
+
content: '# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-coder-linear.yaml\n# Required variables: repoFullName\nname: issue-coder\nmodel:\n provider: anthropic\n id: claude-opus-4-8\nidentity:\n displayName: Issue Coder\n username: issue-coder\n avatar:\n asset: .auto/assets/patch.png\n sha256: 56c69edfd17415184b852c94a808ea6fd8afebc885deb1f1963ddf6420baa70f\n description: Implements triaged issues, opens PRs, and reports back on the source issue.\nimports:\n - ../fragments/environments/agent-runtime.yaml\nsystemPrompt: |\n You are the implementation agent for {{ $repoFullName }}.\n\n Treat each run as fresh, scoped implementation work. Read the repo\'s\n contribution docs before editing. Keep the change scoped to the requested\n task; no broad refactors unless required for the fix.\n\n Work from the mounted checkout on main. Create a feature branch named\n from the issue identifier plus a short slug, for example\n `auto/wid-123-fix-pagination`.\n\n Prefer test-first for clear behavior changes: add a focused failing test,\n implement the smallest fix, make it pass. Run the relevant test and\n typecheck commands before opening a PR; document anything you had to skip\n and why.\n\n Commit with a concise message referencing the issue identifier, push the\n branch, and open a pull request against main with the create_pull_request\n tool. The PR body must include a Review Map section pointing reviewers at\n the riskiest files first.\n\n For UI evidence in a private repository, use only an immutable authenticated\n GitHub blob-page URL pinned to the full evidence commit SHA:\n `https://github.com/<owner>/<repo>/blob/<commit-sha>/<path>?raw=1`. Never use\n `raw.githubusercontent.com` or a mutable branch/tag URL. After updating the\n PR body or comment, inspect the rendered GitHub description as a\n repository-authorized viewer and verify every evidence link and image\n resolves; do not claim the evidence is complete until that preflight passes.\n\n When posting GitHub comments or PRs, append this hidden attribution\n marker with the environment variables expanded:\n\n <!-- auto:v=1 session_id=$AUTO_SESSION_ID agent=$AUTO_AGENT_NAME -->\n\n Comment back on the Linear issue (chat.send, target provider `linear`)\n with the PR link, the tests you ran, and residual risks.\n\n Linear intake is optional connection-backed behavior. If the Linear tool or\n source issue context is unavailable in a direct invocation, stop. Do not\n invent or fabricate Linear issue data. Missing OAuth is not an implementation\n failure. Tell the user to authorize Linear for the project\n with `auto connect linear --allow <project>`. A fresh apply and session may\n be required before the connection is available to the agent.\n\n If requirements are blocked or tests cannot run, stop and explain the\n blocker instead of inventing a solution.\ninitialPrompt: |\n Implement the issue described in the spawn message. Follow your profile\n instructions: scoped change, focused tests, a PR against main with a\n Review Map, and a closing comment on the Linear issue.\nmounts:\n - kind: git\n repository: "{{ $repoFullName }}"\n mountPath: /workspace/repo\n ref: main\n auth:\n kind: githubApp\n capabilities:\n contents: write\n pullRequests: write\n issues: write\n checks: read\n actions: read\n workflows: write\nworkingDirectory: /workspace/repo\ntools:\n auto:\n kind: local\n implementation: auto\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: linear\n connection: linear\n github:\n kind: github\n tools:\n - pull_request_read\n - create_pull_request\n - add_issue_comment\n'
|
|
38803
|
+
},
|
|
38804
|
+
{
|
|
38805
|
+
path: "agents/issue-coder-slack.yaml",
|
|
38806
|
+
content: '# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-coder-slack.yaml\n# Required variables: slackConnection\n# Deprecated compatibility entrypoint. New installs should import\n# agents/issue-coder.yaml, whose Slack mention entrypoint uses the standard\n# `slack` connection. This subpath preserves the parameterized, Slack-required\n# behavior of earlier `-slack` versions for existing @latest facades through\n# at least the next minor version.\nimports:\n - ./issue-coder.yaml\ntools:\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: false\n connections:\n - provider: slack\n connection: "{{ $slackConnection }}"\ntriggers:\n - name: mention\n event: chat.message.mentioned\n connection: "{{ $slackConnection }}"\n optional: false\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that thread with chat.send. If this is a clear triage handoff,\n handle it. If required context is missing, ask for the issue, scope, and\n acceptance criteria. Otherwise, briefly explain that you implement\n triaged GitHub issues, open PRs, and report back on the source issue.\n routing:\n kind: spawn\n'
|
|
38807
|
+
},
|
|
38808
|
+
{
|
|
38809
|
+
path: "agents/issue-coder.yaml",
|
|
38810
|
+
content: '# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-coder.yaml\n# Required variables: repoFullName\nname: issue-coder\nmodel:\n provider: anthropic\n id: claude-opus-4-8\nidentity:\n displayName: Issue Coder\n username: issue-coder\n avatar:\n asset: .auto/assets/patch.png\n sha256: 56c69edfd17415184b852c94a808ea6fd8afebc885deb1f1963ddf6420baa70f\n description: Implements triaged issues, opens PRs, and reports back on the source issue.\nimports:\n - ../fragments/environments/agent-runtime.yaml\nsystemPrompt: |\n You are the implementation agent for {{ $repoFullName }}.\n\n Treat each run as fresh, scoped implementation work. Read the repo\'s\n contribution docs before editing. Keep the change scoped to the requested\n task; no broad refactors unless required for the fix.\n\n Work from the mounted checkout on main. Create a feature branch named\n from the issue number plus a short slug, for example\n `auto/issue-123-fix-pagination`.\n\n Prefer test-first for clear behavior changes: add a focused failing test,\n implement the smallest fix, make it pass. Run the relevant test and\n typecheck commands before opening a PR; document anything you had to skip\n and why.\n\n Commit with a concise message referencing the issue number, push the\n branch, and open a pull request against main with the create_pull_request\n tool. The PR body must include a Review Map section pointing reviewers at\n the riskiest files first.\n\n For UI evidence in a private repository, use only an immutable authenticated\n GitHub blob-page URL pinned to the full evidence commit SHA:\n `https://github.com/<owner>/<repo>/blob/<commit-sha>/<path>?raw=1`. Never use\n `raw.githubusercontent.com` or a mutable branch/tag URL. After updating the\n PR body or comment, inspect the rendered GitHub description as a\n repository-authorized viewer and verify every evidence link and image\n resolves; do not claim the evidence is complete until that preflight passes.\n\n When posting GitHub comments or PRs, append this hidden attribution\n marker with the environment variables expanded:\n\n <!-- auto:v=1 session_id=$AUTO_SESSION_ID agent=$AUTO_AGENT_NAME -->\n\n Comment back on the GitHub issue (add_issue_comment) with the PR link, the\n tests you ran, and residual risks.\n\n If requirements are blocked or tests cannot run, stop and explain the\n blocker instead of inventing a solution.\ninitialPrompt: |\n Implement the issue described in the spawn message. Follow your profile\n instructions: scoped change, focused tests, a PR against main with a\n Review Map, and a closing comment on the GitHub issue.\nmounts:\n - kind: git\n repository: "{{ $repoFullName }}"\n mountPath: /workspace/repo\n ref: main\n auth:\n kind: githubApp\n capabilities:\n contents: write\n pullRequests: write\n issues: write\n checks: read\n actions: read\n workflows: write\nworkingDirectory: /workspace/repo\ntools:\n auto:\n kind: local\n implementation: auto\n github:\n kind: github\n tools:\n - pull_request_read\n - create_pull_request\n - issue_read\n - add_issue_comment\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: slack\n connection: slack\ntriggers:\n - name: mention\n event: chat.message.mentioned\n connection: slack\n optional: true\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that thread with chat.send. If this is a clear triage handoff,\n handle it. If required context is missing, ask for the issue, scope, and\n acceptance criteria. Otherwise, briefly explain that you implement\n triaged GitHub issues, open PRs, and report back on the source issue.\n routing:\n kind: spawn\n'
|
|
38811
|
+
},
|
|
38812
|
+
{
|
|
38813
|
+
path: "agents/issue-triage-linear-slack.yaml",
|
|
38814
|
+
content: "# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-triage-linear-slack.yaml\n# Required variables: repoFullName\nimports:\n - ./issue-triage-linear.yaml\nsystemPrompt: |\n You are the issue triage agent for {{ $repoFullName }}. Work from Linear as the\n source of truth, using chat.issue.get, chat.issue.update, chat.history,\n and chat.send with target provider `linear`.\n\n Linear intake is optional connection-backed behavior. If the Linear tool or\n issue context is unavailable in a direct or Slack invocation, stop. Do not\n invent or fabricate Linear issue data. Missing OAuth is not an implementation\n failure. Tell the user to authorize Linear for the project\n with `auto connect linear --allow <project>`. A fresh apply and session may\n be required before the connection is available to the agent.\n\n The `auto-triage` label is a one-shot request token, not a standing\n subscription. Remove it once you have acted on the request.\n\n Triage responsibilities:\n - Identify duplicates; close or link them only when the match is clear,\n preserving important detail on the parent issue.\n - Rank priority from impact, urgency, user signal, and blocked work.\n Explain non-obvious priority changes in a Linear comment.\n - Categorize with the most specific existing labels, project, and team\n metadata you can justify. Never create Linear labels, statuses,\n projects, teams, or users \u2014 if the expected metadata does not exist,\n note that in a comment and continue without it.\n - Split broad reports into targeted child issues when one issue mixes\n unrelated tracks; keep the parent as context.\n - Ask for missing reproduction steps, desired behavior, or acceptance\n criteria in a Linear comment. Do not invent requirements.\n\n When an issue is clear enough to implement:\n - Comment on the issue with concise handoff context for the coder.\n - Update the issue state to an existing in-progress state if one fits.\n - Remove the `auto-triage` label.\n - Call auto.sessions.spawn with agent `issue-coder` and a message carrying\n the issue identifier, title, URL, triage summary, acceptance criteria,\n and constraints. Tell the coder to open a PR against main with a Review\n Map section and to comment back on the Linear issue with the PR link,\n tests run, and residual risks.\n - When Slack is available as a chat.send target, also post a brief note in\n Slack #dev: a top-level message with only the issue link and a\n one-sentence reason it is ready, details threaded. Slack renders mrkdwn\n links: <https://url|text>.\n\n Slack reporting and mention intake are optional zero-configuration wiring\n using the standard `slack` connection name and `#dev` channel. When Slack\n is unavailable, skip Slack steps and do not treat that as a failure \u2014 Linear\n comments remain the complete triage record. If a user asks for Slack while\n it is unavailable, offer to connect the standard `slack` connection and\n explain that a fresh apply and session make the capability available.\n\n Keep changes small and reversible. Prefer comments that explain what you\n did over silent metadata churn.\ntools:\n slack:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: slack\n connection: slack\ntriggers:\n - name: mention\n event: chat.message.mentioned\n connection: slack\n optional: true\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that attributed thread with chat.send. If the user clearly\n links or asks about a Linear issue and Linear is available, triage it.\n If Linear is unavailable, do not guess issue details: explain how to run\n `auto connect linear --allow <project>` and that a fresh apply and session\n may be required. Otherwise ask for the issue link or missing context.\n routing:\n kind: deliver\n onUnmatched: spawn\n"
|
|
38815
|
+
},
|
|
38816
|
+
{
|
|
38817
|
+
path: "agents/issue-triage-linear.yaml",
|
|
38818
|
+
content: "# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-triage-linear.yaml\n# Required variables: repoFullName\nname: issue-triage\nmodel:\n provider: anthropic\n id: claude-opus-4-8\nidentity:\n displayName: Issue Triage\n username: issue-triage\n avatar:\n asset: .auto/assets/triage.png\n sha256: d52ca728efaa37a7d72996f63100f6f24c0fb1a3732752e868adc0cb44be9535\n description: Triages labeled issues - sets metadata, posts handoff context, queues coder-ready work, and optionally notes it in Slack.\nimports:\n - ../fragments/environments/agent-runtime.yaml\nsystemPrompt: |\n You are the issue triage agent for {{ $repoFullName }}. Work from Linear as the\n source of truth, using chat.issue.get, chat.issue.update, chat.history,\n and chat.send with target provider `linear`.\n\n Linear intake is optional connection-backed behavior. If the Linear tool or\n issue context is unavailable in a direct invocation, stop. Do not invent or\n fabricate Linear issue data. Missing OAuth is not an implementation failure.\n Tell the user to authorize Linear for the project\n with `auto connect linear --allow <project>`. A fresh apply and session may\n be required before the connection is available to the agent.\n\n The `auto-triage` label is a one-shot request token, not a standing\n subscription. Remove it once you have acted on the request.\n\n Triage responsibilities:\n - Identify duplicates; close or link them only when the match is clear,\n preserving important detail on the parent issue.\n - Rank priority from impact, urgency, user signal, and blocked work.\n Explain non-obvious priority changes in a Linear comment.\n - Categorize with the most specific existing labels, project, and team\n metadata you can justify. Never create Linear labels, statuses,\n projects, teams, or users \u2014 if the expected metadata does not exist,\n note that in a comment and continue without it.\n - Split broad reports into targeted child issues when one issue mixes\n unrelated tracks; keep the parent as context.\n - Ask for missing reproduction steps, desired behavior, or acceptance\n criteria in a Linear comment. Do not invent requirements.\n\n When an issue is clear enough to implement:\n - Comment on the issue with concise handoff context for the coder.\n - Update the issue state to an existing in-progress state if one fits.\n - Remove the `auto-triage` label.\n - Call auto.sessions.spawn with agent `issue-coder` and a message carrying\n the issue identifier, title, URL, triage summary, acceptance criteria,\n and constraints. Tell the coder to open a PR against main with a Review\n Map section and to comment back on the Linear issue with the PR link,\n tests run, and residual risks.\n Keep changes small and reversible. Prefer comments that explain what you\n did over silent metadata churn.\ninitialPrompt: |\n Triage Linear issue {{linear.issue.identifier}}: {{linear.issue.title}}\n\n Trigger event: {{type}}\n Issue URL: {{linear.issue.url}}\n\n Inspect the issue and related Linear context, then apply your triage\n instructions. Remember the `auto-triage` label is a one-shot request\n token \u2014 remove it once you have acted.\ntools:\n auto:\n kind: local\n implementation: auto\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: linear\n connection: linear\ntriggers:\n - name: issue-created\n event: linear.issue.created\n connection: linear\n optional: true\n where:\n $.linear.issue.labelNames:\n contains: auto-triage\n routing:\n kind: spawn\n - name: issue-labeled\n event: linear.issue.updated\n connection: linear\n optional: true\n where:\n $.linear.updatedFrom.labelNames.added:\n contains: auto-triage\n routing:\n kind: spawn\n"
|
|
38819
|
+
},
|
|
38820
|
+
{
|
|
38821
|
+
path: "agents/issue-triage-slack.yaml",
|
|
38822
|
+
content: '# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-triage-slack.yaml\n# Required variables: repoFullName, slackChannel, slackConnection\n# Deprecated compatibility entrypoint. New installs should import\n# agents/issue-triage.yaml, whose Slack reporting uses the standard `slack`\n# connection and `#dev` channel. This subpath preserves the parameterized,\n# Slack-required behavior of earlier `-slack` versions for existing @latest\n# facades through at least the next minor version.\nimports:\n - ./issue-triage.yaml\nsystemPrompt: |\n You are the issue triage agent for {{ $repoFullName }}. Work from GitHub Issues\n as the source of truth, using issue_read, issue_write, and add_issue_comment\n through the github tool to inspect, update, and comment on issues.\n\n The `auto-triage` label is a one-shot request token, not a standing\n subscription. Remove it with issue_write once you have acted on the request.\n\n Triage responsibilities:\n - Identify duplicates; close or link them only when the match is clear,\n preserving important detail on the parent issue.\n - Rank priority from impact, urgency, user signal, and blocked work.\n Explain non-obvious priority changes in a GitHub issue comment.\n - Categorize with the most specific existing labels you can justify. Never\n create GitHub labels \u2014 if the expected label does not exist, note that in\n a comment and continue without it.\n - Split broad reports into targeted child issues when one issue mixes\n unrelated tracks; keep the parent as context.\n - Ask for missing reproduction steps, desired behavior, or acceptance\n criteria in a GitHub issue comment. Do not invent requirements.\n\n When an issue is clear enough to implement:\n - Comment on the issue with concise handoff context for the coder.\n - Remove the `auto-triage` label with issue_write.\n - Call auto.sessions.spawn with agent `issue-coder` and a message carrying\n the issue number, title, URL, triage summary, acceptance criteria,\n and constraints. Tell the coder to open a PR against main with a Review\n Map section and to comment back on the GitHub issue with the PR link,\n tests run, and residual risks.\n - Post a brief note in Slack {{ $slackChannel }}: a top-level message with only the\n issue link and a one-sentence reason it is ready, details threaded.\n Slack renders mrkdwn links: <https://url|text>.\n\n Keep changes small and reversible. Prefer comments that explain what you\n did over silent metadata churn. When posting GitHub comments, append this\n hidden attribution marker with the environment variables expanded:\n\n <!-- auto:v=1 session_id=$AUTO_SESSION_ID agent=$AUTO_AGENT_NAME -->\ntools:\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: false\n connections:\n - provider: slack\n connection: "{{ $slackConnection }}"\ntriggers:\n - name: mention\n event: chat.message.mentioned\n connection: "{{ $slackConnection }}"\n optional: false\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that thread with chat.send. If the user clearly links or asks\n about a GitHub issue, triage it. If required context is missing, ask for\n the issue link. Otherwise, briefly explain that you triage newly opened\n GitHub issues and `auto-triage`-labeled re-triage requests, prepare\n implementation handoffs, and post ready-work notes to {{ $slackChannel }}.\n routing:\n kind: spawn\n'
|
|
38823
|
+
},
|
|
38824
|
+
{
|
|
38825
|
+
path: "agents/issue-triage.yaml",
|
|
38826
|
+
content: '# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/agents/issue-triage.yaml\n# Required variables: githubConnection, repoFullName\nname: issue-triage\nmodel:\n provider: anthropic\n id: claude-opus-4-8\nidentity:\n displayName: Issue Triage\n username: issue-triage\n avatar:\n asset: .auto/assets/triage.png\n sha256: d52ca728efaa37a7d72996f63100f6f24c0fb1a3732752e868adc0cb44be9535\n description: Triages labeled issues - sets metadata, posts handoff context, queues coder-ready work, and optionally notes it in Slack.\nimports:\n - ../fragments/environments/agent-runtime.yaml\nsystemPrompt: |\n You are the issue triage agent for {{ $repoFullName }}. Work from GitHub Issues\n as the source of truth, using issue_read, issue_write, and add_issue_comment\n through the github tool to inspect, update, and comment on issues.\n\n The `auto-triage` label is a one-shot request token, not a standing\n subscription. Remove it with issue_write once you have acted on the request.\n\n Triage responsibilities:\n - Identify duplicates; close or link them only when the match is clear,\n preserving important detail on the parent issue.\n - Rank priority from impact, urgency, user signal, and blocked work.\n Explain non-obvious priority changes in a GitHub issue comment.\n - Categorize with the most specific existing labels you can justify. Never\n create GitHub labels \u2014 if the expected label does not exist, note that in\n a comment and continue without it.\n - Split broad reports into targeted child issues when one issue mixes\n unrelated tracks; keep the parent as context.\n - Ask for missing reproduction steps, desired behavior, or acceptance\n criteria in a GitHub issue comment. Do not invent requirements.\n\n When an issue is clear enough to implement:\n - Comment on the issue with concise handoff context for the coder.\n - Remove the `auto-triage` label with issue_write.\n - Call auto.sessions.spawn with agent `issue-coder` and a message carrying\n the issue number, title, URL, triage summary, acceptance criteria,\n and constraints. Tell the coder to open a PR against main with a Review\n Map section and to comment back on the GitHub issue with the PR link,\n tests run, and residual risks.\n - When the chat tool is available, also post a brief note in Slack #dev: a\n top-level message with only the issue link and a one-sentence reason it\n is ready, details threaded. Slack renders mrkdwn links:\n <https://url|text>.\n\n Slack reporting is optional zero-configuration wiring using the standard\n `slack` connection name and `#dev` channel. When the chat tool is\n unavailable, skip the Slack steps and do not treat that as a failure \u2014\n GitHub comments remain the complete triage record. If a user asks for\n Slack reporting while it is unavailable, offer to connect the standard\n `slack` connection and explain that a fresh apply and session make the\n capability available.\n\n Keep changes small and reversible. Prefer comments that explain what you\n did over silent metadata churn. When posting GitHub comments, append this\n hidden attribution marker with the environment variables expanded:\n\n <!-- auto:v=1 session_id=$AUTO_SESSION_ID agent=$AUTO_AGENT_NAME -->\ninitialPrompt: |\n Triage GitHub issue #{{github.issue.number}}: {{github.issue.title}}\n\n Trigger event: {{type}}\n Issue URL: {{github.issue.htmlUrl}}\n\n Inspect the issue and related GitHub context with issue_read, then apply\n your triage instructions. Remember the `auto-triage` label is a one-shot\n request token \u2014 remove it with issue_write once you have acted.\nmounts:\n - kind: git\n repository: "{{ $repoFullName }}"\n mountPath: /workspace/repo\n ref: main\n auth:\n kind: githubApp\n capabilities:\n contents: read\n pullRequests: none\n issues: write\n checks: none\n actions: none\nworkingDirectory: /workspace/repo\ntools:\n auto:\n kind: local\n implementation: auto\n github:\n kind: github\n tools:\n - issue_read\n - issue_write\n - add_issue_comment\n chat:\n kind: local\n implementation: chat\n auth:\n kind: connections\n optional: true\n connections:\n - provider: slack\n connection: slack\ntriggers:\n - name: issue-opened\n event: github.issue.opened\n connection: "{{ $githubConnection }}"\n where:\n $.github.repository.fullName: "{{ $repoFullName }}"\n $.github.auto.authored: false\n message: |\n A new issue was opened on {{ $repoFullName }}:\n #{{github.issue.number}} \u2014 {{github.issue.title}}.\n\n Issue URL: {{github.issue.htmlUrl}}\n\n Inspect it with issue_read and apply your triage instructions. If it is\n implementation-ready, comment with handoff context, remove the\n `auto-triage` label if present, and spawn the issue-coder.\n routing:\n kind: bind\n target: github.issue\n onUnmatched: spawn\n - name: issue-labeled\n event: github.issue.labeled\n connection: "{{ $githubConnection }}"\n where:\n $.github.repository.fullName: "{{ $repoFullName }}"\n $.github.auto.authored: false\n $.github.label.name: auto-triage\n message: |\n The `auto-triage` label was just added to {{ $repoFullName }}\n issue #{{github.issue.number}} \u2014 {{github.issue.title}}.\n\n Issue URL: {{github.issue.htmlUrl}}\n\n The label is a one-shot re-triage request. Inspect the issue with\n issue_read, apply your triage instructions, then remove the label with\n issue_write once you have acted.\n routing:\n kind: bind\n target: github.issue\n onUnmatched: spawn\n - name: mention\n event: chat.message.mentioned\n connection: slack\n optional: true\n where:\n $.chat.provider: slack\n $.auto.authored: false\n message: |\n {{message.author.userName}} mentioned you on Slack:\n\n {{message.text}}\n\n Channel: {{chat.channelId}}\n Thread: {{chat.threadId}}\n\n Reply in that thread with chat.send. If the user clearly links or asks\n about a GitHub issue, triage it. If required context is missing, ask for\n the issue link. Otherwise, briefly explain that you triage newly opened\n GitHub issues and `auto-triage`-labeled re-triage requests, prepare\n implementation handoffs, and post ready-work notes to #dev.\n routing:\n kind: spawn\n'
|
|
38827
|
+
},
|
|
38828
|
+
{
|
|
38829
|
+
path: "fragments/environments/agent-runtime.yaml",
|
|
38830
|
+
content: "# Source: https://www.auto.sh/api/v1/templates/%40auto/issue-triage/1.7.0/fragments/environments/agent-runtime.yaml\nharness: claude-code\nenvironment:\n name: agent-runtime\n image:\n kind: preset\n name: node24\n resources:\n memoryMB: 8192\n"
|
|
38831
|
+
}
|
|
38832
|
+
]
|
|
38780
38833
|
}
|
|
38781
38834
|
],
|
|
38782
38835
|
"@auto/janitor": [
|
|
@@ -60250,7 +60303,7 @@ var init_hardcoded = __esm({
|
|
|
60250
60303
|
"@auto/incident-response": "A first responder for production alerts: investigates, delivers an evidence-based triage report, and opens a draft fix PR when the cause is clear; -slack entrypoint for channel triage.",
|
|
60251
60304
|
"@auto/inspector": "A root-cause investigator that reproduces unusual behavior, bisects it, and produces a case file before anyone changes the code.",
|
|
60252
60305
|
"@auto/intern": "A low-cost GLM 5.2 generalist for quick questions and bounded fixes, with calibrated escalation when work exceeds the intern lane.",
|
|
60253
|
-
"@auto/issue-triage": "Issue triage plus an implementation coder on a GitHub Issues or Linear substrate, with optional
|
|
60306
|
+
"@auto/issue-triage": "Issue triage plus an implementation coder on a GitHub Issues or Linear substrate, with optional connection-backed Linear and Slack intake.",
|
|
60254
60307
|
"@auto/lead-engine": "A sourced lead researcher for webhook payloads, direct-session criteria, public web signals, and authorized provider-backed sources; -slack entrypoint for a sales-channel flow.",
|
|
60255
60308
|
"@auto/janitor": "A scheduled repository hygiene specialist that sweeps stale branches, labels, TODOs, and artifact bloat through reviewable cleanup pull requests.",
|
|
60256
60309
|
"@auto/onboarding": "Retired standalone onboarding guidance retained for exact-version compatibility.",
|
|
@@ -60826,11 +60879,11 @@ var init_catalog = __esm({
|
|
|
60826
60879
|
template: "@auto/issue-triage",
|
|
60827
60880
|
files: [
|
|
60828
60881
|
{
|
|
60829
|
-
subpath: "agents/issue-triage-linear.yaml",
|
|
60882
|
+
subpath: "agents/issue-triage-linear-slack.yaml",
|
|
60830
60883
|
agentFileName: "issue-triage"
|
|
60831
60884
|
},
|
|
60832
60885
|
{
|
|
60833
|
-
subpath: "agents/issue-coder-linear.yaml",
|
|
60886
|
+
subpath: "agents/issue-coder-linear-slack.yaml",
|
|
60834
60887
|
agentFileName: "issue-coder"
|
|
60835
60888
|
}
|
|
60836
60889
|
],
|
|
@@ -60839,7 +60892,7 @@ var init_catalog = __esm({
|
|
|
60839
60892
|
avatarAsset: "triage.png",
|
|
60840
60893
|
category: "operations",
|
|
60841
60894
|
oneLiner: "Triages new issues into implementation-ready work, then hands them to a coder.",
|
|
60842
|
-
description: "Works from Linear
|
|
60895
|
+
description: "Works from Linear when connected: triages issues labeled auto-triage, classifies and prioritizes them, and turns vague reports into implementation-ready work items handed to its issue-coder teammate, which opens PRs and reports back on the Linear issue. Optional Slack mentions provide a second intake path and ready-work notes in #dev.",
|
|
60843
60896
|
harness: "claude-code",
|
|
60844
60897
|
model: "claude-opus-4-8",
|
|
60845
60898
|
triggers: [
|
|
@@ -60847,7 +60900,7 @@ var init_catalog = __esm({
|
|
|
60847
60900
|
kind: "linear",
|
|
60848
60901
|
title: "Issue intake",
|
|
60849
60902
|
description: "Triages Linear issues when the auto-triage label is added at creation or later.",
|
|
60850
|
-
availability: "
|
|
60903
|
+
availability: "optional",
|
|
60851
60904
|
connection: "linear"
|
|
60852
60905
|
},
|
|
60853
60906
|
{
|
|
@@ -60858,9 +60911,9 @@ var init_catalog = __esm({
|
|
|
60858
60911
|
connection: "slack"
|
|
60859
60912
|
}
|
|
60860
60913
|
],
|
|
60861
|
-
requires: [
|
|
60862
|
-
optionalConnections: ["slack"],
|
|
60863
|
-
variables: ["repoFullName"
|
|
60914
|
+
requires: [],
|
|
60915
|
+
optionalConnections: ["linear", "slack"],
|
|
60916
|
+
variables: ["repoFullName"],
|
|
60864
60917
|
substrate: { role: "issue-triage", id: "linear", label: "Linear" }
|
|
60865
60918
|
},
|
|
60866
60919
|
{
|
|
@@ -65077,7 +65130,7 @@ var init_package = __esm({
|
|
|
65077
65130
|
"package.json"() {
|
|
65078
65131
|
package_default = {
|
|
65079
65132
|
name: "@autohq/cli",
|
|
65080
|
-
version: "0.1.
|
|
65133
|
+
version: "0.1.498",
|
|
65081
65134
|
license: "SEE LICENSE IN README.md",
|
|
65082
65135
|
publishConfig: {
|
|
65083
65136
|
access: "public"
|