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/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 \
@@ -7,7 +7,7 @@ Modules:
7
7
  control: Session control API (start/stop/pause/resume)
8
8
  """
9
9
 
10
- __version__ = "9.17.2"
10
+ __version__ = "9.18.2"
11
11
 
12
12
  # Expose the control app for easy import
13
13
  try:
@@ -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.