@archmax-ai/harness 0.5.0 → 0.6.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/README.md +6 -2
- package/dist/assembly/compose.js +3 -2
- package/dist/assembly/compose.js.map +1 -1
- package/dist/authoring-skill/archmax-harness/references/backend-integration.md +28 -8
- package/dist/authoring-skill/archmax-harness/references/hook-and-test-scripts.md +3 -1
- package/dist/authoring-skill/archmax-harness/references/workflow-schema.md +32 -12
- package/dist/core/binary-read.d.ts +20 -4
- package/dist/core/binary-read.js +36 -5
- package/dist/core/binary-read.js.map +1 -1
- package/dist/core/events.d.ts +6 -0
- package/dist/core/events.js.map +1 -1
- package/dist/core/mount-prompt.d.ts +2 -1
- package/dist/core/mount-prompt.js +4 -2
- package/dist/core/mount-prompt.js.map +1 -1
- package/dist/core/session-id.d.ts +12 -2
- package/dist/core/session-id.js +30 -2
- package/dist/core/session-id.js.map +1 -1
- package/dist/core/tool-context.d.ts +13 -2
- package/dist/core/tool-context.js +2 -1
- package/dist/core/tool-context.js.map +1 -1
- package/dist/core/workspace-router.js +5 -3
- package/dist/core/workspace-router.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel/kernel.js +8 -4
- package/dist/kernel/kernel.js.map +1 -1
- package/dist/machine/lint-spec.js +8 -4
- package/dist/machine/lint-spec.js.map +1 -1
- package/dist/machine/machine.d.ts +26 -7
- package/dist/machine/machine.js +41 -10
- package/dist/machine/machine.js.map +1 -1
- package/dist/machine/mount-grants.d.ts +3 -2
- package/dist/machine/mount-grants.js.map +1 -1
- package/dist/public/spec.d.ts +5 -3
- package/dist/public/spec.js +5 -3
- package/dist/public/spec.js.map +1 -1
- package/dist/sessions/resume.d.ts +5 -1
- package/dist/sessions/resume.js.map +1 -1
- package/dist/sessions/scope.d.ts +18 -11
- package/dist/sessions/scope.js +21 -23
- package/dist/sessions/scope.js.map +1 -1
- package/dist/workflow/agent-tools.d.ts +2 -1
- package/dist/workflow/agent-tools.js +8 -7
- package/dist/workflow/agent-tools.js.map +1 -1
- package/dist/workflow/governance.d.ts +6 -0
- package/dist/workflow/governance.js +69 -1
- package/dist/workflow/governance.js.map +1 -1
- package/dist/workflow/middleware.js +9 -0
- package/dist/workflow/middleware.js.map +1 -1
- package/dist/workflow/state.d.ts +7 -0
- package/dist/workflow/state.js +14 -1
- package/dist/workflow/state.js.map +1 -1
- package/dist/workflow/sub-workflow.d.ts +17 -0
- package/dist/workflow/sub-workflow.js +29 -6
- package/dist/workflow/sub-workflow.js.map +1 -1
- package/dist/workflow/tool-service.d.ts +1 -1
- package/dist/workflow/tool-service.js +4 -1
- package/dist/workflow/tool-service.js.map +1 -1
- package/package.json +1 -1
- package/skills/archmax-harness/references/backend-integration.md +28 -8
- package/skills/archmax-harness/references/hook-and-test-scripts.md +3 -1
- package/skills/archmax-harness/references/workflow-schema.md +32 -12
package/README.md
CHANGED
|
@@ -78,7 +78,8 @@ tools: { forbid_always: [archmax_reset] } # denied in every state; deny beats
|
|
|
78
78
|
skills: { allow_always: [order-data] } # enabled in every state; a state's own
|
|
79
79
|
# `skills.allow` adds, `skills.forbid` subtracts
|
|
80
80
|
mounts: { allow_always: [reference] } # which STATES reach a host-governed mount;
|
|
81
|
-
# a grant may say `access: read` or `read_write
|
|
81
|
+
# a grant may say `access: read` or `read_write`,
|
|
82
|
+
# and only `read_write` lets this workflow write it
|
|
82
83
|
|
|
83
84
|
states:
|
|
84
85
|
identify-case:
|
|
@@ -133,7 +134,10 @@ An entry typed `file` takes a path from the workspace root. A host hands one in
|
|
|
133
134
|
`--file invoice=./invoice.pdf`, and the file lands in the session's `scratchpad/attachments/`. A
|
|
134
135
|
sub-workflow is its own session with its own files, so a `file` argument is copied into the child,
|
|
135
136
|
and a `file` return is copied back under a name that never overwrites the caller's files. See
|
|
136
|
-
[passing files](https://harness.archmax.ai/guides/sub-workflows/#passing-files).
|
|
137
|
+
[passing files](https://harness.archmax.ai/guides/sub-workflows/#passing-files). The child's
|
|
138
|
+
session id is `<parent>~<n>`, `n` the dispatch's number in its caller, and a host tool called in
|
|
139
|
+
the child is handed that id as `ToolContext.sessionId`, so a host that stores session files itself
|
|
140
|
+
keys them under the child's `<sessionId>/`, not its caller's.
|
|
137
141
|
|
|
138
142
|
`examples/customer-support/` in this repository is a complete reference workspace.
|
|
139
143
|
|
package/dist/assembly/compose.js
CHANGED
|
@@ -144,8 +144,9 @@ export function sessionBinder(ctx) {
|
|
|
144
144
|
if (rejection)
|
|
145
145
|
throw new SessionStoreIdError(sessionId, rejection);
|
|
146
146
|
// A host tool's handler gets the same workspace the built-in file tools
|
|
147
|
-
// resolve through, bound to this session for the turn
|
|
148
|
-
|
|
147
|
+
// resolve through, bound to this session for the turn, and the session's
|
|
148
|
+
// id: a child's own when the binding is a dispatch's.
|
|
149
|
+
return withEventContext({ sessionId }, () => ctx.sessionZone.sessionScoped(sessionId, () => runWithToolContext({ workspace: ctx.backend, sessionId }, fn)));
|
|
149
150
|
};
|
|
150
151
|
}
|
|
151
152
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/assembly/compose.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/assembly/compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,7 +96,7 @@ All optional (`CreateAgentParams`, `src/assembly/index.ts`):
|
|
|
96
96
|
| `model` | `BaseChatModel` | Defaults to the env-configured OpenAI-compatible model. Inject your own to bypass env. |
|
|
97
97
|
| `backend` | `BackendProtocolV2` | Serves the authored workspace. Defaults to a `FilesystemBackend` over `rootDir`. |
|
|
98
98
|
| `authoring` | `BackendProtocolV2` | Serves the **authoring plane** — `workflows/**` (machine specs including the rubrics their states declare, `WORKFLOW.md`, `hooks/`, `tests/`) — to the runtime only. Never a route in the agent's workspace, so no tool call or PTC call can reach it. Defaults to `backend` when you supply one, else a `FilesystemBackend` over the resolved root. Handing it to a **writable** mount throws `AuthoringBackendExposedError`; a read-only mount may share it. |
|
|
99
|
-
| `mounts` | `Record<string, MountSpec>` | Authored mounts as a `CompositeBackend` route table: key → backend, or `{ backend, readOnly, governed, searchable }`. Trailing slash = directory mount; no slash = exact-path file mount (`"/AGENTS.md"`). Read-only unless declared otherwise. `governed: true` hands the spec's `mounts` block the decision of **which states** may reach it (closed by default, like a skill bundle) and whether each may write there; a mount not so declared is visible in every state exactly as today, so a table that marks nothing behaves unchanged. `readOnly` is a **ceiling** the spec cannot lift: a grant may narrow a writable mount to reads in a state, never open a read-only one. A key may be several segments deep (`"/catalogs/eu/"`); its **first** segment is what is reserved, so `/workflows/x/` fails as `/workflows/` does. Omitted on the default backend: `defaultMounts(rootDir)` (the conventional table — `/skills/`, `/.platform/`, `/AGENTS.md`, none governed — extend with `{ ...defaultMounts(root), "/templates/": … }`). Omitted with a custom `backend`: nothing authored is served; expose subtrees with `mountSubtree(backend, "skills")`. A key colliding with a run area — or naming the authoring-plane prefix (`/workflows/`) — throws `MountCollisionError`. `searchable: false` declares a mount the runtime never searches on its own initiative: a root-wide `grep`/`glob` fans out over the other mounts only, while a search the agent addresses at the mount (or a path inside it) still reaches its backend and returns the backend's own answer — matches or `{ error }` — verbatim. Use it for a backend that must refuse searches (a remote folder served live). Listing and reading are unchanged, the prompt marks it "browse only", names arrive as `MountPrefixes.unsearchable`, and it is ignored on a file mount. |
|
|
99
|
+
| `mounts` | `Record<string, MountSpec>` | Authored mounts as a `CompositeBackend` route table: key → backend, or `{ backend, readOnly, governed, searchable }`. Trailing slash = directory mount; no slash = exact-path file mount (`"/AGENTS.md"`). Read-only unless declared otherwise. `governed: true` hands the spec's `mounts` block the decision of **which states** may reach it (closed by default, like a skill bundle) and whether each may write there; a mount not so declared is visible in every state exactly as today, so a table that marks nothing behaves unchanged. `readOnly` is a **ceiling** the spec cannot lift: a governed writable mount is written only by a workflow whose own grants ask `access: read_write` (a bare grant reads it, so serving one route writable for one workflow in a delegation tree opens it to no other), and a grant may narrow a writable mount to reads in a state, never open a read-only one. A key may be several segments deep (`"/catalogs/eu/"`); its **first** segment is what is reserved, so `/workflows/x/` fails as `/workflows/` does. Omitted on the default backend: `defaultMounts(rootDir)` (the conventional table — `/skills/`, `/.platform/`, `/AGENTS.md`, none governed — extend with `{ ...defaultMounts(root), "/templates/": … }`). Omitted with a custom `backend`: nothing authored is served; expose subtrees with `mountSubtree(backend, "skills")`. A key colliding with a run area — or naming the authoring-plane prefix (`/workflows/`) — throws `MountCollisionError`. `searchable: false` declares a mount the runtime never searches on its own initiative: a root-wide `grep`/`glob` fans out over the other mounts only, while a search the agent addresses at the mount (or a path inside it) still reaches its backend and returns the backend's own answer — matches or `{ error }` — verbatim. Use it for a backend that must refuse searches (a remote folder served live). Listing and reading are unchanged, the prompt marks it "browse only", names arrive as `MountPrefixes.unsearchable`, and it is ignored on a file mount. |
|
|
100
100
|
| `sessionStore` | `SessionStore` | Physical storage for run state (checkpoints, artifacts, the per-session `scratchpad/`). Zero-config default: `createFilesystemSessionStore({ dir: "<rootDir>/sessions" })`. Required with a custom `backend` (else `SessionStoreRequiredError`). Build with `createBackendSessionStore({ backend, prefix? })` for S3-style storage or `createMemorySessionStore()` for ephemeral runs. |
|
|
101
101
|
| `systemPrompt` | `string` | Appended after workspace `AGENTS.md`. |
|
|
102
102
|
| `tools` | `StructuredTool[]` | Host tools, granted per state by `tools.allow`. Build them with `toolsFromMap` — see [host tools](#host-tools). A name starting `archmax_`, or naming a runtime file operation (`copy_file`, `move_file`, `remove_file`), throws `ReservedToolNameError`. |
|
|
@@ -616,6 +616,15 @@ A custom `backend` **requires** an explicit `sessionStore` — assembly throws
|
|
|
616
616
|
Persisting the session zone off-box (an S3-backed session store) is how you share run
|
|
617
617
|
state across a worker fleet and an API.
|
|
618
618
|
|
|
619
|
+
A session's files are stored under `<sessionId>/` in the store (beneath its
|
|
620
|
+
`prefix`): the agent's `scratchpad/x.txt` in session `s1` is `s1/scratchpad/x.txt`.
|
|
621
|
+
That address is a contract, so a host may read or write a session's files through
|
|
622
|
+
its own handle on the store (ranged reads, recursive listings, presigned URLs). A
|
|
623
|
+
host tool keys them by `ToolContext.sessionId`, which inside a sub-workflow is the
|
|
624
|
+
child's id, never the session the turn was sent to. `sessionIdRejection` refuses an
|
|
625
|
+
id holding `~` in any shape but a child's (`<parent>~<n>`): mint top-level ids
|
|
626
|
+
without it.
|
|
627
|
+
|
|
619
628
|
`downloadFiles`, `uploadFiles` and `delete` are optional in the protocol and stay
|
|
620
629
|
optional in the workspace: a store with only the required methods serves skills,
|
|
621
630
|
reads and text copies. `downloadFiles` is always present and reads a store without
|
|
@@ -660,7 +669,8 @@ const agent = await createAgent({ tools, essentialTools: ["get_markdown"] });
|
|
|
660
669
|
- `paths` declares the arguments that name workspace paths and how the call
|
|
661
670
|
uses each. Every path rule binds them: the read-only zone, the runtime's own
|
|
662
671
|
areas, the skills and mounts the state was given (`mount.not-allowed`,
|
|
663
|
-
`skill.not-allowed`), a mount's `access: read`
|
|
672
|
+
`skill.not-allowed`), a mount's `access: read` or a governed mount no grant
|
|
673
|
+
of the workflow asks `read_write` for (`mount.read-only` for a
|
|
664
674
|
`write` or `remove`), inherited denials and `paths:` guards. A refused call
|
|
665
675
|
never runs the handler. No declaration, no path rules. An argument may hold a
|
|
666
676
|
list of paths (`files: string[]`), each governed; any other shape is refused.
|
|
@@ -669,8 +679,13 @@ const agent = await createAgent({ tools, essentialTools: ["get_markdown"] });
|
|
|
669
679
|
- `context.workspace` is the turn's workspace, bound to the session — the
|
|
670
680
|
instance `read_file` uses — with `downloadFiles`, `uploadFiles` (when the
|
|
671
681
|
session store has it) and `delete` besides the text methods. The plain agent
|
|
672
|
-
hands the same context.
|
|
673
|
-
|
|
682
|
+
hands the same context.
|
|
683
|
+
- `context.sessionId` is the session the call is made in: inside a sub-workflow,
|
|
684
|
+
the child's own id (`<parent>~<n>`), for the model's call and a script's alike.
|
|
685
|
+
Key any session file your host stores itself by it (`<sessionId>/<path>` in the
|
|
686
|
+
session store), never by the session you sent the turn to.
|
|
687
|
+
- Outside a turn, reading either throws; both are non-enumerable there, so
|
|
688
|
+
comparing or logging the context does not.
|
|
674
689
|
|
|
675
690
|
## Cases against your agent
|
|
676
691
|
|
|
@@ -736,10 +751,15 @@ never delegated to is never loaded, and one delegated from many places is
|
|
|
736
751
|
composed once. A child whose spec is broken surfaces as a *dispatch* failure, not
|
|
737
752
|
an assembly failure — a parent still assembles.
|
|
738
753
|
|
|
739
|
-
The child runs as a **separate session**, `<parent>~<
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
754
|
+
The child runs as a **separate session**, `<parent>~<n>`, in the same session
|
|
755
|
+
store, with its own checkpoints, its own token accounting and its own file space:
|
|
756
|
+
its `scratchpad/` is not its caller's, so it can neither read nor overwrite a file
|
|
757
|
+
of its caller's. `n` is the dispatch's number in the calling session, counted from 1
|
|
758
|
+
across all its turns in its checkpointed state, so an agent built per turn never
|
|
759
|
+
reuses one; a grandchild is `<parent>~<n>~<m>`. The `sub-workflow-*` events and a
|
|
760
|
+
pending delegation name it by its `dispatchId`, the id below the root session (`1`,
|
|
761
|
+
`1~1`). A host tool called in the child gets the child's id as
|
|
762
|
+
`ToolContext.sessionId`, and its file work belongs to the child. `sessions.list()` reports it beside its caller
|
|
743
763
|
with `parentSessionId` naming the caller, and `sessions.delete` removes it by its
|
|
744
764
|
own id. The only files that cross are the runtime's copies of declared `file` arguments and
|
|
745
765
|
`file` returns. `capabilities.subWorkflows` is stamped `true` for a governed
|
|
@@ -236,7 +236,9 @@ A **binary file** is not a refusal and does not throw: reads are text only, so
|
|
|
236
236
|
file whose content holds a NUL byte (an archive, an Office document), resolves to
|
|
237
237
|
the notice `Error: '<path>' is a binary file (<type>, <size>) and was not read;
|
|
238
238
|
read_file returns text files only.` instead of content — an image too, even when
|
|
239
|
-
the host turned on `images`, which shows images to the model only.
|
|
239
|
+
the host turned on `images`, which shows images to the model only. XML and JSON
|
|
240
|
+
are text even when the store labels them `application/xml` or a `+xml`/`+json`
|
|
241
|
+
type, so an Office document's unpacked `word/document.xml` reads as text. A missing file reads as
|
|
240
242
|
an `Error: …` string the same way. A script that parses what it read checks
|
|
241
243
|
first:
|
|
242
244
|
|
|
@@ -196,7 +196,10 @@ mounts?:
|
|
|
196
196
|
# workflow reaches no governed mount; validate says so
|
|
197
197
|
# ONCE, naming them — write `allow_always: []` to mean it.
|
|
198
198
|
# An entry is a NAME, or `{ mount: <name>, access: read |
|
|
199
|
-
# read_write }` to say what this level gives.
|
|
199
|
+
# read_write }` to say what this level gives. A bare NAME
|
|
200
|
+
# asks for NO write: a governed mount is written only
|
|
201
|
+
# where some grant of THIS workflow says `read_write`
|
|
202
|
+
# (a child's or caller's grant never counts). The host's
|
|
200
203
|
# readOnly is a CEILING: `read_write` on a read-only mount
|
|
201
204
|
# opens nothing (validate warns); `read` NARROWS a
|
|
202
205
|
# writable one, and no narrower level widens it back.
|
|
@@ -368,7 +371,9 @@ states:
|
|
|
368
371
|
# warns about one that reads like it) — `forbid` is.
|
|
369
372
|
# An entry may name its access:
|
|
370
373
|
# allow: [{ mount: shared, access: read }]
|
|
371
|
-
# reads a writable mount without writing it here
|
|
374
|
+
# reads a writable mount without writing it here, and
|
|
375
|
+
# allow: [{ mount: shared, access: read_write }]
|
|
376
|
+
# asks to write it — which a bare name never does. The
|
|
372
377
|
# host's posture is the ceiling — `read_write` cannot
|
|
373
378
|
# open a read-only mount — and a `read` at either level
|
|
374
379
|
# holds, so a state never widens what the workflow
|
|
@@ -921,13 +926,13 @@ error.
|
|
|
921
926
|
|
|
922
927
|
### Read or read/write
|
|
923
928
|
|
|
924
|
-
A grant entry is either a bare mount name
|
|
925
|
-
|
|
929
|
+
A grant entry is either a bare mount name, which asks for no write, or a mapping
|
|
930
|
+
naming the access this level gives:
|
|
926
931
|
|
|
927
932
|
```yaml
|
|
928
933
|
mounts:
|
|
929
934
|
allow_always:
|
|
930
|
-
- reference #
|
|
935
|
+
- reference # read; written only if a grant below asks
|
|
931
936
|
- { mount: shared, access: read_write } # writable where the host allows it
|
|
932
937
|
|
|
933
938
|
states:
|
|
@@ -936,6 +941,17 @@ states:
|
|
|
936
941
|
allow: [{ mount: shared, access: read }] # reads it, cannot write it here
|
|
937
942
|
```
|
|
938
943
|
|
|
944
|
+
**A workflow writes a governed mount only where its own grants ask to.** It is
|
|
945
|
+
writable in a state when the host serves it writable, some grant of *this*
|
|
946
|
+
workflow says `access: read_write` (in `allow_always` or any state's `allow`), and
|
|
947
|
+
no grant applicable in the state says `access: read`. So a bare grant in one state
|
|
948
|
+
and a `read_write` grant in another both write. One mount table serves a session
|
|
949
|
+
and every child it dispatches, and the host serves a route writable when any
|
|
950
|
+
workflow in that tree asks; a mount still belongs to the workflow that grants it,
|
|
951
|
+
so a caller's `read_write` never lets its child write through a bare grant, nor the
|
|
952
|
+
other way round. An ungoverned mount takes the host's posture: it has no grant to
|
|
953
|
+
ask with.
|
|
954
|
+
|
|
939
955
|
The host's `readOnly` is a **ceiling**, not a default to argue with:
|
|
940
956
|
|
|
941
957
|
- `access: read_write` on a mount the workspace serves read-only opens nothing,
|
|
@@ -949,7 +965,8 @@ The host's `readOnly` is a **ceiling**, not a default to argue with:
|
|
|
949
965
|
|
|
950
966
|
Two refusals, because they are two different edits: a write into a mount the
|
|
951
967
|
**host** serves read-only is `zone.read-only` (fix the wiring), and a write into
|
|
952
|
-
one a **grant** narrowed
|
|
968
|
+
one a **grant** narrowed, or one no grant of the workflow asks to write, is
|
|
969
|
+
`mount.read-only` (fix the spec; the refusal says which).
|
|
953
970
|
|
|
954
971
|
### What the agent sees
|
|
955
972
|
|
|
@@ -985,7 +1002,8 @@ so `AGENTS.md.bak` is not captured.
|
|
|
985
1002
|
everywhere already — use `forbid` to take one away);
|
|
986
1003
|
- an `access: read_write` on a mount the host serves **read-only**;
|
|
987
1004
|
- a name in both `allow_always` and a state's `allow` (unless the state entry
|
|
988
|
-
narrows the access
|
|
1005
|
+
narrows the access to `read`, or asks `read_write` of a mount the root grants
|
|
1006
|
+
bare: both do real work);
|
|
989
1007
|
- a state's `allow: []` beside a non-empty `allow_always`;
|
|
990
1008
|
- a `forbid` naming a governed mount nothing would have enabled there;
|
|
991
1009
|
- a `forbid_always` name some `allow` list also grants;
|
|
@@ -1416,8 +1434,8 @@ enrich:
|
|
|
1416
1434
|
in `<!-- top-level-only -->` … `<!-- /top-level-only -->` lines.
|
|
1417
1435
|
- **Same agent, isolated context, own session.** Same model, backend, host
|
|
1418
1436
|
tools; its **own** grading rubrics, from its own spec; a fresh transcript; the child's *own* per-state
|
|
1419
|
-
`tools.allow`. It is a separate session (`<parent>~<
|
|
1420
|
-
with its own checkpoints and its own `scratchpad/`: a path it reads or writes
|
|
1437
|
+
`tools.allow`. It is a separate session (`<parent>~<n>`, `n` the dispatch's
|
|
1438
|
+
number in the caller, counted across its turns) with its own checkpoints and its own `scratchpad/`: a path it reads or writes
|
|
1421
1439
|
resolves inside its own session, so it can neither see nor overwrite a file of
|
|
1422
1440
|
its caller's, and concurrent sub-runs cannot collide on a path.
|
|
1423
1441
|
- **Nothing crosses implicitly.** Down: only the arguments the call passed —
|
|
@@ -1753,9 +1771,11 @@ single-segment one is, and a sibling under the same first segment (`catalogs/uk`
|
|
|
1753
1771
|
is not.
|
|
1754
1772
|
|
|
1755
1773
|
A mount the host mounted **writable** is not a read-only zone — its paths are
|
|
1756
|
-
governed like ordinary run paths — but a
|
|
1757
|
-
|
|
1758
|
-
|
|
1774
|
+
governed like ordinary run paths — but a governed one is written only where a grant
|
|
1775
|
+
of the workflow says `access: read_write`, and a state may still be given it
|
|
1776
|
+
read-only, with `mounts: { allow: [{ mount: <name>, access: read }] }`. A write
|
|
1777
|
+
refused by a grant is `mount.read-only`; one refused by the wiring is
|
|
1778
|
+
`zone.read-only`.
|
|
1759
1779
|
See [Mount governance](#mount-governance).
|
|
1760
1780
|
|
|
1761
1781
|
The run root is writable, and it has exactly one named working area:
|
|
@@ -9,9 +9,10 @@ import type { ReadResult } from "deepagents";
|
|
|
9
9
|
* description the model is handed says so.
|
|
10
10
|
*
|
|
11
11
|
* The classification is `read_file`'s own — the route's `mimeType`, else the
|
|
12
|
-
* extension's
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* extension's — through `isTextMimeType`, which also reads the XML and JSON
|
|
13
|
+
* types a store labels by registration as text, plus two content checks: bytes,
|
|
14
|
+
* and a NUL character (git's and ripgrep's rule), which survives the backend's
|
|
15
|
+
* UTF-8 decoding of an unknown extension.
|
|
15
16
|
*/
|
|
16
17
|
export { BINARY_MIME_TYPES, binaryMimeTypeOf } from "./binary-types.js";
|
|
17
18
|
/**
|
|
@@ -22,8 +23,23 @@ export { BINARY_MIME_TYPES, binaryMimeTypeOf } from "./binary-types.js";
|
|
|
22
23
|
export declare const SHOWN_IMAGE_MIME_TYPES: ReadonlySet<string>;
|
|
23
24
|
/** The MIME type of a path the model may be shown as an image, or `undefined`. */
|
|
24
25
|
export declare function shownImageMimeTypeOf(path: string): string | undefined;
|
|
25
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* The types `read_file` renders as text: Deep Agents' own (`text/*`,
|
|
28
|
+
* `application/json`, `application/javascript`, `image/svg+xml`), plus
|
|
29
|
+
* `application/xml` and every structured-syntax `+xml` or `+json` type, each
|
|
30
|
+
* compared without its parameters. An object store labels a file by its
|
|
31
|
+
* registered type, so `word/document.xml` arrives as `application/xml`, and an
|
|
32
|
+
* Office document unpacked into the scratchpad is edited as text.
|
|
33
|
+
*/
|
|
26
34
|
export declare function isTextMimeType(mimeType: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* A text read as Deep Agents' `read_file` must be handed it. Its own rule is
|
|
37
|
+
* narrower than {@link isTextMimeType}: handed `application/xml` text it answers
|
|
38
|
+
* with a base64 `file` block. A result under a type it would not read as text is
|
|
39
|
+
* relabelled `text/plain`, the type it reads line by line; any other is unchanged.
|
|
40
|
+
* Only for a result {@link binaryReadError} found to be text.
|
|
41
|
+
*/
|
|
42
|
+
export declare function asTextRead(result: ReadResult): ReadResult;
|
|
27
43
|
/** A byte count as a person reads it: `512 B`, `24.1 KB`, `3.2 MB`. */
|
|
28
44
|
export declare function formatSize(bytes: number): string;
|
|
29
45
|
/**
|
package/dist/core/binary-read.js
CHANGED
|
@@ -9,9 +9,10 @@ import { binaryMimeTypeOf } from "./binary-types.js";
|
|
|
9
9
|
* description the model is handed says so.
|
|
10
10
|
*
|
|
11
11
|
* The classification is `read_file`'s own — the route's `mimeType`, else the
|
|
12
|
-
* extension's
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* extension's — through `isTextMimeType`, which also reads the XML and JSON
|
|
13
|
+
* types a store labels by registration as text, plus two content checks: bytes,
|
|
14
|
+
* and a NUL character (git's and ripgrep's rule), which survives the backend's
|
|
15
|
+
* UTF-8 decoding of an unknown extension.
|
|
15
16
|
*/
|
|
16
17
|
export { BINARY_MIME_TYPES, binaryMimeTypeOf } from "./binary-types.js";
|
|
17
18
|
/**
|
|
@@ -25,13 +26,43 @@ export function shownImageMimeTypeOf(path) {
|
|
|
25
26
|
const mime = binaryMimeTypeOf(path);
|
|
26
27
|
return mime !== undefined && SHOWN_IMAGE_MIME_TYPES.has(mime) ? mime : undefined;
|
|
27
28
|
}
|
|
28
|
-
/** Deep Agents' `isTextMimeType
|
|
29
|
-
|
|
29
|
+
/** Deep Agents' own `isTextMimeType`, which its `read_file` branches on: anything else it hands on as a base64 block. */
|
|
30
|
+
function deepAgentsReadsAsText(mimeType) {
|
|
30
31
|
return (mimeType.startsWith("text/") ||
|
|
31
32
|
mimeType === "application/json" ||
|
|
32
33
|
mimeType === "application/javascript" ||
|
|
33
34
|
mimeType === "image/svg+xml");
|
|
34
35
|
}
|
|
36
|
+
/** A MIME type's essence: lowercased, its parameters (`; charset=utf-8`) dropped. */
|
|
37
|
+
function essenceOf(mimeType) {
|
|
38
|
+
return (mimeType.split(";")[0] ?? "").trim().toLowerCase();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The types `read_file` renders as text: Deep Agents' own (`text/*`,
|
|
42
|
+
* `application/json`, `application/javascript`, `image/svg+xml`), plus
|
|
43
|
+
* `application/xml` and every structured-syntax `+xml` or `+json` type, each
|
|
44
|
+
* compared without its parameters. An object store labels a file by its
|
|
45
|
+
* registered type, so `word/document.xml` arrives as `application/xml`, and an
|
|
46
|
+
* Office document unpacked into the scratchpad is edited as text.
|
|
47
|
+
*/
|
|
48
|
+
export function isTextMimeType(mimeType) {
|
|
49
|
+
const essence = essenceOf(mimeType);
|
|
50
|
+
return (deepAgentsReadsAsText(essence) ||
|
|
51
|
+
essence === "application/xml" ||
|
|
52
|
+
essence.endsWith("+xml") ||
|
|
53
|
+
essence.endsWith("+json"));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* A text read as Deep Agents' `read_file` must be handed it. Its own rule is
|
|
57
|
+
* narrower than {@link isTextMimeType}: handed `application/xml` text it answers
|
|
58
|
+
* with a base64 `file` block. A result under a type it would not read as text is
|
|
59
|
+
* relabelled `text/plain`, the type it reads line by line; any other is unchanged.
|
|
60
|
+
* Only for a result {@link binaryReadError} found to be text.
|
|
61
|
+
*/
|
|
62
|
+
export function asTextRead(result) {
|
|
63
|
+
const { mimeType } = result;
|
|
64
|
+
return mimeType === undefined || deepAgentsReadsAsText(mimeType) ? result : { ...result, mimeType: "text/plain" };
|
|
65
|
+
}
|
|
35
66
|
/** Byte length of non-string content: bytes, or the numeric-key object they become once serialized. */
|
|
36
67
|
function byteLength(content) {
|
|
37
68
|
if (ArrayBuffer.isView(content))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-read.js","sourceRoot":"","sources":["../../src/core/binary-read.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"binary-read.js","sourceRoot":"","sources":["../../src/core/binary-read.ts"],"names":[],"mappings":"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"}
|
package/dist/core/events.d.ts
CHANGED
|
@@ -246,6 +246,12 @@ export type WorkflowEventPayload = {
|
|
|
246
246
|
state: string;
|
|
247
247
|
/** The child workflow slug. */
|
|
248
248
|
workflow: string;
|
|
249
|
+
/**
|
|
250
|
+
* The child's session id below the root session (`1`, `2`, `1~1` for the
|
|
251
|
+
* first dispatch made inside `1`): unique across the turn's whole tree,
|
|
252
|
+
* and the same name a pending delegation and the child's session id use.
|
|
253
|
+
* A refused dispatch takes its number too.
|
|
254
|
+
*/
|
|
249
255
|
dispatchId: string;
|
|
250
256
|
/**
|
|
251
257
|
* The tool call that started it, when one did. Concurrent sub-runs differ
|
package/dist/core/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAS1C,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,MAAuB;IACjD,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC3D,CAAC;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,8 @@ export declare const MOUNTS_SECTION_HEADING = "Mounts available in this state";
|
|
|
21
21
|
* no reason. Each name is printed as the agent addresses it: a directory mount
|
|
22
22
|
* with a trailing slash, a file mount by its exact path, read-only or read/write
|
|
23
23
|
* per `writable` — the state's own posture (`WorkflowMachine.mountWritable`),
|
|
24
|
-
* which a grant's `access: read` may have narrowed below the host's
|
|
24
|
+
* which a grant's `access: read` may have narrowed below the host's, and which
|
|
25
|
+
* stays read-only where no grant of the workflow asks to write. A mount the
|
|
25
26
|
* host declared unsearchable gets a browse-only note, so the model lists and
|
|
26
27
|
* reads it rather than searching it; every other line is unchanged.
|
|
27
28
|
*/
|
|
@@ -20,7 +20,8 @@ export const MOUNTS_SECTION_HEADING = "Mounts available in this state";
|
|
|
20
20
|
* no reason. Each name is printed as the agent addresses it: a directory mount
|
|
21
21
|
* with a trailing slash, a file mount by its exact path, read-only or read/write
|
|
22
22
|
* per `writable` — the state's own posture (`WorkflowMachine.mountWritable`),
|
|
23
|
-
* which a grant's `access: read` may have narrowed below the host's
|
|
23
|
+
* which a grant's `access: read` may have narrowed below the host's, and which
|
|
24
|
+
* stays read-only where no grant of the workflow asks to write. A mount the
|
|
24
25
|
* host declared unsearchable gets a browse-only note, so the model lists and
|
|
25
26
|
* reads it rather than searching it; every other line is unchanged.
|
|
26
27
|
*/
|
|
@@ -29,7 +30,8 @@ export function renderMountsSection(enabled, mounts, writable) {
|
|
|
29
30
|
const bullets = [...enabled].sort().map((name) => {
|
|
30
31
|
const address = files.has(name) ? name : `${name}/`;
|
|
31
32
|
// The state's own posture, not the table's: a grant may narrow a writable
|
|
32
|
-
// mount to reads here,
|
|
33
|
+
// mount to reads here, a workflow that asks no write reads it only, and the
|
|
34
|
+
// prompt has to say what this state can do.
|
|
33
35
|
const posture = writable(name)
|
|
34
36
|
? "read/write — write there directly when the work belongs there, no less " +
|
|
35
37
|
"freely than in your own working area; the write is checked against this " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount-prompt.js","sourceRoot":"","sources":["../../src/core/mount-prompt.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,sBAAsB,GAAG,gCAAgC,CAAC;AAEvE
|
|
1
|
+
{"version":3,"file":"mount-prompt.js","sourceRoot":"","sources":["../../src/core/mount-prompt.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,sBAAsB,GAAG,gCAAgC,CAAC;AAEvE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA0B,EAC1B,MAAqB,EACrB,QAAmC;IAEnC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;QACpD,0EAA0E;QAC1E,4EAA4E;QAC5E,4CAA4C;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC5B,CAAC,CAAC,yEAAyE;gBACzE,0EAA0E;gBAC1E,mCAAmC;YACrC,CAAC,CAAC,sDAAsD,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC/C,CAAC,CAAC,gFAAgF;gBAChF,+DAA+D;YACjE,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,SAAS,OAAO,UAAU,OAAO,IAAI,MAAM,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO;QACL,MAAM,sBAAsB,EAAE;QAC9B,EAAE;QACF,GAAG,OAAO;QACV,EAAE;QACF,yFAAyF;YACvF,6CAA6C;KAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -25,12 +25,22 @@ export declare class SessionStoreIdError extends Error {
|
|
|
25
25
|
readonly sessionId: string;
|
|
26
26
|
constructor(sessionId: string, reason?: string);
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Separator between a parent's session id and a child's dispatch number. A
|
|
30
|
+
* session id becomes a directory name in the filesystem store, so it must be
|
|
31
|
+
* legal on every platform: `~` is, LangGraph's `|` is not. Reserved: a
|
|
32
|
+
* top-level id may not contain it, so a host's id is never read as a child's.
|
|
33
|
+
*/
|
|
34
|
+
export declare const CHILD_SESSION_SEPARATOR = "~";
|
|
35
|
+
/** Whether `segment` (one part of an id after a `~`) names a child of the id before it. */
|
|
36
|
+
export declare function isChildSegment(segment: string): boolean;
|
|
28
37
|
/** Strip leading slashes to the store-relative form. */
|
|
29
38
|
export declare function storeRelativeSessionId(sessionId: string): string;
|
|
30
39
|
/**
|
|
31
40
|
* Why a session id cannot own a session folder, or `null` when it can: non-empty
|
|
32
|
-
* once leading slashes are stripped, free of `..` traversal segments,
|
|
33
|
-
* first segment that is not reserved at the workspace root
|
|
41
|
+
* once leading slashes are stripped, free of `..` traversal segments, with a
|
|
42
|
+
* first segment that is not reserved at the workspace root, and holding `~`
|
|
43
|
+
* only as a child session's id does (`<parent>~<n>`, at any depth). Exposed so
|
|
34
44
|
* untrusted-id ingress points (the CLI, `invoke`, session handles, a host's own
|
|
35
45
|
* API) can reject a bad id up front with their own message, rather than relying
|
|
36
46
|
* on a store throwing deep inside a delete.
|
package/dist/core/session-id.js
CHANGED
|
@@ -29,14 +29,34 @@ export class SessionStoreIdError extends Error {
|
|
|
29
29
|
this.name = "SessionStoreIdError";
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Separator between a parent's session id and a child's dispatch number. A
|
|
34
|
+
* session id becomes a directory name in the filesystem store, so it must be
|
|
35
|
+
* legal on every platform: `~` is, LangGraph's `|` is not. Reserved: a
|
|
36
|
+
* top-level id may not contain it, so a host's id is never read as a child's.
|
|
37
|
+
*/
|
|
38
|
+
export const CHILD_SESSION_SEPARATOR = "~";
|
|
39
|
+
/** A child's segment: the dispatch's number in its parent session, counted from 1. */
|
|
40
|
+
const DISPATCH_NUMBER = /^[1-9]\d*$/;
|
|
41
|
+
/**
|
|
42
|
+
* The segment 0.5 minted, `<state>:<workflow>:<ordinal>`. Read, never minted:
|
|
43
|
+
* a session parked on a child before the upgrade resumes it under the identity
|
|
44
|
+
* its park recorded, so that child's id must still bind and still count as a child.
|
|
45
|
+
*/
|
|
46
|
+
const LEGACY_CHILD_SEGMENT = /^[^~:]+:[^~:]+:\d+$/;
|
|
47
|
+
/** Whether `segment` (one part of an id after a `~`) names a child of the id before it. */
|
|
48
|
+
export function isChildSegment(segment) {
|
|
49
|
+
return DISPATCH_NUMBER.test(segment) || LEGACY_CHILD_SEGMENT.test(segment);
|
|
50
|
+
}
|
|
32
51
|
/** Strip leading slashes to the store-relative form. */
|
|
33
52
|
export function storeRelativeSessionId(sessionId) {
|
|
34
53
|
return String(sessionId).replace(/^\/+/, "");
|
|
35
54
|
}
|
|
36
55
|
/**
|
|
37
56
|
* Why a session id cannot own a session folder, or `null` when it can: non-empty
|
|
38
|
-
* once leading slashes are stripped, free of `..` traversal segments,
|
|
39
|
-
* first segment that is not reserved at the workspace root
|
|
57
|
+
* once leading slashes are stripped, free of `..` traversal segments, with a
|
|
58
|
+
* first segment that is not reserved at the workspace root, and holding `~`
|
|
59
|
+
* only as a child session's id does (`<parent>~<n>`, at any depth). Exposed so
|
|
40
60
|
* untrusted-id ingress points (the CLI, `invoke`, session handles, a host's own
|
|
41
61
|
* API) can reject a bad id up front with their own message, rather than relying
|
|
42
62
|
* on a store throwing deep inside a delete.
|
|
@@ -56,6 +76,14 @@ export function sessionIdRejection(sessionId, mountPrefixes) {
|
|
|
56
76
|
if (isReservedRootName(segments[0], mountPrefixes)) {
|
|
57
77
|
return `'${segments[0]}' is reserved at the workspace root (a session area or an authored mount)`;
|
|
58
78
|
}
|
|
79
|
+
// `~` separates a child's dispatch numbers from its parent's id, so anything
|
|
80
|
+
// that begins with a session's id and `~` is one of its children. A top-level
|
|
81
|
+
// id holding it could be read as a child of another session.
|
|
82
|
+
const [root = "", ...descent] = relative.split(CHILD_SESSION_SEPARATOR);
|
|
83
|
+
if (descent.length > 0 && (root === "" || !descent.every(isChildSegment))) {
|
|
84
|
+
return (`'${CHILD_SESSION_SEPARATOR}' is reserved: it separates a child session's dispatch number from ` +
|
|
85
|
+
`its parent's id ('<parent>${CHILD_SESSION_SEPARATOR}<n>'), so a session id may hold it only in that shape`);
|
|
86
|
+
}
|
|
59
87
|
return null;
|
|
60
88
|
}
|
|
61
89
|
//# sourceMappingURL=session-id.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-id.js","sourceRoot":"","sources":["../../src/core/session-id.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,kBAAkB,EAAsB,MAAM,YAAY,CAAC;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAEjC;IADX,YACW,SAAiB,EAC1B,MAAM,GAAG,4EAA4E;QAErF,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC;QAH5D,cAAS,GAAT,SAAS,CAAQ;QAI1B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,wDAAwD;AACxD,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"session-id.js","sourceRoot":"","sources":["../../src/core/session-id.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,kBAAkB,EAAsB,MAAM,YAAY,CAAC;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAEjC;IADX,YACW,SAAiB,EAC1B,MAAM,GAAG,4EAA4E;QAErF,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC;QAH5D,cAAS,GAAT,SAAS,CAAQ;QAI1B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,sFAAsF;AACtF,MAAM,eAAe,GAAG,YAAY,CAAC;AAErC;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEnD,2FAA2F;AAC3F,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,aAA6B;IAE7B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,sBAAsB,CAAC;IACnD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,4EAA4E,CAAC;IACtF,CAAC;IACD,gFAAgF;IAChF,yEAAyE;IACzE,4EAA4E;IAC5E,8DAA8D;IAC9D,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,2EAA2E,CAAC;IACpG,CAAC;IACD,6EAA6E;IAC7E,8EAA8E;IAC9E,6DAA6D;IAC7D,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO,CACL,IAAI,uBAAuB,qEAAqE;YAChG,6BAA6B,uBAAuB,uDAAuD,CAC5G,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|