@autonomos/core 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -5,7 +5,7 @@ import { z } from "zod";
5
5
  * Agent Protocol Specification Version (Independent of Package versions)
6
6
  * This refers to the schema and behavioral contract version.
7
7
  */
8
- declare const PROTOCOL_VERSION = "0.7.0-alpha";
8
+ declare const PROTOCOL_VERSION = "0.8.0-alpha";
9
9
  /**
10
10
  * Directory name for Autonomos configuration
11
11
  */
@@ -40,6 +40,32 @@ declare const SPECS_DIR = "specs";
40
40
  declare const DECISIONS_DIR = "decisions";
41
41
  /** Optional project-owned history, never loaded by default. */
42
42
  declare const ARCHIVE_DIR = "archive";
43
+ /**
44
+ * Layout version of project-owned records. Absent in a manifest means 1.
45
+ * Format 2: current registries hold open work only, closed records live in
46
+ * `archive/closed/`, and worklogs follow the proportionate shape.
47
+ */
48
+ declare const ARTIFACT_FORMAT = 2;
49
+ /** Issues registry filename. */
50
+ declare const ISSUES_FILE = "ISSUES.md";
51
+ /** Append-only registries of closed tasks and issues, under the archive. */
52
+ declare const CLOSED_DIR = "closed";
53
+ /** Archive batch that receives worklogs written before artifact format 2. */
54
+ declare const LEGACY_WORKLOGS_DIR = "worklogs-format-1";
55
+ /** Archive index filename. */
56
+ declare const ARCHIVE_INDEX_FILE = "README.md";
57
+ /**
58
+ * Advisory size budgets (bytes or characters) reported by `autonomos status`.
59
+ * They keep startup and close-out context proportionate; they are not parsers.
60
+ */
61
+ declare const CONTEXT_BUDGETS: {
62
+ readonly rootAgentBytes: 8000;
63
+ readonly localAgentBytes: 4000;
64
+ readonly tasksBytes: 16000;
65
+ readonly issuesBytes: 24000;
66
+ readonly taskEntryChars: 300;
67
+ readonly worklogBytes: 2500;
68
+ };
43
69
  //#endregion
44
70
  //#region src/schemas/harness-codes.d.ts
45
71
  /**
@@ -59,36 +85,46 @@ declare const InstallerSchema: z.ZodEffects<z.ZodObject<{
59
85
  targetDir: z.ZodOptional<z.ZodString>;
60
86
  skillsDir: z.ZodOptional<z.ZodString>;
61
87
  commandsDir: z.ZodOptional<z.ZodString>;
88
+ promptsDir: z.ZodOptional<z.ZodString>;
62
89
  globalTargetDir: z.ZodOptional<z.ZodString>;
63
90
  fileExtension: z.ZodString;
91
+ _note: z.ZodOptional<z.ZodString>;
64
92
  }, "strip", z.ZodTypeAny, {
65
93
  fileExtension: string;
66
94
  workflowsDir?: string | undefined;
67
95
  targetDir?: string | undefined;
68
96
  skillsDir?: string | undefined;
69
97
  commandsDir?: string | undefined;
98
+ promptsDir?: string | undefined;
70
99
  globalTargetDir?: string | undefined;
100
+ _note?: string | undefined;
71
101
  }, {
72
102
  fileExtension: string;
73
103
  workflowsDir?: string | undefined;
74
104
  targetDir?: string | undefined;
75
105
  skillsDir?: string | undefined;
76
106
  commandsDir?: string | undefined;
107
+ promptsDir?: string | undefined;
77
108
  globalTargetDir?: string | undefined;
109
+ _note?: string | undefined;
78
110
  }>, {
79
111
  fileExtension: string;
80
112
  workflowsDir?: string | undefined;
81
113
  targetDir?: string | undefined;
82
114
  skillsDir?: string | undefined;
83
115
  commandsDir?: string | undefined;
116
+ promptsDir?: string | undefined;
84
117
  globalTargetDir?: string | undefined;
118
+ _note?: string | undefined;
85
119
  }, {
86
120
  fileExtension: string;
87
121
  workflowsDir?: string | undefined;
88
122
  targetDir?: string | undefined;
89
123
  skillsDir?: string | undefined;
90
124
  commandsDir?: string | undefined;
125
+ promptsDir?: string | undefined;
91
126
  globalTargetDir?: string | undefined;
127
+ _note?: string | undefined;
92
128
  }>;
93
129
  /**
94
130
  * A single harness entry.
@@ -101,36 +137,46 @@ declare const HarnessSchema: z.ZodObject<{
101
137
  targetDir: z.ZodOptional<z.ZodString>;
102
138
  skillsDir: z.ZodOptional<z.ZodString>;
103
139
  commandsDir: z.ZodOptional<z.ZodString>;
140
+ promptsDir: z.ZodOptional<z.ZodString>;
104
141
  globalTargetDir: z.ZodOptional<z.ZodString>;
105
142
  fileExtension: z.ZodString;
143
+ _note: z.ZodOptional<z.ZodString>;
106
144
  }, "strip", z.ZodTypeAny, {
107
145
  fileExtension: string;
108
146
  workflowsDir?: string | undefined;
109
147
  targetDir?: string | undefined;
110
148
  skillsDir?: string | undefined;
111
149
  commandsDir?: string | undefined;
150
+ promptsDir?: string | undefined;
112
151
  globalTargetDir?: string | undefined;
152
+ _note?: string | undefined;
113
153
  }, {
114
154
  fileExtension: string;
115
155
  workflowsDir?: string | undefined;
116
156
  targetDir?: string | undefined;
117
157
  skillsDir?: string | undefined;
118
158
  commandsDir?: string | undefined;
159
+ promptsDir?: string | undefined;
119
160
  globalTargetDir?: string | undefined;
161
+ _note?: string | undefined;
120
162
  }>, {
121
163
  fileExtension: string;
122
164
  workflowsDir?: string | undefined;
123
165
  targetDir?: string | undefined;
124
166
  skillsDir?: string | undefined;
125
167
  commandsDir?: string | undefined;
168
+ promptsDir?: string | undefined;
126
169
  globalTargetDir?: string | undefined;
170
+ _note?: string | undefined;
127
171
  }, {
128
172
  fileExtension: string;
129
173
  workflowsDir?: string | undefined;
130
174
  targetDir?: string | undefined;
131
175
  skillsDir?: string | undefined;
132
176
  commandsDir?: string | undefined;
177
+ promptsDir?: string | undefined;
133
178
  globalTargetDir?: string | undefined;
179
+ _note?: string | undefined;
134
180
  }>;
135
181
  }, "strip", z.ZodTypeAny, {
136
182
  name: string;
@@ -141,7 +187,9 @@ declare const HarnessSchema: z.ZodObject<{
141
187
  targetDir?: string | undefined;
142
188
  skillsDir?: string | undefined;
143
189
  commandsDir?: string | undefined;
190
+ promptsDir?: string | undefined;
144
191
  globalTargetDir?: string | undefined;
192
+ _note?: string | undefined;
145
193
  };
146
194
  }, {
147
195
  name: string;
@@ -152,7 +200,9 @@ declare const HarnessSchema: z.ZodObject<{
152
200
  targetDir?: string | undefined;
153
201
  skillsDir?: string | undefined;
154
202
  commandsDir?: string | undefined;
203
+ promptsDir?: string | undefined;
155
204
  globalTargetDir?: string | undefined;
205
+ _note?: string | undefined;
156
206
  };
157
207
  }>;
158
208
  /**
@@ -167,36 +217,46 @@ declare const HarnessCodesSchema: z.ZodObject<{
167
217
  targetDir: z.ZodOptional<z.ZodString>;
168
218
  skillsDir: z.ZodOptional<z.ZodString>;
169
219
  commandsDir: z.ZodOptional<z.ZodString>;
220
+ promptsDir: z.ZodOptional<z.ZodString>;
170
221
  globalTargetDir: z.ZodOptional<z.ZodString>;
171
222
  fileExtension: z.ZodString;
223
+ _note: z.ZodOptional<z.ZodString>;
172
224
  }, "strip", z.ZodTypeAny, {
173
225
  fileExtension: string;
174
226
  workflowsDir?: string | undefined;
175
227
  targetDir?: string | undefined;
176
228
  skillsDir?: string | undefined;
177
229
  commandsDir?: string | undefined;
230
+ promptsDir?: string | undefined;
178
231
  globalTargetDir?: string | undefined;
232
+ _note?: string | undefined;
179
233
  }, {
180
234
  fileExtension: string;
181
235
  workflowsDir?: string | undefined;
182
236
  targetDir?: string | undefined;
183
237
  skillsDir?: string | undefined;
184
238
  commandsDir?: string | undefined;
239
+ promptsDir?: string | undefined;
185
240
  globalTargetDir?: string | undefined;
241
+ _note?: string | undefined;
186
242
  }>, {
187
243
  fileExtension: string;
188
244
  workflowsDir?: string | undefined;
189
245
  targetDir?: string | undefined;
190
246
  skillsDir?: string | undefined;
191
247
  commandsDir?: string | undefined;
248
+ promptsDir?: string | undefined;
192
249
  globalTargetDir?: string | undefined;
250
+ _note?: string | undefined;
193
251
  }, {
194
252
  fileExtension: string;
195
253
  workflowsDir?: string | undefined;
196
254
  targetDir?: string | undefined;
197
255
  skillsDir?: string | undefined;
198
256
  commandsDir?: string | undefined;
257
+ promptsDir?: string | undefined;
199
258
  globalTargetDir?: string | undefined;
259
+ _note?: string | undefined;
200
260
  }>;
201
261
  }, "strip", z.ZodTypeAny, {
202
262
  name: string;
@@ -207,7 +267,9 @@ declare const HarnessCodesSchema: z.ZodObject<{
207
267
  targetDir?: string | undefined;
208
268
  skillsDir?: string | undefined;
209
269
  commandsDir?: string | undefined;
270
+ promptsDir?: string | undefined;
210
271
  globalTargetDir?: string | undefined;
272
+ _note?: string | undefined;
211
273
  };
212
274
  }, {
213
275
  name: string;
@@ -218,7 +280,9 @@ declare const HarnessCodesSchema: z.ZodObject<{
218
280
  targetDir?: string | undefined;
219
281
  skillsDir?: string | undefined;
220
282
  commandsDir?: string | undefined;
283
+ promptsDir?: string | undefined;
221
284
  globalTargetDir?: string | undefined;
285
+ _note?: string | undefined;
222
286
  };
223
287
  }>>;
224
288
  }, "strip", z.ZodTypeAny, {
@@ -231,7 +295,9 @@ declare const HarnessCodesSchema: z.ZodObject<{
231
295
  targetDir?: string | undefined;
232
296
  skillsDir?: string | undefined;
233
297
  commandsDir?: string | undefined;
298
+ promptsDir?: string | undefined;
234
299
  globalTargetDir?: string | undefined;
300
+ _note?: string | undefined;
235
301
  };
236
302
  }>;
237
303
  }, {
@@ -244,7 +310,9 @@ declare const HarnessCodesSchema: z.ZodObject<{
244
310
  targetDir?: string | undefined;
245
311
  skillsDir?: string | undefined;
246
312
  commandsDir?: string | undefined;
313
+ promptsDir?: string | undefined;
247
314
  globalTargetDir?: string | undefined;
315
+ _note?: string | undefined;
248
316
  };
249
317
  }>;
250
318
  }>;
@@ -261,16 +329,19 @@ declare const ManifestSchema: z.ZodObject<{
261
329
  cliVersion: z.ZodString;
262
330
  initializedAt: z.ZodString;
263
331
  lastUpdated: z.ZodString;
332
+ artifactFormat: z.ZodOptional<z.ZodNumber>;
264
333
  }, "strip", z.ZodTypeAny, {
265
334
  protocolVersion: string;
266
335
  cliVersion: string;
267
336
  initializedAt: string;
268
337
  lastUpdated: string;
338
+ artifactFormat?: number | undefined;
269
339
  }, {
270
340
  protocolVersion: string;
271
341
  cliVersion: string;
272
342
  initializedAt: string;
273
343
  lastUpdated: string;
344
+ artifactFormat?: number | undefined;
274
345
  }>;
275
346
  type Manifest = z.infer<typeof ManifestSchema>;
276
347
  //#endregion
@@ -354,22 +425,24 @@ declare function generateManifestContent(manifest: Manifest): string;
354
425
  * Parses manifest.json content into a Manifest object with validation
355
426
  */
356
427
  declare function parseManifest(content: string): Manifest;
428
+ /** Artifact format recorded by a manifest (format 1 when absent). */
429
+ declare function manifestArtifactFormat(manifest: Manifest): number;
357
430
  //#endregion
358
431
  //#region src/templates/protocol.d.ts
359
432
  /**
360
- * The Protocol kernel template — v0.7
433
+ * The Protocol kernel template — v0.8
361
434
  *
362
- * Design principles (v0.7):
435
+ * Design principles (v0.8):
363
436
  * - PROTOCOL.md is a compact REFERENCE, not an executable workflow.
364
437
  * - All step-by-step instructions live in the workflow files.
365
438
  * - No duplication between PROTOCOL.md and workflows.
366
439
  * - Short enough that an LLM can re-scan it mid-session without cost.
367
440
  */
368
- declare const PROTOCOL_TEMPLATE = "# AUTONOMOS PROTOCOL (v0.7.0-alpha)\n\n> This file defines the project's AI workflow contract. The workflows execute it. Do not duplicate workflow steps here.\n\n## Quick Reference\n\n| Action | How |\n| -------------------------------- | ---------------------------------------------------------------------------------- |\n| Start a session | Read the `/session` workflow |\n| Start a task | Read the `/task` workflow |\n| Triage a problem or proposal | Read the optional `/issue` workflow |\n| Adopt existing project knowledge | Read the optional `/adopt` workflow |\n| Reconcile drift and archive history | Read the `/reconcile` workflow |\n| Design or critique a surface | Read the optional `/design` workflow |\n| End a session | Read the `/crystallize` workflow |\n| Get context | Read root `AGENT.md`, then only the selected scope's ancestor chain |\n| Resolve objective | Explicit user request first; otherwise resume `[/]` or pick highest-priority `[ ]` |\n| Log session work | Create `.autonomos/worklogs/YYYY-MM-DD-[TASK_ID].md` |\n\n## File Map\n\n| File | Location | Role |\n| --------------- | -------------------------- | ------------------------------------------------- |\n| `AGENT.md` | Root + any subdirectory | Durable guidance for its directory scope |\n| `TASKS.md` | `.autonomos/TASKS.md` | Current task state and optional Current direction |\n| `ISSUES.md` | `.autonomos/ISSUES.md` | Optional problem, proposal, and question intake |\n| `worklogs/` | `.autonomos/worklogs/` | Historical session evidence, not current guidance |\n| `archive/` | `.autonomos/archive/` | Optional history, searched only when justified |\n| `specs/` | `.autonomos/specs/` | Optional project-owned normative target state |\n| `decisions/` | `.autonomos/decisions/` | Optional project-owned decision records (ADRs) |\n| `DESIGN.md` | Root or target scope | Optional project-owned visual/interaction direction |\n| `PROTOCOL.md` | `.autonomos/PROTOCOL.md` | This file \u2014 read-only reference |\n| `manifest.json` | `.autonomos/manifest.json` | Protocol version metadata |\n\n## Design Direction Boundary\n\n`DESIGN.md` is optional project-owned direction, not a managed protocol\nartifact. Use `/design` when a surface needs direction, critique, or\ndesign-knowledge extraction; keep the project's identity and examples local.\nThe workflow supplies routing and evidence rules, not a universal visual style.\n\n## AGENT.md Format Rules\n\nStore only stable guidance that will affect different future tasks. Keep transient evidence in worklogs and operational explanations in component documentation. Use the narrowest applicable `AGENT.md`; consolidate or replace obsolete entries instead of appending history. Preserve valid subclaims in mixed paragraphs. Check the resulting text for completed-action narratives, task progress and unsupported prohibitions; these do not belong in operating guidance.\n\n**Root `AGENT.md`** \u2014 Must use the structured template (frontmatter + sections: Context, Workflow, Stack, Key Directories, Constraints).\n\n**Local `AGENT.md`** (in any subdirectory) \u2014 Free format. One line is enough if it is clear. What matters: the next session can use it. Example:\n\n```markdown\n# AGENT: packages/core\n\n- Stack: TypeScript, Vitest, tsdown\n- Conventions: exports via src/index.ts, tests co-located (\\*.test.ts)\n- Constraint: template changes require workflow test updates\n```\n\n## Issue, Specification, Decision, and Task Rules\n\nIssues describe evidence, impact, and a desired outcome without choosing implementation; proposed directions remain hypotheses until an approach is accepted. Specifications describe accepted target behavior or requirements that may guide multiple tasks. A decision record (commonly ADR, Architecture Decision Record) captures one technical choice and its rationale. Tasks describe an accepted intervention and completion criteria. Use optional `ISSUES.md`, `specs/`, and `decisions/` only when they provide value; direct, clear changes may become tasks immediately. Link related issues, specs, decisions, and tasks in both directions.\n\n## Specification and Decision Rules\n\n- `.autonomos/specs/` and `.autonomos/decisions/` are optional, project-owned, first-use directories; `init`, `update`, and artifact-integrity checks do not create or overwrite them.\n- Keep one Markdown file per bounded specification or decision. Include status, scope, provenance, acceptance criteria or consequences, and replacement links where relevant; no parser or independent version is required initially.\n- Specification status is `draft`, `accepted`, or `superseded`. Only `accepted` is normative; `superseded` points to its successor. Acceptance does not mean implementation is complete.\n- Decision records use `proposed`, `accepted`, or `superseded`; they preserve rationale and alternatives rather than duplicating the full specification.\n- Keep stable agent operating rules in `AGENT.md`, user/developer reference in `docs/`, execution state in `TASKS.md`, and historical evidence in `worklogs/`.\n- Read only relevant accepted records at task start. Use `/adopt` to extract legacy knowledge; never rewrite historical worklogs, issues, or tasks to create current artifacts.\n\nThe protocol-facing name is **decision record**. **ADR** (Architecture Decision Record) is a common convention for the same kind of document, not a required external standard. Use these lightweight Markdown shapes as a starting point; they are conventions, not parser-enforced schemas:\n\n```markdown\n# SPEC-001 \u2014 Concise target-state title\n\n- Status: draft | accepted | superseded\n- Scope: component, capability, or boundary\n- Provenance: issue, discussion, or source links\n- Related decisions: ADR-001, ...\n- Superseded by: SPEC-002 (when applicable)\n\n## Intent\n\n## Requirements\n\n## Acceptance criteria\n\n## Out of scope\n```\n\n```markdown\n# ADR-001 \u2014 Concise decision title\n\n- Status: proposed | accepted | superseded\n- Scope: component or technical boundary\n- Provenance: issue, task, or investigation links\n- Related specs: SPEC-001, ...\n- Superseded by: ADR-002 (when applicable)\n\n## Context\n\n## Decision\n\n## Alternatives considered\n\n## Consequences\n```\n\nOnly user/project governance accepts a specification or decision as normative. Agents may draft and link records, but must not silently promote them; acceptance is separate from implementation completion.\n\n## Current Context and Archival Lifecycle\n\n- Current context must support ordinary work without archives. Keep applicable guidance, accepted requirements/decisions, unresolved work, dependencies and necessary next actions discoverable. Acceptance is independent of implementation; dated temporary directives remain active until lifted or their stated end condition is met.\n- A completed task or resolved/declined issue is an archival candidate only when its own scope is settled and still-needed outcomes/constraints/references are retained in current context. Explicitly abandoned work may be archived with its reason, without claiming it was completed. A completed child does not satisfy unmet parent acceptance criteria.\n- Record new task completion dates as `Completed: YYYY-MM-DD`; do not infer missing old dates from worklog filenames. Age, a checkbox, absent code or a newer statement alone is not proof of obsolescence.\n- Group archival at coherent completed-work boundaries, not per task or calendar interval. No Sprint object or scheduled maintenance is required. Correct certain in-scope drift proactively during normal work; use `/reconcile` for investigation, consolidation and archival.\n- Before moving history, consolidate current knowledge in its existing narrowest home. Optional `Current direction` in `TASKS.md` explains present aims, recent consequential outcomes and next work; rewrite it rather than append chronology. Keep progress out of `AGENT.md`.\n- Create project-owned `.autonomos/archive/README.md` and meaningful batch directories on first use only. A batch can contain `TASKS.md`, `ISSUES.md`, `worklogs/` and provenance for retired guidance. Group/split batches by useful scope; there is no fixed age, size or mandatory per-record schema.\n- Archive means move, not delete or rewrite conclusions. Preserve historical record content, identifiers and provenance; repair relative paths when necessary. Preserve original mixed-source text when retiring only some claims. Applicable specs/decisions stay current independently of execution records. Extraction into new normative artifacts still uses `/adopt`.\n- The archive index maps batch topics to records, not a second task journal. Search by ID or subject only when a specific question requires history; neither archives nor their entire index are routine startup context. Keep only necessary dependency/outcome pointers in current records, not a permanent stub for every completed task.\n- Archived task and issue IDs remain reserved. Before assigning an ID, search current and archived registries. With a CLI, `readTaskRegistry(root, { history: true })` exposes task references and duplicates; plain Markdown search works without it.\n- Verify exact source text before edits, retained current knowledge, IDs and resolvable references after moves. Do not confuse tool annotations with file content or historical validation with a current observation. Re-read shared files before writing and preserve unrelated concurrent changes. Stop when a second pass yields no deterministic correction.\n- `autonomos status` summarizes the current task registry; `--history` adds separate archived counts and read/collision diagnostics. Archived means historical, not necessarily completed. History uses batch `TASKS.md` files, not arbitrary worklog checklists.\n- Archives are project-owned, like specs and decisions. Initialization, updates and integrity checks neither create empty archives nor overwrite, relocate or judge their contents. Installing a new protocol performs no automatic cleanup. Version-control policy stays project-owned; Git is not required for archival or retrieval.\n\nExample (only files needed by a batch are created):\n\n```text\n.autonomos/\n TASKS.md\n ISSUES.md\n archive/\n README.md\n realtime-experiment-retirement/\n TASKS.md\n ISSUES.md\n worklogs/\n```\n\n## Task Format\n\n`- [Status] **[ID]** Title \\`Priority\\` \\`Complexity\\``\n\n| Status | Priority | Complexity |\n| ----------------- | ------------- | ---------- |\n| `[ ]` Todo | `\uD83D\uDD34 Critical` | `S` Small |\n| `[/]` In Progress | `\uD83D\uDFE0 High` | `M` Medium |\n| `[x]` Done | `\uD83D\uDD35 Medium` | `L` Large |\n| `[!]` Blocked | `\u26AA Low` | `XL` Huge |\n\n## Metadata Rules\n\n- **Language:** English unless AGENT.md says otherwise.\n- **Tone:** Technical, concise, fact-based.\n- **Continuity:** Refer to previous work as \"we\" or \"the project\".\n";
441
+ declare const PROTOCOL_TEMPLATE = "# AUTONOMOS PROTOCOL (v0.8.0-alpha)\n\n> This file defines the project's AI workflow contract. The workflows execute it. Do not duplicate workflow steps here.\n\n## Quick Reference\n\n| Action | How |\n| ----------------------------------- | ---------------------------------------------------------------------------------- |\n| Start a session | Read the `/session` workflow |\n| Start a task | Read the `/task` workflow |\n| Triage a problem or proposal | Read the optional `/issue` workflow |\n| Adopt existing project knowledge | Read the optional `/adopt` workflow |\n| Reconcile drift and archive history | Read the `/reconcile` workflow |\n| Design or critique a surface | Read the optional `/design` workflow |\n| End a session | Read the `/crystallize` workflow |\n| Get context | Read root `AGENT.md`, then only the selected scope's ancestor chain |\n| Resolve objective | Explicit user request first; otherwise resume `[/]` or pick highest-priority `[ ]` |\n| Log session work | Create `.autonomos/worklogs/YYYY-MM-DD-[TASK_ID].md` (shape in `/crystallize`) |\n| Close finished work | `autonomos close <ID>` \u2192 `.autonomos/archive/closed/` |\n| Check context budgets | `autonomos status`; upgrade old records with `autonomos migrate` |\n\n## File Map\n\n| File | Location | Role |\n| --------------- | -------------------------- | --------------------------------------------------------------------- |\n| `AGENT.md` | Root + any subdirectory | Durable guidance for its directory scope |\n| `TASKS.md` | `.autonomos/TASKS.md` | Open tasks and optional Current direction |\n| `ISSUES.md` | `.autonomos/ISSUES.md` | Optional intake: open and accepted issues only |\n| `worklogs/` | `.autonomos/worklogs/` | Historical session evidence, not current guidance |\n| `archive/` | `.autonomos/archive/` | History (`closed/` registries, batches), searched only when justified |\n| `specs/` | `.autonomos/specs/` | Optional project-owned normative target state |\n| `decisions/` | `.autonomos/decisions/` | Optional project-owned decision records (ADRs) |\n| `DESIGN.md` | Root or target scope | Optional project-owned visual/interaction direction |\n| `PROTOCOL.md` | `.autonomos/PROTOCOL.md` | This file \u2014 read-only reference |\n| `manifest.json` | `.autonomos/manifest.json` | Protocol version and artifact format |\n\n## Design Direction Boundary\n\n`DESIGN.md` is optional project-owned direction, not a managed protocol\nartifact. Use `/design` when a surface needs direction, critique, or\ndesign-knowledge extraction; keep the project's identity and examples local.\nThe workflow supplies routing and evidence rules, not a universal visual style.\n\n## AGENT.md Format Rules\n\nStore only stable guidance that will affect different future tasks. Keep transient evidence in worklogs and operational explanations in component documentation. Use the narrowest applicable `AGENT.md`; consolidate or replace obsolete entries instead of appending history. Preserve valid subclaims in mixed paragraphs. Check the resulting text for completed-action narratives, task progress and unsupported prohibitions; these do not belong in operating guidance.\n\n**Root `AGENT.md`** \u2014 Must use the structured template (frontmatter + sections: Context, Workflow, Stack, Key Directories, Constraints).\n\n**Local `AGENT.md`** (in any subdirectory) \u2014 Free format. One line is enough if it is clear. What matters: the next session can use it. Example:\n\n```markdown\n# AGENT: packages/core\n\n- Stack: TypeScript, Vitest, tsdown\n- Conventions: exports via src/index.ts, tests co-located (\\*.test.ts)\n- Constraint: template changes require workflow test updates\n```\n\n## Issue, Specification, Decision, and Task Rules\n\nIssues describe evidence, impact, and a desired outcome without choosing implementation; proposed directions remain hypotheses until an approach is accepted. Specifications describe accepted target behavior or requirements that may guide multiple tasks. A decision record (commonly ADR, Architecture Decision Record) captures one technical choice and its rationale. Tasks describe an accepted intervention and completion criteria. Use optional `ISSUES.md`, `specs/`, and `decisions/` only when they provide value; direct, clear changes may become tasks immediately. Link related issues, specs, decisions, and tasks in both directions.\n\n## Specification and Decision Rules\n\n- `.autonomos/specs/` and `.autonomos/decisions/` are optional, project-owned, first-use directories; `init`, `update`, and artifact-integrity checks do not create or overwrite them.\n- Keep one Markdown file per bounded specification or decision. Include status, scope, provenance, acceptance criteria or consequences, and replacement links where relevant; no parser or independent version is required initially.\n- Specification status is `draft`, `accepted`, or `superseded`. Only `accepted` is normative; `superseded` points to its successor. Acceptance does not mean implementation is complete.\n- Decision records use `proposed`, `accepted`, or `superseded`; they preserve rationale and alternatives rather than duplicating the full specification.\n- Keep stable agent operating rules in `AGENT.md`, user/developer reference in `docs/`, execution state in `TASKS.md`, and historical evidence in `worklogs/`.\n- Read only relevant accepted records at task start. Use `/adopt` to extract legacy knowledge; never rewrite historical worklogs, issues, or tasks to create current artifacts.\n\nThe protocol-facing name is **decision record**. **ADR** (Architecture Decision Record) is a common convention for the same kind of document, not a required external standard. Use these lightweight Markdown shapes as a starting point; they are conventions, not parser-enforced schemas:\n\n```markdown\n# SPEC-001 \u2014 Concise target-state title\n\n- Status: draft | accepted | superseded\n- Scope: component, capability, or boundary\n- Provenance: issue, discussion, or source links\n- Related decisions: ADR-001, ...\n- Superseded by: SPEC-002 (when applicable)\n\n## Intent\n\n## Requirements\n\n## Acceptance criteria\n\n## Out of scope\n```\n\n```markdown\n# ADR-001 \u2014 Concise decision title\n\n- Status: proposed | accepted | superseded\n- Scope: component or technical boundary\n- Provenance: issue, task, or investigation links\n- Related specs: SPEC-001, ...\n- Superseded by: ADR-002 (when applicable)\n\n## Context\n\n## Decision\n\n## Alternatives considered\n\n## Consequences\n```\n\nOnly user/project governance accepts a specification or decision as normative. Agents may draft and link records, but must not silently promote them; acceptance is separate from implementation completion.\n\n## Current Context and Archival Lifecycle\n\n- Current context must support ordinary work without archives, and its size follows open work, not project age. Keep applicable guidance, accepted requirements/decisions, unresolved work, dependencies and necessary next actions discoverable. Acceptance is independent of implementation; dated temporary directives remain active until lifted or their stated end condition is met.\n- `TASKS.md` holds `[ ]`, `[/]` and `[!]` tasks; `ISSUES.md` holds open and accepted issues. When work closes, move its record in the same session to the append-only `.autonomos/archive/closed/TASKS.md` or `ISSUES.md` (`autonomos close <ID>`, or by hand). Unfinished work may be closed only as abandoned, with its reason. A completed child does not satisfy unmet parent acceptance criteria; a parent with open children stays current.\n- Record new task completion dates as `Completed: YYYY-MM-DD`; do not infer missing old dates. Age, a checkbox, absent code or a newer statement alone is not proof of obsolescence.\n- Before moving history, consolidate still-needed knowledge in its existing narrowest home. Optional `Current direction` in `TASKS.md` explains present aims, recent consequential outcomes and next work; rewrite it rather than append chronology. Keep progress out of `AGENT.md`.\n- Other history may form named batches under `.autonomos/archive/<batch>/` via `/reconcile`; create `archive/README.md` and batch directories on first use only. The index maps topics to records; it is not a second journal.\n- Archive means move, not delete or rewrite conclusions. Preserve historical record content, identifiers and provenance; repair relative paths when necessary. Applicable specs/decisions stay current independently of execution records. Extraction into new normative artifacts still uses `/adopt`.\n- Archived task and issue IDs remain reserved. Before assigning an ID, search current and archived registries (`autonomos status --history` reports duplicates).\n- Verify exact source text before edits and resolvable references after moves. Re-read shared files before writing and preserve unrelated concurrent changes.\n\n## Context Budgets\n\nAdvisory limits reported by `autonomos status` (`--strict` makes them fail): root `AGENT.md` 8,000 bytes, local `AGENT.md` 4,000 bytes, `TASKS.md` 16 KB, `ISSUES.md` 24 KB, one task entry 300 characters, one worklog 2,500 bytes, and no closed record in current registries. Over budget, consolidate or move knowledge to its narrowest home before adding more. Root `AGENT.md` admits only guidance that applies to most tasks in the project.\n\n## Artifact Format and Migration\n\n`manifest.json` records `artifactFormat` (absent means 1); this protocol defines format 2. Installing a new protocol performs no automatic cleanup: `autonomos update` only replaces managed artifacts. `autonomos migrate` is the explicit, content-preserving upgrade: it closes finished records, moves pre-format-2 worklogs to `.autonomos/archive/worklogs-format-1/` so they stop serving as examples, repairs references and records the format. Run it with `--dry-run` first on a clean working tree, then resolve the remaining `status` findings with `/reconcile`.\n\n## Task Format\n\nOne line per task: `` - [Status] **[ID]** Title `Priority` `Complexity` `` plus, when useful, `Completed: YYYY-MM-DD`, a short note and links to its issue or worklog. Evidence, measurements and progress belong in the worklog, not the task entry.\n\n| Status | Priority | Complexity |\n| ----------------- | ------------- | ---------- |\n| `[ ]` Todo | `\uD83D\uDD34 Critical` | `S` Small |\n| `[/]` In Progress | `\uD83D\uDFE0 High` | `M` Medium |\n| `[x]` Done | `\uD83D\uDD35 Medium` | `L` Large |\n| `[!]` Blocked | `\u26AA Low` | `XL` Huge |\n\n## Metadata Rules\n\n- **Language:** English unless AGENT.md says otherwise.\n- **Tone:** Technical, concise, fact-based.\n- **Continuity:** Refer to previous work as \"we\" or \"the project\".\n";
369
442
  /**
370
443
  * @deprecated Use PROTOCOL_TEMPLATE instead
371
444
  */
372
- declare const PROTOCOL_TEMPLATE_V2026_1 = "# AUTONOMOS PROTOCOL (v0.7.0-alpha)\n\n> This file defines the project's AI workflow contract. The workflows execute it. Do not duplicate workflow steps here.\n\n## Quick Reference\n\n| Action | How |\n| -------------------------------- | ---------------------------------------------------------------------------------- |\n| Start a session | Read the `/session` workflow |\n| Start a task | Read the `/task` workflow |\n| Triage a problem or proposal | Read the optional `/issue` workflow |\n| Adopt existing project knowledge | Read the optional `/adopt` workflow |\n| Reconcile drift and archive history | Read the `/reconcile` workflow |\n| Design or critique a surface | Read the optional `/design` workflow |\n| End a session | Read the `/crystallize` workflow |\n| Get context | Read root `AGENT.md`, then only the selected scope's ancestor chain |\n| Resolve objective | Explicit user request first; otherwise resume `[/]` or pick highest-priority `[ ]` |\n| Log session work | Create `.autonomos/worklogs/YYYY-MM-DD-[TASK_ID].md` |\n\n## File Map\n\n| File | Location | Role |\n| --------------- | -------------------------- | ------------------------------------------------- |\n| `AGENT.md` | Root + any subdirectory | Durable guidance for its directory scope |\n| `TASKS.md` | `.autonomos/TASKS.md` | Current task state and optional Current direction |\n| `ISSUES.md` | `.autonomos/ISSUES.md` | Optional problem, proposal, and question intake |\n| `worklogs/` | `.autonomos/worklogs/` | Historical session evidence, not current guidance |\n| `archive/` | `.autonomos/archive/` | Optional history, searched only when justified |\n| `specs/` | `.autonomos/specs/` | Optional project-owned normative target state |\n| `decisions/` | `.autonomos/decisions/` | Optional project-owned decision records (ADRs) |\n| `DESIGN.md` | Root or target scope | Optional project-owned visual/interaction direction |\n| `PROTOCOL.md` | `.autonomos/PROTOCOL.md` | This file \u2014 read-only reference |\n| `manifest.json` | `.autonomos/manifest.json` | Protocol version metadata |\n\n## Design Direction Boundary\n\n`DESIGN.md` is optional project-owned direction, not a managed protocol\nartifact. Use `/design` when a surface needs direction, critique, or\ndesign-knowledge extraction; keep the project's identity and examples local.\nThe workflow supplies routing and evidence rules, not a universal visual style.\n\n## AGENT.md Format Rules\n\nStore only stable guidance that will affect different future tasks. Keep transient evidence in worklogs and operational explanations in component documentation. Use the narrowest applicable `AGENT.md`; consolidate or replace obsolete entries instead of appending history. Preserve valid subclaims in mixed paragraphs. Check the resulting text for completed-action narratives, task progress and unsupported prohibitions; these do not belong in operating guidance.\n\n**Root `AGENT.md`** \u2014 Must use the structured template (frontmatter + sections: Context, Workflow, Stack, Key Directories, Constraints).\n\n**Local `AGENT.md`** (in any subdirectory) \u2014 Free format. One line is enough if it is clear. What matters: the next session can use it. Example:\n\n```markdown\n# AGENT: packages/core\n\n- Stack: TypeScript, Vitest, tsdown\n- Conventions: exports via src/index.ts, tests co-located (\\*.test.ts)\n- Constraint: template changes require workflow test updates\n```\n\n## Issue, Specification, Decision, and Task Rules\n\nIssues describe evidence, impact, and a desired outcome without choosing implementation; proposed directions remain hypotheses until an approach is accepted. Specifications describe accepted target behavior or requirements that may guide multiple tasks. A decision record (commonly ADR, Architecture Decision Record) captures one technical choice and its rationale. Tasks describe an accepted intervention and completion criteria. Use optional `ISSUES.md`, `specs/`, and `decisions/` only when they provide value; direct, clear changes may become tasks immediately. Link related issues, specs, decisions, and tasks in both directions.\n\n## Specification and Decision Rules\n\n- `.autonomos/specs/` and `.autonomos/decisions/` are optional, project-owned, first-use directories; `init`, `update`, and artifact-integrity checks do not create or overwrite them.\n- Keep one Markdown file per bounded specification or decision. Include status, scope, provenance, acceptance criteria or consequences, and replacement links where relevant; no parser or independent version is required initially.\n- Specification status is `draft`, `accepted`, or `superseded`. Only `accepted` is normative; `superseded` points to its successor. Acceptance does not mean implementation is complete.\n- Decision records use `proposed`, `accepted`, or `superseded`; they preserve rationale and alternatives rather than duplicating the full specification.\n- Keep stable agent operating rules in `AGENT.md`, user/developer reference in `docs/`, execution state in `TASKS.md`, and historical evidence in `worklogs/`.\n- Read only relevant accepted records at task start. Use `/adopt` to extract legacy knowledge; never rewrite historical worklogs, issues, or tasks to create current artifacts.\n\nThe protocol-facing name is **decision record**. **ADR** (Architecture Decision Record) is a common convention for the same kind of document, not a required external standard. Use these lightweight Markdown shapes as a starting point; they are conventions, not parser-enforced schemas:\n\n```markdown\n# SPEC-001 \u2014 Concise target-state title\n\n- Status: draft | accepted | superseded\n- Scope: component, capability, or boundary\n- Provenance: issue, discussion, or source links\n- Related decisions: ADR-001, ...\n- Superseded by: SPEC-002 (when applicable)\n\n## Intent\n\n## Requirements\n\n## Acceptance criteria\n\n## Out of scope\n```\n\n```markdown\n# ADR-001 \u2014 Concise decision title\n\n- Status: proposed | accepted | superseded\n- Scope: component or technical boundary\n- Provenance: issue, task, or investigation links\n- Related specs: SPEC-001, ...\n- Superseded by: ADR-002 (when applicable)\n\n## Context\n\n## Decision\n\n## Alternatives considered\n\n## Consequences\n```\n\nOnly user/project governance accepts a specification or decision as normative. Agents may draft and link records, but must not silently promote them; acceptance is separate from implementation completion.\n\n## Current Context and Archival Lifecycle\n\n- Current context must support ordinary work without archives. Keep applicable guidance, accepted requirements/decisions, unresolved work, dependencies and necessary next actions discoverable. Acceptance is independent of implementation; dated temporary directives remain active until lifted or their stated end condition is met.\n- A completed task or resolved/declined issue is an archival candidate only when its own scope is settled and still-needed outcomes/constraints/references are retained in current context. Explicitly abandoned work may be archived with its reason, without claiming it was completed. A completed child does not satisfy unmet parent acceptance criteria.\n- Record new task completion dates as `Completed: YYYY-MM-DD`; do not infer missing old dates from worklog filenames. Age, a checkbox, absent code or a newer statement alone is not proof of obsolescence.\n- Group archival at coherent completed-work boundaries, not per task or calendar interval. No Sprint object or scheduled maintenance is required. Correct certain in-scope drift proactively during normal work; use `/reconcile` for investigation, consolidation and archival.\n- Before moving history, consolidate current knowledge in its existing narrowest home. Optional `Current direction` in `TASKS.md` explains present aims, recent consequential outcomes and next work; rewrite it rather than append chronology. Keep progress out of `AGENT.md`.\n- Create project-owned `.autonomos/archive/README.md` and meaningful batch directories on first use only. A batch can contain `TASKS.md`, `ISSUES.md`, `worklogs/` and provenance for retired guidance. Group/split batches by useful scope; there is no fixed age, size or mandatory per-record schema.\n- Archive means move, not delete or rewrite conclusions. Preserve historical record content, identifiers and provenance; repair relative paths when necessary. Preserve original mixed-source text when retiring only some claims. Applicable specs/decisions stay current independently of execution records. Extraction into new normative artifacts still uses `/adopt`.\n- The archive index maps batch topics to records, not a second task journal. Search by ID or subject only when a specific question requires history; neither archives nor their entire index are routine startup context. Keep only necessary dependency/outcome pointers in current records, not a permanent stub for every completed task.\n- Archived task and issue IDs remain reserved. Before assigning an ID, search current and archived registries. With a CLI, `readTaskRegistry(root, { history: true })` exposes task references and duplicates; plain Markdown search works without it.\n- Verify exact source text before edits, retained current knowledge, IDs and resolvable references after moves. Do not confuse tool annotations with file content or historical validation with a current observation. Re-read shared files before writing and preserve unrelated concurrent changes. Stop when a second pass yields no deterministic correction.\n- `autonomos status` summarizes the current task registry; `--history` adds separate archived counts and read/collision diagnostics. Archived means historical, not necessarily completed. History uses batch `TASKS.md` files, not arbitrary worklog checklists.\n- Archives are project-owned, like specs and decisions. Initialization, updates and integrity checks neither create empty archives nor overwrite, relocate or judge their contents. Installing a new protocol performs no automatic cleanup. Version-control policy stays project-owned; Git is not required for archival or retrieval.\n\nExample (only files needed by a batch are created):\n\n```text\n.autonomos/\n TASKS.md\n ISSUES.md\n archive/\n README.md\n realtime-experiment-retirement/\n TASKS.md\n ISSUES.md\n worklogs/\n```\n\n## Task Format\n\n`- [Status] **[ID]** Title \\`Priority\\` \\`Complexity\\``\n\n| Status | Priority | Complexity |\n| ----------------- | ------------- | ---------- |\n| `[ ]` Todo | `\uD83D\uDD34 Critical` | `S` Small |\n| `[/]` In Progress | `\uD83D\uDFE0 High` | `M` Medium |\n| `[x]` Done | `\uD83D\uDD35 Medium` | `L` Large |\n| `[!]` Blocked | `\u26AA Low` | `XL` Huge |\n\n## Metadata Rules\n\n- **Language:** English unless AGENT.md says otherwise.\n- **Tone:** Technical, concise, fact-based.\n- **Continuity:** Refer to previous work as \"we\" or \"the project\".\n";
445
+ declare const PROTOCOL_TEMPLATE_V2026_1 = "# AUTONOMOS PROTOCOL (v0.8.0-alpha)\n\n> This file defines the project's AI workflow contract. The workflows execute it. Do not duplicate workflow steps here.\n\n## Quick Reference\n\n| Action | How |\n| ----------------------------------- | ---------------------------------------------------------------------------------- |\n| Start a session | Read the `/session` workflow |\n| Start a task | Read the `/task` workflow |\n| Triage a problem or proposal | Read the optional `/issue` workflow |\n| Adopt existing project knowledge | Read the optional `/adopt` workflow |\n| Reconcile drift and archive history | Read the `/reconcile` workflow |\n| Design or critique a surface | Read the optional `/design` workflow |\n| End a session | Read the `/crystallize` workflow |\n| Get context | Read root `AGENT.md`, then only the selected scope's ancestor chain |\n| Resolve objective | Explicit user request first; otherwise resume `[/]` or pick highest-priority `[ ]` |\n| Log session work | Create `.autonomos/worklogs/YYYY-MM-DD-[TASK_ID].md` (shape in `/crystallize`) |\n| Close finished work | `autonomos close <ID>` \u2192 `.autonomos/archive/closed/` |\n| Check context budgets | `autonomos status`; upgrade old records with `autonomos migrate` |\n\n## File Map\n\n| File | Location | Role |\n| --------------- | -------------------------- | --------------------------------------------------------------------- |\n| `AGENT.md` | Root + any subdirectory | Durable guidance for its directory scope |\n| `TASKS.md` | `.autonomos/TASKS.md` | Open tasks and optional Current direction |\n| `ISSUES.md` | `.autonomos/ISSUES.md` | Optional intake: open and accepted issues only |\n| `worklogs/` | `.autonomos/worklogs/` | Historical session evidence, not current guidance |\n| `archive/` | `.autonomos/archive/` | History (`closed/` registries, batches), searched only when justified |\n| `specs/` | `.autonomos/specs/` | Optional project-owned normative target state |\n| `decisions/` | `.autonomos/decisions/` | Optional project-owned decision records (ADRs) |\n| `DESIGN.md` | Root or target scope | Optional project-owned visual/interaction direction |\n| `PROTOCOL.md` | `.autonomos/PROTOCOL.md` | This file \u2014 read-only reference |\n| `manifest.json` | `.autonomos/manifest.json` | Protocol version and artifact format |\n\n## Design Direction Boundary\n\n`DESIGN.md` is optional project-owned direction, not a managed protocol\nartifact. Use `/design` when a surface needs direction, critique, or\ndesign-knowledge extraction; keep the project's identity and examples local.\nThe workflow supplies routing and evidence rules, not a universal visual style.\n\n## AGENT.md Format Rules\n\nStore only stable guidance that will affect different future tasks. Keep transient evidence in worklogs and operational explanations in component documentation. Use the narrowest applicable `AGENT.md`; consolidate or replace obsolete entries instead of appending history. Preserve valid subclaims in mixed paragraphs. Check the resulting text for completed-action narratives, task progress and unsupported prohibitions; these do not belong in operating guidance.\n\n**Root `AGENT.md`** \u2014 Must use the structured template (frontmatter + sections: Context, Workflow, Stack, Key Directories, Constraints).\n\n**Local `AGENT.md`** (in any subdirectory) \u2014 Free format. One line is enough if it is clear. What matters: the next session can use it. Example:\n\n```markdown\n# AGENT: packages/core\n\n- Stack: TypeScript, Vitest, tsdown\n- Conventions: exports via src/index.ts, tests co-located (\\*.test.ts)\n- Constraint: template changes require workflow test updates\n```\n\n## Issue, Specification, Decision, and Task Rules\n\nIssues describe evidence, impact, and a desired outcome without choosing implementation; proposed directions remain hypotheses until an approach is accepted. Specifications describe accepted target behavior or requirements that may guide multiple tasks. A decision record (commonly ADR, Architecture Decision Record) captures one technical choice and its rationale. Tasks describe an accepted intervention and completion criteria. Use optional `ISSUES.md`, `specs/`, and `decisions/` only when they provide value; direct, clear changes may become tasks immediately. Link related issues, specs, decisions, and tasks in both directions.\n\n## Specification and Decision Rules\n\n- `.autonomos/specs/` and `.autonomos/decisions/` are optional, project-owned, first-use directories; `init`, `update`, and artifact-integrity checks do not create or overwrite them.\n- Keep one Markdown file per bounded specification or decision. Include status, scope, provenance, acceptance criteria or consequences, and replacement links where relevant; no parser or independent version is required initially.\n- Specification status is `draft`, `accepted`, or `superseded`. Only `accepted` is normative; `superseded` points to its successor. Acceptance does not mean implementation is complete.\n- Decision records use `proposed`, `accepted`, or `superseded`; they preserve rationale and alternatives rather than duplicating the full specification.\n- Keep stable agent operating rules in `AGENT.md`, user/developer reference in `docs/`, execution state in `TASKS.md`, and historical evidence in `worklogs/`.\n- Read only relevant accepted records at task start. Use `/adopt` to extract legacy knowledge; never rewrite historical worklogs, issues, or tasks to create current artifacts.\n\nThe protocol-facing name is **decision record**. **ADR** (Architecture Decision Record) is a common convention for the same kind of document, not a required external standard. Use these lightweight Markdown shapes as a starting point; they are conventions, not parser-enforced schemas:\n\n```markdown\n# SPEC-001 \u2014 Concise target-state title\n\n- Status: draft | accepted | superseded\n- Scope: component, capability, or boundary\n- Provenance: issue, discussion, or source links\n- Related decisions: ADR-001, ...\n- Superseded by: SPEC-002 (when applicable)\n\n## Intent\n\n## Requirements\n\n## Acceptance criteria\n\n## Out of scope\n```\n\n```markdown\n# ADR-001 \u2014 Concise decision title\n\n- Status: proposed | accepted | superseded\n- Scope: component or technical boundary\n- Provenance: issue, task, or investigation links\n- Related specs: SPEC-001, ...\n- Superseded by: ADR-002 (when applicable)\n\n## Context\n\n## Decision\n\n## Alternatives considered\n\n## Consequences\n```\n\nOnly user/project governance accepts a specification or decision as normative. Agents may draft and link records, but must not silently promote them; acceptance is separate from implementation completion.\n\n## Current Context and Archival Lifecycle\n\n- Current context must support ordinary work without archives, and its size follows open work, not project age. Keep applicable guidance, accepted requirements/decisions, unresolved work, dependencies and necessary next actions discoverable. Acceptance is independent of implementation; dated temporary directives remain active until lifted or their stated end condition is met.\n- `TASKS.md` holds `[ ]`, `[/]` and `[!]` tasks; `ISSUES.md` holds open and accepted issues. When work closes, move its record in the same session to the append-only `.autonomos/archive/closed/TASKS.md` or `ISSUES.md` (`autonomos close <ID>`, or by hand). Unfinished work may be closed only as abandoned, with its reason. A completed child does not satisfy unmet parent acceptance criteria; a parent with open children stays current.\n- Record new task completion dates as `Completed: YYYY-MM-DD`; do not infer missing old dates. Age, a checkbox, absent code or a newer statement alone is not proof of obsolescence.\n- Before moving history, consolidate still-needed knowledge in its existing narrowest home. Optional `Current direction` in `TASKS.md` explains present aims, recent consequential outcomes and next work; rewrite it rather than append chronology. Keep progress out of `AGENT.md`.\n- Other history may form named batches under `.autonomos/archive/<batch>/` via `/reconcile`; create `archive/README.md` and batch directories on first use only. The index maps topics to records; it is not a second journal.\n- Archive means move, not delete or rewrite conclusions. Preserve historical record content, identifiers and provenance; repair relative paths when necessary. Applicable specs/decisions stay current independently of execution records. Extraction into new normative artifacts still uses `/adopt`.\n- Archived task and issue IDs remain reserved. Before assigning an ID, search current and archived registries (`autonomos status --history` reports duplicates).\n- Verify exact source text before edits and resolvable references after moves. Re-read shared files before writing and preserve unrelated concurrent changes.\n\n## Context Budgets\n\nAdvisory limits reported by `autonomos status` (`--strict` makes them fail): root `AGENT.md` 8,000 bytes, local `AGENT.md` 4,000 bytes, `TASKS.md` 16 KB, `ISSUES.md` 24 KB, one task entry 300 characters, one worklog 2,500 bytes, and no closed record in current registries. Over budget, consolidate or move knowledge to its narrowest home before adding more. Root `AGENT.md` admits only guidance that applies to most tasks in the project.\n\n## Artifact Format and Migration\n\n`manifest.json` records `artifactFormat` (absent means 1); this protocol defines format 2. Installing a new protocol performs no automatic cleanup: `autonomos update` only replaces managed artifacts. `autonomos migrate` is the explicit, content-preserving upgrade: it closes finished records, moves pre-format-2 worklogs to `.autonomos/archive/worklogs-format-1/` so they stop serving as examples, repairs references and records the format. Run it with `--dry-run` first on a clean working tree, then resolve the remaining `status` findings with `/reconcile`.\n\n## Task Format\n\nOne line per task: `` - [Status] **[ID]** Title `Priority` `Complexity` `` plus, when useful, `Completed: YYYY-MM-DD`, a short note and links to its issue or worklog. Evidence, measurements and progress belong in the worklog, not the task entry.\n\n| Status | Priority | Complexity |\n| ----------------- | ------------- | ---------- |\n| `[ ]` Todo | `\uD83D\uDD34 Critical` | `S` Small |\n| `[/]` In Progress | `\uD83D\uDFE0 High` | `M` Medium |\n| `[x]` Done | `\uD83D\uDD35 Medium` | `L` Large |\n| `[!]` Blocked | `\u26AA Low` | `XL` Huge |\n\n## Metadata Rules\n\n- **Language:** English unless AGENT.md says otherwise.\n- **Tone:** Technical, concise, fact-based.\n- **Continuity:** Refer to previous work as \"we\" or \"the project\".\n";
373
446
  //#endregion
374
447
  //#region src/templates/tasks.d.ts
375
448
  /**
@@ -380,17 +453,19 @@ declare const TASKS_TEMPLATE = "# PROJECT TASKS & ROADMAP\n\n> **LEGEND**\n> **P
380
453
  //#region src/templates/worklog.d.ts
381
454
  interface WorklogOptions {
382
455
  taskId: string;
383
- taskName: string;
384
- date?: string;
385
- status: 'Complete' | 'Partial' | 'Blocked';
386
- description: string;
387
- filesModified: string[];
388
- decisions: string[];
389
- challenges: string[];
390
- nextSteps: string[];
456
+ title: string;
457
+ /** 1–3 lines: what is now true. */
458
+ outcome: string;
459
+ /** Non-obvious choices with their reason. */
460
+ decisions?: string[];
461
+ /** Checks actually run, `command → result`. */
462
+ validation?: string[];
463
+ /** Limits and follow-ups. */
464
+ open?: string[];
391
465
  }
392
466
  /**
393
- * Generate a Worklog markdown content
467
+ * Generate a proportionate worklog (artifact format 2): only what a future
468
+ * agent cannot recover from code, git, tests or other records.
394
469
  */
395
470
  declare function generateWorklogContent(options: WorklogOptions): string;
396
471
  /**
@@ -530,6 +605,7 @@ declare function listPreferredHarnesses(): Array<{
530
605
  id: string;
531
606
  harness: Harness;
532
607
  }>;
608
+ type TargetKind = 'flat' | 'skill';
533
609
  /**
534
610
  * A resolved target directory where workflow files will be written.
535
611
  * One per unique path, with the list of harness ids that share it.
@@ -539,15 +615,17 @@ interface ResolvedTarget {
539
615
  path: string;
540
616
  /** File extension to use (e.g. ".md", ".agent.md") */
541
617
  fileExtension: string;
618
+ /** Whether target receives flat files (e.g. session.md) or skill bundles (e.g. protocol-session/SKILL.md) */
619
+ kind: TargetKind;
542
620
  /** Ids of the harnesses that will read from this directory */
543
621
  usedBy: string[];
544
622
  }
545
623
  /**
546
624
  * Resolve the unique target directories for a set of harness ids.
547
625
  *
548
- * Harnesses that share the same `skillsDir` (e.g. Codex, OpenCode, KiloCode
549
- * all use `.agents/skills/`) are deduplicated: the directory appears once
550
- * in the output, with all the harness ids listed in `usedBy`.
626
+ * Harnesses that share the same `skillsDir` (e.g. Codex, OpenCode, KiloCode,
627
+ * Antigravity, Claude Code all use `.agents/skills/`) are deduplicated:
628
+ * the directory appears once in the output, with all the harness ids listed in `usedBy`.
551
629
  *
552
630
  * The `path` is returned relative to the project root (caller is responsible
553
631
  * for joining with the project cwd).
@@ -559,5 +637,96 @@ declare function resolveTargets(harnessIds: string[], cwd?: string): ResolvedTar
559
637
  */
560
638
  declare function getRawHarnessCodes(): HarnessCodes;
561
639
  //#endregion
562
- export { AGENT_FILE, AGENT_TEMPLATE, ARCHIVE_DIR, AUTONOMOS_DIR, AgentConfig, AgentContext, AgentParser, AgentSection, AncestorAgent, COMPLEXITIES, Complexity, DECISIONS_DIR, Harness, HarnessCodes, HarnessCodesSchema, HarnessSchema, Installer, InstallerSchema, LOCAL_AGENT_TEMPLATE, MANIFEST_FILE, Manifest, ManifestSchema, PRIORITIES, PROTOCOL_FILE, PROTOCOL_TEMPLATE, PROTOCOL_TEMPLATE_V2026_1, PROTOCOL_VERSION, Priority, ResolvedTarget, SPECS_DIR, TASKS_FILE, TASKS_TEMPLATE, Task, TaskParser, TaskReference, TaskRegistry, TaskStatus, WORKLOGS_DIR, createManifest, displayRelative, findAncestorAgents, findProjectRoot, generateAgentTemplate, generateLocalAgentTemplate, generateManifestContent, generateWorklogContent, getHarness, getRawHarnessCodes, isSamePath, listHarnesses, listPreferredHarnesses, mapTaskStatusToWorklogStatus, parseManifest, readTaskRegistry, resolveTargets };
640
+ //#region src/records/budgets.d.ts
641
+ type BudgetFindingCode = 'format-outdated' | 'closed-tasks-in-current' | 'closed-issues-in-current' | 'tasks-size' | 'issues-size' | 'task-entry-length' | 'root-agent-size' | 'local-agent-size' | 'worklog-size';
642
+ interface BudgetFinding {
643
+ code: BudgetFindingCode;
644
+ /** Project-relative path the finding concerns. */
645
+ path: string;
646
+ message: string;
647
+ /** Offending IDs or files, largest first, when relevant. */
648
+ items?: string[];
649
+ }
650
+ type ContextBudgets = { [K in keyof typeof CONTEXT_BUDGETS]: number };
651
+ /** Find AGENT.md files below root, skipping hidden, dependency and build directories. */
652
+ declare function findAgentFilePaths(root: string): string[];
653
+ /**
654
+ * Report where current context exceeds the protocol's proportionate budgets.
655
+ * Findings are advisory; agents resolve them through `/reconcile` or `migrate`.
656
+ */
657
+ declare function checkContextBudgets(root: string, options?: {
658
+ artifactFormat?: number;
659
+ budgets?: Partial<ContextBudgets>;
660
+ }): BudgetFinding[];
661
+ //#endregion
662
+ //#region src/records/links.d.ts
663
+ /** Map an absolute path to its new location, or return it unchanged. */
664
+ type PathMapper = (absolutePath: string) => string;
665
+ declare function prefixMapper(from: string, to: string): PathMapper;
666
+ declare function composeMappers(...mappers: PathMapper[]): PathMapper;
667
+ /**
668
+ * Rewrite relative Markdown link targets of a document that moves from
669
+ * `oldDir` to `newDir`, also following targets that moved (`mapPath`).
670
+ * Targets that resolve to the same file are left byte-identical.
671
+ */
672
+ declare function relocateLinks(markdown: string, oldDir: string, newDir: string, mapPath?: PathMapper): string;
673
+ /**
674
+ * Rewrite plain project-root-relative mentions of moved files, such as
675
+ * `_See: .autonomos/worklogs/2026-01-01-X.md_`, outside of link targets.
676
+ */
677
+ declare function relocateRootMentions(markdown: string, fromPrefix: string, toPrefix: string, names: ReadonlySet<string>): string;
678
+ //#endregion
679
+ //#region src/records/registry-edit.d.ts
680
+ /**
681
+ * Pure text operations on TASKS.md / ISSUES.md used by `close`, `migrate`
682
+ * and budget checks. They never rewrite the content of a moved record.
683
+ */
684
+ /** Issue statuses that mean the issue no longer needs current attention. */
685
+ declare const CLOSED_ISSUE_STATUSES: string[];
686
+ interface TaskEntry {
687
+ id: string;
688
+ status: ' ' | 'x' | '/' | '!';
689
+ /** 0-based index of the first line of the entry. */
690
+ start: number;
691
+ /** 0-based exclusive end line index. */
692
+ end: number;
693
+ /** Heading path enclosing the entry, outermost first (title excluded). */
694
+ headings: string[];
695
+ text: string;
696
+ }
697
+ interface IssueEntry {
698
+ id: string;
699
+ status: string;
700
+ start: number;
701
+ end: number;
702
+ text: string;
703
+ }
704
+ /**
705
+ * Parse task entries: a task line plus following lines indented deeper than it
706
+ * (continuations and sub-bullets). Nested tasks are returned as their own entries
707
+ * and are also part of their parent's text.
708
+ */
709
+ declare function parseTaskEntries(markdown: string): TaskEntry[];
710
+ declare function parseIssueEntries(markdown: string): IssueEntry[];
711
+ declare function isClosedIssueStatus(status: string): boolean;
712
+ interface Extraction<T> {
713
+ remaining: string;
714
+ moved: T[];
715
+ }
716
+ /**
717
+ * Extract task entries matching `select` from a TASKS.md document.
718
+ * Entries with open nested tasks are never extracted.
719
+ */
720
+ declare function extractTasks(markdown: string, select: (entry: TaskEntry) => boolean): Extraction<TaskEntry>;
721
+ declare function extractIssues(markdown: string, select: (entry: IssueEntry) => boolean): Extraction<IssueEntry>;
722
+ /** Remove the common leading indentation of an entry so it stands alone. */
723
+ declare function dedentEntry(text: string): string;
724
+ /** Add `Completed: <date>` to a task line that has no completion date. */
725
+ declare function stampCompleted(text: string, date: string): string;
726
+ /** Mark an unfinished task as abandoned (it keeps its status marker). */
727
+ declare function stampAbandoned(text: string, date: string, reason: string): string;
728
+ /** Append entries to a closed registry, creating its header when empty. */
729
+ declare function appendToClosedRegistry(existing: string | undefined, kind: 'tasks' | 'issues', entries: string[], groupHeading?: string): string;
730
+ //#endregion
731
+ export { AGENT_FILE, AGENT_TEMPLATE, ARCHIVE_DIR, ARCHIVE_INDEX_FILE, ARTIFACT_FORMAT, AUTONOMOS_DIR, AgentConfig, AgentContext, AgentParser, AgentSection, AncestorAgent, BudgetFinding, BudgetFindingCode, CLOSED_DIR, CLOSED_ISSUE_STATUSES, COMPLEXITIES, CONTEXT_BUDGETS, Complexity, ContextBudgets, DECISIONS_DIR, Extraction, Harness, HarnessCodes, HarnessCodesSchema, HarnessSchema, ISSUES_FILE, Installer, InstallerSchema, IssueEntry, LEGACY_WORKLOGS_DIR, LOCAL_AGENT_TEMPLATE, MANIFEST_FILE, Manifest, ManifestSchema, PRIORITIES, PROTOCOL_FILE, PROTOCOL_TEMPLATE, PROTOCOL_TEMPLATE_V2026_1, PROTOCOL_VERSION, PathMapper, Priority, ResolvedTarget, SPECS_DIR, TASKS_FILE, TASKS_TEMPLATE, TargetKind, Task, TaskEntry, TaskParser, TaskReference, TaskRegistry, TaskStatus, WORKLOGS_DIR, appendToClosedRegistry, checkContextBudgets, composeMappers, createManifest, dedentEntry, displayRelative, extractIssues, extractTasks, findAgentFilePaths, findAncestorAgents, findProjectRoot, generateAgentTemplate, generateLocalAgentTemplate, generateManifestContent, generateWorklogContent, getHarness, getRawHarnessCodes, isClosedIssueStatus, isSamePath, listHarnesses, listPreferredHarnesses, manifestArtifactFormat, mapTaskStatusToWorklogStatus, parseIssueEntries, parseManifest, parseTaskEntries, prefixMapper, readTaskRegistry, relocateLinks, relocateRootMentions, resolveTargets, stampAbandoned, stampCompleted };
563
732
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/schemas/harness-codes.ts","../src/schemas/manifest.ts","../src/types.ts","../src/templates/agent.ts","../src/templates/manifest.ts","../src/templates/protocol.ts","../src/templates/tasks.ts","../src/templates/worklog.ts","../src/parsers/agent-finder.ts","../src/parsers/agent-parser.ts","../src/parsers/project-root.ts","../src/parsers/task-parser.ts","../src/parsers/task-registry.ts","../src/harness-codes.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/schemas/harness-codes.ts","../src/schemas/manifest.ts","../src/types.ts","../src/templates/agent.ts","../src/templates/manifest.ts","../src/templates/protocol.ts","../src/templates/tasks.ts","../src/templates/worklog.ts","../src/parsers/agent-finder.ts","../src/parsers/agent-parser.ts","../src/parsers/project-root.ts","../src/parsers/task-parser.ts","../src/parsers/task-registry.ts","../src/harness-codes.ts","../src/records/budgets.ts","../src/records/links.ts","../src/records/registry-edit.ts"],"mappings":";;;;;;AAIA;cAAa,gBAAA;;;AAAgB;cAKhB,aAAA;;;;cAKA,aAAA;AAAb;;;AAAA,cAKa,aAAA;AALa;AAK1B;;AAL0B,cAUb,UAAA;;AALa;AAK1B;cAKa,UAAA;;;AALU;cAUV,YAAA;;;;cAKA,SAAA;AALb;;;AAAA,cAUa,aAAA;AAVY;AAAA,cAaZ,WAAA;;;;AARS;AAKtB;cAUa,eAAA;;cAGA,WAAA;AAba;AAAA,cAgBb,UAAA;;cAGA,mBAAA;;cAGA,kBAAA;AAZb;;;;AAAA,cAkBa,eAAA;EAAA;;;;;;;;;;;AApEb;;;;AAA6B;AAK7B;;;;AAA0B;cCKb,eAAA,EAAe,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2Bf,aAAA,EAAa,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cASb,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAInB,SAAA,GAAY,CAAA,CAAE,KAAK,QAAQ,eAAA;AAAA,KAC3B,OAAA,GAAU,CAAA,CAAE,KAAK,QAAQ,aAAA;AAAA,KACzB,YAAA,GAAe,CAAA,CAAE,KAAK,QAAQ,kBAAA;;;;;ADpD1C;cECa,cAAA,EAAc,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;KAaf,QAAA,GAAW,CAAA,CAAE,KAAK,QAAQ,cAAA;;;;;;KCf1B,QAAA;;;;KAKA,UAAA;AHCZ;;;AAAA,KGIY,UAAA;AHJc;AAK1B;;AAL0B,UGST,IAAA;EACb,EAAA;EACA,KAAA;EACA,QAAA,EAAU,QAAA;EACV,UAAA,EAAY,UAAA;EACZ,MAAA,EAAQ,UAAA;EACR,WAAA;AAAA;AHAJ;;;AAAA,UGMiB,WAAA;EACb,IAAA;EACA,WAAA;EACA,KAAA;EACA,WAAA,GAAc,MAAM;AAAA;AAAA,UAGP,YAAA;EACb,KAAA;EACA,OAAO;AAAA;AAAA,UAGM,YAAA;EACb,KAAA;EACA,WAAA;EACA,QAAA,EAAU,YAAA;EACV,QAAA,GAAW,MAAM;AAAA;AAAA,cAGR,UAAA,EAAY,QAAQ;AAAA,cACpB,YAAA,EAAc,UAAU;;;;;;AH9CrC;iBIAgB,qBAAA,CAAsB,WAA+B;;;AJAxC;AAK7B;;iBIoCgB,0BAAA,CAA2B,OAAe;;AJpChC;AAK1B;cI2Ca,cAAA;;;AJ3Ca;cIgDb,oBAAA;;;;;AJ1Db;iBKEgB,cAAA,CAAe,UAAA,WAAqB,QAAQ;;;ALF/B;iBKgBb,uBAAA,CAAwB,QAAkB,EAAR,QAAQ;;;;iBAO1C,aAAA,CAAc,OAAA,WAAkB,QAAQ;ALbxD;AAAA,iBKmBgB,sBAAA,CAAuB,QAAkB,EAAR,QAAQ;;;;;;AL7BzD;;;;AAA6B;AAK7B;cMEa,iBAAA;;;ANFa;cM0Jb,yBAAA;;;;;;cChKA,cAAA;;;UCDH,cAAA;EACN,MAAA;EACA,KAAA;ERAyB;EQEzB,OAAA;ERFyB;EQIzB,SAAA;ERCS;EQCT,UAAA;;EAEA,IAAA;AAAA;AREJ;;;;AAAA,iBQQgB,sBAAA,CAAuB,OAAuB,EAAd,cAAc;ARH9D;;;AAAA,iBQgBgB,4BAAA,CACZ,MAAkB,EAAV,UAAU;;;;;;ARhCtB;USKiB,aAAA;;EAEb,GAAA;ETPyB;ESSzB,IAAA;ETJsB;ESMtB,WAAA;AAAA;ATNsB;AAK1B;;;;AAA0B;AAK1B;;;;AAA0B;AAK1B;;;;AAAuB;AAKvB;;;AApB0B,iBS4BV,kBAAA,CACZ,MAAA,UACA,WAAA,YACD,aAAa;;;cCrCH,WAAA;;AVCb;;SUGW,KAAA,CAAM,QAAA,WAAmB,YAAY;AAAA;;;;;;AVHhD;;;;AAA6B;AAK7B;;;;AAA0B;AAK1B;;;;AAA0B;iBWuBV,eAAA,CAAgB,QAAgB;;;;AXlBtB;AAK1B;;iBWkCgB,UAAA,CAAW,CAAA,UAAW,CAAS;;AXlCxB;AAKvB;;;;AAAuB;iBWyCP,eAAA,CAAgB,MAAA,UAAgB,IAAY;;;cCpE/C,UAAA;;SAEF,UAAA,CAAW,QAAA;IAAqB,EAAA;IAAY,MAAA,EAAQ,UAAA;IAAY,IAAA;EAAA;EAAA,OA4BhE,KAAA,CAAM,QAAA,WAAmB,IAAI;EAAA,eAsBrB,SAAA;AAAA;;;UChDF,aAAA;EACb,EAAA;EACA,MAAA,EAAQ,UAAU,QAAQ,UAAA,CAAW,UAAA;EACrC,IAAA;;EAEA,IAAA;AAAA;AAAA,UAGa,YAAA;EACb,OAAA,EAAS,aAAA;EACT,QAAA,EAAU,aAAa;EACvB,YAAA;EACA,QAAA;EbJS;EaMT,QAAA;AAAA;;iBAIY,gBAAA,CAAiB,IAAA,UAAc,OAAA;EAAW,OAAA;AAAA,IAA2B,YAAY;;;;;AbpBjG;;iBccgB,UAAA,CAAW,EAAA,WAAa,OAAO;;AddlB;AAK7B;;iBcsBgB,aAAA,IAAiB,KAAK;EAAG,EAAA;EAAY,OAAA,EAAS,OAAA;AAAA;;;;iBAO9C,sBAAA,IAA0B,KAAK;EAAG,EAAA;EAAY,OAAA,EAAS,OAAA;AAAA;AAAA,KAI3D,UAAA;AdvBc;AAK1B;;;AAL0B,Uc6BT,cAAA;EdxBM;Ec0BnB,IAAA;EdrBmB;EcuBnB,aAAA;EdvBmB;EcyBnB,IAAA,EAAM,UAAU;EdpBP;EcsBT,MAAA;AAAA;;AdtBqB;AAKzB;;;;AAAsB;AAKtB;;;iBcyBgB,cAAA,CAAe,UAAA,YAAsB,GAAA,YAAoB,cAAc;AdzB7D;AAG1B;;;AAH0B,iBcuFV,kBAAA,IAAsB,YAAY;;;KCrHtC,iBAAA;AAAA,UAWK,aAAA;EACb,IAAA,EAAM,iBAAiB;EftBE;EewBzB,IAAA;EACA,OAAA;EfzByB;Ee2BzB,KAAA;AAAA;AAAA,KAGQ,cAAA,wBAAsC,eAAe;AfpBjE;AAAA,iBeyCgB,kBAAA,CAAmB,IAAY;;;AfzCrB;AAK1B;iBe+DgB,mBAAA,CACZ,IAAA,UACA,OAAA;EAAW,cAAA;EAAyB,OAAA,GAAU,OAAA,CAAQ,cAAA;AAAA,IACvD,aAAA;;;;KClFS,UAAA,IAAc,YAAoB;AAAA,iBAE9B,YAAA,CAAa,IAAA,UAAc,EAAA,WAAa,UAAU;AAAA,iBAQlD,cAAA,IAAkB,OAAA,EAAS,UAAA,KAAe,UAAU;;;;AhBTvC;AAK7B;iBgB6BgB,aAAA,CACZ,QAAA,UACA,MAAA,UACA,MAAA,UACA,OAAA,GAAS,UAAmB;;;AhBjCN;AAK1B;iBgBoEgB,oBAAA,CACZ,QAAA,UACA,UAAA,UACA,QAAA,UACA,KAAA,EAAO,WAAW;;;;;;AhBlFtB;;ciBQa,qBAAA;AAAA,UAEI,SAAA;EACb,EAAA;EACA,MAAA;EjBPsB;EiBStB,KAAA;EjBTsB;EiBWtB,GAAA;EjBNS;EiBQT,QAAA;EACA,IAAA;AAAA;AAAA,UAGa,UAAA;EACb,EAAA;EACA,MAAA;EACA,KAAA;EACA,GAAA;EACA,IAAA;AAAA;;;;AjBPmB;AAKvB;iBiB6CgB,gBAAA,CAAiB,QAAA,WAAmB,SAAS;AAAA,iBA8C7C,iBAAA,CAAkB,QAAA,WAAmB,UAAU;AAAA,iBA2B/C,mBAAA,CAAoB,MAAc;AAAA,UAWjC,UAAA;EACb,SAAA;EACA,KAAA,EAAO,CAAC;AAAA;;AjB9Ha;AAKzB;;iBiB8LgB,YAAA,CACZ,QAAA,UACA,MAAA,GAAS,KAAA,EAAO,SAAA,eACjB,UAAA,CAAW,SAAA;AAAA,iBAYE,aAAA,CACZ,QAAA,UACA,MAAA,GAAS,KAAA,EAAO,UAAA,eACjB,UAAA,CAAW,UAAA;AjBhNQ;AAAA,iBiBuNN,WAAA,CAAY,IAAY;;iBAQxB,cAAA,CAAe,IAAA,UAAc,IAAY;;iBAWzC,cAAA,CAAe,IAAA,UAAc,IAAA,UAAc,MAAA;AjBlO3D;AAAA,iBiBwOgB,sBAAA,CACZ,QAAA,sBACA,IAAA,sBACA,OAAA,YACA,YAAA"}