Repository navigation
Epic: first-party exemplary agents → mature the platform → open to third parties (demand-gated) #58
Description
Epic. Children, demand-gated (all
deferred: no demand): #52 (sandboxed creator code — the
long pole) · #53 (curated publish + review) · #54 (automated pre-review safety scanning) ·
#55 (creator experience) · #56 (cost governance + abuse controls) · #57 (metering → payout-ready).
Gating prerequisite: #142 (trust gating before third parties may declare runtime/workflow
capabilities). Strategy constraint: #68 (focus bet — 10 external users on ONE runtime agent
before expanding).Each child said only "part of the open-to-third-party program" in prose; they now name this
issue, and this issue names them.
Strategy (updated 2026-08-01)
Near-term the operator builds the agents himself — first-party, but exemplary / reference-quality so future creators can see them and build similar. The agents mature the platform and seed the eventual catalog + docs.
Operating principle: build every agent the creator way — as declarative data through the platform path (capability registry, tool catalog, surfaces), never bespoke platform code. Every place an agent forces a platform code change = the platform's next feature.
Sequencing: do the cheap data-driven foundation now (#51 / PR #59 + declarative schema + a "view/fork source" example gallery). Defer the expensive marketplace machine — Tier-2 sandbox (#52), review (#53/#54), payouts (#57) — until one/two agents prove people will PAY (billing is currently deferred; PAS is the paid launch). This epic stays the north star; its expensive parts are demand-gated.
Turn PAGS from "first-party agents + curated fleet" into a creator marketplace. Target architecture is in `docs/agent-platform-strategy.md`; concrete program plan in `docs/third-party-agents-plan.md`.
Owner decisions (2026-08-01)
- Scope of first release: Tier-1 declarative config agents + Tier-2 sandboxed custom code.
- Trust model: curated review — creators submit; every agent/version is reviewed before it's listed.
- Monetization: free/beta first — open creation now; build payout plumbing behind a flag, launch payouts later.
The gate
Do not open publicly until the Tier-2 sandbox (#52) and cost governance (#56) are proven. Everything else can ship incrementally behind invite/curated.
Workstreams
- [3P] Tier-1: declarative agent schema + open tool catalog + shared runtime #51 — Tier-1: declarative agent schema + open tool catalog + shared runtime
- [3P] Tier-2: sandboxed creator code via Dynamic Workers (CRITICAL PATH) #52 — Tier-2: sandboxed creator code via Dynamic Workers (critical path)
- [3P] Curated publish + review pipeline (submission → review → versioned listing) #53 — Curated publish + review pipeline
- [3P] Automated pre-review safety scanning #54 — Automated pre-review safety scanning
- [3P] Creator experience: onboarding + authoring UI + Coder flywheel #55 — Creator experience: onboarding + authoring UI + Coder flywheel
- [3P] Cost governance & abuse controls (gates the public open) #56 — Cost governance & abuse controls (gates the public open)
- [3P] Metering → payout-ready (payouts built behind a flag, launch deferred) #57 — Metering → payout-ready (payouts behind a flag)
Phasing
- Phase 0 — foundation (partly in flight): admin access-control ([Admin] Foundation: access control gating + admin-action audit log #28), metering ([Admin][API] Meter platform-paid AI into the ledger (embeddings/summaries/translation) #44), usage/spend + kill switch ([Admin][UI] Usage & Spending dashboard (+ platform-AI kill switch) #39/[Admin][API] Runtime kill switch for platform-paid AI (platform_settings override) #46), moderation UI ([Admin][UI] Moderation controls + admin audit-log viewer #41). The safety net that must exist first.
- Phase 1 — Tier-1 to invited creators: [3P] Tier-1: declarative agent schema + open tool catalog + shared runtime #51 + [3P] Curated publish + review pipeline (submission → review → versioned listing) #53 + [3P] Creator experience: onboarding + authoring UI + Coder flywheel #55 (config-only authoring, curated). Dogfood by migrating repo-chat onto the formal schema.
- Phase 2 — Tier-2 code (the hard part): [3P] Tier-2: sandboxed creator code via Dynamic Workers (CRITICAL PATH) #52 + [3P] Automated pre-review safety scanning #54 + [3P] Cost governance & abuse controls (gates the public open) #56. Red-team the sandbox before any third party touches it.
- Phase 3 — widen + monetize: loosen curation as guardrails mature; flip payouts ([3P] Metering → payout-ready (payouts built behind a flag, launch deferred) #57).
Prereqs already true
Tenant isolation, envelope crypto, SSRF guard, MCP scopes, per-instance DO isolation (see `SECURITY.md`) — the security floor Tier-2 builds on.
Activity
docs: program plan for opening PAGS to third-party agent creators (#58)
[-]Epic: open ProAgentStore to third-party agent creators[/-][+]Epic: first-party exemplary agents → mature the platform → open to third parties (demand-gated)[/+]feat(agents): declarative tool catalog + per-agent tool allowlist (#51)
feat(repo-chat): declare tools as data — first exemplar of the creato…
feat(agents): formal declarative agent-definition schema (#51)
serge-ivo commentedon Aug 1, 2026
Platform-capability gaps surfaced by the lead-finder (2026-08-02) — the code-agent, configure-it-yourself story:
Motivating bug (agent repo): ProAgentStore/small-business-website-lead-finder#1 — the sweep and the PAGS collection are two disconnected stores.
feat(agents): wire declarative capabilities through create + update (#…
serge-ivo commentedon Aug 3, 2026
Reconciliation (2026-08-03): the downstream tickets #52–#57 are DEMAND-GATED, not ready work. Per #68 ("Focus bet — 10 external users on ONE runtime agent before expanding"), the third-party marketplace build is deferred until a first-party agent proves paying demand. #52 (Tier-2 sandbox), #53/#54 (review pipeline), #55 (authoring UI), #56 (cost governance), #57 (payouts) should be treated as parked phase-2/3 scope, not an actionable backlog. Filing them in detail up front was premature; they stay open as the map, but nothing here is "ready" until #68's gate is met.
feat(coder2): declare the Coder as data — two templates, no bespoke c…
docs(api): make the OpenAPI spec state its own scope, and enforce it (#…
feat(agents): a browser agent that cannot click Pay is one you can po…
fix(capabilities): the Workflow picker is served from the table the p…
fix(agents): the Coders declare the pull-request tools #401 shipped, …
feat(tools): a tool the platform provides is reachable by someone, or…
fix(agents): publishing is the whole public gate, because the second …
fix(pipelines): fan_out says when it stopped at the page cap with a l…
serge-ivo commentedon Aug 18, 2026
Re-audit 2026-08-18: the gate is unchanged, Phase 1 is done, and the phasing is now wrong in one specific way
Read-only. Everything below is measured today against production or read on
origin/main@6ceec4f.The gate, re-measured
GET /v1/admin/usage/external?days=30, 2026-08-18:{"externalUsers":0,"byAgent":[],"totals":{"calls":0,"valueMicros":0,"chargedMicros":0}, "operator":{"users":1,"calls":6503,"valueMicros":10588090918,"chargedMicros":53553393}, "operatorUnknown":false}External users: still 0. Calls: still 0. Operator traffic has grown 2.3× since the 2026-08-06 reading (2,782 → 6,503 calls; $40.92 estimated → $53.55 actually charged).
operatorUnknown:false, so this is a measurement and not a default — and it is a sounder measurement than the 08-06 one, because #438's SQL guard found and fixed ano such column: emailthat had been silently throwing insideoperatorUserIdssince the endpoint was written (0f274d2). The number the bet is scored against was read through a broken query when it was first quoted; it is not now.So the demand gate holds, and the
deferred: no demandlabelling on #51–#57, #75 and #142 is still correct as of today. Nothing in this comment argues for un-gating anything.Phase 1 is not "partly in flight" — it is done, and the epic's own workstream list no longer describes it
The body says "Phase 1 — Tier-1 to invited creators: #51 + #53 + #55 (config-only authoring, curated). Dogfood by migrating repo-chat onto the formal schema." Measured on
main:sanitizeDeclaredCapabilities(lib/agent-capabilities.ts:394) +sanitizeSettingsSchema+lintAgentClaims, wired through create AND update (#141)TOOL_CATALOG+capabilities.tools(#59);CONNECTOR_CONSTRAINTS(#404) now carries two keys (terminal,tmux,lib/surface-options.ts:214,235), not one;AgentSurfaceis still a closed unionCUSTOM_SURFACES_ENABLEDunset in production; #186's fail-closed gateAgentDOinto the shared runtimeworkflow:nulland run onAGENT_LOOP;site-builderandportal-watchare pure rowsrepo-chatonto the formal schema0050And the vocabulary work #51's own 2026-08-03 comment handed to #84 has since landed: declarative connectors shipped (
lib/connectors/manifest.ts, 307 lines,compileConnector+sanitizeConnectorManifest, #143/#145 both closed). A connector is now a reviewed JSON manifest.What this means for the epic: the phase that was gated on readiness is finished, and the phases still gated on demand (#52–#57) are untouched. That is the correct outcome, but the body reads as though Phase 1 were in progress, which will mislead the next person who opens this epic to look for work.
The one place the plan is now wrong rather than merely stale
The body's Phase 2 is "#52 + #54 + #56. Red-team the sandbox before any third party touches it." Two things have happened since that change what #52 would have to sandbox:
The
workflowenum question was reassessed and reversed. [coordination][deferred] Retire the workflow closed enum → declarative behavior #160's 2026-08-07 analysis established thatworkflowdoes not name a behaviour — it names which physical executor the platform must reach, and that the run may park itself mid-flight.workflows/pipeline-run.ts:90is a linear walk with no back-edge and nostep.sleep, so the declarative layer cannot express the three runtime brains at all. Its conclusion was "reframe, don't retire". That is a correct finding and it makes Tier-1 a permanently smaller box than this epic assumed: a Tier-1 creator can declare tools, connectors, pipelines, settings and behaviour, and can never declare a resumable machine-holding loop.The trust primitive [browser][trust] Trust & permission model for browser agents (design prerequisite) #75 assumed it would have to build now exists in part.
CONNECTOR_CONSTRAINTSis the creator-declared-ceiling / subscriber-binds-within-it mechanism, enforced server-side atrunRegistryTool. [browser][trust] Trust & permission model for browser agents (design prerequisite) #75's own 2026-08-08 comment says this. But it covers two connectors, andgithub— which every Coder-family agent holds write tools on, across 16 App installations on this account — has no entry, so itsrepoargument is bounded by the prompt and nothing else.So the honest Phase 2 is not "sandbox arbitrary creator code". It is: finish the ceiling vocabulary for the connectors that already have unbounded arguments, before anything untrusted declares them. That is #142's substance, it is cheap, it is useful to first-party agents today (0123's header names the missing
githubceiling as the reason it would not grant the Operator GitHub), and it is a prerequisite Tier-2 cannot be red-teamed without.What I would change in this epic, and what I would not
Not change: the demand gate, the
deferred: no demandlabels, or the decision to file #52–#57 as a map rather than a backlog. All three are working — they are why this board is not carrying seven phantom epics.Change — three edits, none of which un-gates anything:
githubconnector specifically, it is a normal ticket that would be worth doing with zero external users.Verified vs inferred
Verified: the production usage payload;
manifest.ts,agent-capabilities.ts:394,surface-options.ts:214/235onmain; the closed states of #59/#61/#141/#143/#145/#84/#94; the published catalog (16 agents); migration0050. Inferred: nothing load-bearing. Not attempted: I did not create, publish or modify any agent, and I set no label.serge-ivo commentedon Aug 18, 2026
Correction to my comment above: I wrote "six of the sixteen published agents declare
workflow:null" — that borrowed #160's denominator (seeded agents) and applied it to the published catalog. Measured directly just now againstGET /v1/agents/my/agents: 11 of the 15 owner-owned published agents declare no workflow at all; 4 declare one (coder-repo,portal-watch,job-application-assistant,facebook-friend-confirmer). The point stands and is stronger than I put it — the shared runtime carries the large majority of the catalog.fix(capabilities): a workflow that needs hands is refused without the…
fix(seed): the propagation guard watches every instance-copied config…
serge-ivo commentedon Aug 23, 2026
Epic — NOT-ADDRESSED by
49a1bacc, which is one step inside it. Re-verified 2026-08-23, staying open.Delivered-work audit.
49a1baccnamesepic #58and delivers a real slice — the Coder declared as data, two templates, no bespoke code — but this epic's gate is third-party creators, and the two things that gate them are unchanged:workers/api/src/lib/agent-capabilities.ts:101+:486still validateworkflowagainst a closedAgentWorkflowenum, with:498/:500handing outJOB_APPLY/CODING_SESSION. That is [coordination][deferred] Retire the workflow closed enum → declarative behavior #160, re-verified today.deferred: no demand— correctly, sinceGET /v1/admin/usage/externalread live today returnsexternalUsers: 0against 6,556 operator calls ([Strategy] Focus bet — 10 external users on ONE runtime agent before expanding #68).The half of this epic that HAS been delivered is the platform-maturing half, and it is substantial: the connector/tool registry (#84–#99), declarative pipelines and the delivery outbox,
capabilities.toolsas an authoritative allowlist validated on create AND update (#141), capability constraints (#404/#441), write consent (#90), and three catalog agents built "the creator way" with no monorepo code. So the demand-gate, not the platform, is what this epic is now waiting on — which is exactly what its title says.No action. Recorded so the next delivered-work audit does not re-open the question of whether
49a1baccclosed it.serge-ivo commentedon Oct 14, 2026
Owner decision on 2026-10-14: retire/defer marketplace work for now. Do not start third-party marketplace expansion, creator-code sandbox, public creator submission/review, payout/metering, or related 3P launch work from this ticket set. Current focus is making first-party runtime agents and core PAGS flows work coherently for real users. Reopen/reactivate marketplace work only with a new explicit owner decision.
proagentstore commentedon Oct 23, 2026
❓ The coder stopped on a question: Issue #58 is an open epic with no direct checkboxes. All sub-issues are either done (#51) or deferred (#52–57, #142). The only non-deferred code gap the audit calls out is a missing
githubconnector ceiling inCONNECTOR_CONSTRAINTS(onlyterminalandtmuxhave entries). How should I proceed?Options:
Implement the github connector ceiling now; commit with 'closes #58'·Implement the github connector ceiling; but use 'refs #58' (don't close it)·Don't implement anything — close #58 with a comment only (no code change)·Skip #58 entirely — mark it failed/not-closeable and move onWhy it asks: Determines whether to write code and how to tag the commit message for #58.
Answer it on the run's card or with
answer_instance_input. The run is parked until it is answered — answer any time; it continues from where it stopped.proagentstore commentedon Oct 23, 2026
Owner decision (Serge, 24 Oct 2026): skip all marketplace and payout work. The parked run for this issue was closed without changes; nothing was implemented. Issue stays deferred.
proagentstore commentedon Oct 30, 2026
Auto-pickup flagged this issue for review (#1407). A run reported it done, but no delivered commit could be found for the run that finished it — labelled
needs-humanso it is not retried automatically; remove the label once it is confirmed resolved (or reopen the work) and it becomes eligible again.