loki-mode 9.17.2 → 9.18.2
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/SKILL.md +2 -2
- package/VERSION +1 -1
- package/autonomy/loki +439 -2
- package/autonomy/run.sh +215 -11
- package/autonomy/trigger-server.py +518 -17
- package/bin/loki +7 -1
- package/dashboard/__init__.py +1 -1
- package/docs/COMPETITIVE-SCORECARD.md +38 -0
- package/docs/COMPETITOR-DEPLOYMENT-MODELS.md +475 -0
- package/docs/DEPLOYMENT.md +542 -0
- package/docs/STALE-STATE-AUDIT.md +174 -0
- package/docs/VERIFICATION-COST.md +31 -1
- package/loki-ts/dist/loki.js +2 -2
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
package/bin/loki
CHANGED
|
@@ -216,8 +216,14 @@ fi
|
|
|
216
216
|
# we never disclose for an egress that will not happen. This mirrors the
|
|
217
217
|
# cli_command sites below. No arguments are read, so nothing user-authored can
|
|
218
218
|
# reach the payload.
|
|
219
|
+
#
|
|
220
|
+
# `quickstart` and `demo` are here because they are the two commands `loki
|
|
221
|
+
# doctor` actually RECOMMENDS as a first build. Without them the funnel missed
|
|
222
|
+
# every user who followed the product's own advice, which is precisely the
|
|
223
|
+
# population whose drop-off this measures. Both are already in the
|
|
224
|
+
# _loki_known_command allowlist, so `entry=` stays a bounded enum.
|
|
219
225
|
case "${1:-}" in
|
|
220
|
-
start|run|quick)
|
|
226
|
+
start|run|quick|quickstart|demo)
|
|
221
227
|
if command -v curl &>/dev/null && [ -f "$REPO_ROOT/autonomy/telemetry.sh" ]; then
|
|
222
228
|
if ( SCRIPT_DIR="$REPO_ROOT/autonomy"; source "$SCRIPT_DIR/telemetry.sh" 2>/dev/null \
|
|
223
229
|
&& declare -f _loki_analytics_enabled >/dev/null 2>&1 && _loki_analytics_enabled \
|
package/dashboard/__init__.py
CHANGED
|
@@ -359,6 +359,44 @@ Cleanup after reproducing:
|
|
|
359
359
|
rm -rf /tmp/loki-verify-scorecard /tmp/loki-verify-sc2 /tmp/loki-verify-scorecard.err
|
|
360
360
|
```
|
|
361
361
|
|
|
362
|
+
## 3b. Deployment and self-hosting (added 2026-08-08)
|
|
363
|
+
|
|
364
|
+
Sourced from vendor documentation on 2026-08-08. Full quotes, URLs and the
|
|
365
|
+
per-vendor UNKNOWN list are in `docs/COMPETITOR-DEPLOYMENT-MODELS.md`. Same
|
|
366
|
+
rules as the rest of this file: `[sourced]` means a page was actually fetched,
|
|
367
|
+
UNKNOWN means we could not establish it.
|
|
368
|
+
|
|
369
|
+
| Product | Self-hosting | Inference routing | Output-verification artifact |
|
|
370
|
+
|---|---|---|---|
|
|
371
|
+
| Factory AI | Yes, incl. airgapped `[sourced]` | Customer-controlled, BYOK `[sourced]` | Not documented publicly |
|
|
372
|
+
| Claude Code (self-hosted envs) | Execution only; control plane stays Anthropic-hosted `[sourced]` | Pinned to Anthropic; not routable to Bedrock/Vertex/Foundry/gateway `[sourced]` | Not documented publicly |
|
|
373
|
+
| Devin | No; prior self-hosted offering in maintenance mode since 2025-05-12 `[sourced]` | UNKNOWN | Not documented publicly |
|
|
374
|
+
| Replit Agent | Not documented publicly | Vendor-pinned `[sourced]` | Not documented publicly |
|
|
375
|
+
| 8090 | UNKNOWN | UNKNOWN | Not documented publicly |
|
|
376
|
+
| Loki Mode | Yes, control plane included `[measured]` | Provider-agnostic `[measured]` | `loki proof verify` `[measured]` |
|
|
377
|
+
|
|
378
|
+
**This CORRECTS a claim we were making internally.** "Fully self-hosted and
|
|
379
|
+
provider-agnostic" was treated as the differentiator. It is not: Factory AI
|
|
380
|
+
documents airgapped installs with customer-controlled model routing, so that
|
|
381
|
+
column does not separate us from them. Recording the correction rather than
|
|
382
|
+
quietly dropping it, because a scorecard that only ever moves in our favour is
|
|
383
|
+
not evidence.
|
|
384
|
+
|
|
385
|
+
The column that does separate is the last one, and it is the weakest kind of
|
|
386
|
+
finding: **absence from documentation is not absence from a product.** The
|
|
387
|
+
honest statement is "not documented publicly as of 2026-08-08", never "does not
|
|
388
|
+
exist". A vendor may ship this behind a login, in an enterprise tier, or simply
|
|
389
|
+
undocumented.
|
|
390
|
+
|
|
391
|
+
Loki's two `[measured]` cells are reproducible:
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
grep -c "api.anthropic.com" autonomy/*.sh providers/*.sh # 1, inside a per-provider case
|
|
395
|
+
ls providers/*.sh # claude, codex, aider, cline, opencode
|
|
396
|
+
bash tests/test-competitor-verify-surface.sh # the installed-CLI audit
|
|
397
|
+
loki proof verify <id> # re-hash a receipt, exit 1 on tamper
|
|
398
|
+
```
|
|
399
|
+
|
|
362
400
|
## 4. What we do NOT know
|
|
363
401
|
|
|
364
402
|
This section is mandatory and is not empty.
|
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
# Competitor Deployment Models: Trigger, Self-Hosting, Verification
|
|
2
|
+
|
|
3
|
+
Research date: 2026-08-08. All claims below carry a source URL and were accessed
|
|
4
|
+
on 2026-08-08 unless otherwise stated.
|
|
5
|
+
|
|
6
|
+
Scope: for each vendor, (a) how a build or agent run is triggered in a deployed
|
|
7
|
+
team setting, (b) whether it can run inside a customer's own network and what
|
|
8
|
+
exactly moves there, and (c) whether the product exposes any artifact that
|
|
9
|
+
verifies its own output.
|
|
10
|
+
|
|
11
|
+
This document reports what each vendor documents. It does not compare vendors
|
|
12
|
+
against each other or against any product of ours, and does not rank them.
|
|
13
|
+
|
|
14
|
+
## Summary table
|
|
15
|
+
|
|
16
|
+
| Vendor | Trigger | Self-hosting | Inference routing | Verification surface |
|
|
17
|
+
|---|---|---|---|---|
|
|
18
|
+
| Factory AI | CLI (`droid`), headless `droid exec`, GitHub Action on `@droid` comments, Slack, Linear, web/desktop app | Yes, documented: cloud-managed, hybrid, and fully airgapped patterns | Customer-controlled: "Factory does not need to broker model access"; BYOK with custom `baseUrl` | Not documented publicly. `droid exec` emits JSON with a `session_id`; no receipt or attestation language on the page |
|
|
19
|
+
| Cognition / Devin | Slack `@Devin` mention and slash commands, GitHub PR comments, REST API `POST /v3/organizations/{org}/sessions`, web UI | No. Two Cognition-operated models only (Enterprise Cloud, Customer Dedicated single-tenant VPC). Prior self-hosted offering placed in maintenance mode 2025-05-12 | UNKNOWN, not documented publicly | Not documented publicly |
|
|
20
|
+
| Replit Agent | Web/app UI chat, Slack `@Replit` mention, MCP server tool `create_app_from_prompt` | Not documented publicly. Marketing page mentions "Dedicated GCP project, single-tenant option" | Vendor-pinned. Agent modes (Lite/Economy/Power), no documented model selection or routing | Not documented publicly |
|
|
21
|
+
| 8090 | UNKNOWN. Docs describe authoring Requirements/Blueprints/Work Orders; Agent Skill is invoked from a third-party coding agent (e.g. Cursor `/software-factory`) | UNKNOWN, no public docs on self-hosting as of 2026-08-08 | UNKNOWN. Platform is agent-facing; which model executes is not documented | Not documented publicly. A "Validator" module is documented, but it converts user feedback into tasks, not output attestation |
|
|
22
|
+
|
|
23
|
+
## Factory AI
|
|
24
|
+
|
|
25
|
+
Docs root: https://docs.factory.ai/ (accessed 2026-08-08)
|
|
26
|
+
|
|
27
|
+
### (a) Trigger
|
|
28
|
+
|
|
29
|
+
Multiple documented surfaces.
|
|
30
|
+
|
|
31
|
+
Headless CLI, https://docs.factory.ai/droid-exec/overview (accessed 2026-08-08):
|
|
32
|
+
|
|
33
|
+
> "Factory's headless execution mode designed for automation workflows. Unlike
|
|
34
|
+
> the interactive CLI, `droid exec` runs as a one-shot command that completes a
|
|
35
|
+
> task and exits, making it ideal for CI/CD pipelines, shell scripts, and batch
|
|
36
|
+
> processing."
|
|
37
|
+
|
|
38
|
+
Invocation is `droid exec [options] [prompt]`, with `-f prompt.md` for file
|
|
39
|
+
input, `--auto <level>` for autonomy, and `--session-id` for continuation.
|
|
40
|
+
Output formats documented: text (default), JSON, and raw JSON-RPC.
|
|
41
|
+
|
|
42
|
+
GitHub, https://github.com/Factory-AI/droid-action (official `Factory-AI` org,
|
|
43
|
+
accessed 2026-08-08). The action triggers on `issue_comment` (created),
|
|
44
|
+
`pull_request_review_comment` (created), `pull_request_review` (submitted),
|
|
45
|
+
`pull_request` (opened, edited), and `issues` (opened, assigned). It scans
|
|
46
|
+
issue comments, PR descriptions, and review comments for `@droid` commands.
|
|
47
|
+
Documented commands include `@droid fill`, `@droid review`, `@droid security`,
|
|
48
|
+
and `@droid security --full`. Of `@droid review` the repo says it "performs an
|
|
49
|
+
automated code review, surfaces potential bugs, and leaves inline comments
|
|
50
|
+
directly on the diff".
|
|
51
|
+
|
|
52
|
+
Slack and Linear are documented as integration surfaces for delegating tasks
|
|
53
|
+
(https://docs.factory.ai/changelog/1-8, accessed 2026-08-08). Interactive use
|
|
54
|
+
is via the `droid` CLI, the Factory desktop app, and app.factory.ai.
|
|
55
|
+
|
|
56
|
+
### (b) Self-hosting
|
|
57
|
+
|
|
58
|
+
Documented in detail, and the strongest self-hosting story of the four.
|
|
59
|
+
https://docs.factory.ai/enterprise/network-and-deployment (accessed 2026-08-08)
|
|
60
|
+
describes three patterns: cloud-managed, hybrid, and fully airgapped.
|
|
61
|
+
|
|
62
|
+
On the airgapped pattern, verbatim:
|
|
63
|
+
|
|
64
|
+
> "Factory cloud is not reachable at runtime; binaries and configuration are
|
|
65
|
+
> imported through your own artifact repositories or offline processes."
|
|
66
|
+
|
|
67
|
+
In the hybrid pattern, droid runs within customer infrastructure (VMs,
|
|
68
|
+
containers, CI runners, remote dev environments) with Factory cloud used
|
|
69
|
+
optionally for coordination. In the cloud-managed pattern, droid runs on
|
|
70
|
+
developer machines and build infrastructure while Factory cloud provides
|
|
71
|
+
orchestration; cloud-managed deployments reach `*.factory.ai`.
|
|
72
|
+
|
|
73
|
+
So what moves into the customer network is execution in all patterns, and in
|
|
74
|
+
the airgapped pattern the vendor control plane is out of the runtime path
|
|
75
|
+
entirely.
|
|
76
|
+
|
|
77
|
+
### (b, cont.) Inference routing
|
|
78
|
+
|
|
79
|
+
Customer-routable. Verbatim from the same page:
|
|
80
|
+
|
|
81
|
+
> "LLM traffic can still be routed through your own gateways and providers;
|
|
82
|
+
> Factory does not need to broker model access."
|
|
83
|
+
|
|
84
|
+
BYOK is separately documented at https://docs.factory.ai/cli/byok/overview
|
|
85
|
+
(accessed 2026-08-08):
|
|
86
|
+
|
|
87
|
+
> "Your API keys remain local and are not uploaded to Factory servers."
|
|
88
|
+
|
|
89
|
+
and
|
|
90
|
+
|
|
91
|
+
> "Use your own OpenAI or Anthropic keys, connect to any open source model
|
|
92
|
+
> providers, or run models locally on your hardware."
|
|
93
|
+
|
|
94
|
+
Supported shapes are the Anthropic Messages API, the OpenAI Responses API, and
|
|
95
|
+
the OpenAI Chat Completions API, with a configurable `baseUrl`; the page names
|
|
96
|
+
OpenRouter, Fireworks, Together AI, Ollama, and vLLM among supported providers.
|
|
97
|
+
|
|
98
|
+
### (c) Verification
|
|
99
|
+
|
|
100
|
+
Not documented publicly. A targeted verbatim query against
|
|
101
|
+
https://docs.factory.ai/droid-exec/overview for any mention of receipt,
|
|
102
|
+
attestation, signature, signed record, audit log, provenance, or verification
|
|
103
|
+
of the agent's own output returned NOT PRESENT (accessed 2026-08-08).
|
|
104
|
+
|
|
105
|
+
What does exist is execution metadata, not attestation: JSON output carries a
|
|
106
|
+
`session_id` field, and the docs note that for automated pipelines you can
|
|
107
|
+
direct the agent to write specific artifacts such as JSON files, CSV reports,
|
|
108
|
+
or markdown documents. Those are agent-authored outputs, not independent
|
|
109
|
+
records of what the agent did.
|
|
110
|
+
|
|
111
|
+
Note: `@droid review` and `@droid security` verify *the repository's* code.
|
|
112
|
+
That is a different thing from the product verifying its own output, which is
|
|
113
|
+
what (c) asks about.
|
|
114
|
+
|
|
115
|
+
## Cognition / Devin
|
|
116
|
+
|
|
117
|
+
### (a) Trigger
|
|
118
|
+
|
|
119
|
+
Slack, https://docs.devin.ai/integrations/slack (accessed 2026-08-08):
|
|
120
|
+
|
|
121
|
+
> "Tag **@Devin** in Slack as soon as bugs, feature requests, and questions
|
|
122
|
+
> come in."
|
|
123
|
+
|
|
124
|
+
Also documented on that page: slash commands `/ask-devin [your question]` and
|
|
125
|
+
`/dana [your data question]`; Slack message shortcuts via right-click or the
|
|
126
|
+
overflow menu ("Ask Devin about this", "Create a new session"); and bang
|
|
127
|
+
keywords `!ask`, `!deep`, `!fast`, `!ultra` placed anywhere in a message.
|
|
128
|
+
|
|
129
|
+
REST API, https://docs.devin.ai/api-reference/overview (accessed 2026-08-08).
|
|
130
|
+
Sessions are created with `POST https://api.devin.ai/v3/organizations/$DEVIN_ORG_ID/sessions`,
|
|
131
|
+
authenticated with a service user's `cog_`-prefixed API key. The page states:
|
|
132
|
+
|
|
133
|
+
> "The Devin API enables you to integrate Devin into your applications,
|
|
134
|
+
> automate workflows, and build powerful tools."
|
|
135
|
+
|
|
136
|
+
Webhooks are not documented on the API overview page. Cognition's marketing
|
|
137
|
+
blog describes event-driven triggering (on a failed build, on an assigned
|
|
138
|
+
Linear ticket) and GitHub Actions workflows that call the API on PR events,
|
|
139
|
+
but that is marketing and example-code copy rather than a documented webhook
|
|
140
|
+
product surface. Treated here as: API plus caller-supplied glue.
|
|
141
|
+
|
|
142
|
+
### (b) Self-hosting
|
|
143
|
+
|
|
144
|
+
No. This is the clearest negative finding in the set, and it is a change from
|
|
145
|
+
an earlier state.
|
|
146
|
+
|
|
147
|
+
https://docs.devin.ai/enterprise/deployment/overview (accessed 2026-08-08)
|
|
148
|
+
documents two options, both Cognition-operated. Verbatim:
|
|
149
|
+
|
|
150
|
+
> "In the Enterprise Cloud model, both Devin's brain and Devbox run in
|
|
151
|
+
> Cognition's secure, multi-tenant cloud."
|
|
152
|
+
|
|
153
|
+
> "In the Customer Dedicated Deployment model, Cognition hosts Devin in an
|
|
154
|
+
> auto-scaling, customer-isolated environment within a single-tenant VPC."
|
|
155
|
+
|
|
156
|
+
And decisively on the control plane, verbatim:
|
|
157
|
+
|
|
158
|
+
> "The Brain: A stateless, cloud-based service that powers Devin's
|
|
159
|
+
> intelligence, always residing in Cognition's Cloud."
|
|
160
|
+
|
|
161
|
+
Customer Dedicated is therefore vendor-hosted single-tenancy, not customer
|
|
162
|
+
self-hosting: Cognition runs it, and the Brain never leaves Cognition's cloud.
|
|
163
|
+
The page documents no self-hosted option.
|
|
164
|
+
|
|
165
|
+
A prior self-hosted offering was discontinued.
|
|
166
|
+
https://devin.ai/blog/self-hosted-deployment-maintenance-mode (dated
|
|
167
|
+
2025-05-12, accessed 2026-08-08), verbatim:
|
|
168
|
+
|
|
169
|
+
> "By maintenance mode, we will of course continue to support our current
|
|
170
|
+
> self-hosted customers until the end of their term and provide great financial
|
|
171
|
+
> incentives to switch to and adopt our other deployment offerings, but we are
|
|
172
|
+
> no longer investing in feature development or bringing on new customers to
|
|
173
|
+
> the self-hosted platform."
|
|
174
|
+
|
|
175
|
+
Caveat on attribution, recorded deliberately: this post sits on devin.ai and is
|
|
176
|
+
Devin-titled, but it links to a Windsurf blog post ("see Wave 8"), and Cognition
|
|
177
|
+
acquired Windsurf. On direct query the page does not explicitly name which
|
|
178
|
+
product the self-hosted offering belongs to. The quoted sentence is accurate as
|
|
179
|
+
Cognition's position on its self-hosted platform; readers should not assume it
|
|
180
|
+
names the Devin product specifically. The Devin-specific conclusion above rests
|
|
181
|
+
on the deployment docs, not on this post.
|
|
182
|
+
|
|
183
|
+
### (b, cont.) Inference routing
|
|
184
|
+
|
|
185
|
+
UNKNOWN. The deployment docs describe Devin as a compound AI system but do not
|
|
186
|
+
disclose the inference provider, and document no customer-side model routing,
|
|
187
|
+
gateway, or BYOK option. Not documented publicly as of 2026-08-08.
|
|
188
|
+
|
|
189
|
+
### (c) Verification
|
|
190
|
+
|
|
191
|
+
Not documented publicly as of 2026-08-08. No receipt, attestation, or signed
|
|
192
|
+
record surface was found in the API reference, deployment docs, or Slack
|
|
193
|
+
integration docs.
|
|
194
|
+
|
|
195
|
+
## Replit Agent
|
|
196
|
+
|
|
197
|
+
### (a) Trigger
|
|
198
|
+
|
|
199
|
+
Three documented surfaces. The primary one is UI chat, but Replit is not
|
|
200
|
+
UI-only, and an earlier reading of the Agent overview page alone would have
|
|
201
|
+
suggested it was.
|
|
202
|
+
|
|
203
|
+
Web/app UI, https://docs.replit.com/features/agent/overview (accessed
|
|
204
|
+
2026-08-08): "In the Project Editor, just start chatting."
|
|
205
|
+
|
|
206
|
+
Slack, https://docs.replit.com/features/platforms/slack (accessed 2026-08-08),
|
|
207
|
+
verbatim:
|
|
208
|
+
|
|
209
|
+
> "Mention @Replit in Slack to turn a prompt into a working prototype"
|
|
210
|
+
|
|
211
|
+
> "Once it's installed, mention **@Replit** in any channel to start building."
|
|
212
|
+
|
|
213
|
+
MCP server, https://docs.replit.com/platforms/mcp-server (accessed 2026-08-08).
|
|
214
|
+
This is the programmatic trigger. Documented tools:
|
|
215
|
+
|
|
216
|
+
- `create_app_from_prompt` — "Create a new Replit App from a natural language
|
|
217
|
+
description. Replit Agent immediately starts building the app."
|
|
218
|
+
- `update_app_using_prompt` — "Make changes to an existing Replit App."
|
|
219
|
+
- `ask_question` — "Ask Replit Agent about the current app."
|
|
220
|
+
|
|
221
|
+
An Enterprise Admin API exists
|
|
222
|
+
(https://docs.replit.com/teams/admin-api) but is scoped to account usage,
|
|
223
|
+
workspaces, members, and projects, not to starting Agent runs.
|
|
224
|
+
|
|
225
|
+
No GitHub-webhook or PR-comment trigger is documented.
|
|
226
|
+
|
|
227
|
+
### (b) Self-hosting
|
|
228
|
+
|
|
229
|
+
Not documented publicly as of 2026-08-08. A category scan of Replit's full
|
|
230
|
+
documentation index (https://docs.replit.com/llms.txt, accessed 2026-08-08)
|
|
231
|
+
returned NOT PRESENT for self-hosting, on-premise, and VPC. Absence from the
|
|
232
|
+
index is strong evidence of absence from the documentation, though not proof of
|
|
233
|
+
absence from the product.
|
|
234
|
+
|
|
235
|
+
The only adjacent datum is marketing copy, not technical documentation:
|
|
236
|
+
https://replit.com/enterprise (accessed 2026-08-08) lists "Dedicated GCP
|
|
237
|
+
project, single-tenant option" under a sales-assisted Enterprise plan. That
|
|
238
|
+
phrase does not establish where the deployment runs or who operates it, and the
|
|
239
|
+
page does not clarify. Recorded as marketing copy, not a documented deployment
|
|
240
|
+
model.
|
|
241
|
+
|
|
242
|
+
### (b, cont.) Inference routing
|
|
243
|
+
|
|
244
|
+
Vendor-pinned, as far as the docs go. The Agent overview documents modes (Lite,
|
|
245
|
+
Economy, Power) and a Turbo toggle for Power, which concern performance and
|
|
246
|
+
cost rather than model selection; no model choice or routing is documented.
|
|
247
|
+
|
|
248
|
+
One page is easy to misread here:
|
|
249
|
+
https://docs.replit.com/features/integrations/replit-ai-integrations describes
|
|
250
|
+
using "AI models from OpenAI, Anthropic, Google, and more without needing your
|
|
251
|
+
own API key". That is about models available to *the app being built* through
|
|
252
|
+
Replit's integrations. It is not about routing the Agent's own inference, and
|
|
253
|
+
it points the opposite way from BYO-inference: Replit supplies the key.
|
|
254
|
+
|
|
255
|
+
### (c) Verification
|
|
256
|
+
|
|
257
|
+
Not documented publicly as of 2026-08-08.
|
|
258
|
+
|
|
259
|
+
## 8090
|
|
260
|
+
|
|
261
|
+
8090 Solutions Inc., product "Software Factory". Docs at
|
|
262
|
+
https://www.8090.ai/docs/general/introduction (accessed 2026-08-08).
|
|
263
|
+
|
|
264
|
+
This vendor has the thinnest public technical documentation of the four, and
|
|
265
|
+
most of what circulates about it is press coverage of its 135M USD Series A
|
|
266
|
+
rather than product docs. Findings are correspondingly limited.
|
|
267
|
+
|
|
268
|
+
### (a) Trigger
|
|
269
|
+
|
|
270
|
+
UNKNOWN as a build/agent-run trigger in the sense the question asks.
|
|
271
|
+
|
|
272
|
+
What is documented is a document-authoring workflow rather than a run trigger.
|
|
273
|
+
The docs describe modules: Requirements ("Create detailed PRDs capturing
|
|
274
|
+
requirements, features, and goals"), Blueprints (organizing features into a
|
|
275
|
+
hierarchy of Feature Nodes), Work Orders (generating tasks with
|
|
276
|
+
codebase-aware implementation plans), and Validator.
|
|
277
|
+
|
|
278
|
+
The one execution-adjacent surface is Agent Skill,
|
|
279
|
+
https://www.8090.ai/docs/opinions/agent-skill (accessed 2026-08-08):
|
|
280
|
+
|
|
281
|
+
> "Agent skills are modular bundles of instructions, scripts, and resources
|
|
282
|
+
> that an agent can load at runtime to perform specific tasks with the right
|
|
283
|
+
> procedures and context."
|
|
284
|
+
|
|
285
|
+
The page documents invoking it from Cursor with `/software-factory`, and notes
|
|
286
|
+
that for other agents the skill loads when Software Factory elements are
|
|
287
|
+
referenced in a prompt. On direct query, the page returned NOT PRESENT for both
|
|
288
|
+
"does the customer bring their own agent or model" and "how a build gets
|
|
289
|
+
triggered".
|
|
290
|
+
|
|
291
|
+
The shape this suggests, stated as inference and labeled as such, not as a
|
|
292
|
+
finding: 8090 appears to be a platform that third-party coding agents connect
|
|
293
|
+
*into*, rather than one that itself dispatches agent runs. Press coverage
|
|
294
|
+
(SiliconANGLE, 2026-06-29) says Software Factory "uses third-party AI agents to
|
|
295
|
+
turn user-created documents into code". That is journalism, not vendor
|
|
296
|
+
documentation, and it is recorded here only because the docs do not settle the
|
|
297
|
+
question.
|
|
298
|
+
|
|
299
|
+
No CLI, API, GitHub, or Slack trigger is documented publicly.
|
|
300
|
+
|
|
301
|
+
### (b) Self-hosting and inference routing
|
|
302
|
+
|
|
303
|
+
UNKNOWN, no public docs on self-hosting as of 2026-08-08. The documentation
|
|
304
|
+
navigation (General, Opinions, Raw Materials, Modules, Administration,
|
|
305
|
+
Resources) contains no deployment, architecture, security, or infrastructure
|
|
306
|
+
section. Inference routing is likewise undocumented; if the third-party-agent
|
|
307
|
+
model is accurate, the executing model would be whichever agent the customer
|
|
308
|
+
connects, but that is not documented and is not asserted here.
|
|
309
|
+
|
|
310
|
+
### (c) Verification
|
|
311
|
+
|
|
312
|
+
Not documented publicly as of 2026-08-08. The "Validator" module name is
|
|
313
|
+
suggestive but is documented as converting user feedback into actionable
|
|
314
|
+
development tasks, which is a feedback-intake function, not verification of the
|
|
315
|
+
product's own output.
|
|
316
|
+
|
|
317
|
+
## Anthropic Claude Code self-hosted (reference)
|
|
318
|
+
|
|
319
|
+
Source: https://code.claude.com/docs/en/self-hosted-environments (accessed
|
|
320
|
+
2026-08-08). This section was verified against the page rather than assumed.
|
|
321
|
+
|
|
322
|
+
### Trigger model
|
|
323
|
+
|
|
324
|
+
Sessions are started from Anthropic surfaces, then routed to customer compute.
|
|
325
|
+
Verbatim:
|
|
326
|
+
|
|
327
|
+
> "A cloud session is any session that runs somewhere other than the
|
|
328
|
+
> developer's machine: developers start them from claude.ai, the mobile and
|
|
329
|
+
> desktop apps, the terminal with `claude --cloud`, and scheduled routines, and
|
|
330
|
+
> by default they execute on Anthropic's infrastructure."
|
|
331
|
+
|
|
332
|
+
At session start the developer picks an environment. Verbatim:
|
|
333
|
+
|
|
334
|
+
> "When a developer starts a cloud session, the session-start UI shows an
|
|
335
|
+
> environment picker listing Anthropic-hosted environments alongside any your
|
|
336
|
+
> organization has created. If they choose yours, Anthropic's control plane
|
|
337
|
+
> places the session on your environment's queue, where a runner claims it,
|
|
338
|
+
> clones the repository the developer chose, and starts a Claude Code process
|
|
339
|
+
> on your host to run it."
|
|
340
|
+
|
|
341
|
+
Documented surfaces are Claude Code on the web, mobile and desktop apps,
|
|
342
|
+
scheduled routines, and the terminal via `claude --cloud` or a scripted
|
|
343
|
+
`--environment` dispatch. Claude Tag, Claude Security, and Code Review sessions
|
|
344
|
+
are documented as not routing to self-hosted environments yet.
|
|
345
|
+
|
|
346
|
+
### Control plane stays Anthropic-hosted, execution moves
|
|
347
|
+
|
|
348
|
+
Verbatim, and this is the sentence that establishes it:
|
|
349
|
+
|
|
350
|
+
> "Session orchestration, queueing, and the claude.ai interface remain
|
|
351
|
+
> Anthropic-hosted: a self-hosted environment moves session execution into your
|
|
352
|
+
> network, not the control plane."
|
|
353
|
+
|
|
354
|
+
Supporting detail, verbatim:
|
|
355
|
+
|
|
356
|
+
> "Repository checkouts, build artifacts, secrets, and any files a session
|
|
357
|
+
> creates or modifies stay on the machines you provision. The conversation
|
|
358
|
+
> itself, including prompts, responses, and tool results, goes to
|
|
359
|
+
> `api.anthropic.com` for model inference, and Anthropic stores the session
|
|
360
|
+
> transcript so you can resume the session from another supported surface."
|
|
361
|
+
|
|
362
|
+
Direction of connectivity, verbatim:
|
|
363
|
+
|
|
364
|
+
> "Anthropic never connects into your network."
|
|
365
|
+
|
|
366
|
+
The runner polls `api.anthropic.com` for work; all connections are outbound
|
|
367
|
+
HTTPS, with no inbound connectivity from Anthropic required.
|
|
368
|
+
|
|
369
|
+
### Inference cannot be routed elsewhere
|
|
370
|
+
|
|
371
|
+
Stated twice on the page. Verbatim, in the limitations list:
|
|
372
|
+
|
|
373
|
+
> "Model inference: sessions use the Anthropic API, and inference can't be
|
|
374
|
+
> routed through Amazon Bedrock, Google Cloud's Agent Platform, Microsoft
|
|
375
|
+
> Foundry, or an LLM gateway."
|
|
376
|
+
|
|
377
|
+
And with the mechanism, verbatim:
|
|
378
|
+
|
|
379
|
+
> "Model inference uses the Anthropic API. The control plane delivers the API
|
|
380
|
+
> endpoint to each session, and the session authenticates with an
|
|
381
|
+
> Anthropic-issued, session-scoped OAuth token, so inference can't be routed
|
|
382
|
+
> through Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, or
|
|
383
|
+
> an LLM gateway in self-hosted environments."
|
|
384
|
+
|
|
385
|
+
Other documented constraints: public beta on Team and Enterprise plans, off by
|
|
386
|
+
default; unavailable for organizations with Zero Data Retention enabled;
|
|
387
|
+
repository checkout is from GitHub; sessions bill against the organization's
|
|
388
|
+
Claude Code usage as Anthropic-hosted sessions do.
|
|
389
|
+
|
|
390
|
+
One related surface worth noting for the verification question: the page links
|
|
391
|
+
"Verify session identity" (/docs/en/self-hosted-environments-identity), which
|
|
392
|
+
lets a customer's own services validate a session token before granting access.
|
|
393
|
+
That is workload identity for access control, not an attestation of the
|
|
394
|
+
session's output, and it was not fetched for this report.
|
|
395
|
+
|
|
396
|
+
## What we could not establish
|
|
397
|
+
|
|
398
|
+
Every UNKNOWN, with the reason.
|
|
399
|
+
|
|
400
|
+
1. **Devin inference routing.** No public documentation of the inference
|
|
401
|
+
provider or of any customer-side routing, gateway, or BYOK option as of
|
|
402
|
+
2026-08-08. The deployment docs describe a compound AI system without naming
|
|
403
|
+
providers.
|
|
404
|
+
|
|
405
|
+
2. **Devin self-hosted-post attribution.** The maintenance-mode post is
|
|
406
|
+
Devin-titled and Devin-hosted but links to a Windsurf post and does not
|
|
407
|
+
explicitly name which product's self-hosted offering it discontinues. The
|
|
408
|
+
quote is reported; the product attribution is left open.
|
|
409
|
+
|
|
410
|
+
3. **Devin webhook triggering.** The API overview documents no webhook or
|
|
411
|
+
push-event mechanism. Event-driven triggering appears only in marketing blog
|
|
412
|
+
posts and example GitHub Actions glue. Whether a first-class webhook surface
|
|
413
|
+
exists is not documented publicly.
|
|
414
|
+
|
|
415
|
+
4. **Replit self-hosting.** NOT PRESENT across the full documentation index for
|
|
416
|
+
self-hosting, on-premise, and VPC. The "Dedicated GCP project, single-tenant
|
|
417
|
+
option" phrase appears only in marketing copy and does not establish who
|
|
418
|
+
operates the deployment or where it runs.
|
|
419
|
+
|
|
420
|
+
5. **Replit Agent's underlying models.** Not documented; modes are described in
|
|
421
|
+
terms of capability and cost, not models.
|
|
422
|
+
|
|
423
|
+
6. **8090 trigger mechanism.** No documented CLI, API, GitHub, or Slack
|
|
424
|
+
trigger. Docs cover document authoring and an Agent Skill loaded by a
|
|
425
|
+
third-party agent. Whether 8090 itself dispatches runs is not documented
|
|
426
|
+
publicly.
|
|
427
|
+
|
|
428
|
+
7. **8090 self-hosting and inference routing.** No public docs on deployment,
|
|
429
|
+
architecture, or infrastructure as of 2026-08-08; the documentation has no
|
|
430
|
+
such section.
|
|
431
|
+
|
|
432
|
+
8. **Verification surfaces for all four vendors.** No vendor documents a
|
|
433
|
+
receipt, attestation, signed record, or provenance artifact covering its own
|
|
434
|
+
output. For Factory this was confirmed by a targeted verbatim query
|
|
435
|
+
returning NOT PRESENT; for the others it is absence across the pages read.
|
|
436
|
+
In all cases this is "not documented publicly", not proof of absence from
|
|
437
|
+
the product.
|
|
438
|
+
|
|
439
|
+
## Method
|
|
440
|
+
|
|
441
|
+
Searched via web search and fetched official documentation directly. Preferred
|
|
442
|
+
`docs.<vendor>` and official changelogs over marketing pages and press
|
|
443
|
+
coverage, and labeled the latter explicitly wherever they are the only source.
|
|
444
|
+
|
|
445
|
+
Pages reached (all 2026-08-08): docs.factory.ai root, `/cli/byok/overview`,
|
|
446
|
+
`/enterprise/network-and-deployment`, `/droid-exec/overview`;
|
|
447
|
+
github.com/Factory-AI/droid-action; docs.devin.ai `/integrations/slack`,
|
|
448
|
+
`/api-reference/overview`, `/enterprise/deployment/overview`;
|
|
449
|
+
devin.ai/blog/self-hosted-deployment-maintenance-mode; docs.replit.com
|
|
450
|
+
`/llms.txt`, `/features/agent/overview`, `/features/platforms/slack`,
|
|
451
|
+
`/platforms/mcp-server`, `/features/integrations/overview`; replit.com/enterprise;
|
|
452
|
+
www.8090.ai root, `/docs/general/introduction`, `/docs/opinions/agent-skill`;
|
|
453
|
+
code.claude.com/docs/en/self-hosted-environments.
|
|
454
|
+
|
|
455
|
+
Not reached: `docs.factory.ai/enterprise/architecture` returned HTTP 404; the
|
|
456
|
+
correct path is `/enterprise/network-and-deployment`. Nothing was paywalled.
|
|
457
|
+
No vendor sales contact was made, which is the reason several enterprise
|
|
458
|
+
deployment questions resolve to UNKNOWN rather than to an answer.
|
|
459
|
+
|
|
460
|
+
Two methodology notes that materially changed findings:
|
|
461
|
+
|
|
462
|
+
- Page fetches are summarized by a model, and summaries twice produced
|
|
463
|
+
plausible sentences that were not on the page: a claim that all three Factory
|
|
464
|
+
patterns route inference to customer gateways, and a claim that `droid exec`
|
|
465
|
+
"can produce verifiable records". Both were re-queried with a strict
|
|
466
|
+
copy-only prompt. The Factory inference sentence was confirmed as real page
|
|
467
|
+
text in narrower form; the droid-exec verification claim returned NOT PRESENT
|
|
468
|
+
and was discarded. Every quotation in this document survived a verbatim
|
|
469
|
+
re-query or was returned under a copy-only prompt.
|
|
470
|
+
|
|
471
|
+
- Reading a single overview page understates trigger surfaces. The Replit Agent
|
|
472
|
+
overview page alone implies UI-only; the full documentation index revealed
|
|
473
|
+
both a Slack trigger and an MCP `create_app_from_prompt` tool that starts a
|
|
474
|
+
build programmatically. Where a vendor publishes an index or `llms.txt`, that
|
|
475
|
+
is the better instrument for absence claims than any number of page reads.
|