@starci/eslint-grammar-offset-pop 0.12.13 → 0.13.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/CHANGELOG.md +10 -0
- package/README.md +4 -4
- package/config.mjs +2 -2
- package/index.d.ts +4 -4
- package/index.mjs +1 -1
- package/package.json +23 -15
- package/runtime/engine/by-code-unit.mjs +12 -0
- package/runtime/engine/config.mjs +461 -0
- package/runtime/engine/invalid-config.mjs +15 -0
- package/runtime/engine/model-config.mjs +90 -0
- package/runtime/engine/orca-config.mjs +29 -0
- package/runtime/engine/release-config.mjs +28 -0
- package/runtime/engine/removed-vocabulary.mjs +26 -0
- package/runtime/engine/resources-config.mjs +52 -0
- package/runtime/engine/secrets.mjs +134 -0
- package/runtime/engine/sonar-config.mjs +21 -0
- package/runtime/knowledge/hfs/canon-pins.yaml +19 -20
- package/runtime/modules/kernel/removed-vocabulary.yaml +458 -0
- package/runtime/modules/models/registry.yaml +221 -0
- package/runtime/modules/models/runtimes.yaml +556 -0
- package/runtime/modules/models/tiers.yaml +66 -0
- package/runtime/scripts/hfs/declaration-shape.mjs +157 -0
- package/runtime/scripts/hfs/declaration-slots.mjs +86 -0
- package/runtime/scripts/hfs/edition-slots.mjs +77 -0
- package/runtime/scripts/hfs/manifest-shape.mjs +435 -0
- package/runtime/scripts/hfs/param-names.mjs +18 -0
- package/runtime/scripts/hfs/rule-catalog.mjs +362 -0
- package/runtime/scripts/hfs/rule-params-shape.mjs +80 -0
- package/runtime/scripts/hfs/slot-app-view.mjs +102 -0
- package/runtime/scripts/hfs/slot-classify.mjs +65 -0
- package/runtime/scripts/hfs/slot-errors.mjs +11 -0
- package/runtime/scripts/hfs/slot-imports.mjs +91 -0
- package/runtime/scripts/hfs/slot-manifest-shape.mjs +73 -0
- package/runtime/scripts/hfs/slot-match.mjs +153 -0
- package/runtime/scripts/hfs/slot-path.mjs +8 -0
- package/runtime/scripts/hfs/slot-required.mjs +89 -0
- package/runtime/scripts/hfs/slot-semantic-problems.mjs +149 -0
- package/runtime/scripts/hfs/slot-side-problems.mjs +28 -0
- package/runtime/scripts/lib/i18n.mjs +85 -0
- package/runtime/scripts/lib/json-clone.mjs +61 -0
- package/runtime/scripts/lib/list.mjs +31 -0
- package/runtime/scripts/lib/regex.mjs +4 -0
- package/runtime/scripts/lib/yaml-cached.mjs +14 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
schema: starci/profile-registry@1
|
|
2
|
+
purpose: >-
|
|
3
|
+
The ONE model catalog of the runtime. Concrete model ids — provider,
|
|
4
|
+
capability tier and per-token price — live under `models`; the provider
|
|
5
|
+
quota/capacity pools, their roles and concurrency live under `pools` (which
|
|
6
|
+
model takes which work is modules/models/tiers.yaml); every launch target lives under `targets`, carrying
|
|
7
|
+
`defaultModel` where it names a single model. No other file in the repo
|
|
8
|
+
states a model id, tier, price or pool: those cite these keys.
|
|
9
|
+
|
|
10
|
+
# Canonical naming. Keep these roles distinct
|
|
11
|
+
# in contracts and receipts; an `agent` and a `provider` may carry the same
|
|
12
|
+
# string, but the fields are not interchangeable — `agent` names the execution
|
|
13
|
+
# adapter while model-routing `provider` remains quota authority.
|
|
14
|
+
glossary:
|
|
15
|
+
launcher: human chat surface explicitly selecting the StarCi entry (codex-chat | claude-chat | devin-chat)
|
|
16
|
+
host: Orca execution environment owning terminals, worktrees and managed operation workers
|
|
17
|
+
agent: execution adapter / Orca agent id (codex | claude | devin | cursor)
|
|
18
|
+
provider: credential, billing and quota family used by allocation
|
|
19
|
+
model: a concrete model id (a `models` key below) that worker-start --model takes
|
|
20
|
+
target: a StarCi routing/capability target (a `targets` key below)
|
|
21
|
+
pool: one provider quota/capacity window (a `pools` key below), routed to as a target
|
|
22
|
+
|
|
23
|
+
# Price table that turns measured token counts (llm_usage, scripts/lib/llm-usage.mjs
|
|
24
|
+
# priceOf/costOfRow) into cost_usd. The runtime never guesses a price: a model absent
|
|
25
|
+
# from `models`, or with a null rate, leaves cost_usd NULL. Nothing reads a provider
|
|
26
|
+
# price feed; the owner declares the rates below from the provider's own price page
|
|
27
|
+
# and dates the edit (pricing.asOf).
|
|
28
|
+
pricing:
|
|
29
|
+
currency: USD
|
|
30
|
+
unit: per-million-tokens
|
|
31
|
+
asOf: '2026-10-03'
|
|
32
|
+
source: >-
|
|
33
|
+
Official list prices read 2026-09-29 (WebFetch): claude-* from https://claude.com/pricing (5-minute cache write TTL);
|
|
34
|
+
gpt-6-luna from https://developers.openai.com/api/docs/pricing. GPT-6.1 Sol list prices read 2026-10-03 from
|
|
35
|
+
https://developers.openai.com/api/docs/models/gpt-6.1-sol: Standard processing tier, contexts at or below 272K
|
|
36
|
+
tokens (input 2, output 10, cached input 0.10 per 1M tokens). Larger-context and other processing-tier multipliers
|
|
37
|
+
are not applied because the CLI reports no billing tier. swe-2-max (Devin) has
|
|
38
|
+
no official per-token price page read, so its rates stay null and cost_usd stays NULL for it. A subscription seat
|
|
39
|
+
(Claude Max, Codex Pro, Devin plan) bills a flat fee, so cost_usd is the API-equivalent list price.
|
|
40
|
+
matching: >-
|
|
41
|
+
priceOf(model): the exact `models` key first, then the longest declared id that is a prefix of the model
|
|
42
|
+
(a dated snapshot id `claude-opus-5-5-20260901` prices as `claude-opus-5-5`). The four rates are USD per 1M tokens:
|
|
43
|
+
input = fresh (non-cached) input, cacheRead = cached input read, cacheWrite = cache creation, output = generated
|
|
44
|
+
tokens including reasoning. A model whose used rate is null gets cost_usd NULL (a partial sum is never written).
|
|
45
|
+
|
|
46
|
+
# The concrete model ids the runtime may name: provider (quota family), tier (the
|
|
47
|
+
# capability class the catalog assigns it) and the per-token price row costOfRow
|
|
48
|
+
# consumes. A launch-only target's `targets.<t>.defaultModel` and every pool's
|
|
49
|
+
# `pools.<p>.models`/`defaultModel` pin keys of this map — nothing else.
|
|
50
|
+
models:
|
|
51
|
+
claude-opus-5-5: {provider: claude, tier: frontier, price: {input: 4, output: 20, cacheRead: 0.2, cacheWrite: 5, source: official}}
|
|
52
|
+
claude-sonnet-5-5: {provider: claude, tier: standard, price: {input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5, source: official}}
|
|
53
|
+
gpt-6.1-sol: {provider: codex, tier: frontier, price: {input: 2, output: 10, cacheRead: 0.1, cacheWrite: 2.5, source: official}}
|
|
54
|
+
gpt-6-luna: {provider: codex, tier: economy, price: {input: 0.1, output: 0.5, cacheRead: 0.01, cacheWrite: 0.125, source: official}}
|
|
55
|
+
swe-2-max: {provider: devin, tier: frontier, price: {input: null, output: null, cacheRead: null, cacheWrite: null, source: unset}}
|
|
56
|
+
|
|
57
|
+
# The provider quota/capacity pools the allocator serves. Which model a seat or operation takes is
|
|
58
|
+
# modules/models/tiers.yaml; `defaultModel` is the model a launch takes when it names none. `maxParallel` is
|
|
59
|
+
# the only concurrency authority (registry.yaml executionModel.concurrency).
|
|
60
|
+
pools:
|
|
61
|
+
# One Codex account window carries every Codex model. Role, tool and quality gates still apply on top of tier
|
|
62
|
+
# membership; an owner allocation changes capacity, never qualification or effect authority.
|
|
63
|
+
codex-agent:
|
|
64
|
+
target: codex-agent
|
|
65
|
+
provider: codex
|
|
66
|
+
roles: [implement, verify, write, decide, plan]
|
|
67
|
+
maxParallel: 10
|
|
68
|
+
defaultModel: gpt-6-luna
|
|
69
|
+
# One Claude session/week window, all five roles. The Claude CLI lists no models, so the dispatch's model
|
|
70
|
+
# attestation is what proves the model id a tier member names.
|
|
71
|
+
claude-agent:
|
|
72
|
+
target: claude-agent
|
|
73
|
+
provider: claude
|
|
74
|
+
roles: [implement, verify, write, decide, plan]
|
|
75
|
+
maxParallel: 6
|
|
76
|
+
defaultModel: claude-opus-5-5
|
|
77
|
+
# Devin has no machine-readable account headroom equivalent to Orca's provider windows. Owner-assigned
|
|
78
|
+
# capacity: 10 parallel lanes, opened by the owner's default grant (config.yaml allocation.grants
|
|
79
|
+
# devin-agent=10@implement+verify+write applies to every workflow; once config.yaml declares a grants list,
|
|
80
|
+
# `starci kernel route` rejects a grant-gated pool that list does not open). The CLI's auth/readiness and observed
|
|
81
|
+
# launch/refusal status are the live capacity signal on top of this cap.
|
|
82
|
+
devin-agent:
|
|
83
|
+
target: devin-agent
|
|
84
|
+
provider: devin
|
|
85
|
+
roles: [implement, verify, write]
|
|
86
|
+
maxParallel: 10
|
|
87
|
+
capacityAuthority: explicit-workflow-quota
|
|
88
|
+
quotaTelemetry: launch-status
|
|
89
|
+
defaultModel: swe-2-max
|
|
90
|
+
|
|
91
|
+
runtimes:
|
|
92
|
+
- codex
|
|
93
|
+
- claude
|
|
94
|
+
- devin
|
|
95
|
+
- cursor
|
|
96
|
+
aliases:
|
|
97
|
+
openai: codex
|
|
98
|
+
anthropic: claude
|
|
99
|
+
cognition: devin
|
|
100
|
+
executionModel:
|
|
101
|
+
# Two agent levels, one host. A chat submits the goal and then monitors; it is
|
|
102
|
+
# never an agent layer above the kernel.
|
|
103
|
+
levels: [workflow-kernel, operation-agent]
|
|
104
|
+
host: orca
|
|
105
|
+
chat: trigger-and-monitor-only
|
|
106
|
+
workflowKernel: one-long-lived-agent-per-workflow
|
|
107
|
+
kernelAuthority: sole-workflow-state-writer-through-scripts/kernel/cli.mjs
|
|
108
|
+
operationAgent: one-ephemeral-agent-per-job
|
|
109
|
+
operationMapping: one-operation-instance-one-agent
|
|
110
|
+
isolationBoundary: operation
|
|
111
|
+
worktree: isolated-child-per-job
|
|
112
|
+
scheduling: dependency-dag
|
|
113
|
+
fanOutWithinOperation: forbidden
|
|
114
|
+
concreteAgentBinding: provider-profile-model
|
|
115
|
+
# Concurrency is one number per pool and it lives in one file.
|
|
116
|
+
concurrency: modules/models/registry.yaml pools.<pool>.maxParallel
|
|
117
|
+
orchestration:
|
|
118
|
+
runtime: orca
|
|
119
|
+
owner: source-host
|
|
120
|
+
defaultOperationTarget: devin-agent
|
|
121
|
+
workspaceRouting: .workspaces/projects/<project>/work.json
|
|
122
|
+
# Owner ruling: owner gates are the StarCi entry's scope-bound acceptance
|
|
123
|
+
# for goal definition and native workflow startup, plus settle-time evidence verdicts — there is no
|
|
124
|
+
# separate approvals engine or policy file.
|
|
125
|
+
approvalMode: entry-skill-owner-ok
|
|
126
|
+
dispatch: The native lifecycle claims an accepted queued goal and spawns that workflow's one long-lived kernel agent
|
|
127
|
+
(scripts/kernel/start-workflow.mjs). The kernel is the sole workflow-state writer; `starci kernel dispatch --spawn`
|
|
128
|
+
launches one isolated agent per ready operation in the workflow's one worktree, using the first eligible target in
|
|
129
|
+
that operation's chain. The kernel never implements, repairs or tests on behalf of an operation agent.
|
|
130
|
+
targets:
|
|
131
|
+
# Pool targets are named by a `pools` key above, whose `models` map pins the launch model per
|
|
132
|
+
# difficulty and whose `defaultModel` covers an unpinned difficulty. A pool target names no model itself.
|
|
133
|
+
codex-agent:
|
|
134
|
+
runtime: codex
|
|
135
|
+
orcaLaunch: {agent: codex} # orca orchestration worker-start --agent codex
|
|
136
|
+
# Launch-only targets: an explicit `--model gpt-6.1-sol` or `--model gpt-6-luna` request reaches that one model
|
|
137
|
+
# on the Codex provider window. They are off every automatic chain; allocation routes the codex-agent pool.
|
|
138
|
+
# `defaultModel` is the launch model resolveWorkerLaunchModel returns for them (they hold no pools entry).
|
|
139
|
+
gpt-6.1-sol:
|
|
140
|
+
runtime: codex
|
|
141
|
+
defaultModel: gpt-6.1-sol
|
|
142
|
+
orcaLaunch: {agent: codex} # orca orchestration worker-start --agent codex
|
|
143
|
+
gpt-6-luna:
|
|
144
|
+
runtime: codex
|
|
145
|
+
defaultModel: gpt-6-luna
|
|
146
|
+
orcaLaunch: {agent: codex} # orca orchestration worker-start --agent codex
|
|
147
|
+
# Cursor: Orca agent id `cursor` (binary cursor-agent). A launch-only target like gpt-6.1-sol: off every automatic chain,
|
|
148
|
+
# reached by an explicit `--model auto` (the CLI's default) or any id of the account's `cursor-agent --list-models`.
|
|
149
|
+
# Live proof 2026-10-02: worker-start --agent cursor --model auto reached worker_done and released cleanly. No Cursor
|
|
150
|
+
# quota probe exists, so no automatic chain routes to it. `defaultModel: auto` is the CLI's selector keyword —
|
|
151
|
+
# Orca's catalog default — not a `models` entry (Cursor publishes no fixed priced catalog).
|
|
152
|
+
cursor-agent:
|
|
153
|
+
runtime: cursor
|
|
154
|
+
defaultModel: auto
|
|
155
|
+
orcaLaunch: {agent: cursor} # orca orchestration worker-start --agent cursor
|
|
156
|
+
claude-agent:
|
|
157
|
+
runtime: claude
|
|
158
|
+
orcaLaunch: {agent: claude} # orca orchestration worker-start --agent claude
|
|
159
|
+
devin-agent:
|
|
160
|
+
runtime: devin
|
|
161
|
+
executionHosts: [orca]
|
|
162
|
+
orcaLaunch: {agent: devin} # orca orchestration worker-start --agent devin
|
|
163
|
+
fallback:
|
|
164
|
+
allowedReasons:
|
|
165
|
+
- unavailable
|
|
166
|
+
- quota-exhausted
|
|
167
|
+
- rate-limited
|
|
168
|
+
- startup-failure
|
|
169
|
+
- unsupported
|
|
170
|
+
requiredEffectState: none
|
|
171
|
+
blockedReasons:
|
|
172
|
+
- permission-denied
|
|
173
|
+
- user-checkpoint
|
|
174
|
+
- business-ambiguity
|
|
175
|
+
- safety-block
|
|
176
|
+
- partial-or-unknown-effects
|
|
177
|
+
selection: |-
|
|
178
|
+
Orca supplies the observed external-agent inventory. The tier chain (modules/models/tiers.yaml) names the
|
|
179
|
+
candidates; a member is taken only when it passes the picker's hard filter and has tokens (scripts/lib/tier-pick.mjs).
|
|
180
|
+
A launch falls to the next member only after an allowed failure with verified no-effect state. This policy never
|
|
181
|
+
installs an agent, authenticates a provider, grants tools or expands the workflow authority. Every member launches
|
|
182
|
+
the one way (modules/kernel/start-workflow.yaml): `orca orchestration worker-start --agent
|
|
183
|
+
<runtime> [--model <id> --effort <level>] --spec <prompt>` (Orca files the Task), the unattended flags from Orca's per-agent
|
|
184
|
+
default args; the launcher takes the agent terminal from the start receipt (else worker-show) and attests the effective agent and model
|
|
185
|
+
(worker-show). Devin takes no model flag (Orca: --model is for Claude, Codex and Cursor) and starts on its CLI default.
|
|
186
|
+
costPolicy: |-
|
|
187
|
+
Runtime pools are provider quota windows. Which model takes which seat or operation is modules/models/tiers.yaml:
|
|
188
|
+
a seat or an op difficulty names a tier, a tier is an ordered member chain, and the picker takes the first member
|
|
189
|
+
with tokens after the owner bias and the balance step. Devin opens through the owner's default grant (config.yaml
|
|
190
|
+
allocation.grants). Drawing and artwork ops (interface.draw, interface.asset, brand.decide) take the tier of their
|
|
191
|
+
difficulty like every core op and make images through the headless `starci work imagegen` call, which is picked from the
|
|
192
|
+
imagegen call tier (tiers.yaml calls, tierUse) and holds one provider slot while it runs. Every automatic launch contains only worker-start candidates and advances only
|
|
193
|
+
after a verified no-effect failure. Agents have explicit turn, wall-time and tool-call ceilings; a ceiling stop is a
|
|
194
|
+
failed attempt and never proof of completion. Never infer price or quality superiority from a subscription label;
|
|
195
|
+
a tier change is proposed only on live ledger evidence: `starci machine op-metrics --by op` (success rate, retry
|
|
196
|
+
chains and repeated failures per op) and the ledger view `v_model_scorecard` (pass rate and tokens per op, agent
|
|
197
|
+
and model). A native worker is released
|
|
198
|
+
after its exact worker_done result is accepted; the workflow child remains until integration is complete.
|
|
199
|
+
assetFallback: When image generation is unavailable, reuse verified assets first; Claude may leave
|
|
200
|
+
decorative image slots blank with a concrete deferred brief. Never mark missing artwork generated
|
|
201
|
+
or satisfy a functional criterion with a blank slot.
|
|
202
|
+
examples:
|
|
203
|
+
codexFrontend:
|
|
204
|
+
runtime: codex
|
|
205
|
+
profile: gpt-6.1-sol
|
|
206
|
+
model: gpt-6.1-sol
|
|
207
|
+
imageGenerationAvailable: true
|
|
208
|
+
claudeFrontend:
|
|
209
|
+
runtime: claude
|
|
210
|
+
profile: opus
|
|
211
|
+
model: claude-opus-5-5
|
|
212
|
+
imageGenerationAvailable: false
|
|
213
|
+
orcaInterfaceImplementation:
|
|
214
|
+
skill: starci
|
|
215
|
+
op: interface.implement
|
|
216
|
+
availableRuntimes:
|
|
217
|
+
- codex
|
|
218
|
+
- claude
|
|
219
|
+
examplesNote: Examples of frontend context.execution only. Set availability from observed host
|
|
220
|
+
tools, never copy true as proof. Declared exact models still require effective runtime attestation.
|
|
221
|
+
Orca resolves ordered skill/operator candidates from observed readiness instead.
|