@mytegroupinc/myte-core 0.0.54 → 0.0.55

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 CHANGED
@@ -9,49 +9,49 @@ Most users should install the public wrapper instead:
9
9
 
10
10
  This package exists so the public wrapper can stay small and versioned cleanly. It is not the recommended public install target.
11
11
 
12
- ## Requirements
13
-
14
- - Node `18.17+`
12
+ ## Requirements
13
+
14
+ - Node `18.17+`
15
15
  - `MYTE_API_KEY` for project-scoped commands
16
16
  - `MYTEAI_API_KEY` for `myte ai`
17
17
  - `MYTEAI_API_KEY` for `mytecody`
18
18
  - `git` only when using `query --with-diff`
19
- - The CLI uses Node built-ins for env loading, argument parsing, direct HTTP,
20
- and local serialization. `undici` supplies portable
21
- `HTTP_PROXY`/`HTTPS_PROXY`/`NO_PROXY` support across the supported Node
22
- versions.
23
-
24
- ## Behavior Summary
25
-
26
- - `myte doctor --json` performs read-only package, credential-presence, DNS,
27
- TCP/TLS, authenticated config, proxy, and workspace checks without exposing
28
- keys, proxy values, request bodies, or response bodies.
29
- - `myte info` and `myte --version --verbose` show the wrapper/core topology,
30
- runtime dependencies, expected npm graph size, and version compatibility.
31
- - Network diagnostics preserve nested transport causes and distinguish DNS,
32
- TCP, TLS/certificate, timeout, captive portal/non-JSON, authentication,
33
- authorization, rate-limit, and server failures.
34
- - Safe transient reads and query polling use bounded retries. Query creation
35
- reuses one idempotency key across ambiguous retries.
36
- - Snapshot-style commands such as `bootstrap`, `sync-qaqc`, `feedback-sync`, and `suggestions sync` write local `MyteCommandCenter` data.
37
- - `feedback-sync` prefers stable ObjectId cursor pagination so concurrent
38
- inserts cannot shift later pages. It remains compatible with older
39
- offset-only API versions and rejects duplicate cross-page records instead of
40
- committing an ambiguous local snapshot.
41
- - `feedback-sync` keeps stable comment IDs and nests every comment attachment
42
- under its originating comment. Readable text, Markdown, and DOCX attachment
43
- context is materialized under
44
- `MyteCommandCenter/feedback-sync/comment-attachments`; binary formats remain
45
- visible as metadata-only context. Raw S3/object-storage URLs are not written
46
- into local sync artifacts.
47
- - `feedback status|edit|document-add|assign|archive|refine` writes reviewable local YAML artifacts.
48
- - `feedback submit|revise|comment` are live writes that require `--confirm-write --approval-artifact <path>`.
49
- - `feedback review|move|undo|apply` are governed writes with backend permission checks but no approval artifact flags.
50
- - `feedback-sync|get|history|reviews|prd-versions|prd-diff|validate` are read/sync/validation commands with no approval artifact flags.
19
+ - The CLI uses Node built-ins for env loading, argument parsing, direct HTTP,
20
+ and local serialization. `undici` supplies portable
21
+ `HTTP_PROXY`/`HTTPS_PROXY`/`NO_PROXY` support across the supported Node
22
+ versions.
23
+
24
+ ## Behavior Summary
25
+
26
+ - `myte doctor --json` performs read-only package, credential-presence, DNS,
27
+ TCP/TLS, authenticated config, proxy, and workspace checks without exposing
28
+ keys, proxy values, request bodies, or response bodies.
29
+ - `myte info` and `myte --version --verbose` show the wrapper/core topology,
30
+ runtime dependencies, expected npm graph size, and version compatibility.
31
+ - Network diagnostics preserve nested transport causes and distinguish DNS,
32
+ TCP, TLS/certificate, timeout, captive portal/non-JSON, authentication,
33
+ authorization, rate-limit, and server failures.
34
+ - Safe transient reads and query polling use bounded retries. Query creation
35
+ reuses one idempotency key across ambiguous retries.
36
+ - Snapshot-style commands such as `bootstrap`, `sync-qaqc`, `feedback-sync`, and `suggestions sync` write local `MyteCommandCenter` data.
37
+ - `feedback-sync` prefers stable ObjectId cursor pagination so concurrent
38
+ inserts cannot shift later pages. It remains compatible with older
39
+ offset-only API versions and rejects duplicate cross-page records instead of
40
+ committing an ambiguous local snapshot.
41
+ - `feedback-sync` keeps stable comment IDs and nests every comment attachment
42
+ under its originating comment. Readable text, Markdown, and DOCX attachment
43
+ context is materialized under
44
+ `MyteCommandCenter/feedback-sync/comment-attachments`; binary formats remain
45
+ visible as metadata-only context. Raw S3/object-storage URLs are not written
46
+ into local sync artifacts.
47
+ - `feedback status|edit|document-add|assign|archive|refine` writes reviewable local YAML artifacts.
48
+ - `feedback submit|revise|comment` are live writes that require `--confirm-write --approval-artifact <path>`.
49
+ - `feedback review|move|undo|apply` are governed writes with backend permission checks but no approval artifact flags.
50
+ - `feedback-sync|get|history|reviews|prd-versions|prd-diff|validate` are read/sync/validation commands with no approval artifact flags.
51
51
  - `feedback move|comment|undo|prd-versions|prd-diff|history` calls the project-key Feedback API while leaving lifecycle rules and permissions server-side. `feedback move --feedback-ids` sends one batch move request.
52
52
  - `feedback validate|apply` remains available for validation and owner-direct apply paths; live authorization, stale checks, and history stay server-side.
53
- - `query --with-diff` requires project repos to be configured for diff collection and fails fast when no matching local project repo can be resolved.
54
- - `query --json` returns the stable request ID, query job ID, answer, context-block count payload, and telemetry without echoing the query text.
53
+ - `query --with-diff` requires project repos to be configured for diff collection and fails fast when no matching local project repo can be resolved.
54
+ - `query --json` returns the stable request ID, query job ID, answer, context-block count payload, and telemetry without echoing the query text.
55
55
  - Public package documentation is intentionally minimal. Internal rollout and design notes are not part of the npm package contract.
56
56
  - `mytecody` is a model-agnostic MyteCody team launcher. It supports `doctor`,
57
57
  `doctor --probe-gateway`, `update --dry-run`, and `update`. On first coding
@@ -61,42 +61,42 @@ This package exists so the public wrapper can stay small and versioned cleanly.
61
61
  gateway, and `MYTEAI_API_KEY`. Normal coding runs use the branded Codex
62
62
  harness with Myte context hardening; the experimental controller is not the
63
63
  default product path.
64
- - `mytecody doctor` reports both the signed MyteCody engine state and this npm
65
- package version. `mytecody update` updates the engine only. Use
66
- `npm install -g myte@latest` to update the launcher and the Myte API CLI
67
- commands shipped by npm.
68
-
69
- ## Live Write Approval
70
-
71
- Only selected project-key writes require a server-validated approval envelope. The CLI adds `write_approval` metadata only for those commands after the caller supplies `--confirm-write --approval-artifact <path>`.
72
-
73
- | Category | Commands | Artifact |
74
- | --- | --- | --- |
75
- | Required | `create-prd`, `update-team`, `update-owner`, `update-client`, `feedback submit`, `feedback revise`, `feedback comment`, `suggestions create`, `suggestions revise` | Yes |
76
- | Not required | `run-qaqc`, `mission status`, `mission archive`, `suggestions review`, `feedback review`, `feedback move`, `feedback undo`, `feedback apply` | No |
77
- | Never required | `config`, `query`, `bootstrap`, `sync-qaqc`, `feedback-sync`, `suggestions sync`, `feedback get/history/reviews/prd-versions/prd-diff/validate`, local feedback draft commands | No |
78
-
79
- - The approval artifact must be a local `.md`, `.markdown`, `.yml`, `.yaml`, or `.json` file shown to and approved by the user.
80
- - The artifact must list the exact operation, proposed change, and every target id or PRD item.
81
- - Batch artifacts for required actions must enumerate every item and the CLI sends the matching batch count to the API.
82
- - For required actions, the API validates the payload hash after stripping transport metadata, so direct HTTP writes with only the API key do not bypass approval.
83
- - For actions marked `Not required`, the backend still enforces project-key authentication, idempotency, owner/delegate capability rules, stale-state guards, validation, rate limits, and audit history.
84
- - In plain language, the artifact is the human-reviewed record of the exact write the agent is about to send. It is not a permission grant and it does not bypass project owner/delegate checks, idempotency, stale-state guards, validation, or audit.
85
- - Minimum artifact contents are the exact command, every target id or PRD item, a complete proposed-change summary, a reason, and `batch_count` when one command sends multiple items.
86
- - Mission edit/create batches use `suggestions create` or `suggestions revise`; list every item, including `change_type`, `mission_id` for updates, proposed title/description for creates, and `suggestion_id` plus expected revision for revisions.
87
- - Without `--document-set`, `create-prd fileA.md fileB.md ...` creates
88
- independent Feedback items as before. With `--document-set`, one to three
89
- Markdown files of at most 250,000 characters each create one parent Feedback
90
- with ordered PRD documents. List every file/title/client ref and the matching
91
- count in the approval artifact.
92
- - Feedback submit/revise/comment artifacts are usually the same YAML or markdown file being submitted. For inline text or stdin, use a separate approval memo with the feedback id or request id and exact content.
93
- - `feedback document-add --feedback-id <id> --prd-file ./document.md` creates a governed proposal to append one linked PRD document to the existing Feedback context. The addition is not live until the normal `feedback submit` -> owner/delegate `feedback review` flow applies it.
94
- - Governed document additions preserve existing document IDs, append a new stable document, create a new immutable PRD version, and emit `feedback_prd_document_added` so the Feedback context bubble/notification feed can link users back to the updated PRD context. Existing PRD sets may grow to twelve documents; new `create-prd --document-set` uploads remain capped at three.
95
- - Team, owner, and client update artifacts should name the audience and include the exact message body or a complete summary. Client updates should include target contact ids when used.
96
- - `feedback review --request-ids`, `feedback move --feedback-ids`, `mission status --mission-ids`, `mission archive --mission-ids`, and `run-qaqc --mission-ids` are batched governed writes, but they are marked `Not required` and should not receive approval artifact flags.
97
- - The package does not bundle the large MyteCody engine binary or the async
98
- Responses bridge implementation. See `THIRD_PARTY_NOTICES.md` and
99
- `TRADEMARKS.md` for Codex lineage and Myte brand notices.
64
+ - `mytecody doctor` reports both the signed MyteCody engine state and this npm
65
+ package version. `mytecody update` updates the engine only. Use
66
+ `npm install -g myte@latest` to update the launcher and the Myte API CLI
67
+ commands shipped by npm.
68
+
69
+ ## Live Write Approval
70
+
71
+ Only selected project-key writes require a server-validated approval envelope. The CLI adds `write_approval` metadata only for those commands after the caller supplies `--confirm-write --approval-artifact <path>`.
72
+
73
+ | Category | Commands | Artifact |
74
+ | --- | --- | --- |
75
+ | Required | `create-prd`, `update-team`, `update-owner`, `update-client`, `feedback submit`, `feedback revise`, `feedback comment`, `suggestions create`, `suggestions revise` | Yes |
76
+ | Not required | `run-qaqc`, `mission status`, `mission archive`, `suggestions review`, `feedback review`, `feedback move`, `feedback undo`, `feedback apply` | No |
77
+ | Never required | `config`, `query`, `bootstrap`, `sync-qaqc`, `feedback-sync`, `suggestions sync`, `feedback get/history/reviews/prd-versions/prd-diff/validate`, local feedback draft commands | No |
78
+
79
+ - The approval artifact must be a local `.md`, `.markdown`, `.yml`, `.yaml`, or `.json` file shown to and approved by the user.
80
+ - The artifact must list the exact operation, proposed change, and every target id or PRD item.
81
+ - Batch artifacts for required actions must enumerate every item and the CLI sends the matching batch count to the API.
82
+ - For required actions, the API validates the payload hash after stripping transport metadata, so direct HTTP writes with only the API key do not bypass approval.
83
+ - For actions marked `Not required`, the backend still enforces project-key authentication, idempotency, owner/delegate capability rules, stale-state guards, validation, rate limits, and audit history.
84
+ - In plain language, the artifact is the human-reviewed record of the exact write the agent is about to send. It is not a permission grant and it does not bypass project owner/delegate checks, idempotency, stale-state guards, validation, or audit.
85
+ - Minimum artifact contents are the exact command, every target id or PRD item, a complete proposed-change summary, a reason, and `batch_count` when one command sends multiple items.
86
+ - Mission edit/create batches use `suggestions create` or `suggestions revise`; list every item, including `change_type`, `mission_id` for updates, proposed title/description for creates, and `suggestion_id` plus expected revision for revisions.
87
+ - Without `--document-set`, `create-prd fileA.md fileB.md ...` creates
88
+ independent Feedback items as before. With `--document-set`, one to three
89
+ Markdown files of at most 250,000 characters each create one parent Feedback
90
+ with ordered PRD documents. List every file/title/client ref and the matching
91
+ count in the approval artifact.
92
+ - Feedback submit/revise/comment artifacts are usually the same YAML or markdown file being submitted. For inline text or stdin, use a separate approval memo with the feedback id or request id and exact content.
93
+ - `feedback document-add --feedback-id <id> --prd-file ./document.md` creates a governed proposal to append one linked PRD document to the existing Feedback context. The addition is not live until the normal `feedback submit` -> owner/delegate `feedback review` flow applies it.
94
+ - Governed document additions preserve existing document IDs, append a new stable document, create a new immutable PRD version, and emit `feedback_prd_document_added` so the Feedback context bubble/notification feed can link users back to the updated PRD context. Existing PRD sets may grow to twelve documents; new `create-prd --document-set` uploads remain capped at three.
95
+ - Team, owner, and client update artifacts should name the audience and include the exact message body or a complete summary. Client updates should include target contact ids when used.
96
+ - `feedback review --request-ids`, `feedback move --feedback-ids`, `mission status --mission-ids`, `mission archive --mission-ids`, and `run-qaqc --mission-ids` are batched governed writes, but they are marked `Not required` and should not receive approval artifact flags.
97
+ - The package does not bundle the large MyteCody engine binary or the async
98
+ Responses bridge implementation. See `THIRD_PARTY_NOTICES.md` and
99
+ `TRADEMARKS.md` for Codex lineage and Myte brand notices.
100
100
 
101
101
  ## Agent Usage Contract
102
102
 
@@ -104,24 +104,24 @@ Coding agents should treat `MYTE_API_KEY` as a project-scoped Project Assistant
104
104
 
105
105
  - Load it from the workspace `.env` or environment. `MYTE_PROJECT_API_KEY` is accepted as a compatibility fallback.
106
106
  - Call `myte config --json` first when project identity or local repo detection is uncertain.
107
- - Hydrate mission context with `bootstrap` first instead of scraping the web UI. `bootstrap` writes mission cards, mission suggestion thread state, and `MyteCommandCenter/AgentsMyteAPI.md`.
107
+ - Hydrate mission context with `bootstrap` first instead of scraping the web UI. `bootstrap` writes mission cards, mission suggestion thread state, and `MyteCommandCenter/AgentsMyteAPI.md`.
108
108
  - Use `suggestions sync` only when you need to refresh mission review-thread state without refreshing the full board.
109
109
  - Use `query --with-diff` for project-scoped code review, planning, and implementation questions.
110
- - Use `create-prd` only with reviewed markdown files and `--confirm-write --approval-artifact <path>`. The markdown file body is the PRD document; `description` is only the short board/card summary.
111
- - New PRDs are unassigned by default. Add `--assigned-user-id <id>` or `--assigned-user-email <exact-email>` to validate and assign an eligible project user in the same create request.
112
- - Use `create-prd --document-set` only when the explicit intent is one parent
113
- Feedback with one to three ordered documents; omitting it preserves
114
- independent multi-file creation.
115
- - Use `feedback status|edit|assign|archive|refine` for reviewable local artifacts. `feedback submit` and `feedback revise` require an approval artifact; `feedback review` does not because the backend owner/delegate decision is the approval control.
110
+ - Use `create-prd` only with reviewed markdown files and `--confirm-write --approval-artifact <path>`. The markdown file body is the PRD document; `description` is only the short board/card summary.
111
+ - New PRDs are unassigned by default. Add `--assigned-user-id <id>` or `--assigned-user-email <exact-email>` to validate and assign an eligible project user in the same create request.
112
+ - Use `create-prd --document-set` only when the explicit intent is one parent
113
+ Feedback with one to three ordered documents; omitting it preserves
114
+ independent multi-file creation.
115
+ - Use `feedback status|edit|assign|archive|refine` for reviewable local artifacts. `feedback submit` and `feedback revise` require an approval artifact; `feedback review` does not because the backend owner/delegate decision is the approval control.
116
116
  - Use `feedback review --request-ids` for batch owner/delegate decisions; it sends one grouped backend batch, not one request per item.
117
- - Use `suggestions create` for both existing-mission edits and new-mission proposals, with `--confirm-write --approval-artifact <path>`. The only valid `change_type` values are `update` and `create`.
118
- - Use `suggestions revise` only against an existing `suggestion_id`, with `--confirm-write --approval-artifact <path>`; do not send `change_type` on revisions because the backend keeps the thread's original type.
119
- - Use `suggestions review` for owner/elevated mission-review decisions: `approve`, `request_changes`, or `reject`. No approval artifact is required for review decisions.
117
+ - Use `suggestions create` for both existing-mission edits and new-mission proposals, with `--confirm-write --approval-artifact <path>`. The only valid `change_type` values are `update` and `create`.
118
+ - Use `suggestions revise` only against an existing `suggestion_id`, with `--confirm-write --approval-artifact <path>`; do not send `change_type` on revisions because the backend keeps the thread's original type.
119
+ - Use `suggestions review` for owner/elevated mission-review decisions: `approve`, `request_changes`, or `reject`. No approval artifact is required for review decisions.
120
120
  - Use `mission archive` for project-key lifecycle archival. Do not send `Archived` through `mission status`; restore archived missions from the web archived-board view.
121
121
  - Use `feedback move` only when a direct audited state move is intended and include a concrete `--reason`. Use `--feedback-ids` for batch active-state moves or authorized batch archive.
122
- - Use `feedback comment --feedback-id <id> --body-file ./comment.md --confirm-write --approval-artifact ./comment.md` for text-only feedback-specific implementation notes. Attachments remain web UI only for this project-key endpoint.
122
+ - Use `feedback comment --feedback-id <id> --body-file ./comment.md --confirm-write --approval-artifact ./comment.md` for text-only feedback-specific implementation notes. Attachments remain web UI only for this project-key endpoint.
123
123
  - Do not use the project-key API/CLI to unarchive Feedback. Normal `feedback-sync` excludes archived Feedback; unarchive from the web archived Feedback view.
124
- - Use `update-team --confirm-write --approval-artifact <path>` when an agent needs to leave a project-level implementation note or verification comment.
124
+ - Use `update-team --confirm-write --approval-artifact <path>` when an agent needs to leave a project-level implementation note or verification comment.
125
125
 
126
126
  Do not use `MYTE_API_KEY` against account/JWT web endpoints. The direct project-key surface is `/api/project-assistant/*`.
127
127
 
@@ -136,46 +136,46 @@ PRD document contract:
136
136
  - The UI renders the PRD from stored PRD text/document content, not from `description`.
137
137
  - Renderer-friendly PRDs should use one `# Title`, `##` sections, concise paragraphs, bullets, GitHub tables/checklists where useful, and fenced code blocks only for real code/config.
138
138
  - Do not wrap the whole PRD in a ` ```markdown ` fence. Do not use raw HTML, inline style blocks, or decorative banners.
139
- - PRD identity is explicit: `myte create-prd` creates a PRD asset with PRD metadata. Generic uploaded `.md`, `.docx`, `.pdf`, and `.txt` files remain normal attachments unless explicitly created as PRDs.
140
- - Document sets retain exact source Markdown plus canonical rendering
141
- Markdown, stable document IDs, per-document hashes, and independent
142
- download/read targets.
143
-
144
- ## Project Assistant Connectivity
145
-
146
- `myte doctor --json` should be the first diagnostic when a command reports
147
- `fetch failed`. A DNS or TCP result means the request did not reach HTTP. A
148
- TLS reset means the secure connection was interrupted before Myte could
149
- receive the API key. Authentication and authorization are reported only when
150
- the API actually returns those responses.
151
-
152
- The CLI honors `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`. It does not log
153
- their values and does not disable TLS verification. Captive portals and
154
- intercepting gateways are reported as non-JSON/HTML transport failures rather
155
- than as malformed Myte API responses.
156
-
157
- Feedback comment support:
158
-
159
- - `feedback-sync` includes existing feedback comments with `comment_id`,
160
- sender, content, timestamps, and attachments nested under the originating
161
- comment.
162
- - Readable text, Markdown, and DOCX comment attachments are extracted by the
163
- backend under attachment safety limits and written to
164
- `MyteCommandCenter/feedback-sync/comment-attachments/<feedback>/<comment>/`.
165
- The local YAML points to the file. Unsupported binary formats remain listed
166
- with `context_status: metadata_only`. Extraction is capped at 20 readable
167
- comment attachments per API page by default; additional readable files stay
168
- linked to their comments with `context_status: deferred`. Use
169
- `--comment-attachment-limit <0-100>` to change that bounded limit.
170
- - `--no-with-prd-text` disables readable PRD and comment-attachment extraction
171
- while retaining comment and attachment metadata.
172
- - Feedback-specific comment creation exists in the web backend at `/api/feedbacks/<feedback_id>/comments`, protected by JWT/project assignment.
173
- - Project-key comment creation is available through `myte feedback comment --feedback-id <id> --body "..." --confirm-write --approval-artifact ./comment.md` or `--body-file ./comment.md --confirm-write --approval-artifact ./comment.md`.
174
- - The project-key feedback comment endpoint is text-only in this slice and caps content at 500,000 characters. Use the web UI when comment attachments are required.
175
- - `feedback apply --force` is an owner/elevated emergency override for a stale
176
- local artifact. It requires the artifact to contain a non-empty reason and
177
- returns the persisted force/warning audit context; normal edits should use
178
- submit followed by owner/elevated review.
139
+ - PRD identity is explicit: `myte create-prd` creates a PRD asset with PRD metadata. Generic uploaded `.md`, `.docx`, `.pdf`, and `.txt` files remain normal attachments unless explicitly created as PRDs.
140
+ - Document sets retain exact source Markdown plus canonical rendering
141
+ Markdown, stable document IDs, per-document hashes, and independent
142
+ download/read targets.
143
+
144
+ ## Project Assistant Connectivity
145
+
146
+ `myte doctor --json` should be the first diagnostic when a command reports
147
+ `fetch failed`. A DNS or TCP result means the request did not reach HTTP. A
148
+ TLS reset means the secure connection was interrupted before Myte could
149
+ receive the API key. Authentication and authorization are reported only when
150
+ the API actually returns those responses.
151
+
152
+ The CLI honors `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`. It does not log
153
+ their values and does not disable TLS verification. Captive portals and
154
+ intercepting gateways are reported as non-JSON/HTML transport failures rather
155
+ than as malformed Myte API responses.
156
+
157
+ Feedback comment support:
158
+
159
+ - `feedback-sync` includes existing feedback comments with `comment_id`,
160
+ sender, content, timestamps, and attachments nested under the originating
161
+ comment.
162
+ - Readable text, Markdown, and DOCX comment attachments are extracted by the
163
+ backend under attachment safety limits and written to
164
+ `MyteCommandCenter/feedback-sync/comment-attachments/<feedback>/<comment>/`.
165
+ The local YAML points to the file. Unsupported binary formats remain listed
166
+ with `context_status: metadata_only`. Extraction is capped at 20 readable
167
+ comment attachments per API page by default; additional readable files stay
168
+ linked to their comments with `context_status: deferred`. Use
169
+ `--comment-attachment-limit <0-100>` to change that bounded limit.
170
+ - `--no-with-prd-text` disables readable PRD and comment-attachment extraction
171
+ while retaining comment and attachment metadata.
172
+ - Feedback-specific comment creation exists in the web backend at `/api/feedbacks/<feedback_id>/comments`, protected by JWT/project assignment.
173
+ - Project-key comment creation is available through `myte feedback comment --feedback-id <id> --body "..." --confirm-write --approval-artifact ./comment.md` or `--body-file ./comment.md --confirm-write --approval-artifact ./comment.md`.
174
+ - The project-key feedback comment endpoint is text-only in this slice and caps content at 500,000 characters. Use the web UI when comment attachments are required.
175
+ - `feedback apply --force` is an owner/elevated emergency override for a stale
176
+ local artifact. It requires the artifact to contain a non-empty reason and
177
+ returns the persisted force/warning audit context; normal edits should use
178
+ submit followed by owner/elevated review.
179
179
 
180
180
  ## Mission Action Map
181
181
 
@@ -183,12 +183,12 @@ Feedback comment support:
183
183
  | --- | --- | --- |
184
184
  | Sync mission cards and review threads | `myte bootstrap --json` | Refreshes `MyteCommandCenter/data/missions/*.yml`, project structure, and `MyteCommandCenter/data/mission-ops.yml`. |
185
185
  | Sync only mission review threads | `myte suggestions sync --json` | Refreshes `MyteCommandCenter/data/mission-ops.yml` while preserving local workspace drafts. |
186
- | Suggest edit to existing mission | `myte suggestions create --file ./create.yml --confirm-write --approval-artifact ./create.yml` with `change_type: update` and `mission_id` | Creates or appends to an active review thread; live mission is unchanged until approval. |
187
- | Suggest new mission | `myte suggestions create --file ./create.yml --confirm-write --approval-artifact ./create.yml` with `change_type: create` | Requires `change_set.title` and `change_set.description`; creates a review thread only; the mission card is created only after approval. |
188
- | Revise a suggestion | `myte suggestions revise --file ./revise.yml --confirm-write --approval-artifact ./revise.yml` with `suggestion_id` | Adds another revision to the same thread. Do not include `change_type`. |
189
- | Review a suggestion | `myte suggestions review` with `review_action: approve|request_changes|reject` | Project Owner or elevated mission-review delegate required; no approval artifact required. Approval mutates/creates the mission once; reject archives the thread only; request_changes keeps it actionable. |
190
- | Update mission status | `myte mission status --mission-ids "M001" --status todo|in_progress|done` | Project-key surface updates canonical mission status for active cards; no approval artifact required; refreshes local bootstrap + mission-ops by default. |
191
- | Archive mission | `myte mission archive --mission-ids "M001[,M002]" --reason "..."` | Project Owner or elevated delegate required; no approval artifact required. Sets `Archived`, removes cards from normal bootstrap/board state, writes mission activity, and refreshes local bootstrap + mission-ops by default. |
186
+ | Suggest edit to existing mission | `myte suggestions create --file ./create.yml --confirm-write --approval-artifact ./create.yml` with `change_type: update` and `mission_id` | Creates or appends to an active review thread; live mission is unchanged until approval. |
187
+ | Suggest new mission | `myte suggestions create --file ./create.yml --confirm-write --approval-artifact ./create.yml` with `change_type: create` | Requires `change_set.title` and `change_set.description`; creates a review thread only; the mission card is created only after approval. |
188
+ | Revise a suggestion | `myte suggestions revise --file ./revise.yml --confirm-write --approval-artifact ./revise.yml` with `suggestion_id` | Adds another revision to the same thread. Do not include `change_type`. |
189
+ | Review a suggestion | `myte suggestions review` with `review_action: approve|request_changes|reject` | Project Owner or elevated mission-review delegate required; no approval artifact required. Approval mutates/creates the mission once; reject archives the thread only; request_changes keeps it actionable. |
190
+ | Update mission status | `myte mission status --mission-ids "M001" --status todo|in_progress|done` | Project-key surface updates canonical mission status for active cards; no approval artifact required; refreshes local bootstrap + mission-ops by default. |
191
+ | Archive mission | `myte mission archive --mission-ids "M001[,M002]" --reason "..."` | Project Owner or elevated delegate required; no approval artifact required. Sets `Archived`, removes cards from normal bootstrap/board state, writes mission activity, and refreshes local bootstrap + mission-ops by default. |
192
192
 
193
193
  Create payloads:
194
194
 
@@ -251,69 +251,69 @@ Agent rule: never guess `suggestion_id`. If `mission-ops.yml` is missing or stal
251
251
  | `feedback-sync` | Pulls non-archived feedback metadata, comments, and PRD context into `MyteCommandCenter`. | Read-only project-key API call; archived Feedback is intentionally excluded. |
252
252
  | `feedback get` | Reads one feedback item's current server snapshot and `snapshot_hash`. | Read-only; backend checks project access. |
253
253
  | `feedback status` | Creates a local YAML proposal to change canonical lifecycle state. | No live mutation until `submit` and owner/delegate review, except owner-direct `apply`. |
254
- | `feedback edit` / `feedback refine` | Creates a local YAML proposal for title, description/body, priority, due date, tags, or notes. | Content changes go through owner-review membrane. |
255
- | `feedback document-add` | Creates a local YAML proposal to append one linked Markdown PRD document to an existing Feedback item. | Owner-only field; normal submit/review/apply flow, stale protection, idempotency, version history, and notification apply. |
254
+ | `feedback edit` / `feedback refine` | Creates a local YAML proposal for title, description/body, priority, due date, tags, or notes. | Content changes go through owner-review membrane. |
255
+ | `feedback document-add` | Creates a local YAML proposal to append one linked Markdown PRD document to an existing Feedback item. | Owner-only field; normal submit/review/apply flow, stale protection, idempotency, version history, and notification apply. |
256
256
  | `feedback assign` | Creates a local YAML proposal to change assignee. | Goes through review unless applied through owner-direct path. |
257
257
  | `feedback archive` | Creates a local YAML proposal to archive. | Archive is governed by backend owner/delegate capability. |
258
- | `feedback submit` | Sends a local proposal artifact to the backend as a review request. | Requires `--confirm-write --approval-artifact <path>`; does not mutate live feedback before approval. |
259
- | `feedback revise` | Resubmits the original submitter's request after `request_changes`. | Requires `--confirm-write --approval-artifact <path>`; only valid for the original submitter and `needs_changes` requests. |
258
+ | `feedback submit` | Sends a local proposal artifact to the backend as a review request. | Requires `--confirm-write --approval-artifact <path>`; does not mutate live feedback before approval. |
259
+ | `feedback revise` | Resubmits the original submitter's request after `request_changes`. | Requires `--confirm-write --approval-artifact <path>`; only valid for the original submitter and `needs_changes` requests. |
260
260
  | `feedback reviews` | Lists review requests or fetches one request by `--request-id`. | Read-only; response includes backend permissions. |
261
- | `feedback review` | Approves, rejects, requests changes, or cancels one review request, or a batch with `--request-ids`. | No approval artifact required; backend restricts approval/review decisions to Project Owner or elevated delegate for Feedback scope; batch review uses one grouped notification path. |
262
- | `feedback move` | Moves a card or batch of cards across allowed board states directly with an audit event. | No approval artifact required. `--feedback-ids` sends one batch request. Blocked with `pending_feedback_review` while an active linked review request exists; governed states such as archive/reject/deploy/freeze remain backend-authorized. Project-key unarchive is not supported. |
263
- | `feedback comment` | Creates a text-only comment on one Feedback item. | Requires `--confirm-write --approval-artifact <path>`; backend checks project-key access, owner/assigned permission, idempotency, and the 500,000-character content cap. Attachments remain web UI only. |
264
- | `feedback undo` | Reverses an audited board event when there is no conflict. | No approval artifact required; backend validates event ownership/project scope and conflict state. |
261
+ | `feedback review` | Approves, rejects, requests changes, or cancels one review request, or a batch with `--request-ids`. | No approval artifact required; backend restricts approval/review decisions to Project Owner or elevated delegate for Feedback scope; batch review uses one grouped notification path. |
262
+ | `feedback move` | Moves a card or batch of cards across allowed board states directly with an audit event. | No approval artifact required. `--feedback-ids` sends one batch request. Blocked with `pending_feedback_review` while an active linked review request exists; governed states such as archive/reject/deploy/freeze remain backend-authorized. Project-key unarchive is not supported. |
263
+ | `feedback comment` | Creates a text-only comment on one Feedback item. | Requires `--confirm-write --approval-artifact <path>`; backend checks project-key access, owner/assigned permission, idempotency, and the 500,000-character content cap. Attachments remain web UI only. |
264
+ | `feedback undo` | Reverses an audited board event when there is no conflict. | No approval artifact required; backend validates event ownership/project scope and conflict state. |
265
265
  | `feedback prd-versions` | Lists retained PRD baselines/revisions for a feedback item. | Read-only; old S3 objects are retained by reference. |
266
266
  | `feedback prd-diff` | Fetches backend-generated text diff for PRD versions. | Read-only; backend controls version access. |
267
267
  | `feedback history` | Lists audited feedback board/refinement events. | Read-only; backend checks project access. |
268
268
  | `feedback validate` | Sends an artifact to backend validation without mutation. | Useful before submit or owner-direct apply. |
269
- | `feedback apply` | Applies an artifact through the owner-direct/emergency path. | No approval artifact required; not the normal collaborator flow; normal flow is `submit` -> `review`. |
270
-
271
- Canonical feedback lifecycle states are `frozen`, `todo`, `in_progress`, `in_review`, `completed`, `deployed`, `rejected`, and `archived`.
272
-
273
- ### Feedback Permission Matrix
274
-
275
- | Project role | Feedback permissions |
276
- | --- | --- |
277
- | Project Owner | Full Feedback lifecycle: view/sync/comment, draft/validate/submit, direct apply, approve/request changes/reject/cancel reviews, assignment, governed board states, archive, version history, and diffs. |
278
- | Elevated collaborator (`owner_delegate`) | Same operational Feedback authority as the Project Owner, including direct apply, approval, assignment, governed board states, and archive. Project-level privilege grant/revoke and unrelated destructive infrastructure operations remain real-owner controls. |
279
- | Builder collaborator | View/sync/comment, create and validate local edits, submit/revise/cancel their review requests, self-assign, and move active work through `todo`, `in_progress`, `in_review`, and `completed`. Cannot approve, directly apply, unassign others, archive, reject, freeze, or deploy Feedback. |
280
- | Client collaborator | View/sync and participate in Feedback discussion. Does not receive builder edit, submit, assignment, or board-operation capabilities. |
281
- | Organisation owner not assigned to the project | View access only; no project Feedback mutation authority. |
282
-
283
- Stale local artifacts fail validation/apply with `snapshot_mismatch`. Re-sync,
284
- review the newer server state, and create a fresh artifact; `force` is not part
285
- of the normal collaborator workflow.
269
+ | `feedback apply` | Applies an artifact through the owner-direct/emergency path. | No approval artifact required; not the normal collaborator flow; normal flow is `submit` -> `review`. |
286
270
 
287
- Reusable live smoke harness after deploy:
288
-
289
- ```bash
290
- node ./scripts/feedback-live-full-harness.js --confirm-live --base-url https://api.myte.dev/api
291
- ```
292
-
293
- For strict owner/elevated/builder permission certification, set distinct
294
- `MYTE_OWNER_API_KEY`, `MYTE_DELEGATE_API_KEY`, and
295
- `MYTE_COLLABORATOR_API_KEY` values scoped to the same test project and add
296
- `--require-role-matrix`. To certify a real web-created comment attachment,
297
- provide an ephemeral `MYTE_WEB_ACCESS_TOKEN` for an assigned test user and add
298
- `--require-comment-attachment-sync`.
299
-
300
- The harness creates five disposable `TEST` feedback items plus one
301
- three-document Feedback item. It verifies comment sync, optional comment
302
- attachment materialization, stale-artifact rejection and fresh re-sync,
303
- request-changes/revise, owner and elevated approvals, regular collaborator
304
- denials, batch review and board movement, per-document refinement/version diff,
305
- exact-ID archival, archived sync exclusion, and project-key unarchive denial.
306
-
307
- ## Direct Project API Surface
308
-
309
- All routes use `Authorization: Bearer <MYTE_API_KEY>`. The CLI adds idempotency and client-session headers on mutation routes.
310
-
311
- `myte ai` is separate from this project-scoped surface. It uses `MYTEAI_API_KEY` and calls `POST https://api.myte.ai/v1/chat/completions`, or `${MYTEAI_API_BASE}/v1/chat/completions` when that base is configured.
312
-
313
- Read/sync routes:
314
-
315
- - `GET /api/project-assistant/query/<job_id>`
316
- - `GET /api/project-assistant/config`
271
+ Canonical feedback lifecycle states are `frozen`, `todo`, `in_progress`, `in_review`, `completed`, `deployed`, `rejected`, and `archived`.
272
+
273
+ ### Feedback Permission Matrix
274
+
275
+ | Project role | Feedback permissions |
276
+ | --- | --- |
277
+ | Project Owner | Full Feedback lifecycle: view/sync/comment, draft/validate/submit, direct apply, approve/request changes/reject/cancel reviews, assignment, governed board states, archive, version history, and diffs. |
278
+ | Elevated collaborator (`owner_delegate`) | Same operational Feedback authority as the Project Owner, including direct apply, approval, assignment, governed board states, and archive. Project-level privilege grant/revoke and unrelated destructive infrastructure operations remain real-owner controls. |
279
+ | Builder collaborator | View/sync/comment, create and validate local edits, submit/revise/cancel their review requests, self-assign, and move active work through `todo`, `in_progress`, `in_review`, and `completed`. Cannot approve, directly apply, unassign others, archive, reject, freeze, or deploy Feedback. |
280
+ | Client collaborator | View/sync and participate in Feedback discussion. Does not receive builder edit, submit, assignment, or board-operation capabilities. |
281
+ | Organisation owner not assigned to the project | View access only; no project Feedback mutation authority. |
282
+
283
+ Stale local artifacts fail validation/apply with `snapshot_mismatch`. Re-sync,
284
+ review the newer server state, and create a fresh artifact; `force` is not part
285
+ of the normal collaborator workflow.
286
+
287
+ Reusable live smoke harness after deploy:
288
+
289
+ ```bash
290
+ node ./scripts/feedback-live-full-harness.js --confirm-live --base-url https://api.myte.dev/api
291
+ ```
292
+
293
+ For strict owner/elevated/builder permission certification, set distinct
294
+ `MYTE_OWNER_API_KEY`, `MYTE_DELEGATE_API_KEY`, and
295
+ `MYTE_COLLABORATOR_API_KEY` values scoped to the same test project and add
296
+ `--require-role-matrix`. To certify a real web-created comment attachment,
297
+ provide an ephemeral `MYTE_WEB_ACCESS_TOKEN` for an assigned test user and add
298
+ `--require-comment-attachment-sync`.
299
+
300
+ The harness creates five disposable `TEST` feedback items plus one
301
+ three-document Feedback item. It verifies comment sync, optional comment
302
+ attachment materialization, stale-artifact rejection and fresh re-sync,
303
+ request-changes/revise, owner and elevated approvals, regular collaborator
304
+ denials, batch review and board movement, per-document refinement/version diff,
305
+ exact-ID archival, archived sync exclusion, and project-key unarchive denial.
306
+
307
+ ## Direct Project API Surface
308
+
309
+ All routes use `Authorization: Bearer <MYTE_API_KEY>`. The CLI adds idempotency and client-session headers on mutation routes.
310
+
311
+ `myte ai` is separate from this project-scoped surface. It uses `MYTEAI_API_KEY` and calls `POST https://api.myte.ai/v1/chat/completions`, or `${MYTEAI_API_BASE}/v1/chat/completions` when that base is configured.
312
+
313
+ Read/sync routes:
314
+
315
+ - `GET /api/project-assistant/query/<job_id>`
316
+ - `GET /api/project-assistant/config`
317
317
  - `GET /api/project-assistant/bootstrap`
318
318
  - `GET /api/project-assistant/qaqc-sync`
319
319
  - `GET /api/project-assistant/feedback-sync`
@@ -325,7 +325,7 @@ Read/sync routes:
325
325
  - `GET /api/project-assistant/feedback/<feedback_id>/prd/versions`
326
326
  - `GET /api/project-assistant/feedback/<feedback_id>/prd/versions/<version_id>/diff`
327
327
  - `GET /api/project-assistant/suggestions`
328
- - `GET /api/project-assistant/run-qaqc/<batch_id>`
328
+ - `GET /api/project-assistant/run-qaqc/<batch_id>`
329
329
 
330
330
  Mutation routes:
331
331
 
@@ -352,4 +352,14 @@ Mutation routes:
352
352
  - `POST /api/project-assistant/feedback/<feedback_id>/events/<event_id>/undo`
353
353
  - `POST /api/project-assistant/suggestions`
354
354
  - `POST /api/project-assistant/suggestions/revise`
355
- - `POST /api/project-assistant/suggestions/review`
355
+ - `POST /api/project-assistant/suggestions/review`
356
+
357
+ Query and QAQC status polling honors additive server timing from `Retry-After`
358
+ and `next_poll_after_ms`, with bounded client jitter. This keeps one busy IDE
359
+ fleet from synchronizing poll bursts. Older servers remain compatible through
360
+ the existing bounded backoff fallback.
361
+
362
+ The API keeps bounded CRUD and snapshot reads synchronous. Query and QAQC are
363
+ durable asynchronous workflows; the CLI never assumes that every API action is
364
+ a separate Celery task. Feedback sync pages are bounded (100 by default, 500
365
+ maximum) and `create-prd` batch uploads are capped at 20 items by the backend.
@@ -1,21 +1,21 @@
1
- # Third-Party Notices
2
-
3
- This package includes the Myte CLI launcher and MyteCody distribution client.
4
-
5
- The branded MyteCody engine installed by the launcher is derived from the
6
- OpenAI Codex open-source project. OpenAI Codex is licensed under the
7
- Apache License, Version 2.0.
8
-
9
- Source lineage tracked for this slice:
10
-
11
- - Project: OpenAI Codex
12
- - Version baseline: `0.139.0`
13
- - License: Apache-2.0
14
- - Upstream: https://github.com/openai/codex
15
-
16
- The MyteCody engine and signed client assets are distributed separately from
17
- this npm package through a Myte release manifest. This package verifies release
18
- artifacts before installing them into the user's Myte-owned local cache.
19
-
20
- Myte names, marks, logos, terminal branding, and product design are not part of
21
- the OpenAI Codex project and remain Myte-owned brand assets.
1
+ # Third-Party Notices
2
+
3
+ This package includes the Myte CLI launcher and MyteCody distribution client.
4
+
5
+ The branded MyteCody engine installed by the launcher is derived from the
6
+ OpenAI Codex open-source project. OpenAI Codex is licensed under the
7
+ Apache License, Version 2.0.
8
+
9
+ Source lineage tracked for this slice:
10
+
11
+ - Project: OpenAI Codex
12
+ - Version baseline: `0.139.0`
13
+ - License: Apache-2.0
14
+ - Upstream: https://github.com/openai/codex
15
+
16
+ The MyteCody engine and signed client assets are distributed separately from
17
+ this npm package through a Myte release manifest. This package verifies release
18
+ artifacts before installing them into the user's Myte-owned local cache.
19
+
20
+ Myte names, marks, logos, terminal branding, and product design are not part of
21
+ the OpenAI Codex project and remain Myte-owned brand assets.
package/TRADEMARKS.md CHANGED
@@ -1,10 +1,10 @@
1
- # Trademarks
2
-
3
- Myte, Myte AI, MyteCody, "MYTE CODY - Your Tech Your Way", logo assets, terminal
4
- animation assets, and related product branding are Myte-owned marks and brand
5
- assets.
6
-
7
- OpenAI and Codex are trademarks or project names of their respective owners.
8
- MyteCody uses a Codex-derived open-source engine under the applicable open
9
- source license, but MyteCody is a Myte product surface and is not presented as
10
- an official OpenAI product.
1
+ # Trademarks
2
+
3
+ Myte, Myte AI, MyteCody, "MYTE CODY - Your Tech Your Way", logo assets, terminal
4
+ animation assets, and related product branding are Myte-owned marks and brand
5
+ assets.
6
+
7
+ OpenAI and Codex are trademarks or project names of their respective owners.
8
+ MyteCody uses a Codex-derived open-source engine under the applicable open
9
+ source license, but MyteCody is a Myte product surface and is not presented as
10
+ an official OpenAI product.