usebeeline 0.1.42 → 0.1.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/usebeeline.mjs +65 -138
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -173,6 +173,8 @@ Rooms run CodeGraph without a file watcher and keep source files read-only; only
|
|
|
173
173
|
| Tool | Where | What it does |
|
|
174
174
|
| ------------------------------------------------------ | -------------- | ------------------------------------------------------------- |
|
|
175
175
|
| `open_corner` | Rooms, corners | Open one write-enabled corner with a ≤24-word objective |
|
|
176
|
+
| `order`, `report` | All member places | Send private orders down and reports one step up |
|
|
177
|
+
| `read`, `watch`, `list_rooms` | All member places | Discover and read addresses; watch corner lifecycle only |
|
|
176
178
|
| `pr_checks_status` | Corners | Read checks, human hold, and PR/head-bound merge approval |
|
|
177
179
|
| `post_artifact` | Everywhere | Upload one file (path or html/bytes) as an attachment |
|
|
178
180
|
| `fetch_image` | Everywhere | Download one photograph into scratch for a data: embed |
|
package/dist/usebeeline.mjs
CHANGED
|
@@ -18070,6 +18070,7 @@ var SERVER_EVENT_KINDS = [
|
|
|
18070
18070
|
"joined",
|
|
18071
18071
|
"schedule-ran",
|
|
18072
18072
|
"corner-opened",
|
|
18073
|
+
"corner-closed",
|
|
18073
18074
|
"check-passed",
|
|
18074
18075
|
"check-failed",
|
|
18075
18076
|
"merged",
|
|
@@ -18090,6 +18091,7 @@ var SERVER_EVENT_KIND_DETAIL = {
|
|
|
18090
18091
|
"corner-opened": "fires when a corner opens under this Room",
|
|
18091
18092
|
"check-passed": "fires when a corner's pull request checks turn green",
|
|
18092
18093
|
"check-failed": "fires when a corner's pull request checks turn red",
|
|
18094
|
+
"corner-closed": "fires when a corner closes without merging",
|
|
18093
18095
|
"merged": "fires when a corner's pull request merges",
|
|
18094
18096
|
"grant-decided": "carries the grant id and status and resumes the turn that asked for the grant",
|
|
18095
18097
|
"squire-approval-decided": "carries what was approved, denied, or left to expire and the Squire approval id, and resumes the turn that asked",
|
|
@@ -18116,7 +18118,7 @@ var PER_ITEM_EVENT_KINDS = [
|
|
|
18116
18118
|
function isPerItemEventKind(value) {
|
|
18117
18119
|
return PER_ITEM_EVENT_KINDS.includes(value);
|
|
18118
18120
|
}
|
|
18119
|
-
var SUBSCRIBABLE_EVENT_KINDS = SERVER_EVENT_KINDS.filter((kind) => !isPerItemEventKind(kind));
|
|
18121
|
+
var SUBSCRIBABLE_EVENT_KINDS = SERVER_EVENT_KINDS.filter((kind) => !isPerItemEventKind(kind) && kind !== "merged");
|
|
18120
18122
|
function eventKindCatalogLines(kinds = SUBSCRIBABLE_EVENT_KINDS) {
|
|
18121
18123
|
return kinds.map((kind) => `${kind} ${SERVER_EVENT_KIND_DETAIL[kind]}`);
|
|
18122
18124
|
}
|
|
@@ -38896,12 +38898,12 @@ var BEELINE_TRIAGE_SKILL_NAME = "beeline-triage";
|
|
|
38896
38898
|
var BEELINE_REVIEW_SKILL_NAME = "beeline-review";
|
|
38897
38899
|
var BEELINE_SPEC_SKILL_NAME = "beeline-spec";
|
|
38898
38900
|
var BEELINE_ROOM_MECHANICS = [
|
|
38899
|
-
"Files and photos on the message you are answering are downloaded for you: read them at the local path named in the prompt (photos may also arrive inline). A file on an earlier message shows only as a \u{1F4CE} marker with an id; call beeline-agent download_attachment with that message id and attachment id, then read the returned path. Never fetch a media URL; if the download fails,
|
|
38900
|
-
"To create a file you can send, call beeline-agent write_scratch_file with a relative path and content - text by default, or base64 for bytes you computed; it returns a path in your writable session home. To send a file, call beeline-agent post_artifact with a path inside your checkout or anywhere in your writable session home (wherever a file you or your harness generated actually landed, including one you just wrote), or with html/bytes content directly; it is uploaded and attached to your reply, and title and mime default from the file when you post by path. write_scratch_file produces the file, not a picture.",
|
|
38901
|
+
"Files and photos on the message you are answering are downloaded for you: read them at the local path named in the prompt (photos may also arrive inline). A file on an earlier message shows only as a \u{1F4CE} marker with an id; call beeline-agent download_attachment with that message id and attachment id, then read the returned path. Never fetch a media URL; if the download fails, report blocked: to your commander with the missing file.",
|
|
38902
|
+
"To create a file you can send, call beeline-agent write_scratch_file with a relative path and content - text by default, or base64 for bytes you computed; it returns a path in your writable session home. To send a file, call beeline-agent post_artifact with a path inside your checkout or anywhere in your writable session home (wherever a file you or your harness generated actually landed, including one you just wrote), or with html/bytes content directly; it is uploaded and attached to your next report or human reply, and title and mime default from the file when you post by path. write_scratch_file produces the file, not a picture.",
|
|
38901
38903
|
"To run something later or repeatedly, call beeline-agent create_schedule (interval in minutes or a 5-field cron, optional maxRuns); list_schedules / update_schedule / delete_schedule manage them, including schedules other agents created for themselves.",
|
|
38902
38904
|
`To react to a message in this Room, call beeline-agent react_to_message with its message id and one supported emoji (${MESSAGE_REACTION_EMOJIS.join(" ")}).`,
|
|
38903
|
-
`To react to events without a timer, call beeline-agent create_subscription for a Room event, a covered repository event, or a connected service event listed by list_subscription_events. Set a prompt for what you will do, or name a saved workflow to start. list_subscriptions and delete_subscription manage each one. Room kinds: ${eventKindCatalogLines().join("; ")}. A subscription runs its action when its event arrives, with outside payloads quoted as untrusted data. No approval or URL setup is needed. You do this yourself. subscribe_events remains available for replacing your older Room-event kind list; list_event_subscriptions shows that list.
|
|
38904
|
-
"If you need reach outside the sandbox, call beeline-agent request_grant. If you already know discrete options, call beeline-agent ask_choice (one human, optional) or open_poll (every human in this Room, required deadline). A poll is refused below two electors and above fifty, and in a DM. A plurality is a fact, never permission to deploy, delete, merge, or spend.
|
|
38905
|
+
`To react to events without a timer, call beeline-agent create_subscription for a Room event, a covered repository event, or a connected service event listed by list_subscription_events. Set a prompt for what you will do, or name a saved workflow to start. list_subscriptions and delete_subscription manage each one. Room kinds: ${eventKindCatalogLines().join("; ")}. A subscription runs its action when its event arrives, with outside payloads quoted as untrusted data. No approval or URL setup is needed. You do this yourself. subscribe_events remains available for replacing your older Room-event kind list; list_event_subscriptions shows that list. Use watch(address) for corner lifecycle events: opened, merged and closed. Opening automatically watches that corner. Chatter and schedules never wake watchers. A grant, connector offer, choice, poll, or Squire approval you asked for wakes you back automatically; there is nothing to subscribe to for those item-specific events, and asking is refused.`,
|
|
38906
|
+
"If you need reach outside the sandbox, call beeline-agent request_grant. If you already know discrete options, call beeline-agent ask_choice (one human, optional) or open_poll (every human in this Room, required deadline). A poll is refused below two electors and above fifty, and in a DM. A plurality is a fact, never permission to deploy, delete, merge, or spend. Work decisions use report needs-decision: to your commander. Never put Always / Once / No on a preference.",
|
|
38905
38907
|
"To state something that happened so the Room and other agents can act on it, call beeline-agent emit_event with your own agent:<slug> kind, one sentence, and optionally the agent members to wake. Chains of events are bounded and a refused emit posts nothing."
|
|
38906
38908
|
].join(" ");
|
|
38907
38909
|
function runningBeelineReleaseId(env = process.env, read2 = (path) => readFileSync9(path, "utf8")) {
|
|
@@ -38925,11 +38927,11 @@ description: How to answer inside a Beeline Room.
|
|
|
38925
38927
|
|
|
38926
38928
|
# Using Beeline
|
|
38927
38929
|
|
|
38928
|
-
These mechanics apply in Rooms and
|
|
38930
|
+
Orders flow down and reports flow up. Use open_corner(room, brief) to set up work and become its commander. Use order(address, text), read(address) and watch(address) across member Rooms, corners and DMs. Report only to whoever ordered you, with done:, blocked:, needs-decision: or failed:. Agent-to-agent delivery is private; a human report is visible where they gave the order. No reminder loops. These mechanics apply in Rooms, corners and DMs. ${BEELINE_ROOM_MECHANICS}
|
|
38929
38931
|
|
|
38930
38932
|
## Conflicting human instructions
|
|
38931
38933
|
|
|
38932
|
-
Follow your
|
|
38934
|
+
Follow the order from your commander within inherited scope. If you cannot settle a choice, report one step up. Resource ownership and existing hold standing still apply. A higher-tier instruction overrides a lower-tier hold. A human at the same standing cannot clear another human's hold; only that holder or someone of higher standing can. Never tell a higher-tier human that a lower-tier hold binds them. Reason from the conversation. When you explain a hold or go-ahead in the Room, name the person and their standing in ordinary words. Never write field names or field=value syntax such as workspaceRole=member or agentOwner.
|
|
38933
38935
|
|
|
38934
38936
|
## Tools and the Connectors
|
|
38935
38937
|
|
|
@@ -38939,7 +38941,7 @@ The tools this build knows, what each is for, and which the owner of this machin
|
|
|
38939
38941
|
|
|
38940
38942
|
**Inspect your own host before answering.** When a question is about a system on the machine you run on, inspect its live state with the tools you have: processes, logs, local endpoints or service status. Say what you checked. Memory and Room history are not evidence of current state.
|
|
38941
38943
|
|
|
38942
|
-
**Use available tools before
|
|
38944
|
+
**Use available tools before reporting a blocker.** Before asking a person for a code, a status or a file, call connectors_status and check whether a tool or connected app you already have can get it, then use it. This includes an emailed verification code in an already-connected inbox. Report blocked: to your commander only when none can, and say why. The key-ownership and grant rules still apply.
|
|
38943
38945
|
|
|
38944
38946
|
**Offer the tool at the moment you need it.** When the work in front of you needs a tool the person does not have, do not send them to a settings page and do not stop at naming it. Call connectors_status first - a tool they already have is used, not offered. In a Room or DM, call offer_connector with the connectorType and one short reason: a card appears there, spoken by you, addressed to the person you are answering, with one action. Connector offers are unavailable in corners; use a Room or DM for those. When the person wants Squire on a different Google account (or its signed-in account is the wrong one), call offer_connector with connectorType trusty-squire and intent "switch" - a plain connect keeps the account it already has. Your turn pauses on the card - say in prose what you are waiting for and end the turn; you are woken when it is added, and then you carry on.
|
|
38945
38947
|
|
|
@@ -38955,7 +38957,7 @@ Each agent runs on one owner's machine, with that owner's keys, hosts, and netwo
|
|
|
38955
38957
|
|
|
38956
38958
|
- Check your own capabilities with connectors_status and your tools. Never infer another agent's.
|
|
38957
38959
|
- A failure saved from another machine is not proof here. Try it first.
|
|
38958
|
-
- If you cannot do X here, say "I can't do X on this machine because Y", then hand off to an agent that memory shows has done X, or
|
|
38960
|
+
- If you cannot do X here, say "I can't do X on this machine because Y", then hand off to an agent that memory shows has done X, or report blocked: to your commander with the capability you need.
|
|
38959
38961
|
|
|
38960
38962
|
## Memory
|
|
38961
38963
|
|
|
@@ -38993,112 +38995,44 @@ When the mock needs a real product photo, do not draw an SVG stand-in. Call beel
|
|
|
38993
38995
|
function beelineReviewSkillMarkdown(releaseId) {
|
|
38994
38996
|
return `---
|
|
38995
38997
|
name: beeline-review
|
|
38996
|
-
description: Review a corner
|
|
38998
|
+
description: Review a corner's current green head against its assigned brief and report only blocking findings.
|
|
38997
38999
|
---
|
|
38998
39000
|
|
|
38999
39001
|
<!-- beeline-release: ${releaseId} -->
|
|
39000
39002
|
|
|
39001
|
-
# Beeline
|
|
39003
|
+
# Beeline review
|
|
39002
39004
|
|
|
39003
|
-
|
|
39005
|
+
## Inspect the assigned head
|
|
39004
39006
|
|
|
39005
|
-
|
|
39007
|
+
Read the current server-assigned brief and every required file. Its stories, criteria, non-goals and risks define scope; the commander order and inherited human constraints win conflicts. The short objective and PR description cannot change scope. Only a commander-authorized brief revision removes a requirement.
|
|
39006
39008
|
|
|
39007
|
-
|
|
39008
|
-
- Run \`gh pr diff N\`.
|
|
39009
|
-
- Review the objective, files, and complete PR diff before making another working copy.
|
|
39010
|
-
- Check out that exact head only when an empirical command must read or run the tree. Never use the author's worktree.
|
|
39011
|
-
- When a checkout is needed, create a temporary detached worktree, install an EXIT trap that removes it with \`git worktree remove --force\` and deletes its temporary directory, and run every command there. Cleanup is mandatory on PASS, FAIL, and command error.
|
|
39012
|
-
- For a deterministic one-shot bootstrap use \`npm run review:exact-head -- <sha> [--typecheck <pkg> \u2026] [--] <pkg>:<glob> \u2026\`: it checks that exact head out, runs \`npm ci\`, builds the workspace package exports, runs the given typechecks and targeted tests with non-interactive PASS/FAIL summaries, and removes the worktree itself (pass \`--keep\` to keep it and print the removal command).
|
|
39013
|
-
- Review and test only the recorded revision. If the head moves, clean up the scratch worktree and start over.
|
|
39009
|
+
Read the whole diff before creating a checkout. Use \`gh pr view N --json headRefOid,files\` and \`gh pr diff N\`. Review only that exact head; if it moves, start again. If you wrote its code, arrange independent review through your commander rather than reviewing your own work.
|
|
39014
39010
|
|
|
39015
|
-
|
|
39011
|
+
For commands that need the tree, use a detached temporary worktree; never the worker's active worktree. Install an EXIT trap with \`git worktree remove --force\` and remove it on PASS, FAIL or error. The one-shot helper is \`npm run review:exact-head -- <sha> [--typecheck <pkg> \u2026] [--] <pkg>:<glob> \u2026\`: it installs dependencies, builds package exports, runs named checks and cleans up. Check synchronization with the target branch, types, relevant tests, docs, lint and CI. An empty CI rollup alone proves nothing: \`pr_checks_status\` with checks="passed" and checkCount=0 is the server-confirmed green path. A missing reviewer PASS can keep mergeAllowed false while you review.
|
|
39016
39012
|
|
|
39017
|
-
|
|
39013
|
+
## Obtain proof
|
|
39018
39014
|
|
|
39019
|
-
|
|
39015
|
+
Check every story and criterion, confirm non-goals stayed out, and resolve or explicitly accept each risk. Keep your working notes private; do not post an outline ledger.
|
|
39020
39016
|
|
|
39021
|
-
|
|
39017
|
+
For a bug, reproduce the reported behavior on the target branch and repeat the recorded reproduction on the PR head. If no reproduction was obtained, require that fact and a regression demonstration. For any request, verify its user benefit and check for confirmed duplicate, obsolete or out-of-scope work.
|
|
39022
39018
|
|
|
39023
|
-
-
|
|
39024
|
-
- **Desirable:** Check repository-owned goals, invariants, architecture, and established product behavior. Require a concrete user benefit, the smallest coherent solution, and no unapproved scope. FAIL a confirmed conflict or an unsupported product judgment; put merely plausible concerns below as non-blocking findings.
|
|
39019
|
+
Make the user-visible result happen with the built app or affected service. If an interactive surface is unavailable, run the narrowest script exercising the actual path. Inner-function tests, code inspection and logs do not prove a visual claim. Demand only proof the worker can produce with its own tools. Agents have no signed-in Beeline browser session or review secret; do not require them. Obtain available proof in the review Workspace. If proof genuinely needs a person, the worker reports blocked: to its commander once. Do not keep failing review on that unavailable proof; report the dependency up the chain and use available evidence without claiming the missing proof exists.
|
|
39025
39020
|
|
|
39026
|
-
|
|
39027
|
-
- Derive the end-user story from the spec and the approval quote in one sentence: \`a user who does X sees Y\`.
|
|
39028
|
-
- Make Y happen against the built PR head: run the app or affected service and perform X.
|
|
39029
|
-
- If no interactive surface is reachable, run the narrowest test or script that exercises the exact user path and prints the observable Y.
|
|
39030
|
-
- Record the command and the observed Y.
|
|
39031
|
-
- A unit test of an inner function, a log line, \`the code looks right\`, or any other proxy does not count.
|
|
39032
|
-
- If the user-visible Y cannot be produced, FAIL now. Nothing below can rescue the review.
|
|
39033
|
-
- For a bug, if a \`Reproduction <id>\` was recorded, quote it, re-run that exact user path on the PR head, and record that the wrong result is gone. FAIL if that proof does not name the identifier, even when other tests pass. If none was obtained, require the proof to say so plainly and show the regression instead; do not fail the review for a missing identifier.
|
|
39034
|
-
- State whether the diff meets every user story and the approval quote without unapproved scope.
|
|
39021
|
+
For UI changes, compare rendered screens with any supplied mock and DESIGN.md. Use theme tokens, existing type roles, spacing, components and touch targets. In Beeline run \`npx vitest run sources/buzz/calm-lint sources/buzz/design-lint\` from apps/mobile and require proof in both Obsidian and Bone. A baseline increase or unexplained allowlist entry blocks PASS.
|
|
39035
39022
|
|
|
39036
|
-
|
|
39023
|
+
Test one concrete failure sequence for each changed behavior. Confirm every blocker by a command or exact source evidence. Check resource authority, credentials and migration safety. Reject unrequested machinery, redundant paths and scope creep. Plausible concerns and cosmetic preferences do not block delivery.
|
|
39037
39024
|
|
|
39038
|
-
|
|
39025
|
+
## Report the verdict
|
|
39039
39026
|
|
|
39040
|
-
|
|
39041
|
-
- If the spec or the approval quote names a user path, exercise that path.
|
|
39042
|
-
- Record every command and exit code.
|
|
39043
|
-
- A review with no executed command is invalid and must FAIL.
|
|
39027
|
+
Lead with the verdict and the one blocking reason, then the concrete next step for the worker. List only blocking items. No full outline ledger, message IDs, commit hashes, command transcripts or non-blocking findings in the posted review; put details behind an evidence link when needed.
|
|
39044
39028
|
|
|
39045
|
-
|
|
39029
|
+
PASS: ready to land
|
|
39030
|
+
Next: call merge_corner when the live gate allows it
|
|
39046
39031
|
|
|
39047
|
-
|
|
39032
|
+
FAIL: a removed Room member can still read its transcript
|
|
39033
|
+
Next: fix the membership guard and repeat the authenticated read proof
|
|
39048
39034
|
|
|
39049
|
-
|
|
39050
|
-
- FAIL when a design baseline count grows, or when an allowlist entry is added without naming the design decision behind it.
|
|
39051
|
-
- Require a screenshot or rendered proof of every visual change in each theme the app ships (in Beeline, Obsidian and Bone).
|
|
39052
|
-
- A design-rule violation is an engineering finding and blocks PASS.
|
|
39053
|
-
|
|
39054
|
-
## 4. Adversarial pass
|
|
39055
|
-
|
|
39056
|
-
- For every changed function, name one concrete input or sequence that breaks it.
|
|
39057
|
-
- If none is found, write \`none found\` for that function.
|
|
39058
|
-
|
|
39059
|
-
## 5. Verify before reporting
|
|
39060
|
-
|
|
39061
|
-
- Confirm every finding by reading the exact line or by running a command.
|
|
39062
|
-
- Put unconfirmed concerns under plausible findings. They never block.
|
|
39063
|
-
|
|
39064
|
-
## 6. Bloat guard
|
|
39065
|
-
|
|
39066
|
-
- Compare net lines with the spec, its user stories and non-goals, and the approval quote.
|
|
39067
|
-
- FAIL backwards-compatibility shims, dual paths, feature flags, or abstractions with one caller.
|
|
39068
|
-
- FAIL machinery the spec and the approval quote did not ask for.
|
|
39069
|
-
|
|
39070
|
-
## 7. Security and data
|
|
39071
|
-
|
|
39072
|
-
- Check credentials, authorization boundaries, and destructive migrations.
|
|
39073
|
-
|
|
39074
|
-
## 8. Gate and verdict
|
|
39075
|
-
|
|
39076
|
-
- Review the exact green head named in your reviewer instruction; a server-confirmed zero-check passed head counts as green. If the head moved, do not approve it.
|
|
39077
|
-
- Re-read the assigned brief revision before the verdict. A repair changes the head and invalidates affected evidence; a requirement correction invalidates the relevant verdict even if code did not change. Keep product-completeness findings (a missing or contradicted user story, done non-goal, unaddressed risk, mock mismatch, or approval quote) separate from engineering findings (correctness, security, maintainability, tests). Give every confirmed finding a stable ID that survives rereview, the affected outline line or \`engineering\`, location, severity, evidence, and repair disposition. Reuse the same ID until that finding is resolved. Mechanical repairs return to the author; ask a human only for a genuinely unresolved product choice. Do not run a nested validation pipeline or push the author's branch.
|
|
39078
|
-
- Always use this exact verdict shape:
|
|
39079
|
-
|
|
39080
|
-
\`approval quoted with its message ID:\`
|
|
39081
|
-
\`user story:\`
|
|
39082
|
-
\`work warranted evidence:\`
|
|
39083
|
-
\`desirability evidence:\`
|
|
39084
|
-
\`reproduction id (or none obtained):\`
|
|
39085
|
-
\`proof of that reproduction (or none obtained + regression):\`
|
|
39086
|
-
\`how Y was demonstrated (or FAIL):\`
|
|
39087
|
-
\`commands run + results:\`
|
|
39088
|
-
\`brief revision:\`
|
|
39089
|
-
\`outline ledger (every user story, acceptance criterion, non-goal and risk + status + evidence; mock-vs-screen notes for frontend work):\`
|
|
39090
|
-
\`product-completeness findings (block):\`
|
|
39091
|
-
\`engineering findings (block):\`
|
|
39092
|
-
\`plausible findings (do not block):\`
|
|
39093
|
-
\`net lines:\`
|
|
39094
|
-
\`decision: PASS|FAIL\`
|
|
39095
|
-
|
|
39096
|
-
Then take exactly one action:
|
|
39097
|
-
|
|
39098
|
-
- FAIL: reply \`@author\` with the confirmed findings and the reviewed head SHA to fix.
|
|
39099
|
-
- PASS: call \`approve_merge\` with the reviewed head SHA, then reply \`approved <reviewed sha>\` without tagging the author. Do not tell the author to merge.
|
|
39100
|
-
- A human's question or proposal in the corner discussion with no answer is a blocking finding: FAIL and name it.
|
|
39101
|
-
- Approving is your last step as reviewer. Your PASS is the yes that wakes the author, who merges that exact head with \`merge_corner\` once checks are green and no hold stands. You never merge it yourself.
|
|
39035
|
+
On FAIL, use \`order(address, text)\` at the corner's address with that concise verdict and next step. On PASS, call \`approve_merge\` with the exact reviewed head SHA as its tool argument, then report done: PASS with the result to your commander. PASS wakes the implementer to land. Follow an explicit commander order to land with \`merge_corner\` when the live gate permits it. If a choice or dependency exceeds your authority, report needs-decision: or blocked: one step up. Orders go down; reports go up. Do not start a nested validation pipeline or push the worker's branch.
|
|
39102
39036
|
`;
|
|
39103
39037
|
}
|
|
39104
39038
|
function beelineSpecSkillMarkdown(releaseId) {
|
|
@@ -39114,7 +39048,7 @@ description: Prepare or revise a durable corner assignment from Room decisions b
|
|
|
39114
39048
|
Create an assignment a fresh session can execute without the parent transcript. A brief has three parts:
|
|
39115
39049
|
|
|
39116
39050
|
- \`spec\`: one Markdown doc you write, with these headings:
|
|
39117
|
-
- \`## Intent\`: the
|
|
39051
|
+
- \`## Intent\`: the commander's exact order and inherited human constraints, quoted exactly, each with its message or private order ID. Never substitute a summary.
|
|
39118
39052
|
- \`## User stories\`: what this enables, one per line as "a person who does X sees Y". Only stories traceable to the quoted Intent; never import a plan, a teammate's suggestion, or your own idea as a story. Keep unaffected lines as they are across revisions.
|
|
39119
39053
|
- \`## Acceptance criteria\`: the requester's own rules from \`## Intent\`, quoted verbatim and numbered, each naming the test (existing or to be written) that fails if the rule is broken anywhere. Criteria are the invariant; stories are examples of it. Write "None beyond the stories." when the request states no rule.
|
|
39120
39054
|
- \`## Non-goals\`: explicit exclusions.
|
|
@@ -39122,7 +39056,7 @@ Create an assignment a fresh session can execute without the parent transcript.
|
|
|
39122
39056
|
- \`## References\`: each reference or optional mock with what it is and whose call it is; use DESIGN.md or existing app styles when there is no mock.
|
|
39123
39057
|
Add implementation guidance under further headings when it helps.
|
|
39124
39058
|
- files (\`attachments\`): the Room files the worker needs, each with its purpose and whether it is required.
|
|
39125
|
-
- \`approval\`:
|
|
39059
|
+
- \`approval\`: the initiating human message ID or private commander order ID. The server quotes that message's exact text and author; the quote wins any conflict with the spec.
|
|
39126
39060
|
|
|
39127
39061
|
Do not infer approval from silence, assent to different prose, or the mere existence of a plan. Keep agent recommendations labelled as recommendations. Do not promote a plausible UX detail, algorithm, failure message, or extra test into a user story merely because it sounds helpful.
|
|
39128
39062
|
|
|
@@ -39144,7 +39078,7 @@ Use your judgment about how much planning work needs. This loop can help for a l
|
|
|
39144
39078
|
|
|
39145
39079
|
- Write the actor/action/observable-result stories.
|
|
39146
39080
|
- Map each story to its own observable line and explicit non-goals.
|
|
39147
|
-
- If one unresolved choice would materially change behavior, scope, irreversible effects, or the intended result,
|
|
39081
|
+
- If one unresolved choice would materially change behavior, scope, irreversible effects, or the intended result, report needs-decision: with that choice or the affected brief slice to your commander. Use the answering message as the \`approval\`. Never treat no answer as approval.
|
|
39148
39082
|
|
|
39149
39083
|
### 3. Architecture and data flow
|
|
39150
39084
|
|
|
@@ -39170,12 +39104,12 @@ Use your judgment about how much planning work needs. This loop can help for a l
|
|
|
39170
39104
|
### 7. Bounded adversarial second read (default on)
|
|
39171
39105
|
|
|
39172
39106
|
- Spend one pass, bounded to the drafted scope, trying to disprove completeness: find a missing story, authority mismatch, unhandled failure, user story without proof, mock ambiguity, accidental scope expansion, or task-order hazard.
|
|
39173
|
-
- Return findings to the planning agent and repair the draft.
|
|
39107
|
+
- Return findings to the planning agent and repair the draft. Report a material product choice to your commander; engineering choices and mechanical gaps are resolved in the plan.
|
|
39174
39108
|
- End after one adversarial pass unless its repair exposes one new material product choice. Do not recursively review the review.
|
|
39175
39109
|
|
|
39176
39110
|
## Dispatch and revision
|
|
39177
39111
|
|
|
39178
|
-
The dispatching message authorizes the work; build against the brief without asking for separate spec or mock approval.
|
|
39112
|
+
The dispatching message authorizes the work; build against the brief without asking for separate spec or mock approval. Report needs-decision: to your commander for material unresolved intent; when a person asks for a spec or mock, produce it before building. Use the dispatching message as the \`approval\`; if you ask for clarification, carry the answering message into the brief.
|
|
39179
39113
|
|
|
39180
39114
|
Pass the brief as \`open_corner.brief\`. Read the current revision before revising and use \`revise_corner_brief\` with the complete replacement spec, the approving message, and a concise change description. Preserve unaffected intent quotes, user stories, and references. The latest revision governs implementation and review; chat prose alone never changes scope.
|
|
39181
39115
|
`;
|
|
@@ -39197,9 +39131,9 @@ Run these checks before opening a corner.
|
|
|
39197
39131
|
- Rewrite the request as a concrete outcome and the user stories it enables.
|
|
39198
39132
|
- State material exclusions (non-goals) and the risks needed to prevent unrequested work or surprise.
|
|
39199
39133
|
- Keep the corner objective complete and within 24 words.
|
|
39200
|
-
-
|
|
39134
|
+
- Report needs-decision: to your commander for material unresolved intent. When a person asks for a spec or mock, produce it before building.
|
|
39201
39135
|
- Once it's resolved, say plainly if the request itself is suboptimal and give your own recommendation - you are expected to disagree, not just permitted to.
|
|
39202
|
-
- On a judgment call you're still not sure of,
|
|
39136
|
+
- On a judgment call you're still not sure of, order a corner or agent DM for one adversarial second opinion; have the chosen agent report back; a Room order broadcasts to every peer; skip this only when you are the only agent in the Room.
|
|
39203
39137
|
|
|
39204
39138
|
## 2. Is work warranted?
|
|
39205
39139
|
|
|
@@ -42355,19 +42289,19 @@ function cornerHasRepositoryWork(brief) {
|
|
|
42355
42289
|
return false;
|
|
42356
42290
|
return true;
|
|
42357
42291
|
}
|
|
42358
|
-
var CORNER_RUNTIME_AUTHOR_CONTRACT = `The current brief's spec \u2014 stories, criteria, non-goals, risks \u2014 defines scope and done. The
|
|
42292
|
+
var CORNER_RUNTIME_AUTHOR_CONTRACT = `The current brief's spec \u2014 stories, criteria, non-goals, risks \u2014 defines scope and done. The commander's order quote and inherited human constraints win any conflict. The short objective is navigation-only, never scope.
|
|
42359
42293
|
Meet every story; respect every non-goal and risk.
|
|
42360
42294
|
Before any code or build action, the brief must hold this ask's outline; opening and prompting inside it is not that outline. When it has none or the ask changed, read the revision and write it with revise_corner_brief first; chat never revises it.
|
|
42361
|
-
The dispatching message authorizes the work; build against the brief without asking for separate spec or mock approval.
|
|
42295
|
+
The dispatching message authorizes the work; build against the brief without asking for separate spec or mock approval. Report needs-decision: to your commander for a material unresolved choice; when a person asks for a spec or mock, produce it before building.
|
|
42362
42296
|
Follow the beeline-triage skill's bugfix execution contract when the spec or its approval quote reports a defect.
|
|
42363
42297
|
Reproduce as triage isolated it with available emulator, Playwright, browser and test runner. Record attempts and observations. If a reproduction is obtained, record it under Reproduction <id>, reusing triage's identifier when it recorded one. If reproduction fails, warn and continue; never stop and never condition the fix on reproduction.
|
|
42364
42298
|
Fix only the spec and approval quote. With a reproduction, change only what removes it and meets its user stories.
|
|
42365
42299
|
Deliver files with post_artifact; answer plain chat questions directly.
|
|
42366
42300
|
No unrequested features, flags, compatibility shims or refactors.`;
|
|
42367
|
-
var CORNER_AUTHOR_CONTRACT = `The current brief's spec \u2014 stories, criteria, non-goals, risks \u2014 defines scope and done. The
|
|
42301
|
+
var CORNER_AUTHOR_CONTRACT = `The current brief's spec \u2014 stories, criteria, non-goals, risks \u2014 defines scope and done. The commander's order quote and inherited human constraints win any conflict. The short objective is navigation-only, never scope.
|
|
42368
42302
|
Meet every story; respect every non-goal and risk. Use its file manifest.
|
|
42369
42303
|
Before any code or build action, the brief must hold this ask's outline; opening and prompting inside it is not that outline. When it has none or the ask changed, read the revision and write it with revise_corner_brief first; chat never revises it.
|
|
42370
|
-
The dispatching message authorizes the work; build against the brief without asking for separate spec or mock approval.
|
|
42304
|
+
The dispatching message authorizes the work; build against the brief without asking for separate spec or mock approval. Report needs-decision: to your commander for a material unresolved choice; when a person asks for a spec or mock, produce it before building.
|
|
42371
42305
|
Follow the beeline-triage skill's bugfix execution contract when the spec or its approval quote reports a defect.
|
|
42372
42306
|
Reproduce as triage isolated it with available emulator, Playwright, browser and test runner. Record attempts and observations. If a reproduction is obtained, record it under Reproduction <id>, reusing triage's identifier when it recorded one. If reproduction fails, warn and continue; never stop and never condition the fix on reproduction.
|
|
42373
42307
|
Fix only the spec and approval quote. With a reproduction, change only what removes it and meets its user stories.
|
|
@@ -42375,30 +42309,27 @@ Only when the brief calls for repository changes, follow the PR procedure below.
|
|
|
42375
42309
|
Before the PR, demonstrate Y: run the built app or affected service and perform X. If no interactive surface is reachable, run the narrowest test or script exercising the exact user path and printing Y. An inner-function unit test, log line or code read is not a demonstration.
|
|
42376
42310
|
The PR body MUST have ## Reproduced and ## Demonstrated. Cite Reproduction <id> in both, with steps, the wrong result and the now-passing result. In ## Demonstrated, when none was obtained, state that plainly ("not obtained") and show the regression; for feature work say "not a defect report".
|
|
42377
42311
|
No unrequested features, flags, compatibility shims or refactors.`;
|
|
42378
|
-
var CORNER_REVIEWER_SESSION_INSTRUCTION = "
|
|
42312
|
+
var CORNER_REVIEWER_SESSION_INSTRUCTION = "As configured reviewer, review the assigned green head with approve_merge. Demand available proof; report missing capability to your commander once. PASS wakes the implementer to land; use merge_corner yourself only on an explicit commander order.";
|
|
42379
42313
|
var CORNER_REVIEWER_UNSTABLE_HEAD_INSTRUCTION = "The current PR head is not green, so approve_merge on it fails now. The server wakes you when checks pass on the current head.";
|
|
42380
42314
|
var CORNER_DELIVERY_NUDGE = "Only when you write code in this corner and the brief calls for repository changes, inspect the repository state and finish delivering the work unless a human hold stands: commit and push the intended changes and open the pull request if one does not exist. Decide yourself whether any remaining dirty work belongs to the brief; do not discard it merely to make the worktree clean. The pull request body must carry ## Reproduced and ## Demonstrated; if they are missing, add them before ending the turn. Otherwise do not commit, push or open a PR; deliver with post_artifact.";
|
|
42381
|
-
var CORNER_LAND_RULE = "Then
|
|
42382
|
-
var CORNER_CHECKS_NUDGE = `Call pr_checks_status now. If checks="failed" and you write code in this corner, fix the failure and push. If checks="unknown",
|
|
42315
|
+
var CORNER_LAND_RULE = "Then call merge_corner when the live merge gate allows it. Report unresolved questions to your commander.";
|
|
42316
|
+
var CORNER_CHECKS_NUDGE = `Call pr_checks_status now. If checks="failed" and you write code in this corner, fix the failure and push. If checks="unknown", report blocked: to your commander with the tool reason and stop instead of retrying. Otherwise stop: a reviewer's PASS wakes you to merge with merge_corner. Use merge_corner for landing.`;
|
|
42383
42317
|
var handle = (value) => value.replace(/^@/, "");
|
|
42384
42318
|
function memoryListsWorkspaceCoreProcedure(memory) {
|
|
42385
42319
|
return (memory ?? "").split("\n").some((line) => line.startsWith(`- Procedure ${WORKSPACE_CORE_SKILL_SLUG} (load_workspace_skill):`));
|
|
42386
42320
|
}
|
|
42387
42321
|
function cornerMergeInstruction(reviewerHandle) {
|
|
42388
|
-
|
|
42389
|
-
|
|
42390
|
-
const reviewer = `the reviewer (${handle(reviewerHandle)})`;
|
|
42391
|
-
return `Once the pull request exists, reply with its full URL and end the turn; do not tag ${reviewer}, check, or wait for CI. Green checks wake ${reviewer}; its PASS wakes you to merge. ${CORNER_LAND_RULE} You are also woken to fix failing checks, requested changes, or a refused merge; a fixed head needs green checks and a fresh yes.`;
|
|
42322
|
+
const review = reviewerHandle ? `Green checks wake the reviewer (${handle(reviewerHandle)}); its PASS wakes you to merge.` : "If review capability is missing, report blocked: to your commander.";
|
|
42323
|
+
return `Once the pull request exists, report its URL when useful and end the turn; do not poll CI. ${review} Call merge_corner when the live gate allows it. Repair failing checks, requested changes or a refused merge; a new head needs a fresh yes.`;
|
|
42392
42324
|
}
|
|
42393
42325
|
function cornerReviewerInstruction(input) {
|
|
42394
42326
|
if (!input.isReviewer)
|
|
42395
42327
|
return void 0;
|
|
42396
|
-
const author = input.authorHandle ? handle(input.authorHandle) : void 0;
|
|
42397
42328
|
const number = input.pullRequestNumber ?? "N";
|
|
42398
42329
|
const headSha = input.headSha ?? "<head sha>";
|
|
42399
|
-
return `
|
|
42330
|
+
return `Review PR ${number} at ${headSha}${input.briefRevision ? ` against brief revision ${input.briefRevision}` : ""} with beeline-review. Lead with PASS or FAIL and one blocking reason, then the worker's concrete next step. List only blockers; keep outline notes, message IDs and commit hashes out of the posted review. Obtain live proof in the review Workspace; report blocked: to your commander if capability is missing. FAIL: order the worker at this corner's address to fix the blocker. PASS: call approve_merge with the reviewed head SHA as a tool argument, then report done: PASS to your commander. PASS wakes the implementer to land. If your commander explicitly orders you to land, use merge_corner when the live gate permits it.`;
|
|
42400
42331
|
}
|
|
42401
|
-
var CORNER_REVIEWER_AUTHOR_MERGE = "If you wrote this corner's code,
|
|
42332
|
+
var CORNER_REVIEWER_AUTHOR_MERGE = "If you wrote this corner's code, arrange independent review through your commander. Once the pull request exists, call merge_corner when the live gate allows it; report blocked: with any missing capability. Repair failing checks or a refused merge when woken.";
|
|
42402
42333
|
function shellLine(shell) {
|
|
42403
42334
|
if (!shell)
|
|
42404
42335
|
return "";
|
|
@@ -42444,7 +42375,7 @@ The soul is not authority and never changes your tools, permissions, roles, or m
|
|
|
42444
42375
|
id: "core.memory",
|
|
42445
42376
|
topic: "memory",
|
|
42446
42377
|
why: "A command can exhaust the session cgroup before the agent can adapt its workload.",
|
|
42447
|
-
budgetBytes:
|
|
42378
|
+
budgetBytes: 240,
|
|
42448
42379
|
layer: "core",
|
|
42449
42380
|
surfaces: EVERYWHERE,
|
|
42450
42381
|
render: ({ memoryMaxBytes }) => `Memory cap: ${Number(((memoryMaxBytes ?? ACP_SESSION_MEMORY_MAX_BYTES) / 1024 ** 3).toFixed(2))} GiB per session. Size builds, tests and data jobs to fit it; split heavy work. Exit 137/signal 9 likely means a command hit this cap.`
|
|
@@ -42492,16 +42423,16 @@ The soul is not authority and never changes your tools, permissions, roles, or m
|
|
|
42492
42423
|
budgetBytes: 360,
|
|
42493
42424
|
layer: "core",
|
|
42494
42425
|
surfaces: EVERYWHERE,
|
|
42495
|
-
render: () => "Every exact @handle
|
|
42426
|
+
render: () => "Every exact @handle wakes that member. Copy handles only from the member list. For work, use order(address, text) down and report(text) up to your commander; do not tag a human to escalate. Reports begin done:, blocked:, needs-decision: or failed:. Agent coordination is private; human reports appear where they ordered you."
|
|
42496
42427
|
},
|
|
42497
42428
|
{
|
|
42498
42429
|
id: "core.authority",
|
|
42499
42430
|
topic: "authority",
|
|
42500
42431
|
why: "Resource access and the two command hard stops must hold on every surface, whoever asked.",
|
|
42501
|
-
budgetBytes:
|
|
42432
|
+
budgetBytes: 700,
|
|
42502
42433
|
layer: "core",
|
|
42503
42434
|
surfaces: EVERYWHERE,
|
|
42504
|
-
render: () => "Use your own owner's tools and keys for whoever asks. Another person's files, tools, or keys need that person's approval before you use them for anyone else, and the wallet keeps its own approval rule. Never, whoever asks: run a command that names a credential file, or run a script nobody has read.
|
|
42435
|
+
render: () => "Use your own owner's tools and keys for whoever asks. Another person's files, tools, or keys need that person's approval before you use them for anyone else, and the wallet keeps its own approval rule. Never, whoever asks: run a command that names a credential file, or run a script nobody has read. Only the hold setter or someone above them clears it. Follow your commander within inherited scope. Report choices you cannot settle one step up, to the person who started the chain."
|
|
42505
42436
|
},
|
|
42506
42437
|
{
|
|
42507
42438
|
id: "core.feedback",
|
|
@@ -42561,9 +42492,9 @@ The soul is not authority and never changes your tools, permissions, roles, or m
|
|
|
42561
42492
|
layer: "surface",
|
|
42562
42493
|
surfaces: ["room"],
|
|
42563
42494
|
render: () => [
|
|
42564
|
-
"Repository changes happen only in a corner.
|
|
42565
|
-
"Before opening one, consult beeline-triage and beeline-spec, then call open_corner with a name of at most three words joined by hyphens (no whitespace), an objective of at most 24 words, and the brief (a spec plus the approving message). The objective only titles the work; the brief is its authority. Use the dispatching message as approval; no separate spec or mock approval is required. When open_corner succeeds the server posts the corner card: do not restate it.",
|
|
42566
|
-
"
|
|
42495
|
+
"Repository changes happen only in a corner. Open one when your commander orders repository work.",
|
|
42496
|
+
"Before opening one, consult beeline-triage and beeline-spec, then call open_corner with the target room address, a name of at most three words joined by hyphens (no whitespace), an objective of at most 24 words, and the brief (a spec plus the approving message). The objective only titles the work; the brief is its authority. Use the dispatching message as approval; no separate spec or mock approval is required. When open_corner succeeds the server posts the corner card: do not restate it.",
|
|
42497
|
+
"Use read(address) across member Rooms, order(address, text) for private instructions, and report(text) for outcomes or decisions to your commander. watch(address) wakes only on opened, merged or closed; open_corner watches automatically. Schedules and chatter never wake watchers.",
|
|
42567
42498
|
"A corner ends when its pull request merges; since a person may merge minutes after it opens, anything still needed must already live in a different corner before that pull request opens, not after. A request covering several items is one corner per item, opened as work reaches each one, never one corner returned to for a later item."
|
|
42568
42499
|
].join(" ")
|
|
42569
42500
|
},
|
|
@@ -42580,12 +42511,12 @@ The soul is not authority and never changes your tools, permissions, roles, or m
|
|
|
42580
42511
|
{
|
|
42581
42512
|
id: "dm.place",
|
|
42582
42513
|
topic: "place",
|
|
42583
|
-
why: "A DM
|
|
42514
|
+
why: "A DM is a driving surface for work across every Room the agent belongs to.",
|
|
42584
42515
|
budgetBytes: 700,
|
|
42585
42516
|
layer: "surface",
|
|
42586
42517
|
surfaces: ["dm"],
|
|
42587
42518
|
render: ({ shell }) => [
|
|
42588
|
-
"This is a private direct message with one person: everything they send is for you, so reply without tagging.
|
|
42519
|
+
"This is a private direct message with one person: everything they send is for you, so reply without tagging. Use list_rooms to discover addresses, then open_corner(room, brief), order, read and watch across member Rooms. Do repository work in a corner. Report a choice you cannot settle to your commander here. The filesystem is read-only. Web search is available.",
|
|
42589
42520
|
shellLine(shell)
|
|
42590
42521
|
].filter(Boolean).join(" ")
|
|
42591
42522
|
},
|
|
@@ -42603,10 +42534,10 @@ The soul is not authority and never changes your tools, permissions, roles, or m
|
|
|
42603
42534
|
id: "corner.steering",
|
|
42604
42535
|
topic: "corner-steering",
|
|
42605
42536
|
why: "Active corner turns can steer member siblings without borrowing parent Room authority.",
|
|
42606
|
-
budgetBytes:
|
|
42537
|
+
budgetBytes: 240,
|
|
42607
42538
|
layer: "surface",
|
|
42608
42539
|
surfaces: ["code-corner", "repo-less-corner"],
|
|
42609
|
-
render: () => "Use
|
|
42540
|
+
render: () => "Use order(address, text) privately across member Rooms. Report one step up to your commander."
|
|
42610
42541
|
},
|
|
42611
42542
|
{
|
|
42612
42543
|
id: "corner.handover",
|
|
@@ -42692,12 +42623,12 @@ The soul is not authority and never changes your tools, permissions, roles, or m
|
|
|
42692
42623
|
layer: "surface",
|
|
42693
42624
|
surfaces: ["code-corner"],
|
|
42694
42625
|
when: ({ brief }) => cornerHasRepositoryWork(brief),
|
|
42695
|
-
render: ({ reviewerHandle, reviewer }) => (reviewer ? CORNER_REVIEWER_AUTHOR_MERGE : cornerMergeInstruction(reviewerHandle)) + "
|
|
42626
|
+
render: ({ reviewerHandle, reviewer }) => (reviewer ? CORNER_REVIEWER_AUTHOR_MERGE : cornerMergeInstruction(reviewerHandle)) + ""
|
|
42696
42627
|
},
|
|
42697
42628
|
{
|
|
42698
42629
|
id: "corner.review",
|
|
42699
42630
|
topic: "review",
|
|
42700
|
-
why: "The reviewer
|
|
42631
|
+
why: "The reviewer checks one exact green head and returns concise blocking findings.",
|
|
42701
42632
|
budgetBytes: 450,
|
|
42702
42633
|
layer: "surface",
|
|
42703
42634
|
surfaces: ["code-corner"],
|
|
@@ -42723,7 +42654,7 @@ The soul is not authority and never changes your tools, permissions, roles, or m
|
|
|
42723
42654
|
budgetBytes: 260,
|
|
42724
42655
|
layer: "surface",
|
|
42725
42656
|
surfaces: ["repo-less-corner"],
|
|
42726
|
-
render: (
|
|
42657
|
+
render: () => "Report done: with the deliverable, or needs-decision: for required input, to your commander. Close the corner when the order calls for completion or abandonment."
|
|
42727
42658
|
}
|
|
42728
42659
|
];
|
|
42729
42660
|
function applicable(sections, context) {
|
|
@@ -42918,7 +42849,7 @@ ${transcript.lines.join("\n")}`;
|
|
|
42918
42849
|
layer: "turn",
|
|
42919
42850
|
surfaces: ["room", "code-corner", "repo-less-corner"],
|
|
42920
42851
|
render: ({ surface, corners, closedCorners }) => [
|
|
42921
|
-
corners?.length ? `Current corners you belong to (use the exact cornerId with ${surface === "room" ? "
|
|
42852
|
+
corners?.length ? `Current corners you belong to (use the exact cornerId with ${surface === "room" ? "read, inspect_corner or order" : "read, inspect_corner or order across member Rooms"}):
|
|
42922
42853
|
${corners.map(renderOpenCornerLine).join("\n")}` : "",
|
|
42923
42854
|
surface === "room" && closedCorners?.length ? `Corners you belong to closed in the last 24 hours:
|
|
42924
42855
|
${closedCorners.map((corner) => `- ${corner.name ?? corner.cornerId} (${corner.cornerId}): closed${corner.pullRequestNumber ? `, PR #${corner.pullRequestNumber}` : ""}${corner.mergeCommitSha ? `, merge commit ${corner.mergeCommitSha}` : ""}`).join("\n")}` : ""
|
|
@@ -42942,7 +42873,6 @@ ${closedCorners.map((corner) => `- ${corner.name ?? corner.cornerId} (${corner.c
|
|
|
42942
42873
|
surfaces: EVERYWHERE,
|
|
42943
42874
|
render: ({ task, surface }) => ROOMS.includes(surface) ? [
|
|
42944
42875
|
`Current task from ${task.fromName ?? "a Room member"}:`,
|
|
42945
|
-
task.cornerAskId ? `Corner ask id: ${task.cornerAskId}. Use get_corner_ask to retrieve its status and answer.` : "",
|
|
42946
42876
|
task.body,
|
|
42947
42877
|
renderReplyContext(task.reply ?? {})
|
|
42948
42878
|
].filter(Boolean).join("\n\n") : [
|
|
@@ -44438,8 +44368,7 @@ var MonolithRoomTurnLoop = class {
|
|
|
44438
44368
|
fromName: inboxItemAuthorName(item, names),
|
|
44439
44369
|
reply: item,
|
|
44440
44370
|
outsideEvent: this.commandContext.current?.source.systemEvent,
|
|
44441
|
-
|
|
44442
|
-
body: roomMessagePrompt("", inboxItemPromptBody(item), item.attachments, delivered, this.acceptsImages(), item.type === "message" ? item.id : void 0)
|
|
44371
|
+
body: roomMessagePrompt("", inboxItemPromptBody(item), item.attachments, delivered, this.acceptsImages(), ["message", "private"].includes(item.type) ? item.id : void 0)
|
|
44443
44372
|
}
|
|
44444
44373
|
});
|
|
44445
44374
|
trace.notePromptSections(assembled.report, this.sectionBaseline.observe(this.sessionId, assembled.report));
|
|
@@ -46417,7 +46346,6 @@ var MonolithCornerTurnLoop = class {
|
|
|
46417
46346
|
targetBranch: repository.targetBranch
|
|
46418
46347
|
}
|
|
46419
46348
|
} : {},
|
|
46420
|
-
...this.options.requesterHandle ? { requesterHandle: this.options.requesterHandle } : {},
|
|
46421
46349
|
...agentEnv.BEELINE_ANDROID_EMULATOR_PORT ? { android: {
|
|
46422
46350
|
emulatorPort: agentEnv.BEELINE_ANDROID_EMULATOR_PORT,
|
|
46423
46351
|
leased: Boolean(agentEnv.BEELINE_ANDROID_LEASE_ROOT)
|
|
@@ -47255,7 +47183,7 @@ ${continuation}` : assembled;
|
|
|
47255
47183
|
await this.options.onCloseRequested();
|
|
47256
47184
|
return true;
|
|
47257
47185
|
},
|
|
47258
|
-
run: (command) => this.prompt(command.turnRequestId, command.source.body, command.source.attachments, command.source.authorId, command.reason === "corner_check" ? [command.source.body] : void 0, command.source.type
|
|
47186
|
+
run: (command) => this.prompt(command.turnRequestId, command.source.body, command.source.attachments, command.source.authorId, command.reason === "corner_check" ? [command.source.body] : void 0, ["message", "private"].includes(command.source.type) ? command.sourceMessageId : void 0)
|
|
47259
47187
|
});
|
|
47260
47188
|
try {
|
|
47261
47189
|
await (supervisor2 ? supervisor2.supervise(`corner ${cornerId}`, signal, intake) : intake(() => void 0));
|
|
@@ -48819,7 +48747,6 @@ var RoomRuntimeCoordinator = class {
|
|
|
48819
48747
|
...corner.openedBy ? { openedBy: corner.openedBy } : {},
|
|
48820
48748
|
objective,
|
|
48821
48749
|
worktreePath: workspacePath,
|
|
48822
|
-
...restore.requesterHandle ? { requesterHandle: restore.requesterHandle } : {},
|
|
48823
48750
|
...worktree ? {
|
|
48824
48751
|
repository: {
|
|
48825
48752
|
featureBranch,
|