@tomismeta/paperclip-aperture 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 +95 -152
- package/dist/manifest.js +1 -1
- package/dist/ui/index.js +731 -373
- package/dist/worker.js +23 -23
- package/package.json +21 -27
package/README.md
CHANGED
|
@@ -13,191 +13,134 @@
|
|
|
13
13
|
<p></p>
|
|
14
14
|
</div>
|
|
15
15
|
|
|
16
|
-
Paperclip Aperture adds a Focus surface to Paperclip
|
|
16
|
+
Paperclip Aperture adds a **Focus** surface to Paperclip, turning approvals, issue activity, and agent signals into three attention lanes:
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
- **now** — the single item that most needs your attention
|
|
19
|
+
- **next** — the queue behind it
|
|
20
|
+
- **ambient** — low-pressure awareness without an immediate demand for action
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
- `next` stages the queue behind it
|
|
22
|
-
- `ambient` keeps low-pressure awareness visible without demanding action
|
|
23
|
-
- unread state is secondary to action pressure, so Focus stays judgment-first instead of becoming a second inbox
|
|
22
|
+
Inbox tells you what changed. Focus tells you what deserves attention now, with recommended moves and reasoning attached to the cards.
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
## Requirements
|
|
26
25
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
26
|
+
- **Node.js:** `>=24.11.0`
|
|
27
|
+
- **Paperclip:** official, unmodified `2026.1023.0` is the minimum API baseline and the tested stock host. Newer host versions are not automatically certified. See [known limitations](#known-limitations).
|
|
28
|
+
- **Aperture Core:** `0.10.0`, included as a dependency alongside `@paperclipai/plugin-sdk@2026.1023.0`
|
|
29
|
+
|
|
30
|
+
Version **0.6.0** upgrades the published `0.5.1` baseline from Core `0.9.0`, retaining the worker-owned integration and existing Focus behavior. No Paperclip fork or host patch is required.
|
|
31
31
|
|
|
32
32
|
## Install
|
|
33
33
|
|
|
34
|
+
Authenticate the CLI as an instance administrator for the intended Paperclip host, then check its target before installing. Set the URL below to that host:
|
|
35
|
+
|
|
34
36
|
```bash
|
|
35
|
-
|
|
37
|
+
export PAPERCLIP_API_BASE="http://127.0.0.1:3100"
|
|
38
|
+
npx paperclipai@2026.1023.0 plugin target --api-base "$PAPERCLIP_API_BASE"
|
|
39
|
+
npx paperclipai@2026.1023.0 plugin install @tomismeta/paperclip-aperture --version 0.6.0 --api-base "$PAPERCLIP_API_BASE"
|
|
36
40
|
```
|
|
37
41
|
|
|
38
|
-
If you need Paperclip first
|
|
42
|
+
The pinned CLI selects a client version; it does not upgrade or patch the server. If you need Paperclip first, follow its [host setup instructions](https://github.com/paperclipai/paperclip).
|
|
39
43
|
|
|
40
|
-
|
|
41
|
-
npx paperclipai onboard --yes
|
|
42
|
-
npx paperclipai run
|
|
43
|
-
```
|
|
44
|
+
After installation, open Paperclip and select **Focus** in the sidebar. No plugin-specific API-base configuration or outbound HTTP access is required for approval handling; CLI `--api-base` selects the host and is separate from plugin configuration.
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
## What you get
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
- A Focus page, sidebar entry, and dashboard widget.
|
|
49
|
+
- Dynamic attention lanes with issue-aware recommendations, document/dependency context, and routing that distinguishes company agents from human operators.
|
|
50
|
+
- Native approval actions and inline plain confirmations with host-verified human attribution and fresh eligibility checks. Budget revisions, questions, and specialized requests hand off to native Paperclip pages.
|
|
51
|
+
- Separate cards for multiple decisions on the same issue; resolving one does not dismiss its siblings.
|
|
52
|
+
- Inline issue comments, with long summaries and failure diagnostics kept under **Show context** rather than crowding the headline.
|
|
53
|
+
- Durable acknowledgement and suppression backed by saved review state and ledger replay.
|
|
54
|
+
- Separate run-failure attention that preserves execution history and reflects authoritative retry/watchdog facts when the host supplies them.
|
|
55
|
+
- Diagnostics exports for the live Core state, the plugin-composed display, synchronization errors, and bounded Core traces.
|
|
48
56
|
|
|
49
|
-
##
|
|
57
|
+
## Understanding Focus
|
|
50
58
|
|
|
51
|
-
|
|
52
|
-
- `paperclipApiBase` is only needed for approval overlays. Use the Paperclip origin such as `https://HOST` or `http://127.0.0.1:3100`; leaving it empty disables approval overlay reads without disabling Focus.
|
|
53
|
-
- On Windows, `spawn npm ENOENT` during `npx paperclipai plugin install @tomismeta/paperclip-aperture` comes from the Paperclip host installer failing to spawn npm. This package does not spawn npm during install. Make sure the Paperclip process can resolve `npm.cmd`, or upgrade Paperclip once the Windows installer fix is available.
|
|
59
|
+
Reasoning stays attached to the cards you are acting on:
|
|
54
60
|
|
|
55
|
-
|
|
61
|
+
- **Why now** explains why the current item outranks the queue.
|
|
62
|
+
- **Why next** explains why an item is staged behind it.
|
|
63
|
+
- **Confidence** shows the strength of the semantic signal when available.
|
|
64
|
+
- **Signals** lists the factors that brought an item into attention.
|
|
65
|
+
- **Thread context** and **Related activity** show the surrounding episode.
|
|
56
66
|
|
|
57
|
-
|
|
58
|
-
+--------------+ +--------------+ +--------------+ +--------------+ +--------------+
|
|
59
|
-
| Arrive | | Translate | | Judge | | Show | | Respond |
|
|
60
|
-
| events | | facts | | attention | | surface | | action |
|
|
61
|
-
+--------------+ +--------------+ +--------------+ +--------------+ +--------------+
|
|
62
|
-
| | | | |
|
|
63
|
-
+-----> +-----> +-----> +-----> |
|
|
67
|
+
Unread state is secondary to action pressure: an unread item is not automatically the most important item.
|
|
64
68
|
|
|
65
|
-
|
|
66
|
-
from Paperclip from raw payloads deserve operator carried back
|
|
67
|
-
and agents attention now? actually sees to the tool
|
|
68
|
-
```
|
|
69
|
+
### Keeping your place
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
- a Focus surface inside Paperclip
|
|
73
|
-
- ranked `now`, `next`, and `ambient` attention lanes
|
|
74
|
-
- embedded explainability in the Focus UI, including `Why now`, `Why next`, confidence, signals, thread context, and related activity
|
|
75
|
-
- bounded focus hold while the operator is actively working the current `now` item, so `Show context` and inline commenting do not immediately lose the thread beneath them
|
|
76
|
-
- approval handling, including budget-specific approval semantics
|
|
77
|
-
- issue-aware operator language such as `review required`, `blocked`, and targeted recommended moves
|
|
78
|
-
- agent-aware routing that distinguishes known company agents from human/operator roles when issue text references them
|
|
79
|
-
- a plugin-local semantic mapping and policy layer that interprets Paperclip issue, approval, and agent signals before composing the final Focus view
|
|
80
|
-
- richer semantic continuity hints on mapped issue events, including `supersedes` and `resolves` relationships where Paperclip-specific intent is clear
|
|
81
|
-
- document-aware review interpretation for memo/spec-backed issues so Focus can tell the difference between `review is blocked on the artifact` and `the artifact is attached, monitor instead`
|
|
82
|
-
- Paperclip watchdog awareness that preserves watchdog metadata and promotes only pending watchdog triggers into higher-salience Focus evidence
|
|
83
|
-
- dynamic re-stacking so items can move between `now`, `next`, and `ambient` as new evidence arrives
|
|
84
|
-
- inline issue commenting from the Focus surface when a Paperclip issue supports written response
|
|
85
|
-
- durable acknowledge/suppression behavior backed by plugin state and ledger replay
|
|
86
|
-
- worker-owned display composition that merges live Paperclip approvals into the final Focus snapshot before the UI sees it
|
|
87
|
-
- bounded Core trace export and sparse Focus action telemetry/activity writes for replay and debugging
|
|
88
|
-
- live Core diagnostics export, including signal summaries, memory profile snapshots, and current-session attention state for offline analysis
|
|
89
|
-
- worker-bridged operator signals for Focus page presence, active-item viewing, and context expansion so Aperture Core sees real interaction evidence instead of the plugin faking a second attention model
|
|
90
|
-
- overlay diagnostics export that compares `core -> reconciled -> display` so the plugin's host-policy contribution is inspectable without confusing it for Core judgment
|
|
91
|
-
- a sidebar entry, page, and dashboard widget
|
|
92
|
-
- worker-side host read caching for issue/comment/document/agent reconciliation, with fresh summary/export reads when you need the latest host truth
|
|
93
|
-
- bounded per-company Core sessions with health reporting so the worker does not grow without limit during normal multi-company use
|
|
94
|
-
- replayable operator signal entries and overlay-response ledger entries so Focus actions remain auditable even when a frame came from the display adapter rather than Core
|
|
95
|
-
- decision-owner metadata on reconciled/display frames so exports can distinguish Core judgment, Paperclip reconciliation, approval overlays, and final display promotion
|
|
96
|
-
- a corpus-backed `issue-intelligence` regression check in CI so heuristic edits stay inspectable
|
|
97
|
-
- rollback-safe local mutations that restore the last durable attention state if persistence fails
|
|
98
|
-
- versioned persisted attention envelopes with an explicit migration path for older schemas
|
|
99
|
-
|
|
100
|
-
## Explainability
|
|
101
|
-
|
|
102
|
-
Focus is meant to be more legible than a smart inbox.
|
|
103
|
-
|
|
104
|
-
The current `0.4.x` explainability slice keeps reasoning attached to the cards you are already acting on:
|
|
105
|
-
|
|
106
|
-
- `Why now` on the active card explains why the current item outranks the rest of the queue
|
|
107
|
-
- `Why next` on queued rows explains why something is staged behind the current top item
|
|
108
|
-
- `Confidence` shows how strong the semantic signal is when the plugin has one
|
|
109
|
-
- `Signals` surfaces the specific factors that pushed the item into attention
|
|
110
|
-
- `Thread context` and `Related activity` help explain whether an item is part of a broader episode or continuation
|
|
111
|
-
|
|
112
|
-
The intent is not to expose every internal scoring detail. It is to help an operator answer:
|
|
113
|
-
|
|
114
|
-
- why did this surface?
|
|
115
|
-
- why is it in this lane?
|
|
116
|
-
- how much should I trust this judgment?
|
|
117
|
-
|
|
118
|
-
## Package Boundary
|
|
119
|
-
|
|
120
|
-
This plugin treats Paperclip as the host runtime and UI shell, while embedding [Aperture Core](https://github.com/tomismeta/aperture/tree/main/packages/core) through the npm package [`@tomismeta/aperture-core`](https://www.npmjs.com/package/@tomismeta/aperture-core).
|
|
121
|
-
|
|
122
|
-
It is an SDK-first integration with explicit plugin-side host policy. Aperture Core handles continuity, replay, and global attention mechanics; the plugin adds Paperclip-specific candidate generation, approval overlays, and operator language where the host can know more than Core alone.
|
|
123
|
-
|
|
124
|
-
For `0.5.x`, the boundary works like this:
|
|
125
|
-
|
|
126
|
-
- the plugin worker owns Aperture ingestion, replay, review state, display composition, reconciliation caching, and Paperclip-native policy overlays
|
|
127
|
-
- the final Focus view is therefore Core-backed but not Core-only today: the plugin still owns some Paperclip-specific candidate and lane policy where the host has facts Core cannot infer by itself
|
|
128
|
-
- Paperclip remains the system of record for issue and approval writes
|
|
129
|
-
- approval transport now goes through a worker-side Paperclip adapter using the plugin SDK HTTP client, so the browser UI no longer talks to host approval APIs directly
|
|
130
|
-
- the plugin preserves Paperclip source facts as `SourceEvent`s where the Core contract supports them, while still exporting the normalized `ApertureEvent` used for replay/debug
|
|
131
|
-
- that semantic layer includes reusable intent detectors, actor resolution against real company agents, downstream blocker extraction, explicit rule ids for matched issue heuristics, and shared operator-language generation inside the plugin
|
|
132
|
-
- typed Paperclip issue blocker relations and watchdog summaries are preserved as Focus context/provenance/metadata so Aperture has better dependency facts without the plugin inventing dependency routing
|
|
133
|
-
- `activity.logged` document events invalidate stale reconciled state so document-backed review blockers refresh promptly without a full browser-side merge layer
|
|
134
|
-
- Paperclip `agent.error_cleared` events invalidate reconciled agent state, and redacted deleted comments are ignored when Focus chooses the latest operator signal
|
|
135
|
-
- native Paperclip issue document and relation events invalidate reconciled state directly, with `activity.logged` retained as a compatibility fallback
|
|
136
|
-
- document-scoped issue comments remain contextual status updates rather than being treated as top-level follow-up requests
|
|
137
|
-
- validated Paperclip run diagnostics can become Core 0.9 `SourceEvidence`; arbitrary prose and malformed evidence are ignored
|
|
138
|
-
- subscribed event callbacks stay memory-only and flush pending Aperture state from the next scoped data/action bridge call, keeping host invocation scope boundaries intact without losing replay durability after Focus refreshes
|
|
139
|
-
- Focus exports the live Core snapshot, the reconciled/plugin-composed display snapshot, and bounded Core traces so replay/debug flows can inspect both the engine substrate and the final operator view
|
|
140
|
-
- Aperture Core `0.9.x` semantic and judgment hardening is consumed through this existing `ApertureCore` integration; the plugin does not run the Core `./kernel` subpath as a second runtime judgment system
|
|
141
|
-
|
|
142
|
-
The plugin requires Paperclip `2026.525.0` or newer and has been validated against the published [`@tomismeta/aperture-core@0.9.0`](https://www.npmjs.com/package/@tomismeta/aperture-core/v/0.9.0) artifact and [`@paperclipai/plugin-sdk@2026.722.0`](https://www.npmjs.com/package/@paperclipai/plugin-sdk/v/2026.722.0). The plugin resolves configuration per Paperclip company so settings do not bleed across company contexts.
|
|
143
|
-
|
|
144
|
-
Paperclip `2026.722.0` has an upstream installer issue where the running server may report host version `0.0.0` during plugin minimum-version validation. If installation fails with that message, upgrade to a Paperclip server release containing the host-version fix; do not lower the plugin's declared minimum host version.
|
|
145
|
-
|
|
146
|
-
Approval overlay transport is opt-in until the Paperclip plugin SDK exposes a first-class approval client. Set the plugin config field `paperclipApiBase` when the worker can reach the host approval API; leave it empty to run Focus without approval overlays in hosted or restricted-network environments.
|
|
71
|
+
Opening **Show context** requests a 20-second focus hold; opening the comment composer requests 45 seconds. Holds preserve the current task or interaction against ordinary queue promotion while still showing fresh host content. Explicit urgency, Core preemption, terminal state, suppression, replacement, and ambient recovery can still take precedence.
|
|
147
72
|
|
|
148
|
-
|
|
73
|
+
Reads do not extend a hold. Expiry, worker restart, and session eviction end it. Comment drafts stay local to the mounted company/task/interaction and survive timestamp-only updates, but are not durable across displacement or company changes.
|
|
149
74
|
|
|
150
|
-
|
|
151
|
-
pnpm install
|
|
152
|
-
pnpm verify
|
|
153
|
-
```
|
|
75
|
+
### Synchronization and persistence
|
|
154
76
|
|
|
155
|
-
|
|
77
|
+
Failed reconciliation keeps the last complete candidate set visible with a synchronization warning. Fresh summary/export reads require successful issue, agent, and interaction reconciliation; native approval overlays use a separate 15-second cache with event/action invalidation, including in exports.
|
|
156
78
|
|
|
157
|
-
|
|
158
|
-
pnpm clean
|
|
159
|
-
pnpm release:check
|
|
160
|
-
```
|
|
79
|
+
Issue discovery uses the supported unpaged SDK collection; agent discovery remains paginated. Neither has a plugin-imposed total cap. Complete issue discovery depends on the host returning the complete accessible collection.
|
|
161
80
|
|
|
162
|
-
|
|
81
|
+
Company changes withhold the previous company's display while the new scope loads. Local review updates are serialized with persistence so concurrent tabs retain each other's acknowledgements.
|
|
163
82
|
|
|
164
|
-
|
|
83
|
+
Native comment writes and local state persistence are separate transactions. If Paperclip confirms a comment but local persistence fails, Focus reports that it posted with a synchronization warning rather than asking you to repost. Unknown native-write outcomes still report an error; this is not an exactly-once guarantee.
|
|
165
84
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
85
|
+
Subscription callbacks remain in memory until a scoped read or action hydrates and flushes state. A worker restart, the 30-minute idle eviction, or the 100-company session cap can discard unflushed callback facts. Saved history and review state are persisted separately from that pending buffer.
|
|
86
|
+
|
|
87
|
+
## Upgrading from 0.5.1
|
|
88
|
+
|
|
89
|
+
Back up host data and plugin configuration before upgrading, and meet the host and Node.js requirements above.
|
|
90
|
+
|
|
91
|
+
- Persisted attention state migrates from schema 3 to schema 5. Legacy approval acknowledgements remain local audit/suppression records; they do not become native approval decisions.
|
|
92
|
+
- Approval reads and decisions now use the native company-scoped SDK client. Stored `paperclipApiBase` values are ignored; the legacy worker HTTP adapter is removed.
|
|
93
|
+
- Approve/reject and issue comments require a host-authenticated human operator and retain that human's attribution.
|
|
94
|
+
- Do not purge plugin state or run an older worker against schema 5.
|
|
170
95
|
|
|
171
|
-
|
|
96
|
+
The native migration qualification used a no-force local-package switch and a cold host/worker restart. It does not certify the host's version-only upgrade endpoint or every historical state.
|
|
97
|
+
|
|
98
|
+
## Architecture
|
|
99
|
+
|
|
100
|
+
- **Aperture Core** owns continuity, replay, and attention mechanics through the existing stateful `ApertureCore` integration.
|
|
101
|
+
- **The plugin worker** owns ingestion, review state, reconciliation, display composition, and Paperclip-specific candidate/lane policy. The result is Core-backed, not Core-only.
|
|
102
|
+
- **Paperclip** owns native issue, interaction, and approval records, authorization, and the UI shell.
|
|
103
|
+
|
|
104
|
+
The worker resolves configuration per company. Configuration changes retain the host's worker-restart behavior. Diagnostics distinguish Core judgment, reconciliation, approval overlays, and final display promotion.
|
|
105
|
+
|
|
106
|
+
## Known limitations
|
|
107
|
+
|
|
108
|
+
These limitations apply to the stock host and remain part of this release:
|
|
109
|
+
|
|
110
|
+
- **Updates are not always instant.** Focus uses a 15-second visible-page polling cycle, plus visibility and action refresh. Reliable cross-client push is unavailable on the observed stock host; its stream endpoint returned HTTP 501.
|
|
111
|
+
- **Recovery visibility is incomplete.** The public worker API does not expose all retry/recovery facts. Complete recovery context and actual continuation are not certified. Missing facts do not mean no recovery is running.
|
|
112
|
+
- **Company navigation has a known host issue.** After switching companies and using browser Back, the host's company selector can disagree with the route. Tested plugin company-isolation guards remain intact; they do not fix the host selector.
|
|
113
|
+
|
|
114
|
+
The plugin retains its streaming hooks and conditional recovery/watchdog support when the host supplies the necessary facts. These are documented host limitations, not features removed for this release or a claim of full host-feature compatibility.
|
|
115
|
+
|
|
116
|
+
## Troubleshooting
|
|
117
|
+
|
|
118
|
+
- **Placeholder instead of Focus:** check the host's API baseline and the plugin's status, then refresh the UI. A matching version number alone does not establish full runtime compatibility.
|
|
119
|
+
- **Approval or comment permission errors:** use a host-authenticated human with access to the intended company. Adding a legacy API-base setting does not bypass native authorization.
|
|
120
|
+
- **Host version reported as `0.0.0`:** older Paperclip installers can misreport their version. Upgrade to a server release containing the host-version fix; do not lower the plugin's minimum version.
|
|
121
|
+
- **Windows `spawn npm ENOENT`:** the Paperclip installer cannot resolve npm. Ensure the host process can find `npm.cmd`, or use a Paperclip release with the installer fix. This plugin does not spawn npm during installation.
|
|
122
|
+
|
|
123
|
+
## Development
|
|
124
|
+
|
|
125
|
+
Use Node.js `>=24.11.0` and pnpm 10. CI uses Node.js `24.21.0`.
|
|
172
126
|
|
|
173
127
|
```bash
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
npx paperclipai plugin install --local .
|
|
128
|
+
pnpm install
|
|
129
|
+
pnpm verify
|
|
177
130
|
```
|
|
178
131
|
|
|
179
|
-
|
|
132
|
+
`pnpm verify` runs typecheck, tests, the issue-intelligence corpus, a production build, and bundle-size checks. Before packaging a release, run:
|
|
180
133
|
|
|
181
|
-
|
|
134
|
+
```bash
|
|
135
|
+
pnpm release:check
|
|
136
|
+
```
|
|
182
137
|
|
|
183
|
-
- `
|
|
184
|
-
- `Next` promotes into `Now`
|
|
185
|
-
- issue comments post successfully from Focus
|
|
186
|
-
- approval actions update Focus correctly when `paperclipApiBase` is configured
|
|
187
|
-
- resolved blocker comments downgrade stale `Now` items
|
|
188
|
-
- attached issue documents downgrade stale `share the memo/spec` review blockers into monitor-only follow-up
|
|
189
|
-
- deleted issue comments do not displace the latest visible operator signal
|
|
190
|
-
- clearing an agent error removes stale agent-error focus cards
|
|
191
|
-
- the active card exposes `Why now`
|
|
192
|
-
- expanded queued rows expose `Why next`
|
|
138
|
+
Use disposable host instances for native testing, not your normal Paperclip data. For registry-install tests, isolate the host process's `HOME` as well as `PAPERCLIP_HOME`: this host stores downloaded plugins in `$HOME/.paperclip/plugins`, independently of `--data-dir`. Do not force-uninstall an existing user installation to prepare a test.
|
|
193
139
|
|
|
194
140
|
## Links
|
|
195
141
|
|
|
196
|
-
-
|
|
197
|
-
-
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
-
|
|
201
|
-
- Aperture GitHub repo: [tomismeta/aperture](https://github.com/tomismeta/aperture)
|
|
202
|
-
- Aperture Core on npm: [`@tomismeta/aperture-core`](https://www.npmjs.com/package/@tomismeta/aperture-core)
|
|
203
|
-
- Paperclip GitHub repo: [paperclipai/paperclip](https://github.com/paperclipai/paperclip)
|
|
142
|
+
- [Paperclip Aperture on npm](https://www.npmjs.com/package/@tomismeta/paperclip-aperture)
|
|
143
|
+
- [Source repository](https://github.com/tomismeta/paperclip-aperture)
|
|
144
|
+
- [Contribution guide](https://github.com/tomismeta/paperclip-aperture/blob/main/CONTRIBUTING.md)
|
|
145
|
+
- [Aperture](https://github.com/tomismeta/aperture) · [Aperture Core on npm](https://www.npmjs.com/package/@tomismeta/aperture-core)
|
|
146
|
+
- [Paperclip](https://github.com/paperclipai/paperclip)
|
package/dist/manifest.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={id:"tomismeta.paperclip-aperture",apiVersion:1,version:"0.
|
|
1
|
+
var e={id:"tomismeta.paperclip-aperture",apiVersion:1,version:"0.6.0",minimumHostVersion:"2026.1023.0",displayName:"Paperclip Aperture",description:"The live attention layer for Paperclip, combining Aperture Core continuity with Paperclip-native operator policy.",author:"@tomismeta",categories:["automation","ui"],capabilities:["events.subscribe","agents.read","approvals.read","approvals.respond","issues.read","issue.relations.read","issue.comments.read","issue.comments.create","issue.comments.create_human_attributed","issue.documents.read","issue.interactions.read","issue.interactions.respond","activity.log.write","plugin.state.read","plugin.state.write","telemetry.track","ui.dashboardWidget.register","ui.page.register","ui.sidebar.register"],entrypoints:{worker:"./dist/worker.js",ui:"./dist/ui"},instanceConfigSchema:{type:"object",properties:{captureIssueLifecycle:{type:"boolean",title:"Capture Issue Lifecycle",default:!0,description:"Turn issue creation and update events into Aperture status signals."},captureRunFailures:{type:"boolean",title:"Capture Run Failures",default:!0,description:"Turn failed agent runs into high-salience attention events."}}},ui:{slots:[{type:"page",id:"attention-page",displayName:"Focus",exportName:"AttentionPage",routePath:"aperture"},{type:"sidebar",id:"attention-sidebar-link",displayName:"Focus",exportName:"AttentionSidebarLink"},{type:"dashboardWidget",id:"attention-widget",displayName:"Focus",exportName:"DashboardWidget"}]}},t=e;export{t as default};
|