triss-coworker 0.37.1 → 0.37.2
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/CHANGELOG.md +59 -19
- package/README.md +128 -46
- package/THIRD_PARTY_NOTICES +26 -0
- package/bin/triss.js +4 -4
- package/docs/cli-reference.md +10 -0
- package/docs/compatibility.md +16 -0
- package/docs/configuration.md +19 -10
- package/docs/data-flows.md +20 -0
- package/docs/deprecations.md +7 -0
- package/docs/engines/crush.md +60 -0
- package/docs/engines/index.md +9 -0
- package/docs/{opencode-go.md → engines/opencode-go.md} +3 -2
- package/docs/{opencode-zen.md → engines/opencode-zen.md} +8 -5
- package/docs/{opencode2.md → engines/opencode2.md} +9 -7
- package/docs/getting-started.md +12 -0
- package/docs/mcp.md +21 -7
- package/docs/{reliable-delegation-release-a.md → reliable-delegation-contract.md} +76 -38
- package/docs/security-model.md +16 -0
- package/docs/troubleshooting.md +15 -0
- package/package.json +29 -9
- package/src/coder-credential-proxy.js +3 -3
- package/src/coder-engines/crush.js +17 -23
- package/src/coder-engines/opencode2.js +10 -16
- package/src/coder-git-mediator.js +1 -1
- package/src/coder-lease.js +3 -2
- package/src/coder-models.js +10 -10
- package/src/coder-orchestration.js +4 -4
- package/src/coder-process-supervisor.js +2 -2
- package/src/coder-result-owner-adapter.js +4 -4
- package/src/coder-result-quarantine.js +1 -1
- package/src/coder-result-registry-codec.js +1 -1
- package/src/coder-result-transitions.js +2 -2
- package/src/coder-result.js +5 -5
- package/src/coder-run-state.js +5 -5
- package/src/coder-sandbox.js +5 -5
- package/src/coder-session-inventory-codec.js +1 -1
- package/src/coder-session-owner-adapter.js +3 -3
- package/src/coder-session-store.js +4 -4
- package/src/coder-session-transitions.js +3 -3
- package/src/coder-state-backup.js +5 -5
- package/src/coder-state.js +3 -3
- package/src/coder-write-quota.js +3 -3
- package/src/commands/coder-state-backup.js +1 -1
- package/src/commands/coder.js +166 -147
- package/src/commands/review.js +7 -7
- package/src/config-defaults.js +20 -0
- package/src/config.js +3 -3
- package/src/fixed-kernel-lock.js +3 -3
- package/src/integrations/_contract.js +1 -1
- package/src/managed-root.js +3 -3
- package/src/mcp/handlers.js +3 -3
- package/src/mcp/review-core.js +10 -10
- package/src/mcp/tools.js +1 -1
- package/src/opencode-config.js +11 -11
- package/src/opencode2-preflight.js +36 -33
- package/src/owned-process-journal.js +2 -2
- package/src/owned-process-reconcile.js +35 -5
- package/src/provider-errors.js +3 -3
- package/src/review-executor.js +9 -9
- package/src/review-git.js +6 -6
- package/src/review-input.js +2 -2
- package/src/review-live.js +2 -2
- package/src/review-payload.js +13 -13
- package/src/review-pr-fetch.js +4 -4
- package/src/review-pr-identity.js +3 -3
- package/src/review-pr-metadata.js +5 -5
- package/src/review-pr-registry.js +3 -3
- package/src/review-pr.js +7 -7
- package/src/review-scoped.js +2 -2
- package/src/usage.js +5 -6
- package/src/web.js +2 -1
- package/src/worktree-fingerprint.js +2 -2
- package/templates/claude-full.md +163 -3
- package/templates/claude.md +11 -1
- package/templates/codex-full.md +162 -2
- package/templates/codex.md +11 -1
- package/docs/coder-agent-plan.md +0 -929
- package/docs/coder-model-management-plan.md +0 -1328
- package/docs/coder-one-shot-provider-plan.md +0 -140
- package/docs/coder-process-lifecycle-plan.md +0 -62
- package/docs/codex-workflow-improvements-plan.md +0 -350
- package/docs/crush-glm-integration.md +0 -294
- package/docs/crush-issues.md +0 -270
- package/docs/crush-restrict-issues.md +0 -170
- package/docs/deepseek-harness-provider-bundle-plan.md +0 -529
- package/docs/extending.md +0 -260
- package/docs/glm-clients.md +0 -569
- package/docs/openai-compatible-coder-plan.md +0 -259
- package/docs/opencode-go-support-plan.md +0 -145
- package/docs/opencode2-engine-plan.md +0 -1280
- package/docs/reliable-delegation-contract-plan.md +0 -5477
- package/docs/review-stdin-plan.md +0 -465
- package/docs/update-system-plan.md +0 -1302
- package/docs/usage-accounting-plan.md +0 -993
- package/src/release-a-acceptance.js +0 -605
package/CHANGELOG.md
CHANGED
|
@@ -7,8 +7,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.37.2] — 2026-08-20
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Host-agent delegation workflow guidance** — a single documented
|
|
15
|
+
one-host/one-coder workflow: the host plans and decides, sends one complete
|
|
16
|
+
task packet to one `triss coder run`, the coder investigates, implements,
|
|
17
|
+
tests, debugs, and self-verifies, and the host inspects the actual diff and
|
|
18
|
+
makes the final decision. Taught consistently in `README.md`, the full
|
|
19
|
+
cookbooks (`templates/codex-full.md`, `templates/claude-full.md`), the nano
|
|
20
|
+
templates (`templates/codex.md`, `templates/claude.md`), and the
|
|
21
|
+
authoritative `docs/reliable-delegation-contract.md`.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- Coder and researcher agent templates now state the approval boundary
|
|
26
|
+
explicitly: the coder never commits, pushes, deploys, or touches anything
|
|
27
|
+
outside its checkout and reports truthfully; the researcher is a
|
|
28
|
+
research-only specialist and not a mandatory precursor to coder work.
|
|
29
|
+
|
|
30
|
+
### Documentation
|
|
31
|
+
|
|
32
|
+
- Scope the constant `expectation: "either"` output field and the
|
|
33
|
+
`run_files_changed` change-evidence field to the `opencode`/`crush`
|
|
34
|
+
engines in `docs/reliable-delegation-contract.md` and `docs/mcp.md`; the
|
|
35
|
+
`opencode2` beta envelope reports neither and uses `files_changed`
|
|
36
|
+
instead.
|
|
37
|
+
|
|
38
|
+
### Artifact integrity (0.37.2)
|
|
39
|
+
|
|
40
|
+
- `triss-dsh-provider-bundle-0.37.2.tgz` — sha256
|
|
41
|
+
`0327051792f0fe0d5431619aee7e2dee120fbbdb744b3e7f9afdd0eb958740b9`,
|
|
42
|
+
integrity
|
|
43
|
+
`sha512-BBZlA9OiA8pIp+n+GJ9RBX4+yPQpRoKjQLx8KY/5ZIlqRCMUJ5SResBEuVpPiMI9UDTnWq2rQp5JI/6TVh0Y7w==`
|
|
44
|
+
(computed with the pinned release npm 11.6.2 via `npm pack`; `npm pack`
|
|
45
|
+
output is byte-deterministic).
|
|
46
|
+
- Root `triss-coworker-0.37.2.tgz` sha256 is reproducible via `npm pack` at
|
|
47
|
+
tag `v0.37.2` (the root tarball ships `CHANGELOG.md`, so its hash cannot be
|
|
48
|
+
recorded inside this file); registry verification compares the packed
|
|
49
|
+
artifact against the published tarball byte-for-byte.
|
|
50
|
+
|
|
10
51
|
## [0.37.1] — 2026-08-19
|
|
11
52
|
|
|
53
|
+
|
|
12
54
|
### Fixed
|
|
13
55
|
|
|
14
56
|
- Propagate cancellation through the main MCP review path and fail closed
|
|
@@ -35,8 +77,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
35
77
|
|
|
36
78
|
### Added
|
|
37
79
|
|
|
38
|
-
- **Reliable delegation (
|
|
39
|
-
`docs/reliable-delegation-contract
|
|
80
|
+
- **Reliable delegation (sharding acceptance)** — sequential sharding per the
|
|
81
|
+
public `docs/reliable-delegation-contract.md`:
|
|
40
82
|
- `--payload-mode shard` CLI + MCP shard parity: source-ordered
|
|
41
83
|
whole-file shards (a file is never split across shards);
|
|
42
84
|
- sequential executor with first-failure stop, cancellation
|
|
@@ -49,13 +91,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
49
91
|
never completed prose or raw diff content;
|
|
50
92
|
- `evidence + shard` and `shard + --stream` rejected before any model
|
|
51
93
|
call;
|
|
52
|
-
-
|
|
53
|
-
acceptance (`--live --
|
|
94
|
+
- sharding synthetic acceptance (`--synthetic --suite sharding`) and live
|
|
95
|
+
acceptance (`--live --suite sharding`; PASS / SKIPPED_NO_CREDENTIALS /
|
|
54
96
|
BLOCKED_ENVIRONMENT recorded separately, never upgraded to success).
|
|
55
97
|
|
|
56
|
-
- **Reliable delegation (
|
|
57
|
-
diff acquisition, and the issue trust boundary per
|
|
58
|
-
`docs/reliable-delegation-contract
|
|
98
|
+
- **Reliable delegation (review acceptance)** — bounded single review, exact PR
|
|
99
|
+
diff acquisition, and the issue trust boundary per the public
|
|
100
|
+
`docs/reliable-delegation-contract.md`:
|
|
59
101
|
- reloadable review limits (`TRISS_REVIEW_SINGLE_MAX_BYTES`,
|
|
60
102
|
`TRISS_REVIEW_SHARD_MAX_BYTES`, `TRISS_REVIEW_TOTAL_MAX_BYTES`,
|
|
61
103
|
`TRISS_REVIEW_MAX_SHARDS`) with atomic validation and full-default
|
|
@@ -122,7 +164,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
122
164
|
(`usage_source: "opencode2"`, terminal-error precedence, no fabricated
|
|
123
165
|
zeros), namespaces sessions per engine, and rides the shared opencode-v1
|
|
124
166
|
configuration backend for `coder model set` / rollback. See
|
|
125
|
-
docs/opencode2.md and docs/opencode2-engine-plan.md.
|
|
167
|
+
docs/engines/opencode2.md and docs/opencode2-engine-plan.md.
|
|
126
168
|
|
|
127
169
|
### Security (opencode2 engine beta)
|
|
128
170
|
|
|
@@ -150,7 +192,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
150
192
|
canonical parser (comments and trailing commas no longer abort the run),
|
|
151
193
|
and `parseOpenCodeDocument` drops trailing commas followed by comments.
|
|
152
194
|
|
|
153
|
-
### Fixed
|
|
195
|
+
### Fixed
|
|
154
196
|
|
|
155
197
|
- Dual legacy/native config forms (`provider`+`providers`,
|
|
156
198
|
`plugin`+`plugins`, `permission`+`permissions`) reject — the pinned build
|
|
@@ -176,7 +218,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
176
218
|
rejects BEFORE any credential/config write with actionable guidance; a
|
|
177
219
|
fresh V2 init warns that the shared deny-everything policy removes the
|
|
178
220
|
allowlisted commands from plain V1 runs (documented in
|
|
179
|
-
docs/opencode2.md, including two new troubleshooting rows).
|
|
221
|
+
docs/engines/opencode2.md, including two new troubleshooting rows).
|
|
180
222
|
- Model inspection tolerates unrelated hostile config shapes (a non-string
|
|
181
223
|
plugin reference, unreadable directories) — the post-commit audit of a
|
|
182
224
|
successful `coder model set` no longer rolls back over them; `coder
|
|
@@ -209,12 +251,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
209
251
|
|
|
210
252
|
### Added
|
|
211
253
|
|
|
212
|
-
- **Reliable delegation (
|
|
213
|
-
`docs/reliable-delegation-contract
|
|
254
|
+
- **Reliable delegation (session acceptance)** — coder envelope v2 orchestration
|
|
255
|
+
per the public `docs/reliable-delegation-contract.md`:
|
|
214
256
|
- envelope fields `session_slug`, `result_retention`, `result_id`, and
|
|
215
257
|
`execution_capabilities` (eight honest `enforced|best_effort|unavailable`
|
|
216
258
|
values + `effective_isolation`) on every safe envelope
|
|
217
|
-
(`docs/reliable-delegation-
|
|
259
|
+
(`docs/reliable-delegation-contract.md`);
|
|
218
260
|
- v2 session CLI: `triss coder session list`, `triss coder session clean
|
|
219
261
|
<slug> --engine <opencode|crush>` (per-engine store only, legacy
|
|
220
262
|
`.triss/sessions.json` never touched);
|
|
@@ -229,7 +271,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
229
271
|
phase-aware manifest machine, completion-marker hashing);
|
|
230
272
|
- credential proxy (loopback one-run token) on both engines — the real
|
|
231
273
|
provider key never reaches the engine environment; every run requires
|
|
232
|
-
the proxy (
|
|
274
|
+
the proxy (session acceptance rejects runs when it is unavailable);
|
|
233
275
|
- pure provider error classifier with stable public codes
|
|
234
276
|
(`TRISS_PROVIDER_AUTH/POLICY/RATE/TIMEOUT/NOT_FOUND/CONNECTION/UNKNOWN/
|
|
235
277
|
CONFLICT/EMPTY`);
|
|
@@ -762,7 +804,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
762
804
|
tools (which now light up on `ZHIPU_API_KEY` **or** `OPENCODE_API_KEY`). (#12)
|
|
763
805
|
- `--allow-unsafe-bash` on `triss coder init` — explicit opt-in to proceed when
|
|
764
806
|
an existing `opencode.json` has no deny-first bash policy. (#12)
|
|
765
|
-
- New `docs/opencode-zen.md` deep-dive (auth, live catalogue, precedence, setup
|
|
807
|
+
- New `docs/engines/opencode-zen.md` deep-dive (auth, live catalogue, precedence, setup
|
|
766
808
|
gates, privacy, MCP, verification). (#12)
|
|
767
809
|
|
|
768
810
|
### Changed
|
|
@@ -805,9 +847,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
805
847
|
npm version. (#10)
|
|
806
848
|
- New `docs/glm-clients.md` — a single reference for how Triss talks to
|
|
807
849
|
GLM (both engines, key/endpoint routing, model selection, usage modes,
|
|
808
|
-
and the safety model),
|
|
809
|
-
`docs/crush-restrict-issues.md` capturing the crush maintainer bug
|
|
810
|
-
reports. (#10)
|
|
850
|
+
and the safety model), plus two Crush maintainer bug reports. (#10)
|
|
811
851
|
|
|
812
852
|
### Changed
|
|
813
853
|
|
|
@@ -1226,7 +1266,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1226
1266
|
|
|
1227
1267
|
### Fixed
|
|
1228
1268
|
|
|
1229
|
-
- Documentation-audit
|
|
1269
|
+
- Documentation-audit security and correctness fixes from a `triss` self-audit.
|
|
1230
1270
|
|
|
1231
1271
|
## [0.12.0] — 2026-05-07
|
|
1232
1272
|
|
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ GitHub Issues, and GitLab Issues, so your agent can search, read, create,
|
|
|
24
24
|
update, comment on, and transition work items without pulling thousands of
|
|
25
25
|
tokens of tracker chatter into its own context. Adding a new provider
|
|
26
26
|
(Notion, Asana, Sentry, ...) takes one folder — see
|
|
27
|
-
[
|
|
27
|
+
[extension guide](https://github.com/ayleen/triss-coworker/blob/main/docs/extending.md).
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
@@ -56,7 +56,8 @@ tokens of tracker chatter into its own context. Adding a new provider
|
|
|
56
56
|
yarn, git, tar, unzip, or a checksum utility once a standalone Release exists.
|
|
57
57
|
- A **DeepSeek API key** (free tier works) for the worker model: <https://platform.deepseek.com/>.
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
No external service or system-wide binary is required for the core CLI. npm
|
|
60
|
+
dependencies are installed with the package.
|
|
60
61
|
|
|
61
62
|
## Install
|
|
62
63
|
|
|
@@ -305,7 +306,7 @@ The exposed tool set is **filtered by configured credentials**:
|
|
|
305
306
|
`MOONSHOT_API_KEY` (Moonshot Kimi), or `KIMI_API_KEY` (Kimi for Coding)
|
|
306
307
|
(setup: `triss coder init`). `triss_coder_run` takes an optional `engine`
|
|
307
308
|
(`opencode` V1 default; `--engine opencode2` beta — see
|
|
308
|
-
[opencode2.md](docs/opencode2.md) — or `crush`); its timeout defaults to
|
|
309
|
+
[opencode2.md](docs/engines/opencode2.md) — or `crush`); its timeout defaults to
|
|
309
310
|
1500s (25 min) over MCP, above the CLI's 900s, since coding runs are
|
|
310
311
|
expected to be long; override per call via the `timeout` arg. For
|
|
311
312
|
runs that may exceed it, use `triss coder run` on the CLI instead.
|
|
@@ -314,9 +315,8 @@ Add credentials later → restart session → new tools appear automatically.
|
|
|
314
315
|
|
|
315
316
|
Full reference: [docs/mcp.md](docs/mcp.md).
|
|
316
317
|
|
|
317
|
-
The
|
|
318
|
-
|
|
319
|
-
what `triss init` and `triss agent-help` render into other projects:
|
|
318
|
+
The files under `templates/` are what `triss init` and `triss agent-help`
|
|
319
|
+
render into other projects:
|
|
320
320
|
`claude.md` / `codex.md` are the nano variants written by `init`, and
|
|
321
321
|
`claude-full.md` / `codex-full.md` are the long cookbook served by
|
|
322
322
|
`agent-help`.
|
|
@@ -326,6 +326,70 @@ what `triss init` and `triss agent-help` render into other projects:
|
|
|
326
326
|
The expensive primary agent decides **what** to do. Triss does the **reading
|
|
327
327
|
and writing**.
|
|
328
328
|
|
|
329
|
+
### Recommended host-agent workflow
|
|
330
|
+
|
|
331
|
+
Keep one primary agent and one coder per implementation stream. You (the
|
|
332
|
+
expensive primary agent) understand the request, decide the plan, and own
|
|
333
|
+
architecture, authorization, and final acceptance; the coder owns the
|
|
334
|
+
repository investigation, implementation, tests, debugging, and
|
|
335
|
+
self-verification; you then inspect the actual diff and evidence and make
|
|
336
|
+
the final decision. Do not default to a researcher -> planner -> coder ->
|
|
337
|
+
verifier -> reviewer chain — use `triss ask` / `triss fetch` for
|
|
338
|
+
research-only work and `triss review` only when complexity, security
|
|
339
|
+
sensitivity, or regression risk materially improves confidence. Split work
|
|
340
|
+
across coders only when the streams are independently executable with
|
|
341
|
+
explicit merge or handoff boundaries. Prefer a fresh run without intentional
|
|
342
|
+
session reuse: pass the complete task packet to every run and rely on
|
|
343
|
+
`--session` / `--continue` only for deliberate continuation.
|
|
344
|
+
|
|
345
|
+
Pass the whole plan as one task packet — Goal, Plan, Constraints, Relevant
|
|
346
|
+
context, Success criteria, Validation, Return — via `triss coder run --stdin`
|
|
347
|
+
for long prompts or as the MCP `prompt` string:
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
triss coder run --stdin --isolate <<'TASK'
|
|
351
|
+
Goal
|
|
352
|
+
- Add the requested behavior.
|
|
353
|
+
|
|
354
|
+
Plan
|
|
355
|
+
- Follow the host-approved implementation steps.
|
|
356
|
+
|
|
357
|
+
Constraints
|
|
358
|
+
- Preserve existing public behavior outside the requested scope.
|
|
359
|
+
- Do not commit, push, deploy, or modify files outside this checkout.
|
|
360
|
+
|
|
361
|
+
Relevant context
|
|
362
|
+
- Known entry points, related files, prior findings, errors, or reference behavior.
|
|
363
|
+
- Include only context needed for this task; let the coder inspect the repository for the rest.
|
|
364
|
+
|
|
365
|
+
Success criteria
|
|
366
|
+
- Focused regression tests pass.
|
|
367
|
+
- The final diff contains only the requested change.
|
|
368
|
+
|
|
369
|
+
Validation
|
|
370
|
+
- Run the relevant repository-native focused tests.
|
|
371
|
+
|
|
372
|
+
Return
|
|
373
|
+
- Outcome, files changed, checks, and unresolved blockers.
|
|
374
|
+
TASK
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
`triss agent-help` prints the generated host-agent cookbook and the final
|
|
378
|
+
acceptance checklist.
|
|
379
|
+
|
|
380
|
+
Existing `triss coder init` installations keep their generated agent files
|
|
381
|
+
(`init` never overwrites them, so re-running it alone will not refresh
|
|
382
|
+
them). To adopt the stronger coder/researcher roles:
|
|
383
|
+
|
|
384
|
+
- local scope: merge or replace `./.opencode/agents/coder.md` /
|
|
385
|
+
`./.opencode/agents/researcher.md`;
|
|
386
|
+
- global scope (the `triss coder init` default): merge or replace
|
|
387
|
+
`~/.config/opencode/agents/coder.md` /
|
|
388
|
+
`~/.config/opencode/agents/researcher.md`;
|
|
389
|
+
- to regenerate them, back up or remove the generated files first, then
|
|
390
|
+
re-run `triss coder init` with the matching explicit `--local` / `--global`
|
|
391
|
+
scope.
|
|
392
|
+
|
|
329
393
|
| Command | Does | Replaces |
|
|
330
394
|
| --------------- | ----------------------------------------------------- | ----------------------------------- |
|
|
331
395
|
| `triss ask` | Reads files, URLs, and/or piped stdin — returns a summary | The agent reading the source itself |
|
|
@@ -337,8 +401,8 @@ and writing**.
|
|
|
337
401
|
| `triss review` | Code review on a branch, PR, or explicitly piped diff (linked ticket only for branch/PR) | The agent reading the whole diff |
|
|
338
402
|
| `triss commit-msg` | Generates a commit message from staged diff | Hand-writing or copy-pasting from web LLMs |
|
|
339
403
|
| `triss usage` | Cumulative cost / token usage with per-project breakdown | Squinting at stderr after each call |
|
|
340
|
-
| `triss coder init` | Sets up a coding agent (default `opencode` V1 engine; `--engine opencode2` for the V2 beta — shares the `opencode.json` config, see [docs/opencode2.md](docs/opencode2.md); `--engine crush` for crush): provider key/profile (`--provider worker` reuses `TRISS_WORKER_*`; Z.AI GLM default; Zen, Go, and Kimi are also supported), config, permission policy, and agent templates. Blocks (non-zero) on an unsafe existing `opencode.json` — missing deny-first bash policy (override with `--allow-unsafe-bash`) or a stale/cross-provider `small_model`. | Manually installing/configuring opencode |
|
|
341
|
-
| `triss coder run` | Spawns the coding agent (the OpenAI-compatible Triss worker, GLM, Kimi, OpenCode Zen, or OpenCode Go) and prints one JSON envelope (`--engine opencode|opencode2|crush` — opencode V1 default, opencode2 beta per [docs/opencode2.md](docs/opencode2.md); `--isolate` for a disposable worktree — opencode defaults to isolate-OFF, crush defaults to isolate-ON; crush adds opt-in `--restrict`/`--no-restrict` for its CLI allowlist). **POSIX only** (macOS/Linux) — refuses to run on Windows. | Manually driving `opencode run` and parsing its ndjson stream |
|
|
404
|
+
| `triss coder init` | Sets up a coding agent (default `opencode` V1 engine; `--engine opencode2` for the V2 beta — shares the `opencode.json` config, see [docs/engines/opencode2.md](docs/engines/opencode2.md); `--engine crush` for crush): provider key/profile (`--provider worker` reuses `TRISS_WORKER_*`; Z.AI GLM default; Zen, Go, and Kimi are also supported), config, permission policy, and agent templates. Blocks (non-zero) on an unsafe existing `opencode.json` — missing deny-first bash policy (override with `--allow-unsafe-bash`) or a stale/cross-provider `small_model`. | Manually installing/configuring opencode |
|
|
405
|
+
| `triss coder run` | Spawns the coding agent (the OpenAI-compatible Triss worker, GLM, Kimi, OpenCode Zen, or OpenCode Go) and prints one JSON envelope (`--engine opencode|opencode2|crush` — opencode V1 default, opencode2 beta per [docs/engines/opencode2.md](docs/engines/opencode2.md); `--isolate` for a disposable worktree — opencode defaults to isolate-OFF, crush defaults to isolate-ON; crush adds opt-in `--restrict`/`--no-restrict` for its CLI allowlist). **POSIX only** (macOS/Linux) — refuses to run on Windows. | Manually driving `opencode run` and parsing its ndjson stream |
|
|
342
406
|
| `triss coder clean` | Removes finished `.triss/wt` isolation worktrees (`--all` forces all) | Manually finding and deleting stale git worktrees |
|
|
343
407
|
| `triss coder session` | Lists / cleans inactive v2 sessions per engine (`--engine opencode|crush`) | Hand-patching the session store |
|
|
344
408
|
| `triss coder result` | Lists / cleans retained result artifacts (enforced result-store quota) | Finding result-store files by hand |
|
|
@@ -569,10 +633,10 @@ triss review --files src/a.js test/b.test.js # literal file selection (after --
|
|
|
569
633
|
triss review --issue ENG-42 # explicit tracker issue (never inferred from prose)
|
|
570
634
|
```
|
|
571
635
|
|
|
572
|
-
### Reliable delegation — review safety (
|
|
636
|
+
### Reliable delegation — review safety (review acceptance)
|
|
573
637
|
|
|
574
|
-
Review runs are bounded and fail closed (see
|
|
575
|
-
[`docs/reliable-delegation-
|
|
638
|
+
Review runs are bounded and fail closed (see the
|
|
639
|
+
[`docs/reliable-delegation-contract.md`](docs/reliable-delegation-contract.md)):
|
|
576
640
|
|
|
577
641
|
- **Limits**: single request (256 KiB default / 1 MiB hard max), shard
|
|
578
642
|
(96 KiB / 256 KiB), total corpus (4 MiB / 16 MiB), shard count (64 /
|
|
@@ -593,7 +657,7 @@ Review runs are bounded and fail closed (see
|
|
|
593
657
|
- **Empty responses** fail with `TRISS_PROVIDER_EMPTY` instead of
|
|
594
658
|
producing a clean verdict; usable non-empty text is never trimmed.
|
|
595
659
|
|
|
596
|
-
###
|
|
660
|
+
### Sequential review sharding
|
|
597
661
|
|
|
598
662
|
`triss review --payload-mode shard` runs source-ordered whole-file shards
|
|
599
663
|
sequentially. A file is never split across shards; the first failure or
|
|
@@ -659,7 +723,7 @@ default timeout, configurable via `--timeout <ms>`.
|
|
|
659
723
|
Delegates an implementation task to a cheap coding agent — the existing
|
|
660
724
|
OpenAI-compatible Triss worker, GLM, Kimi,
|
|
661
725
|
OpenCode Zen, or OpenCode Go models (the `opencode` V1 engine by default;
|
|
662
|
-
`opencode2` beta — see [docs/opencode2.md](docs/opencode2.md) — or `crush`; see
|
|
726
|
+
`opencode2` beta — see [docs/engines/opencode2.md](docs/engines/opencode2.md) — or `crush`; see
|
|
663
727
|
**Engines** below) instead of the primary model writing
|
|
664
728
|
the code itself.
|
|
665
729
|
|
|
@@ -676,16 +740,26 @@ triss coder state backup --project <path> # Section 15 rollback backup
|
|
|
676
740
|
triss coder state validate --project <path> --backup <dir>
|
|
677
741
|
```
|
|
678
742
|
|
|
679
|
-
Every `triss coder run` envelope
|
|
680
|
-
|
|
681
|
-
generated
|
|
743
|
+
Every `triss coder run` envelope on the `opencode` and `crush` engines
|
|
744
|
+
(and the matching MCP tool) carries the session acceptance contract fields:
|
|
745
|
+
`session_slug` (explicit slug or a generated per-run slug — never an
|
|
746
|
+
implicit persistent conversation), `result_retention`
|
|
682
747
|
/ `result_id` (`retained` only for isolated changed runs with enforced
|
|
683
748
|
result-store quota and a successful reservation), and `execution_capabilities`
|
|
684
749
|
(eight honest `enforced|best_effort|unavailable` values plus
|
|
685
|
-
`effective_isolation`).
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
750
|
+
`effective_isolation`). The `opencode2` beta engine still returns the older
|
|
751
|
+
envelope shape (`session_id`, `exit_reason`, `final_text`, `files_changed`,
|
|
752
|
+
`diff_stat`, `worktree`, `usage`, `warnings`) without these fields — use its
|
|
753
|
+
`files_changed` / `diff_stat` / `worktree` as evidence there. Non-isolated `files_changed` is `null`; the only
|
|
754
|
+
changes-expectation evidence is `run_files_changed`. Process completion and a
|
|
755
|
+
non-empty final text are not task satisfaction — use `--isolate`, check
|
|
756
|
+
`run_files_changed` in the envelope, and verify the retained worktree/diff
|
|
757
|
+
directly when the envelope returns one (a run with `worktree: null` and an
|
|
758
|
+
empty `run_files_changed` — or empty `files_changed` on the `opencode2` beta
|
|
759
|
+
— produced no retained deliverable): `git status --short`,
|
|
760
|
+
then review the staged patch with `git diff --cached` and any unstaged
|
|
761
|
+
changes with `git diff` (Triss stages the deliverable changes before
|
|
762
|
+
returning the envelope). Unavailable OS sandbox/cleanup/lock/quota does not block a
|
|
689
763
|
non-isolated/best-effort run but provides none of those guarantees; explicit
|
|
690
764
|
or default isolation needs `--allow-best-effort-caller-worktree` (default
|
|
691
765
|
off) or fails before spawn with `TRISS_CODER_ISOLATION_ENFORCEMENT_REQUIRED`
|
|
@@ -697,8 +771,8 @@ repository or worktree creation failure — slug/branch conflicts like
|
|
|
697
771
|
`best_effort_caller_worktree`: stderr and envelope `warnings` carry
|
|
698
772
|
`TRISS_CODER_ISOLATION_DOWNGRADED` and `effective_isolation` becomes
|
|
699
773
|
`best_effort_caller_worktree` (advisory-only, `files_changed` is `null`,
|
|
700
|
-
edits may reach the caller worktree). Full details
|
|
701
|
-
`docs/reliable-delegation-
|
|
774
|
+
edits may reach the caller worktree). Full details are in the
|
|
775
|
+
[`docs/reliable-delegation-contract.md`](docs/reliable-delegation-contract.md).
|
|
702
776
|
|
|
703
777
|
`triss coder init` first asks which provider to configure — **Z.AI GLM**
|
|
704
778
|
(default), the existing **Triss worker** (`--provider worker`, aliases
|
|
@@ -715,8 +789,8 @@ providers need no probe at all — their plans use different keys
|
|
|
715
789
|
(`MOONSHOT_API_KEY` vs `KIMI_API_KEY`), so the choice already names the
|
|
716
790
|
endpoint. Either way it lets you pick the model interactively. See the
|
|
717
791
|
**Providers** section below and
|
|
718
|
-
[docs/opencode-zen.md](docs/opencode-zen.md) and
|
|
719
|
-
[docs/opencode-go.md](docs/opencode-go.md) for the OpenCode provider deep-dives.
|
|
792
|
+
[docs/engines/opencode-zen.md](docs/engines/opencode-zen.md) and
|
|
793
|
+
[docs/engines/opencode-go.md](docs/engines/opencode-go.md) for the OpenCode provider deep-dives.
|
|
720
794
|
|
|
721
795
|
Prints one JSON envelope to stdout — `files_changed`, `diff_stat`, and
|
|
722
796
|
`worktree` tell you what to review; `--isolate` runs the agent in a
|
|
@@ -726,7 +800,8 @@ waits for any residual process in the selected engine's process group, so tests
|
|
|
726
800
|
clients cannot keep locks or write files after completion. MCP cancellation is
|
|
727
801
|
forwarded to the same cleanup path. `--session <slug>` continues the same opencode
|
|
728
802
|
conversation across calls. **POSIX only** (macOS/Linux) for now. See
|
|
729
|
-
|
|
803
|
+
the [GLM client guide](https://github.com/ayleen/triss-coworker/blob/main/docs/glm-clients.md)
|
|
804
|
+
for the full picture of how Triss talks to GLM
|
|
730
805
|
(all engines, key/endpoint routing, models, and every usage mode),
|
|
731
806
|
`docs/configuration.md` for the coder env vars, and `docs/mcp.md` for the
|
|
732
807
|
MCP tool equivalents.
|
|
@@ -748,8 +823,9 @@ CLI flag > env > crush.json `permissions.run.restrict` > default OFF). For
|
|
|
748
823
|
Z.AI GLM, the opencode engines and crush all use the single `ZHIPU_API_KEY`
|
|
749
824
|
(crush ≥0.1.1 reads it natively; triss also forwards it as `ZAI_API_KEY`
|
|
750
825
|
for older binaries; see
|
|
751
|
-
**Providers** below for the opencode-only OpenCode alternatives). See
|
|
752
|
-
|
|
826
|
+
**Providers** below for the opencode-only OpenCode alternatives). See the
|
|
827
|
+
[Crush engine guide](docs/engines/crush.md) for the supported configuration,
|
|
828
|
+
safety boundaries, and current upstream limitations.
|
|
753
829
|
|
|
754
830
|
**Providers** — the `opencode` engine isn't limited to Z.AI. The required
|
|
755
831
|
API key follows the model's `<provider>/` prefix: `triss-worker/*` reuses
|
|
@@ -858,7 +934,7 @@ override within the current provider; use `--provider` + `--model` and optional
|
|
|
858
934
|
`--small-model` to switch the complete pair for one run. The deny-first
|
|
859
935
|
`opencode.json` bash policy applies to every provider.
|
|
860
936
|
Full details, the model catalogue, and every configuration path are in
|
|
861
|
-
[docs/opencode-zen.md](docs/opencode-zen.md) and [docs/opencode-go.md](docs/opencode-go.md).
|
|
937
|
+
[docs/engines/opencode-zen.md](docs/engines/opencode-zen.md) and [docs/engines/opencode-go.md](docs/engines/opencode-go.md).
|
|
862
938
|
|
|
863
939
|
If your Z.AI plan hits its usage limit, `triss coder run` fails fast with
|
|
864
940
|
the reset time converted to your local timezone (Z.AI reports it in
|
|
@@ -883,7 +959,7 @@ Not every engine speaks every provider:
|
|
|
883
959
|
| Engine | Providers served |
|
|
884
960
|
| ---------- | ------------------------------------------------- |
|
|
885
961
|
| `opencode` | Triss worker, Z.AI GLM, OpenCode Zen, OpenCode Go, Moonshot, Kimi for Coding |
|
|
886
|
-
| `opencode2` | Same provider routing as V1 (shares `opencode.json`; one-shot `--provider` / `--small-model` overlays rejected — see [docs/opencode2.md](docs/opencode2.md)) |
|
|
962
|
+
| `opencode2` | Same provider routing as V1 (shares `opencode.json`; one-shot `--provider` / `--small-model` overlays rejected — see [docs/engines/opencode2.md](docs/engines/opencode2.md)) |
|
|
887
963
|
| `crush` | Z.AI GLM (coding-plan only) |
|
|
888
964
|
|
|
889
965
|
`triss coder init` drives setup in that order — **engine, then provider,
|
|
@@ -935,8 +1011,9 @@ Triss surfaces that replacement command rather than auto-switching you
|
|
|
935
1011
|
to GLM.
|
|
936
1012
|
|
|
937
1013
|
Full flag reference, the model catalogues, key/endpoint routing, and
|
|
938
|
-
the stale-model recovery flow are in
|
|
939
|
-
[
|
|
1014
|
+
the stale-model recovery flow are in the
|
|
1015
|
+
[GLM client guide](https://github.com/ayleen/triss-coworker/blob/main/docs/glm-clients.md),
|
|
1016
|
+
[docs/engines/opencode-zen.md](docs/engines/opencode-zen.md), [docs/engines/opencode-go.md](docs/engines/opencode-go.md), and
|
|
940
1017
|
[docs/configuration.md](docs/configuration.md).
|
|
941
1018
|
|
|
942
1019
|
## Integrations
|
|
@@ -975,7 +1052,8 @@ hints live in the on-demand cookbook, not in the always-loaded block.)
|
|
|
975
1052
|
|
|
976
1053
|
The plugin contract is one folder + one file. A working **GitHub Issues**
|
|
977
1054
|
integration in ~80 lines is documented end-to-end in
|
|
978
|
-
[**
|
|
1055
|
+
[**extension guide**](https://github.com/ayleen/triss-coworker/blob/main/docs/extending.md).
|
|
1056
|
+
High-level recipe:
|
|
979
1057
|
|
|
980
1058
|
1. Create `src/integrations/<name>/index.js`.
|
|
981
1059
|
2. `export default { name, description, envVars, register(program, { wrap }) {}, agentInstructions: { claude, codex } }`.
|
|
@@ -1190,15 +1268,17 @@ rules of thumb.
|
|
|
1190
1268
|
## Security & privacy
|
|
1191
1269
|
|
|
1192
1270
|
The short version for a vendor security review — full details in
|
|
1193
|
-
[SECURITY.md](SECURITY.md):
|
|
1271
|
+
[SECURITY.md](https://github.com/ayleen/triss-coworker/blob/main/SECURITY.md):
|
|
1194
1272
|
|
|
1195
1273
|
- **Local-first.** Triss is a CLI/MCP server on your machine, not a hosted
|
|
1196
1274
|
service. It stores nothing server-side and has **no telemetry** — zero
|
|
1197
1275
|
data goes to the Triss developers.
|
|
1198
|
-
- **
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1276
|
+
- **Outbound data is explicit and documented.** Model commands and coder
|
|
1277
|
+
engines may send selected repository content to the configured provider;
|
|
1278
|
+
integrations call their configured services; a credential-free GitHub
|
|
1279
|
+
Releases check runs when the update cache is due. The complete recipient,
|
|
1280
|
+
payload, trigger, and opt-out table is in
|
|
1281
|
+
[docs/data-flows.md](docs/data-flows.md).
|
|
1202
1282
|
- **Data residency is a config option.** Need an EU processor, a DPA, or
|
|
1203
1283
|
zero retention? Point the worker at Azure OpenAI, Bedrock, Mistral, or a
|
|
1204
1284
|
self-hosted model — see [provider recipes](#provider-recipes).
|
|
@@ -1208,11 +1288,12 @@ The short version for a vendor security review — full details in
|
|
|
1208
1288
|
- **Guardrails.** SSRF guard on all agent-controlled fetches, path sandbox
|
|
1209
1289
|
in MCP mode, response-size caps, secret masking in output. Residual risks
|
|
1210
1290
|
are documented, not hidden.
|
|
1211
|
-
- **Auditable supply chain.**
|
|
1212
|
-
|
|
1291
|
+
- **Auditable supply chain.** npm contents are allowlisted and smoke-tested;
|
|
1292
|
+
the standalone artifact has a deterministic source-to-artifact pipeline.
|
|
1293
|
+
Direct and transitive npm dependencies remain part of the installed code.
|
|
1213
1294
|
|
|
1214
1295
|
Report vulnerabilities via GitHub Security Advisories
|
|
1215
|
-
([SECURITY.md](SECURITY.md#reporting-vulnerabilities)).
|
|
1296
|
+
([SECURITY.md](https://github.com/ayleen/triss-coworker/blob/main/SECURITY.md#reporting-vulnerabilities)).
|
|
1216
1297
|
|
|
1217
1298
|
## Roadmap
|
|
1218
1299
|
|
|
@@ -1223,9 +1304,8 @@ wizard · bash + zsh completions · `--stdin` · `triss review [PR]` ·
|
|
|
1223
1304
|
`triss chat` · MCP server · Cost tracking · `triss commit-msg` · GitHub /
|
|
1224
1305
|
Confluence / GitLab integrations · Streaming output for `ask`/`chat`/
|
|
1225
1306
|
`review` · Codex `AGENTS.md` rules · Path-safety sandbox in MCP mode ·
|
|
1226
|
-
test suite · Reliable delegation
|
|
1227
|
-
|
|
1228
|
-
Reliable delegation, Releases B/C — bounded review corpus limits, exact
|
|
1307
|
+
test suite · Reliable delegation — coder envelope v2, session/result stores,
|
|
1308
|
+
credential proxy, bounded review corpus limits, exact
|
|
1229
1309
|
merge-base diff identity, disposable PR bare repos, and sequential
|
|
1230
1310
|
whole-file review sharding · `triss exec` deterministic routing ·
|
|
1231
1311
|
`triss coder` (opencode V1 default, opencode2 beta, crush) with worktree
|
|
@@ -1237,16 +1317,18 @@ provider recipe blocks for Kimi, Ollama, and OpenRouter.
|
|
|
1237
1317
|
- [ ] Crush upstream `permissions.run` enforcement (currently inert —
|
|
1238
1318
|
the working allowlist is the CLI `--restrict` flags).
|
|
1239
1319
|
- [ ] opencode2 beta graduation: real credential isolation and
|
|
1240
|
-
fixture-verified subagent support (see [docs/opencode2.md](docs/opencode2.md)).
|
|
1320
|
+
fixture-verified subagent support (see [docs/engines/opencode2.md](docs/engines/opencode2.md)).
|
|
1241
1321
|
|
|
1242
1322
|
## Contributing and security
|
|
1243
1323
|
|
|
1244
|
-
Contributions are welcome; start with
|
|
1324
|
+
Contributions are welcome; start with
|
|
1325
|
+
[CONTRIBUTING.md](https://github.com/ayleen/triss-coworker/blob/main/CONTRIBUTING.md)
|
|
1245
1326
|
for local setup, test commands, and the project conventions.
|
|
1246
1327
|
|
|
1247
1328
|
Security-sensitive changes deserve extra care because Triss sits between an
|
|
1248
1329
|
agent, your filesystem, web URLs, and tracker credentials. See
|
|
1249
|
-
[SECURITY.md](SECURITY.md)
|
|
1330
|
+
[SECURITY.md](https://github.com/ayleen/triss-coworker/blob/main/SECURITY.md)
|
|
1331
|
+
for the reporting path and the current trust
|
|
1250
1332
|
boundaries.
|
|
1251
1333
|
|
|
1252
1334
|
## Changelog
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Triss Coworker third-party notices
|
|
2
|
+
==================================
|
|
3
|
+
|
|
4
|
+
The npm package installs the following direct runtime dependencies. Their
|
|
5
|
+
license texts and transitive notices are distributed with those packages:
|
|
6
|
+
|
|
7
|
+
- @modelcontextprotocol/sdk — MIT
|
|
8
|
+
- commander — MIT
|
|
9
|
+
- dotenv — BSD-2-Clause
|
|
10
|
+
- linkedom — ISC
|
|
11
|
+
- openai — Apache-2.0
|
|
12
|
+
- picocolors — ISC
|
|
13
|
+
- turndown — MIT
|
|
14
|
+
|
|
15
|
+
The project concept acknowledges `imkunal007219/claude-coworker-model`, an
|
|
16
|
+
MIT-licensed project, in README.md:
|
|
17
|
+
|
|
18
|
+
Copyright (c) 2026 Kunal Bhardwaj
|
|
19
|
+
https://github.com/imkunal007219/claude-coworker-model
|
|
20
|
+
|
|
21
|
+
This notice records attribution and does not assert that its source code is
|
|
22
|
+
bundled in Triss.
|
|
23
|
+
|
|
24
|
+
The complete resolved dependency graph is recorded in package-lock.json. The
|
|
25
|
+
standalone artifact bundles production npm dependencies and includes this
|
|
26
|
+
notice alongside their package license files.
|
package/bin/triss.js
CHANGED
|
@@ -346,7 +346,7 @@ coder
|
|
|
346
346
|
.description('Install/configure a coding engine (opencode default, opencode2 beta, or crush), provider key, permission policy, and agent templates')
|
|
347
347
|
.option('-g, --global', 'save to the global scope (~/.config/triss/.env, ~/.config/opencode/)')
|
|
348
348
|
.option('-l, --local', 'save to the project scope (./.triss.env, ./opencode.json)')
|
|
349
|
-
.option('--engine <name>', 'coding engine to configure: opencode (default), opencode2 (beta — shares the opencode.json config; see docs/opencode2.md), or crush')
|
|
349
|
+
.option('--engine <name>', 'coding engine to configure: opencode (default), opencode2 (beta — shares the opencode.json config; see docs/engines/opencode2.md), or crush')
|
|
350
350
|
.option('--provider <name>', 'opencode engine model provider: zai, worker (existing OpenAI-compatible TRISS_WORKER_* profile), opencode-zen, opencode-go, moonshot, or kimi-for-coding')
|
|
351
351
|
.option('--allow-unverified', 'requires explicit --provider opencode-go (alias: go): allow the built-in fallback only after a temporary network or HTTP 408/429/500/502/503/504 catalogue failure (never bypasses 401/403, empty, or invalid responses)')
|
|
352
352
|
.option('--allow-unsafe-bash', 'proceed even if an existing opencode.json has no deny-first bash policy (the agent runs with --auto)')
|
|
@@ -355,7 +355,7 @@ coder
|
|
|
355
355
|
coder
|
|
356
356
|
.command('run [prompt]')
|
|
357
357
|
.description('Spawn a coding agent — GLM, the OpenAI-compatible Triss worker, Kimi, OpenCode Zen, or OpenCode Go (opencode default; opencode2 beta or --engine crush) — and print a JSON envelope to stdout')
|
|
358
|
-
.option('--engine <name>', 'coding engine: opencode (default), opencode2 (beta — see docs/opencode2.md), or crush')
|
|
358
|
+
.option('--engine <name>', 'coding engine: opencode (default), opencode2 (beta — see docs/engines/opencode2.md), or crush')
|
|
359
359
|
.option('--session <id>', 'triss-side session slug, mapped to a real opencode session id in .triss/sessions.json')
|
|
360
360
|
.option('--continue', 'continue the most recent opencode session (maps to opencode --continue)')
|
|
361
361
|
.option('--agent <name>', 'agent template to use (V1 default: coder; opencode2 beta uses its built-in primary agent unless set)')
|
|
@@ -458,7 +458,7 @@ coderState
|
|
|
458
458
|
.requiredOption('--project <absolute-path>', 'absolute path of the validated project root')
|
|
459
459
|
.action((opts) => wrap(runCoderStateReset)(opts));
|
|
460
460
|
|
|
461
|
-
// `coder session` group (v2 session CLI contract
|
|
461
|
+
// `coder session` group (v2 session CLI contract).
|
|
462
462
|
const coderSession = coder
|
|
463
463
|
.command('session')
|
|
464
464
|
.description('List or clean v2 isolated sessions (per-engine store; legacy .triss/sessions.json is never touched)');
|
|
@@ -475,7 +475,7 @@ coderSession
|
|
|
475
475
|
.requiredOption('--engine <name>', 'coding engine: opencode or crush (MANDATORY)')
|
|
476
476
|
.action((slug, opts) => wrap(runCoderSessionClean)(slug, opts));
|
|
477
477
|
|
|
478
|
-
// `coder result` group (retained-result CLI
|
|
478
|
+
// `coder result` group (retained-result CLI contract).
|
|
479
479
|
const coderResult = coder
|
|
480
480
|
.command('result')
|
|
481
481
|
.description('List or clean retained result artifacts (never persistent sessions)');
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# CLI reference
|
|
2
|
+
|
|
3
|
+
The executable reference is `triss --help` and each command's `--help` output.
|
|
4
|
+
The main command groups are model delegation (`ask`, `chat`, `write`, `fetch`,
|
|
5
|
+
`review`, `commit-msg`), coder engines (`coder`), MCP setup (`mcp`), tracker
|
|
6
|
+
integrations, configuration, usage accounting, and updates.
|
|
7
|
+
|
|
8
|
+
Machine consumers should prefer documented JSON modes and treat their schema
|
|
9
|
+
version as part of the contract. Human-readable output may evolve without a
|
|
10
|
+
schema migration.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Compatibility and stability
|
|
2
|
+
|
|
3
|
+
| Component | Status |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| Core `ask` and `review` CLI | stable |
|
|
6
|
+
| MCP protocol surface | beta |
|
|
7
|
+
| JSON envelopes | versioned contract |
|
|
8
|
+
| OpenCode 1 engine | stable |
|
|
9
|
+
| OpenCode 2 engine | beta |
|
|
10
|
+
| Crush engine | experimental |
|
|
11
|
+
| Best-effort isolation | limited security boundary |
|
|
12
|
+
| Update system | stable |
|
|
13
|
+
| Individual integrations | stable or beta as documented by each integration |
|
|
14
|
+
|
|
15
|
+
Node.js 22 and 24 are tested. Provider availability, model identifiers, and
|
|
16
|
+
third-party CLI behavior can change independently of Triss.
|