@autohq/cli 0.1.469 → 0.1.471
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 +272 -2
- package/dist/index.js +273 -3
- package/package.json +1 -1
package/dist/agent-bridge.js
CHANGED
|
@@ -30826,7 +30826,7 @@ Object.assign(lookup, {
|
|
|
30826
30826
|
// package.json
|
|
30827
30827
|
var package_default = {
|
|
30828
30828
|
name: "@autohq/cli",
|
|
30829
|
-
version: "0.1.
|
|
30829
|
+
version: "0.1.471",
|
|
30830
30830
|
license: "SEE LICENSE IN README.md",
|
|
30831
30831
|
publishConfig: {
|
|
30832
30832
|
access: "public"
|
|
@@ -35883,10 +35883,36 @@ var REQUESTER_PROVENANCES = [
|
|
|
35883
35883
|
"asserted"
|
|
35884
35884
|
];
|
|
35885
35885
|
var RequesterProvenanceSchema = external_exports.enum(REQUESTER_PROVENANCES);
|
|
35886
|
+
var RequesterRootOriginSchema = external_exports.discriminatedUnion("kind", [
|
|
35887
|
+
external_exports.object({
|
|
35888
|
+
kind: external_exports.literal("provider"),
|
|
35889
|
+
provider: ProviderNameSchema,
|
|
35890
|
+
externalId: external_exports.string().trim().min(1)
|
|
35891
|
+
}),
|
|
35892
|
+
external_exports.object({
|
|
35893
|
+
kind: external_exports.literal("user"),
|
|
35894
|
+
userId: UserIdSchema
|
|
35895
|
+
})
|
|
35896
|
+
]);
|
|
35897
|
+
var RequesterRootSchema = external_exports.object({
|
|
35898
|
+
sourceSessionId: SessionIdSchema2,
|
|
35899
|
+
provenance: external_exports.enum(["explicit", "asserted"]),
|
|
35900
|
+
origin: RequesterRootOriginSchema
|
|
35901
|
+
});
|
|
35886
35902
|
var RequesterSchema = external_exports.object({
|
|
35887
35903
|
origin: RequesterOriginSchema,
|
|
35888
35904
|
provenance: RequesterProvenanceSchema,
|
|
35889
|
-
userId: UserIdSchema.nullable().default(null)
|
|
35905
|
+
userId: UserIdSchema.nullable().default(null),
|
|
35906
|
+
// Optional for rows created before inherited root provenance shipped.
|
|
35907
|
+
root: RequesterRootSchema.optional()
|
|
35908
|
+
}).superRefine((requester, context) => {
|
|
35909
|
+
if (requester.root && requester.provenance !== "inherited") {
|
|
35910
|
+
context.addIssue({
|
|
35911
|
+
code: "custom",
|
|
35912
|
+
path: ["root"],
|
|
35913
|
+
message: "Only inherited requesters may carry a root"
|
|
35914
|
+
});
|
|
35915
|
+
}
|
|
35890
35916
|
});
|
|
35891
35917
|
var ChatEventRequesterPayloadSchema = external_exports.object({
|
|
35892
35918
|
chat: external_exports.object({ provider: external_exports.string().trim().min(1) }),
|
|
@@ -35897,6 +35923,17 @@ var ChatEventRequesterPayloadSchema = external_exports.object({
|
|
|
35897
35923
|
})
|
|
35898
35924
|
})
|
|
35899
35925
|
});
|
|
35926
|
+
var GithubEventRequesterPayloadSchema = external_exports.object({
|
|
35927
|
+
type: external_exports.string(),
|
|
35928
|
+
github: external_exports.object({
|
|
35929
|
+
author: external_exports.object({
|
|
35930
|
+
id: external_exports.number().int().positive(),
|
|
35931
|
+
login: external_exports.string().optional(),
|
|
35932
|
+
type: external_exports.literal("User"),
|
|
35933
|
+
bot: external_exports.literal(false)
|
|
35934
|
+
})
|
|
35935
|
+
})
|
|
35936
|
+
});
|
|
35900
35937
|
var LinearEventRequesterPayloadSchema = external_exports.object({
|
|
35901
35938
|
linear: external_exports.object({
|
|
35902
35939
|
actor: external_exports.object({
|
|
@@ -55726,6 +55763,196 @@ triggers:
|
|
|
55726
55763
|
]
|
|
55727
55764
|
}
|
|
55728
55765
|
],
|
|
55766
|
+
"@auto/principal-at-large": [
|
|
55767
|
+
{
|
|
55768
|
+
version: "1.0.0",
|
|
55769
|
+
files: [
|
|
55770
|
+
{
|
|
55771
|
+
path: "agents/principal-at-large.yaml",
|
|
55772
|
+
content: `# Source: https://www.auto.sh/api/v1/templates/%40auto/principal-at-large/1.0.0/agents/principal-at-large.yaml
|
|
55773
|
+
# Required variables: repoFullName
|
|
55774
|
+
# Principal-at-Large \u2014 summons-only exceptional advisor. This managed edition
|
|
55775
|
+
# preserves the Auto fleet's live doctrine while parameterizing tenant wiring.
|
|
55776
|
+
name: principal-at-large
|
|
55777
|
+
labels:
|
|
55778
|
+
purpose: advisor
|
|
55779
|
+
imports:
|
|
55780
|
+
- ../fragments/environments/agent-runtime-prod-debug.yaml
|
|
55781
|
+
harness: claude-code
|
|
55782
|
+
model:
|
|
55783
|
+
provider: anthropic
|
|
55784
|
+
id: claude-fable-5
|
|
55785
|
+
reasoningEffort: max
|
|
55786
|
+
systemPrompt: |
|
|
55787
|
+
You are the Principal-at-Large: a summons-only advisor for the
|
|
55788
|
+
{{ $repoFullName }} repository. You have been here forever, are never in the office, and appear
|
|
55789
|
+
only when a human or another agent explicitly summons you for genuinely
|
|
55790
|
+
exceptional diagnosis, design, or resisted implementation work. You read the
|
|
55791
|
+
evidence, solve the hard part, deliver the answer or intervention, and vanish.
|
|
55792
|
+
|
|
55793
|
+
Prefer detailed diagnosis, design, and guidance as the general rule. Start by
|
|
55794
|
+
deciding whether a concrete written recommendation is enough. Do not create
|
|
55795
|
+
implementation work merely to demonstrate activity. When direct implementation
|
|
55796
|
+
or an external action is necessary to finish the summons safely, or when the
|
|
55797
|
+
summoner directly requests it, act instead of forcing the work back through
|
|
55798
|
+
the summoner: you may edit files, create branches and commits, push follow-on
|
|
55799
|
+
commits, comment on or update pull requests, resolve merge conflicts, run
|
|
55800
|
+
validation, and perform other authorized repository actions. Use the smallest
|
|
55801
|
+
intervention that resolves the hard part and explain exactly what changed.
|
|
55802
|
+
|
|
55803
|
+
You are not an automatic implementation tier and hold no standing artifact
|
|
55804
|
+
ownership. Do not call auto.bind, subscribe to PR or issue lifecycle events,
|
|
55805
|
+
or retain a PR/thread binding after the summons. Existing implementers remain
|
|
55806
|
+
the default PR owners even when you contribute commits or comments. Never
|
|
55807
|
+
merge unless a future summons explicitly authorizes it and the platform grants
|
|
55808
|
+
the capability; this resource intentionally has no merge authority. Do not
|
|
55809
|
+
work around tool or mount limits.
|
|
55810
|
+
|
|
55811
|
+
Work evidence-first:
|
|
55812
|
+
- Read AGENTS.md and docs/idioms.md before repository analysis.
|
|
55813
|
+
- Inspect the relevant code, tests, git history, diffs, issue or PR context,
|
|
55814
|
+
session transcripts, and prior failed attempts before reaching a verdict.
|
|
55815
|
+
- When production evidence is both necessary and authorized, use the repo's
|
|
55816
|
+
documented read-only prod-debug path. SQL is SELECT-only. Never expose
|
|
55817
|
+
secrets or tenant-specific information in the resulting memo.
|
|
55818
|
+
- Separate observed facts, inferences, ruled-out hypotheses, and unknowns.
|
|
55819
|
+
Cite concrete file paths, commits, session turns, logs, or timestamps when
|
|
55820
|
+
they materially support the conclusion.
|
|
55821
|
+
- Consume the summoner's failed attempts instead of restarting the same loop.
|
|
55822
|
+
If the evidence packet is incomplete, name the smallest missing evidence
|
|
55823
|
+
needed rather than guessing.
|
|
55824
|
+
|
|
55825
|
+
Return a concise but complete advisory memo or action report with:
|
|
55826
|
+
1. the diagnosis, recommended design, or intervention performed;
|
|
55827
|
+
2. the causal reasoning and strongest evidence;
|
|
55828
|
+
3. alternatives considered and why they lose;
|
|
55829
|
+
4. concrete next actions, including exact commits/comments when you acted; and
|
|
55830
|
+
5. residual risks, validation steps, and any unresolved questions.
|
|
55831
|
+
|
|
55832
|
+
Summons behavior:
|
|
55833
|
+
- For an agent summons through auto.sessions.spawn or auto.sessions.message,
|
|
55834
|
+
keep all work in this session. The summoning agent remains the default PR
|
|
55835
|
+
owner, but you may implement or take authorized external actions when the
|
|
55836
|
+
evidence says that is the best answer or the summoner asks directly. Report
|
|
55837
|
+
every side effect back to the summoner. Because this agent is uncapped, the
|
|
55838
|
+
summoner should use the returned session id for follow-up messages rather
|
|
55839
|
+
than assuming agent-name addressing is unique.
|
|
55840
|
+
- For a human Slack summons, the chat event's spawn may temporarily claim the
|
|
55841
|
+
thread for de-duplication. Do not rely on that claim for follow-ups. Send one
|
|
55842
|
+
final answer to the supplied channel and thread with chat.send, then
|
|
55843
|
+
immediately call auto.chat.unsubscribe for that same thread so no durable
|
|
55844
|
+
thread binding remains. Do not add a subscribed-reply route; another turn
|
|
55845
|
+
requires another explicit @auto.principal-at-large summons.
|
|
55846
|
+
- After delivering the memo and releasing any Slack thread claim, archive the
|
|
55847
|
+
current session with a compact handoff. The Principal vanishes when the
|
|
55848
|
+
summons is answered.
|
|
55849
|
+
identity:
|
|
55850
|
+
displayName: Principal-at-Large
|
|
55851
|
+
username: principal-at-large
|
|
55852
|
+
avatar:
|
|
55853
|
+
asset: .auto/assets/principal-at-large.png
|
|
55854
|
+
sha256: 7b07137010004b08885837942bd5a155594d066fb7bfc88e3f78bc498b95662d
|
|
55855
|
+
description:
|
|
55856
|
+
Summons-only principal for exceptional diagnosis and design. Advises first,
|
|
55857
|
+
acts when needed, and vanishes.
|
|
55858
|
+
displayTitle: infer
|
|
55859
|
+
mounts:
|
|
55860
|
+
- kind: git
|
|
55861
|
+
repository: "{{ $repoFullName }}"
|
|
55862
|
+
mountPath: /workspace/repo
|
|
55863
|
+
ref: main
|
|
55864
|
+
depth: 100
|
|
55865
|
+
auth:
|
|
55866
|
+
kind: githubApp
|
|
55867
|
+
commitAuthor:
|
|
55868
|
+
name: auto-dot-sh[bot]
|
|
55869
|
+
email: 292914954+auto-dot-sh[bot]@users.noreply.github.com
|
|
55870
|
+
capabilities:
|
|
55871
|
+
contents: write
|
|
55872
|
+
pullRequests: write
|
|
55873
|
+
issues: none
|
|
55874
|
+
checks: read
|
|
55875
|
+
actions: read
|
|
55876
|
+
workflows: write
|
|
55877
|
+
workingDirectory: /workspace/repo
|
|
55878
|
+
tools:
|
|
55879
|
+
auto:
|
|
55880
|
+
kind: local
|
|
55881
|
+
implementation: auto
|
|
55882
|
+
chat:
|
|
55883
|
+
kind: local
|
|
55884
|
+
implementation: chat
|
|
55885
|
+
auth:
|
|
55886
|
+
kind: connection
|
|
55887
|
+
provider: slack
|
|
55888
|
+
connection: slack
|
|
55889
|
+
optional: true
|
|
55890
|
+
triggers:
|
|
55891
|
+
- name: summons
|
|
55892
|
+
event: chat.message.mentioned
|
|
55893
|
+
connection: slack
|
|
55894
|
+
optional: true
|
|
55895
|
+
where:
|
|
55896
|
+
$.chat.provider: slack
|
|
55897
|
+
$.auto.authored: false
|
|
55898
|
+
message: |
|
|
55899
|
+
{{message.author.userName}} explicitly summoned the Principal-at-Large on Slack:
|
|
55900
|
+
|
|
55901
|
+
{{message.text}}
|
|
55902
|
+
|
|
55903
|
+
Channel: {{chat.channelId}}
|
|
55904
|
+
Thread: {{chat.threadId}}
|
|
55905
|
+
|
|
55906
|
+
Treat this as one explicit summons. Prefer a written diagnosis or design,
|
|
55907
|
+
but implement or take authorized external action when necessary or
|
|
55908
|
+
directly requested. Report the result in this thread, immediately
|
|
55909
|
+
unsubscribe from the thread, and archive. Do not retain continuity or
|
|
55910
|
+
artifact ownership.
|
|
55911
|
+
routing:
|
|
55912
|
+
kind: spawn
|
|
55913
|
+
`
|
|
55914
|
+
},
|
|
55915
|
+
{
|
|
55916
|
+
path: "fragments/environments/agent-runtime-prod-debug.yaml",
|
|
55917
|
+
content: `# Source: https://www.auto.sh/api/v1/templates/%40auto/principal-at-large/1.0.0/fragments/environments/agent-runtime-prod-debug.yaml
|
|
55918
|
+
# Portable copy of the compatibility source's full hosted runtime. The optional
|
|
55919
|
+
# secret references preserve the live safety boundary: they grant nothing when
|
|
55920
|
+
# absent, and documented wrappers remain the only sanctioned secret consumers.
|
|
55921
|
+
harness: claude-code
|
|
55922
|
+
environment:
|
|
55923
|
+
name: agent-runtime-prod-debug
|
|
55924
|
+
labels:
|
|
55925
|
+
purpose: agents
|
|
55926
|
+
image:
|
|
55927
|
+
kind: preset
|
|
55928
|
+
name: node24
|
|
55929
|
+
resources:
|
|
55930
|
+
cpuCount: 2
|
|
55931
|
+
memoryMB: 8192
|
|
55932
|
+
steps:
|
|
55933
|
+
- RUN apt-get update && apt-get install -y --no-install-recommends postgresql-client redis-tools jq file unzip && rm -rf /var/lib/apt/lists/*
|
|
55934
|
+
- RUN npm install -g tsx vercel@54.14.5
|
|
55935
|
+
- RUN curl -fsSL -o /tmp/temporal.tgz https://github.com/temporalio/cli/releases/download/v1.7.2/temporal_cli_1.7.2_linux_amd64.tar.gz && echo "e2f548af84e820b7d71f25fc6461a4e6a1ab7cdb6a80fde3c375641b0772375b /tmp/temporal.tgz" | sha256sum -c - && tar -xzf /tmp/temporal.tgz -C /usr/local/bin temporal && rm /tmp/temporal.tgz
|
|
55936
|
+
- RUN curl -fsSL -o /tmp/op.zip https://cache.agilebits.com/dist/1P/op2/pkg/v2.34.1/op_linux_amd64_v2.34.1.zip && echo "b13ed106335419ea0fb0ebd7ebbb3b48cf26a2f214eb4b2fd8d950548e7980ed /tmp/op.zip" | sha256sum -c - && unzip -o /tmp/op.zip op -d /usr/local/bin && rm /tmp/op.zip
|
|
55937
|
+
- RUN curl -fsSL -o /tmp/gh.tgz https://github.com/cli/cli/releases/download/v2.95.0/gh_2.95.0_linux_amd64.tar.gz && echo "25d1e4729e8808c9ed3d613e96ebd3f3e44446f2d368c89d878a71a36ddb3d8c /tmp/gh.tgz" | sha256sum -c - && tar -xzf /tmp/gh.tgz --strip-components=2 -C /usr/local/bin gh_2.95.0_linux_amd64/bin/gh && rm /tmp/gh.tgz
|
|
55938
|
+
- RUN curl -fsSL -o /tmp/pup.tgz https://github.com/datadog-labs/pup/releases/download/v1.2.1/pup_1.2.1_Linux_x86_64.tar.gz && echo "c92ce77db16bee6e63206c779c53d138b1c7d5983f4d68349f1e3c131187a3e4 /tmp/pup.tgz" | sha256sum -c - && tar -xzf /tmp/pup.tgz -C /usr/local/bin pup && rm /tmp/pup.tgz
|
|
55939
|
+
- RUN apt-get update && apt-get install -y --no-install-recommends iptables iproute2 sudo && rm -rf /var/lib/apt/lists/*
|
|
55940
|
+
- RUN curl -fsSL -o /tmp/docker.tgz https://download.docker.com/linux/static/stable/x86_64/docker-29.6.0.tgz && echo "4d2f6782406b56eb43a519ad5078a6a79abe4d663328acb69136aceff5e05224 /tmp/docker.tgz" | sha256sum -c - && tar -xzf /tmp/docker.tgz --strip-components=1 -C /usr/local/bin && rm /tmp/docker.tgz
|
|
55941
|
+
- RUN curl -fsSL --create-dirs -o /usr/local/lib/docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/v5.2.0/docker-compose-linux-x86_64 && echo "018f9612ecabc5f2d7aaa53d6f5f44453a87611e2d72c8ef84d7b1eca070e719 /usr/local/lib/docker/cli-plugins/docker-compose" | sha256sum -c - && chmod 0755 /usr/local/lib/docker/cli-plugins/docker-compose
|
|
55942
|
+
- "RUN groupadd -f docker && usermod -aG docker user && echo 'user ALL=(root) NOPASSWD: /usr/local/bin/dockerd' > /etc/sudoers.d/docker-dockerd && chmod 0440 /etc/sudoers.d/docker-dockerd"
|
|
55943
|
+
- RUN curl -fsSL -o /tmp/tailscale.tgz https://pkgs.tailscale.com/stable/tailscale_1.98.8_amd64.tgz && echo "3a55b5900dd7e11e09b6c74d1e46d223d549dfbefbdc1f044a8ab7bdbafb933c /tmp/tailscale.tgz" | sha256sum -c - && tar -xzf /tmp/tailscale.tgz --strip-components=1 -C /usr/local/bin tailscale_1.98.8_amd64/tailscale tailscale_1.98.8_amd64/tailscaled && rm /tmp/tailscale.tgz
|
|
55944
|
+
env:
|
|
55945
|
+
OP_SERVICE_ACCOUNT_TOKEN:
|
|
55946
|
+
$secret: auto-prod-debug-op-token
|
|
55947
|
+
optional: true
|
|
55948
|
+
TS_AUTHKEY:
|
|
55949
|
+
$secret: tailscale-authkey
|
|
55950
|
+
optional: true
|
|
55951
|
+
`
|
|
55952
|
+
}
|
|
55953
|
+
]
|
|
55954
|
+
}
|
|
55955
|
+
],
|
|
55729
55956
|
"@auto/reaper": [
|
|
55730
55957
|
{
|
|
55731
55958
|
version: "1.0.0",
|
|
@@ -67190,6 +67417,7 @@ var TEMPLATE_DESCRIPTIONS = {
|
|
|
67190
67417
|
"@auto/onboarding": "Auto's house onboarding guidance, importable as a managed template.",
|
|
67191
67418
|
"@auto/onboarding-quickstart": "The quickstart template repo's onboarding overlay: composes onto @auto/onboarding with the fork-flow walkthrough beats (site request bar, handoff loop, self-improvement demo).",
|
|
67192
67419
|
"@auto/pr-review": "Auto's full pull-request reviewer agent, with optional Slack verdict reporting.",
|
|
67420
|
+
"@auto/principal-at-large": "A summons-only principal for exceptional diagnosis, design, and resisted implementation work that advises first, acts only when needed, and retains no standing ownership.",
|
|
67193
67421
|
"@auto/reaper": "A warn-first cleanup specialist for stale pull requests, stuck sessions, and zombie branches.",
|
|
67194
67422
|
"@auto/research-loop": "A research coordinator that runs measurable optimization campaigns on a fleet of experimenter agents.",
|
|
67195
67423
|
"@auto/self-improvement": "A scheduled sweep over PR feedback, read-only data, and Auto sessions that proposes concrete improvements.",
|
|
@@ -67473,6 +67701,48 @@ var ROSTER_CATALOG_ENTRIES = [
|
|
|
67473
67701
|
optionalConnections: ["slack"],
|
|
67474
67702
|
variables: ["repoFullName", "githubConnection"]
|
|
67475
67703
|
},
|
|
67704
|
+
{
|
|
67705
|
+
id: "principal-at-large",
|
|
67706
|
+
template: "@auto/principal-at-large",
|
|
67707
|
+
files: [
|
|
67708
|
+
{
|
|
67709
|
+
subpath: "agents/principal-at-large.yaml",
|
|
67710
|
+
agentFileName: "principal-at-large"
|
|
67711
|
+
}
|
|
67712
|
+
],
|
|
67713
|
+
displayName: "Principal-at-Large",
|
|
67714
|
+
username: "principal-at-large",
|
|
67715
|
+
avatarAsset: "principal-at-large.png",
|
|
67716
|
+
category: "engineering",
|
|
67717
|
+
oneLiner: "Summons-only principal for exceptional diagnosis, design, and resisted failures.",
|
|
67718
|
+
description: "The indispensable engineer who\u2019s almost never actually in the office. You and other agents explicitly summon it for the especially tricky challenges or blockers. It advises first, makes targeted interventions when necessary or requested, and vanishes.",
|
|
67719
|
+
harness: "claude-code",
|
|
67720
|
+
model: "claude-fable-5",
|
|
67721
|
+
reasoningEffort: "max",
|
|
67722
|
+
triggers: [
|
|
67723
|
+
{
|
|
67724
|
+
kind: "agent",
|
|
67725
|
+
title: "Exceptional agent summons",
|
|
67726
|
+
description: "Another agent can explicitly summon it for one evidence-backed diagnosis, design decision, or resisted intervention.",
|
|
67727
|
+
availability: "core"
|
|
67728
|
+
},
|
|
67729
|
+
{
|
|
67730
|
+
kind: "slack",
|
|
67731
|
+
title: "Explicit Slack summons",
|
|
67732
|
+
description: "Auto can connect Slack so a human can invoke exactly one turn with @auto.principal-at-large; it answers, unsubscribes, and vanishes.",
|
|
67733
|
+
availability: "optional",
|
|
67734
|
+
connection: "slack"
|
|
67735
|
+
}
|
|
67736
|
+
],
|
|
67737
|
+
requires: [],
|
|
67738
|
+
optionalConnections: ["slack"],
|
|
67739
|
+
variables: ["repoFullName"],
|
|
67740
|
+
trustNotes: [
|
|
67741
|
+
"Exceptional summons-only capacity; never a routine implementation tier, fleet fallback, heartbeat worker, or broad dispatcher.",
|
|
67742
|
+
"May write repository content and pull requests, but has no merge authority and never becomes the default PR owner.",
|
|
67743
|
+
"Holds no standing bindings; a Slack summons releases its temporary thread claim immediately after the final answer."
|
|
67744
|
+
]
|
|
67745
|
+
},
|
|
67476
67746
|
{
|
|
67477
67747
|
id: "junior-engineer",
|
|
67478
67748
|
template: "@auto/engineering-tier",
|
package/dist/index.js
CHANGED
|
@@ -19924,7 +19924,7 @@ var init_environments = __esm({
|
|
|
19924
19924
|
});
|
|
19925
19925
|
|
|
19926
19926
|
// ../../packages/schemas/src/requester.ts
|
|
19927
|
-
var RequesterOriginSchema, REQUESTER_PROVENANCES, RequesterProvenanceSchema, RequesterSchema, ChatEventRequesterPayloadSchema, LinearEventRequesterPayloadSchema;
|
|
19927
|
+
var RequesterOriginSchema, REQUESTER_PROVENANCES, RequesterProvenanceSchema, RequesterRootOriginSchema, RequesterRootSchema, RequesterSchema, ChatEventRequesterPayloadSchema, GithubEventRequesterPayloadSchema, LinearEventRequesterPayloadSchema;
|
|
19928
19928
|
var init_requester = __esm({
|
|
19929
19929
|
"../../packages/schemas/src/requester.ts"() {
|
|
19930
19930
|
"use strict";
|
|
@@ -19950,10 +19950,36 @@ var init_requester = __esm({
|
|
|
19950
19950
|
"asserted"
|
|
19951
19951
|
];
|
|
19952
19952
|
RequesterProvenanceSchema = external_exports.enum(REQUESTER_PROVENANCES);
|
|
19953
|
+
RequesterRootOriginSchema = external_exports.discriminatedUnion("kind", [
|
|
19954
|
+
external_exports.object({
|
|
19955
|
+
kind: external_exports.literal("provider"),
|
|
19956
|
+
provider: ProviderNameSchema,
|
|
19957
|
+
externalId: external_exports.string().trim().min(1)
|
|
19958
|
+
}),
|
|
19959
|
+
external_exports.object({
|
|
19960
|
+
kind: external_exports.literal("user"),
|
|
19961
|
+
userId: UserIdSchema
|
|
19962
|
+
})
|
|
19963
|
+
]);
|
|
19964
|
+
RequesterRootSchema = external_exports.object({
|
|
19965
|
+
sourceSessionId: SessionIdSchema,
|
|
19966
|
+
provenance: external_exports.enum(["explicit", "asserted"]),
|
|
19967
|
+
origin: RequesterRootOriginSchema
|
|
19968
|
+
});
|
|
19953
19969
|
RequesterSchema = external_exports.object({
|
|
19954
19970
|
origin: RequesterOriginSchema,
|
|
19955
19971
|
provenance: RequesterProvenanceSchema,
|
|
19956
|
-
userId: UserIdSchema.nullable().default(null)
|
|
19972
|
+
userId: UserIdSchema.nullable().default(null),
|
|
19973
|
+
// Optional for rows created before inherited root provenance shipped.
|
|
19974
|
+
root: RequesterRootSchema.optional()
|
|
19975
|
+
}).superRefine((requester, context) => {
|
|
19976
|
+
if (requester.root && requester.provenance !== "inherited") {
|
|
19977
|
+
context.addIssue({
|
|
19978
|
+
code: "custom",
|
|
19979
|
+
path: ["root"],
|
|
19980
|
+
message: "Only inherited requesters may carry a root"
|
|
19981
|
+
});
|
|
19982
|
+
}
|
|
19957
19983
|
});
|
|
19958
19984
|
ChatEventRequesterPayloadSchema = external_exports.object({
|
|
19959
19985
|
chat: external_exports.object({ provider: external_exports.string().trim().min(1) }),
|
|
@@ -19964,6 +19990,17 @@ var init_requester = __esm({
|
|
|
19964
19990
|
})
|
|
19965
19991
|
})
|
|
19966
19992
|
});
|
|
19993
|
+
GithubEventRequesterPayloadSchema = external_exports.object({
|
|
19994
|
+
type: external_exports.string(),
|
|
19995
|
+
github: external_exports.object({
|
|
19996
|
+
author: external_exports.object({
|
|
19997
|
+
id: external_exports.number().int().positive(),
|
|
19998
|
+
login: external_exports.string().optional(),
|
|
19999
|
+
type: external_exports.literal("User"),
|
|
20000
|
+
bot: external_exports.literal(false)
|
|
20001
|
+
})
|
|
20002
|
+
})
|
|
20003
|
+
});
|
|
19967
20004
|
LinearEventRequesterPayloadSchema = external_exports.object({
|
|
19968
20005
|
linear: external_exports.object({
|
|
19969
20006
|
actor: external_exports.object({
|
|
@@ -40195,6 +40232,196 @@ triggers:
|
|
|
40195
40232
|
]
|
|
40196
40233
|
}
|
|
40197
40234
|
],
|
|
40235
|
+
"@auto/principal-at-large": [
|
|
40236
|
+
{
|
|
40237
|
+
version: "1.0.0",
|
|
40238
|
+
files: [
|
|
40239
|
+
{
|
|
40240
|
+
path: "agents/principal-at-large.yaml",
|
|
40241
|
+
content: `# Source: https://www.auto.sh/api/v1/templates/%40auto/principal-at-large/1.0.0/agents/principal-at-large.yaml
|
|
40242
|
+
# Required variables: repoFullName
|
|
40243
|
+
# Principal-at-Large \u2014 summons-only exceptional advisor. This managed edition
|
|
40244
|
+
# preserves the Auto fleet's live doctrine while parameterizing tenant wiring.
|
|
40245
|
+
name: principal-at-large
|
|
40246
|
+
labels:
|
|
40247
|
+
purpose: advisor
|
|
40248
|
+
imports:
|
|
40249
|
+
- ../fragments/environments/agent-runtime-prod-debug.yaml
|
|
40250
|
+
harness: claude-code
|
|
40251
|
+
model:
|
|
40252
|
+
provider: anthropic
|
|
40253
|
+
id: claude-fable-5
|
|
40254
|
+
reasoningEffort: max
|
|
40255
|
+
systemPrompt: |
|
|
40256
|
+
You are the Principal-at-Large: a summons-only advisor for the
|
|
40257
|
+
{{ $repoFullName }} repository. You have been here forever, are never in the office, and appear
|
|
40258
|
+
only when a human or another agent explicitly summons you for genuinely
|
|
40259
|
+
exceptional diagnosis, design, or resisted implementation work. You read the
|
|
40260
|
+
evidence, solve the hard part, deliver the answer or intervention, and vanish.
|
|
40261
|
+
|
|
40262
|
+
Prefer detailed diagnosis, design, and guidance as the general rule. Start by
|
|
40263
|
+
deciding whether a concrete written recommendation is enough. Do not create
|
|
40264
|
+
implementation work merely to demonstrate activity. When direct implementation
|
|
40265
|
+
or an external action is necessary to finish the summons safely, or when the
|
|
40266
|
+
summoner directly requests it, act instead of forcing the work back through
|
|
40267
|
+
the summoner: you may edit files, create branches and commits, push follow-on
|
|
40268
|
+
commits, comment on or update pull requests, resolve merge conflicts, run
|
|
40269
|
+
validation, and perform other authorized repository actions. Use the smallest
|
|
40270
|
+
intervention that resolves the hard part and explain exactly what changed.
|
|
40271
|
+
|
|
40272
|
+
You are not an automatic implementation tier and hold no standing artifact
|
|
40273
|
+
ownership. Do not call auto.bind, subscribe to PR or issue lifecycle events,
|
|
40274
|
+
or retain a PR/thread binding after the summons. Existing implementers remain
|
|
40275
|
+
the default PR owners even when you contribute commits or comments. Never
|
|
40276
|
+
merge unless a future summons explicitly authorizes it and the platform grants
|
|
40277
|
+
the capability; this resource intentionally has no merge authority. Do not
|
|
40278
|
+
work around tool or mount limits.
|
|
40279
|
+
|
|
40280
|
+
Work evidence-first:
|
|
40281
|
+
- Read AGENTS.md and docs/idioms.md before repository analysis.
|
|
40282
|
+
- Inspect the relevant code, tests, git history, diffs, issue or PR context,
|
|
40283
|
+
session transcripts, and prior failed attempts before reaching a verdict.
|
|
40284
|
+
- When production evidence is both necessary and authorized, use the repo's
|
|
40285
|
+
documented read-only prod-debug path. SQL is SELECT-only. Never expose
|
|
40286
|
+
secrets or tenant-specific information in the resulting memo.
|
|
40287
|
+
- Separate observed facts, inferences, ruled-out hypotheses, and unknowns.
|
|
40288
|
+
Cite concrete file paths, commits, session turns, logs, or timestamps when
|
|
40289
|
+
they materially support the conclusion.
|
|
40290
|
+
- Consume the summoner's failed attempts instead of restarting the same loop.
|
|
40291
|
+
If the evidence packet is incomplete, name the smallest missing evidence
|
|
40292
|
+
needed rather than guessing.
|
|
40293
|
+
|
|
40294
|
+
Return a concise but complete advisory memo or action report with:
|
|
40295
|
+
1. the diagnosis, recommended design, or intervention performed;
|
|
40296
|
+
2. the causal reasoning and strongest evidence;
|
|
40297
|
+
3. alternatives considered and why they lose;
|
|
40298
|
+
4. concrete next actions, including exact commits/comments when you acted; and
|
|
40299
|
+
5. residual risks, validation steps, and any unresolved questions.
|
|
40300
|
+
|
|
40301
|
+
Summons behavior:
|
|
40302
|
+
- For an agent summons through auto.sessions.spawn or auto.sessions.message,
|
|
40303
|
+
keep all work in this session. The summoning agent remains the default PR
|
|
40304
|
+
owner, but you may implement or take authorized external actions when the
|
|
40305
|
+
evidence says that is the best answer or the summoner asks directly. Report
|
|
40306
|
+
every side effect back to the summoner. Because this agent is uncapped, the
|
|
40307
|
+
summoner should use the returned session id for follow-up messages rather
|
|
40308
|
+
than assuming agent-name addressing is unique.
|
|
40309
|
+
- For a human Slack summons, the chat event's spawn may temporarily claim the
|
|
40310
|
+
thread for de-duplication. Do not rely on that claim for follow-ups. Send one
|
|
40311
|
+
final answer to the supplied channel and thread with chat.send, then
|
|
40312
|
+
immediately call auto.chat.unsubscribe for that same thread so no durable
|
|
40313
|
+
thread binding remains. Do not add a subscribed-reply route; another turn
|
|
40314
|
+
requires another explicit @auto.principal-at-large summons.
|
|
40315
|
+
- After delivering the memo and releasing any Slack thread claim, archive the
|
|
40316
|
+
current session with a compact handoff. The Principal vanishes when the
|
|
40317
|
+
summons is answered.
|
|
40318
|
+
identity:
|
|
40319
|
+
displayName: Principal-at-Large
|
|
40320
|
+
username: principal-at-large
|
|
40321
|
+
avatar:
|
|
40322
|
+
asset: .auto/assets/principal-at-large.png
|
|
40323
|
+
sha256: 7b07137010004b08885837942bd5a155594d066fb7bfc88e3f78bc498b95662d
|
|
40324
|
+
description:
|
|
40325
|
+
Summons-only principal for exceptional diagnosis and design. Advises first,
|
|
40326
|
+
acts when needed, and vanishes.
|
|
40327
|
+
displayTitle: infer
|
|
40328
|
+
mounts:
|
|
40329
|
+
- kind: git
|
|
40330
|
+
repository: "{{ $repoFullName }}"
|
|
40331
|
+
mountPath: /workspace/repo
|
|
40332
|
+
ref: main
|
|
40333
|
+
depth: 100
|
|
40334
|
+
auth:
|
|
40335
|
+
kind: githubApp
|
|
40336
|
+
commitAuthor:
|
|
40337
|
+
name: auto-dot-sh[bot]
|
|
40338
|
+
email: 292914954+auto-dot-sh[bot]@users.noreply.github.com
|
|
40339
|
+
capabilities:
|
|
40340
|
+
contents: write
|
|
40341
|
+
pullRequests: write
|
|
40342
|
+
issues: none
|
|
40343
|
+
checks: read
|
|
40344
|
+
actions: read
|
|
40345
|
+
workflows: write
|
|
40346
|
+
workingDirectory: /workspace/repo
|
|
40347
|
+
tools:
|
|
40348
|
+
auto:
|
|
40349
|
+
kind: local
|
|
40350
|
+
implementation: auto
|
|
40351
|
+
chat:
|
|
40352
|
+
kind: local
|
|
40353
|
+
implementation: chat
|
|
40354
|
+
auth:
|
|
40355
|
+
kind: connection
|
|
40356
|
+
provider: slack
|
|
40357
|
+
connection: slack
|
|
40358
|
+
optional: true
|
|
40359
|
+
triggers:
|
|
40360
|
+
- name: summons
|
|
40361
|
+
event: chat.message.mentioned
|
|
40362
|
+
connection: slack
|
|
40363
|
+
optional: true
|
|
40364
|
+
where:
|
|
40365
|
+
$.chat.provider: slack
|
|
40366
|
+
$.auto.authored: false
|
|
40367
|
+
message: |
|
|
40368
|
+
{{message.author.userName}} explicitly summoned the Principal-at-Large on Slack:
|
|
40369
|
+
|
|
40370
|
+
{{message.text}}
|
|
40371
|
+
|
|
40372
|
+
Channel: {{chat.channelId}}
|
|
40373
|
+
Thread: {{chat.threadId}}
|
|
40374
|
+
|
|
40375
|
+
Treat this as one explicit summons. Prefer a written diagnosis or design,
|
|
40376
|
+
but implement or take authorized external action when necessary or
|
|
40377
|
+
directly requested. Report the result in this thread, immediately
|
|
40378
|
+
unsubscribe from the thread, and archive. Do not retain continuity or
|
|
40379
|
+
artifact ownership.
|
|
40380
|
+
routing:
|
|
40381
|
+
kind: spawn
|
|
40382
|
+
`
|
|
40383
|
+
},
|
|
40384
|
+
{
|
|
40385
|
+
path: "fragments/environments/agent-runtime-prod-debug.yaml",
|
|
40386
|
+
content: `# Source: https://www.auto.sh/api/v1/templates/%40auto/principal-at-large/1.0.0/fragments/environments/agent-runtime-prod-debug.yaml
|
|
40387
|
+
# Portable copy of the compatibility source's full hosted runtime. The optional
|
|
40388
|
+
# secret references preserve the live safety boundary: they grant nothing when
|
|
40389
|
+
# absent, and documented wrappers remain the only sanctioned secret consumers.
|
|
40390
|
+
harness: claude-code
|
|
40391
|
+
environment:
|
|
40392
|
+
name: agent-runtime-prod-debug
|
|
40393
|
+
labels:
|
|
40394
|
+
purpose: agents
|
|
40395
|
+
image:
|
|
40396
|
+
kind: preset
|
|
40397
|
+
name: node24
|
|
40398
|
+
resources:
|
|
40399
|
+
cpuCount: 2
|
|
40400
|
+
memoryMB: 8192
|
|
40401
|
+
steps:
|
|
40402
|
+
- RUN apt-get update && apt-get install -y --no-install-recommends postgresql-client redis-tools jq file unzip && rm -rf /var/lib/apt/lists/*
|
|
40403
|
+
- RUN npm install -g tsx vercel@54.14.5
|
|
40404
|
+
- RUN curl -fsSL -o /tmp/temporal.tgz https://github.com/temporalio/cli/releases/download/v1.7.2/temporal_cli_1.7.2_linux_amd64.tar.gz && echo "e2f548af84e820b7d71f25fc6461a4e6a1ab7cdb6a80fde3c375641b0772375b /tmp/temporal.tgz" | sha256sum -c - && tar -xzf /tmp/temporal.tgz -C /usr/local/bin temporal && rm /tmp/temporal.tgz
|
|
40405
|
+
- RUN curl -fsSL -o /tmp/op.zip https://cache.agilebits.com/dist/1P/op2/pkg/v2.34.1/op_linux_amd64_v2.34.1.zip && echo "b13ed106335419ea0fb0ebd7ebbb3b48cf26a2f214eb4b2fd8d950548e7980ed /tmp/op.zip" | sha256sum -c - && unzip -o /tmp/op.zip op -d /usr/local/bin && rm /tmp/op.zip
|
|
40406
|
+
- RUN curl -fsSL -o /tmp/gh.tgz https://github.com/cli/cli/releases/download/v2.95.0/gh_2.95.0_linux_amd64.tar.gz && echo "25d1e4729e8808c9ed3d613e96ebd3f3e44446f2d368c89d878a71a36ddb3d8c /tmp/gh.tgz" | sha256sum -c - && tar -xzf /tmp/gh.tgz --strip-components=2 -C /usr/local/bin gh_2.95.0_linux_amd64/bin/gh && rm /tmp/gh.tgz
|
|
40407
|
+
- RUN curl -fsSL -o /tmp/pup.tgz https://github.com/datadog-labs/pup/releases/download/v1.2.1/pup_1.2.1_Linux_x86_64.tar.gz && echo "c92ce77db16bee6e63206c779c53d138b1c7d5983f4d68349f1e3c131187a3e4 /tmp/pup.tgz" | sha256sum -c - && tar -xzf /tmp/pup.tgz -C /usr/local/bin pup && rm /tmp/pup.tgz
|
|
40408
|
+
- RUN apt-get update && apt-get install -y --no-install-recommends iptables iproute2 sudo && rm -rf /var/lib/apt/lists/*
|
|
40409
|
+
- RUN curl -fsSL -o /tmp/docker.tgz https://download.docker.com/linux/static/stable/x86_64/docker-29.6.0.tgz && echo "4d2f6782406b56eb43a519ad5078a6a79abe4d663328acb69136aceff5e05224 /tmp/docker.tgz" | sha256sum -c - && tar -xzf /tmp/docker.tgz --strip-components=1 -C /usr/local/bin && rm /tmp/docker.tgz
|
|
40410
|
+
- RUN curl -fsSL --create-dirs -o /usr/local/lib/docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/v5.2.0/docker-compose-linux-x86_64 && echo "018f9612ecabc5f2d7aaa53d6f5f44453a87611e2d72c8ef84d7b1eca070e719 /usr/local/lib/docker/cli-plugins/docker-compose" | sha256sum -c - && chmod 0755 /usr/local/lib/docker/cli-plugins/docker-compose
|
|
40411
|
+
- "RUN groupadd -f docker && usermod -aG docker user && echo 'user ALL=(root) NOPASSWD: /usr/local/bin/dockerd' > /etc/sudoers.d/docker-dockerd && chmod 0440 /etc/sudoers.d/docker-dockerd"
|
|
40412
|
+
- RUN curl -fsSL -o /tmp/tailscale.tgz https://pkgs.tailscale.com/stable/tailscale_1.98.8_amd64.tgz && echo "3a55b5900dd7e11e09b6c74d1e46d223d549dfbefbdc1f044a8ab7bdbafb933c /tmp/tailscale.tgz" | sha256sum -c - && tar -xzf /tmp/tailscale.tgz --strip-components=1 -C /usr/local/bin tailscale_1.98.8_amd64/tailscale tailscale_1.98.8_amd64/tailscaled && rm /tmp/tailscale.tgz
|
|
40413
|
+
env:
|
|
40414
|
+
OP_SERVICE_ACCOUNT_TOKEN:
|
|
40415
|
+
$secret: auto-prod-debug-op-token
|
|
40416
|
+
optional: true
|
|
40417
|
+
TS_AUTHKEY:
|
|
40418
|
+
$secret: tailscale-authkey
|
|
40419
|
+
optional: true
|
|
40420
|
+
`
|
|
40421
|
+
}
|
|
40422
|
+
]
|
|
40423
|
+
}
|
|
40424
|
+
],
|
|
40198
40425
|
"@auto/reaper": [
|
|
40199
40426
|
{
|
|
40200
40427
|
version: "1.0.0",
|
|
@@ -51690,6 +51917,7 @@ var init_hardcoded = __esm({
|
|
|
51690
51917
|
"@auto/onboarding": "Auto's house onboarding guidance, importable as a managed template.",
|
|
51691
51918
|
"@auto/onboarding-quickstart": "The quickstart template repo's onboarding overlay: composes onto @auto/onboarding with the fork-flow walkthrough beats (site request bar, handoff loop, self-improvement demo).",
|
|
51692
51919
|
"@auto/pr-review": "Auto's full pull-request reviewer agent, with optional Slack verdict reporting.",
|
|
51920
|
+
"@auto/principal-at-large": "A summons-only principal for exceptional diagnosis, design, and resisted implementation work that advises first, acts only when needed, and retains no standing ownership.",
|
|
51693
51921
|
"@auto/reaper": "A warn-first cleanup specialist for stale pull requests, stuck sessions, and zombie branches.",
|
|
51694
51922
|
"@auto/research-loop": "A research coordinator that runs measurable optimization campaigns on a fleet of experimenter agents.",
|
|
51695
51923
|
"@auto/self-improvement": "A scheduled sweep over PR feedback, read-only data, and Auto sessions that proposes concrete improvements.",
|
|
@@ -52019,6 +52247,48 @@ var init_catalog = __esm({
|
|
|
52019
52247
|
optionalConnections: ["slack"],
|
|
52020
52248
|
variables: ["repoFullName", "githubConnection"]
|
|
52021
52249
|
},
|
|
52250
|
+
{
|
|
52251
|
+
id: "principal-at-large",
|
|
52252
|
+
template: "@auto/principal-at-large",
|
|
52253
|
+
files: [
|
|
52254
|
+
{
|
|
52255
|
+
subpath: "agents/principal-at-large.yaml",
|
|
52256
|
+
agentFileName: "principal-at-large"
|
|
52257
|
+
}
|
|
52258
|
+
],
|
|
52259
|
+
displayName: "Principal-at-Large",
|
|
52260
|
+
username: "principal-at-large",
|
|
52261
|
+
avatarAsset: "principal-at-large.png",
|
|
52262
|
+
category: "engineering",
|
|
52263
|
+
oneLiner: "Summons-only principal for exceptional diagnosis, design, and resisted failures.",
|
|
52264
|
+
description: "The indispensable engineer who\u2019s almost never actually in the office. You and other agents explicitly summon it for the especially tricky challenges or blockers. It advises first, makes targeted interventions when necessary or requested, and vanishes.",
|
|
52265
|
+
harness: "claude-code",
|
|
52266
|
+
model: "claude-fable-5",
|
|
52267
|
+
reasoningEffort: "max",
|
|
52268
|
+
triggers: [
|
|
52269
|
+
{
|
|
52270
|
+
kind: "agent",
|
|
52271
|
+
title: "Exceptional agent summons",
|
|
52272
|
+
description: "Another agent can explicitly summon it for one evidence-backed diagnosis, design decision, or resisted intervention.",
|
|
52273
|
+
availability: "core"
|
|
52274
|
+
},
|
|
52275
|
+
{
|
|
52276
|
+
kind: "slack",
|
|
52277
|
+
title: "Explicit Slack summons",
|
|
52278
|
+
description: "Auto can connect Slack so a human can invoke exactly one turn with @auto.principal-at-large; it answers, unsubscribes, and vanishes.",
|
|
52279
|
+
availability: "optional",
|
|
52280
|
+
connection: "slack"
|
|
52281
|
+
}
|
|
52282
|
+
],
|
|
52283
|
+
requires: [],
|
|
52284
|
+
optionalConnections: ["slack"],
|
|
52285
|
+
variables: ["repoFullName"],
|
|
52286
|
+
trustNotes: [
|
|
52287
|
+
"Exceptional summons-only capacity; never a routine implementation tier, fleet fallback, heartbeat worker, or broad dispatcher.",
|
|
52288
|
+
"May write repository content and pull requests, but has no merge authority and never becomes the default PR owner.",
|
|
52289
|
+
"Holds no standing bindings; a Slack summons releases its temporary thread claim immediately after the final answer."
|
|
52290
|
+
]
|
|
52291
|
+
},
|
|
52022
52292
|
{
|
|
52023
52293
|
id: "junior-engineer",
|
|
52024
52294
|
template: "@auto/engineering-tier",
|
|
@@ -56290,7 +56560,7 @@ var init_package = __esm({
|
|
|
56290
56560
|
"package.json"() {
|
|
56291
56561
|
package_default = {
|
|
56292
56562
|
name: "@autohq/cli",
|
|
56293
|
-
version: "0.1.
|
|
56563
|
+
version: "0.1.471",
|
|
56294
56564
|
license: "SEE LICENSE IN README.md",
|
|
56295
56565
|
publishConfig: {
|
|
56296
56566
|
access: "public"
|