@quireco/cli 0.0.8 → 0.0.10
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 +20 -13
- package/dist/chunk-e9Ob2GDo.mjs +26 -0
- package/dist/cli-CqxFgCaa.mjs +50058 -0
- package/dist/dist-CW-Om7Oq.mjs +833 -0
- package/dist/index.mjs +1 -1
- package/dist/quire.mjs +1 -1
- package/package.json +2 -1
- package/dist/cli-vr0Pht7B.mjs +0 -2519
package/README.md
CHANGED
|
@@ -75,27 +75,27 @@ quire doctor --strict # exit non-zero on warnings as well as failures
|
|
|
75
75
|
|
|
76
76
|
Each check has a stable `id` (e.g. `auth.present`, `auth.valid`, `runbook.present`, `runbook.readable`, `runs.rootWritable`) so coding agents can act on specific failures without parsing prose. Failing checks include a `fix.command` you can run to resolve them. Exit code is `0` when all checks pass (or only warnings in non-strict mode) and `1` otherwise.
|
|
77
77
|
|
|
78
|
-
##
|
|
78
|
+
## Runs
|
|
79
79
|
|
|
80
|
-
The primary interface is text-in
|
|
80
|
+
The primary interface is text-in work. For humans, `quire "..."` starts a run and attaches to the live run log:
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
83
|
quire "Reproduce the checkout crash"
|
|
84
|
-
quire
|
|
85
|
-
quire
|
|
84
|
+
quire "Verify the login page loads"
|
|
85
|
+
quire run "Reproduce the checkout crash"
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
Use `--detach` to start the run in the background and print run-control commands without attaching:
|
|
89
89
|
|
|
90
90
|
```bash
|
|
91
|
-
quire
|
|
91
|
+
quire run "Reproduce the checkout crash" --detach
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
Coding agents and scripts should use `--json`. JSON mode returns a durable run handle immediately, never prompts, and keeps stdout machine-readable:
|
|
95
95
|
|
|
96
96
|
```bash
|
|
97
|
-
quire
|
|
98
|
-
cat issue.md | quire
|
|
97
|
+
quire run "Reproduce the checkout crash" --json
|
|
98
|
+
cat issue.md | quire run --json
|
|
99
99
|
quire status <run-id> --json
|
|
100
100
|
quire watch <run-id>
|
|
101
101
|
```
|
|
@@ -109,18 +109,18 @@ printf 'Fixture account: buyer@example.com\n' | quire continue <run-id> --json
|
|
|
109
109
|
|
|
110
110
|
`continue` starts a new linked run, forks the prior harness-native session when available, and injects the previous transcript, handoff, evidence summary, and new caller context. The original run remains immutable.
|
|
111
111
|
|
|
112
|
-
`
|
|
112
|
+
`run` carries a deliberately small flag surface. Target context belongs in the prompt, `--url`, `$QUIRE_WEB_URL`, and `.quire/runbook.md`. Piped stdin is read automatically when stdin is a pipe or redirected file. If a positional prompt is also present, the prompt steers the piped context. The run-level flags are:
|
|
113
113
|
|
|
114
114
|
- `--json` reserves stdout for the started run handle JSON only and uses automation-safe fail-fast behavior.
|
|
115
115
|
- `--detach` starts the run without attaching to the live log.
|
|
116
116
|
- `--headed` shows the browser window when browser automation is used.
|
|
117
117
|
- `--url <url>` provides an explicit caller-context URL for one run. It does not force the run to be a web target; the agent still resolves what the URL means from the request and runbook.
|
|
118
118
|
|
|
119
|
-
The top-level prompt form and the explicit
|
|
119
|
+
The top-level prompt form and the explicit `run` command are equivalent:
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
122
|
quire "Verify checkout before I approve this PR"
|
|
123
|
-
quire
|
|
123
|
+
quire run "Verify checkout before I approve this PR"
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
Run lifecycle operations are top-level verbs: `quire status <run-id>`, `quire watch <run-id>`, `quire cancel <run-id>`, and `quire sync <run-id>`. The plural `quire runs` command lists recent runs.
|
|
@@ -139,7 +139,7 @@ run/
|
|
|
139
139
|
|
|
140
140
|
Set `QUIRE_RUNS_DIR` to override the run-artifact root. `status.json` is Quire-owned operational state: lifecycle status, run metadata, request metadata, sync state, harness-session pointers, and final handoff/result JSON. `progress.jsonl` is the user-visible narrated timeline that powers `quire watch` and synced case events. `handoff.md` is the durable user-facing output. `evidence/` contains artifacts referenced by the progress stream or handoff. Harness-native transcripts live in hidden `.harness-sessions/` files and are referenced from `status.json`; they are private implementation state, not the public Quire run ledger.
|
|
141
141
|
|
|
142
|
-
Local
|
|
142
|
+
Local runs use the Pi agent loop on your machine. Quire prefers local Pi/OpenAI Codex provider auth when it is configured, then local GitHub Copilot auth, then Quire Credits through Quire's authenticated broker. Quire-owned provider auth is read from `~/.local/share/quire/model-auth.json` by default, with compatibility fallback to Pi's existing auth file. Set `QUIRE_MODEL_AUTH_PATH` to override the Quire-owned model auth file. `quire login` associates local runs with your Quire account for identity, wallet access, run upload, and future hosted workflows; personal model-provider auth remains a separate local-provider concern.
|
|
143
143
|
|
|
144
144
|
The investigation runtime defaults to GPT-5.5 with medium thinking effort for local ChatGPT/Codex auth, local GitHub Copilot auth, and Quire Credits brokered through Cloudflare AI Gateway.
|
|
145
145
|
|
|
@@ -169,11 +169,18 @@ Remote agents can use an environment-scoped API token instead of browser login:
|
|
|
169
169
|
```bash
|
|
170
170
|
export QUIRE_API_TOKEN=qk_...
|
|
171
171
|
quire whoami --json
|
|
172
|
-
quire
|
|
172
|
+
quire run "Verify this PR" --json
|
|
173
173
|
```
|
|
174
174
|
|
|
175
175
|
API tokens are created in the web app under Settings → API Tokens. The CLI sends them with `X-Quire-API-Key`, uses `QUIRE_API_URL` when pointing at a non-production Quire app, and syncs runs under the token's environment name so Cursor Cloud, Codex, and CI activity can be grouped separately from direct human sessions.
|
|
176
176
|
|
|
177
|
+
For local Quire website/API dogfooding, keep the source default pointed at `https://quire.sh` and override per command:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
vp run @quireco/cli#quire:local whoami
|
|
181
|
+
vp run @quireco/cli#quire:local run "verify the local dashboard" --url http://localhost:3000/dashboard
|
|
182
|
+
```
|
|
183
|
+
|
|
177
184
|
## Hosted Model-Source Status
|
|
178
185
|
|
|
179
186
|
Use `quire whoami --json` to check the authenticated account and hosted model-source status before relying on remote Quire Credits behavior:
|
|
@@ -204,4 +211,4 @@ Use `quire whoami --json` to check the authenticated account and hosted model-so
|
|
|
204
211
|
}
|
|
205
212
|
```
|
|
206
213
|
|
|
207
|
-
The hosted status is a redacted summary from Quire's server-side model-source API. It does not include provider credentials, sealed envelopes, raw tokens, prompts, or completions. Local `quire
|
|
214
|
+
The hosted status is a redacted summary from Quire's server-side model-source API. It does not include provider credentials, sealed envelopes, raw tokens, prompts, or completions. Local `quire run` can use local Pi/OpenAI auth when configured; Quire Credits and hosted/Slack-triggered execution use Quire-managed billing.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
//#region \0rolldown/runtime.js
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
12
|
+
key = keys[i];
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: ((k) => from[k]).bind(null, key),
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
21
|
+
value: mod,
|
|
22
|
+
enumerable: true
|
|
23
|
+
}) : target, mod));
|
|
24
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
25
|
+
//#endregion
|
|
26
|
+
export { __require as n, __toESM as r, __commonJSMin as t };
|