@orkestrel/scaffold 0.0.102 → 0.0.104
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/dist/agents/skills/orkestrel-dispatch/scripts/helpers.js +84 -1
- package/dist/agents/skills/orkestrel-dispatch/scripts/launch.js +21 -6
- package/dist/agents/skills/orkestrel-harden/scripts/titles.js +338 -0
- package/dist/agents/skills/orkestrel-publish/scripts/swap.js +3 -39
- package/dist/agents/skills/orkestrel-publish/scripts/wave.js +433 -47
- package/dist/agents/skills/orkestrel-publish/scripts/window.js +2 -1
- package/dist/bin/main.js +16 -9
- package/dist/bin/main.js.map +1 -1
- package/dist/host/agents/orchestration.md +3 -3
- package/dist/host/agents/skills/enterprise-bootstrap/references/components.md +2 -2
- package/dist/host/agents/skills/enterprise-bootstrap/references/inspection.md +1 -1
- package/dist/host/agents/skills/orkestrel-build/SKILL.md +2 -2
- package/dist/host/agents/skills/orkestrel-debrief/SKILL.md +2 -2
- package/dist/host/agents/skills/orkestrel-debrief/references/field-testing.md +1 -1
- package/dist/host/agents/skills/orkestrel-debrief/references/instruction-audit.md +3 -3
- package/dist/host/agents/skills/orkestrel-dispatch/SKILL.md +10 -10
- package/dist/host/agents/skills/orkestrel-dispatch/references/launch.md +1 -0
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/helpers.ts +100 -1
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/launch.ts +27 -6
- package/dist/host/agents/skills/orkestrel-falsify/SKILL.md +4 -4
- package/dist/host/agents/skills/orkestrel-falsify/agents/openai.yaml +1 -1
- package/dist/host/agents/skills/orkestrel-falsify/references/brief.md +8 -7
- package/dist/host/agents/skills/orkestrel-falsify/references/reconcile.md +6 -6
- package/dist/host/agents/skills/orkestrel-harden/SKILL.md +6 -1
- package/dist/host/agents/skills/orkestrel-harden/references/bindings.md +1700 -0
- package/dist/host/agents/skills/orkestrel-harden/references/contract.md +2 -2
- package/dist/host/agents/skills/orkestrel-harden/references/equivalence.md +48 -0
- package/dist/host/agents/skills/orkestrel-harden/references/hardening.md +4 -2
- package/dist/host/agents/skills/orkestrel-harden/scripts/titles.ts +425 -0
- package/dist/host/agents/skills/orkestrel-journey/SKILL.md +2 -2
- package/dist/host/agents/skills/orkestrel-journey/references/captures.md +9 -8
- package/dist/host/agents/skills/orkestrel-polish/SKILL.md +3 -3
- package/dist/host/agents/skills/orkestrel-publish/SKILL.md +2 -2
- package/dist/host/agents/skills/orkestrel-publish/references/release.md +1 -0
- package/dist/host/agents/skills/orkestrel-publish/references/wave.md +56 -13
- package/dist/host/agents/skills/orkestrel-publish/references/window.md +6 -6
- package/dist/host/agents/skills/orkestrel-publish/scripts/swap.ts +5 -49
- package/dist/host/agents/skills/orkestrel-publish/scripts/wave.ts +646 -49
- package/dist/host/agents/skills/orkestrel-publish/scripts/window.ts +2 -1
- package/dist/host/agents/transports/codex.md +1 -1
- package/dist/host/claude/agents/orkestrel.md +54 -53
- package/dist/host/claude/agents/reviewer.md +4 -4
- package/dist/host/claude/rules/documentation.md +2 -1
- package/dist/host/claude/rules/patterns.md +1 -1
- package/dist/host/claude/rules/quality.md +2 -2
- package/dist/host/claude/rules/styles.md +1 -1
- package/dist/host/claude/rules/tests.md +34 -8
- package/dist/host/claude/rules/typescript.md +29 -0
- package/dist/host/claude/rules/workspace.md +35 -28
- package/dist/host/claude/rules/writing.md +34 -26
- package/dist/host/claude/settings.json +2 -0
- package/dist/host/claude/skills/orkestrel-debrief/SKILL.md +1 -1
- package/dist/host/claude/skills/orkestrel-falsify/SKILL.md +1 -1
- package/dist/host/codex/agents/analyst.toml +3 -3
- package/dist/host/codex/agents/reviewer.toml +4 -4
- package/dist/host/configs/helpers.ts +4 -16
- package/dist/host/configs/policy.ts +13 -2
- package/dist/host/dotfiles/editorconfig +0 -1
- package/dist/host/dotfiles/gitattributes +0 -1
- package/dist/host/dotfiles/gitignore +0 -1
- package/dist/host/dotfiles/oxlintrc.json +25 -11
- package/dist/host/guides/agent.md +1638 -598
- package/dist/host/guides/budget.md +89 -29
- package/dist/host/guides/form.md +477 -91
- package/dist/host/guides/mcp.md +14 -2
- package/dist/host/guides/ollama.md +97 -73
- package/dist/host/guides/probe.md +1 -1
- package/dist/host/guides/scaffold.md +158 -101
- package/dist/host/guides/study.md +2635 -0
- package/dist/host/guides/table.md +225 -15
- package/dist/host/guides/terminal.md +22 -20
- package/dist/host/guides/test.md +689 -255
- package/dist/host/manifest.json +88 -64
- package/dist/host/tests/config.test.ts +189 -146
- package/dist/host/tests/policy.test.ts +39 -1
- package/dist/host/tests/setupPolicy.ts +104 -57
- package/dist/src/core/index.cjs +1387 -611
- package/dist/src/core/index.cjs.map +1 -1
- package/dist/src/core/index.d.cts +35 -20
- package/dist/src/core/index.d.ts +35 -20
- package/dist/src/core/index.js +1385 -612
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/server/index.cjs +12 -12
- package/dist/src/server/index.cjs.map +1 -1
- package/dist/src/server/index.d.cts +12 -12
- package/dist/src/server/index.d.ts +12 -12
- package/dist/src/server/index.js +12 -12
- package/dist/src/server/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -61,32 +61,40 @@
|
|
|
61
61
|
|
|
62
62
|
## Substitutions
|
|
63
63
|
|
|
64
|
-
Replace each term with its replacement. A code identifier and a string inside a fence or a fixture are data and exempt.
|
|
65
|
-
|
|
66
|
-
| Term
|
|
67
|
-
|
|
|
68
|
-
| `should`
|
|
69
|
-
| `simply`, `easy`, `just`
|
|
70
|
-
| `currently`, `now`
|
|
71
|
-
| `new`, `latest`
|
|
72
|
-
| `utilize`, `leverage`
|
|
73
|
-
| `via`
|
|
74
|
-
| `in order to`
|
|
75
|
-
| `e.g.`, `i.e.`
|
|
76
|
-
| `etc.`
|
|
77
|
-
| `performant`, `robust`
|
|
78
|
-
| `allows you to`
|
|
79
|
-
| `and/or`
|
|
80
|
-
| `since` (causal)
|
|
81
|
-
| `once` (temporal)
|
|
82
|
-
| `above`, `below` (cross-reference)
|
|
83
|
-
| `please`
|
|
84
|
-
| `sanity check`
|
|
85
|
-
| `dummy`
|
|
86
|
-
| `blacklist`, `whitelist`
|
|
87
|
-
| `master`, `slave`
|
|
88
|
-
|
|
89
|
-
|
|
64
|
+
Replace each term with its replacement. A code identifier, an API name, and a string inside a fence or a fixture are data and exempt.
|
|
65
|
+
|
|
66
|
+
| Term | Replacement |
|
|
67
|
+
| --------------------------------------- | --------------------------------------------------------------- |
|
|
68
|
+
| `should` | `must`, `can`, `might`, or the imperative |
|
|
69
|
+
| `simply`, `easy`, `just` | Delete |
|
|
70
|
+
| `currently`, `now` | Delete, or give the date |
|
|
71
|
+
| `new`, `latest` | Delete, or give the version |
|
|
72
|
+
| `utilize`, `leverage` | `use` |
|
|
73
|
+
| `via` | `through`, `by using` |
|
|
74
|
+
| `in order to` | `to` |
|
|
75
|
+
| `e.g.`, `i.e.` | `for example`, `that is` |
|
|
76
|
+
| `etc.` | Bound the list, or recast the sentence |
|
|
77
|
+
| `performant`, `robust` | The measured property |
|
|
78
|
+
| `allows you to` | `lets you` |
|
|
79
|
+
| `and/or` | `and`, `or`, or `both` |
|
|
80
|
+
| `since` (causal) | `because` |
|
|
81
|
+
| `once` (temporal) | `after` |
|
|
82
|
+
| `above`, `below` (cross-reference) | `preceding`, `following`, `earlier`, `later` |
|
|
83
|
+
| `please` | Delete |
|
|
84
|
+
| `sanity check` | `quick check` |
|
|
85
|
+
| `dummy` | `placeholder` |
|
|
86
|
+
| `blacklist`, `whitelist` | `denylist`, `allowlist` |
|
|
87
|
+
| `master`, `slave` | `primary`, `replica` |
|
|
88
|
+
| `hostile`, `adversarial` (input, value) | `malformed`, `unexpected`, or `untrusted` |
|
|
89
|
+
| `adversarial` (review, round, audit) | `independent` or `skeptical` |
|
|
90
|
+
| `attack`, `break` (a claim) | `test` or `falsify` |
|
|
91
|
+
| `forge` | `fabricate`, `fake`, or `does not match` |
|
|
92
|
+
| `bypass` | `skip`, or recast as reaching one thing without passing another |
|
|
93
|
+
| `poison` | `corrupt`, `invalidate`, or `stale` |
|
|
94
|
+
| `escape` (a root, a sandbox) | `read outside` or `resolve outside` |
|
|
95
|
+
| `exploit`, `payload` (attack sense) | Name the defect, or `input` |
|
|
96
|
+
|
|
97
|
+
- `policy/no-banned-term` reads comments and the prose sweep in `tests/setupPolicy.ts` reads authored Markdown; each matches the rows banned unconditionally. Rule a hit in `now`, `new`, `latest`, `once`, `since`, `above`, `below`, `master`, `hostile`, `adversarial`, `attack`, `break`, `forge`, `bypass`, `poison`, `escape`, `exploit`, or `payload` yourself by the banned sense.
|
|
90
98
|
- Sweep case-insensitively and across inflections. Name the pattern and the paths behind every sweep result.
|
|
91
99
|
- Write singular `they` for a person of unstated gender.
|
|
92
100
|
- `.claude/rules/names.md` § Fixed lifecycle vocabulary owns `execute`, `abort`, `kill`, `terminate`, and `run`.
|
|
@@ -183,6 +183,8 @@
|
|
|
183
183
|
"Bash(npm run test:guides *)",
|
|
184
184
|
"Bash(npm run test:conformance)",
|
|
185
185
|
"Bash(npm run test:conformance *)",
|
|
186
|
+
"Bash(npm run test:tree)",
|
|
187
|
+
"Bash(npm run test:tree *)",
|
|
186
188
|
"Bash(npm run test:integration)",
|
|
187
189
|
"Bash(npm run test:integration *)",
|
|
188
190
|
"Bash(npm run test:distribution)",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: orkestrel-debrief
|
|
3
|
-
description: Look back at a long campaign to learn from its mistakes and successes and improve the agents, rules, skills, and processes that ran it. Use after a campaign or milestone closes to run the retrospective - field evidence, layer and boundary audits, package promotion, an
|
|
3
|
+
description: Look back at a long campaign to learn from its mistakes and successes and improve the agents, rules, skills, and processes that ran it. Use after a campaign or milestone closes to run the retrospective - field evidence, layer and boundary audits, package promotion, an independent audit of the instruction set itself, process doctrine - and to land every learning as a refinement that propagates, then retire the campaign folder.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Load the canonical workflow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: orkestrel-falsify
|
|
3
3
|
description: >-
|
|
4
|
-
Run one
|
|
4
|
+
Run one skeptical audit round against finished work: write the subject as numbered falsifiable claims, dispatch independent auditors instructed to falsify them, reconcile their evidence, and rule. Use when the size gate in `.agents/orchestration.md` names a review, before a fix round is accepted, before a version bump or publication, or when a defect has recurred across rounds. Do not use it for a small change, a mechanical rename, or a round with no added or repaired claim to test.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Load the canonical workflow
|
|
@@ -12,12 +12,12 @@ Hold the lane the dispatch names and say which: objective (correctness under adv
|
|
|
12
12
|
what the contracts and installed declarations permit, dependency and range truth, test
|
|
13
13
|
sufficiency, the letter of the rules) or subjective (shape, naming, ergonomics, design fit).
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
claim about a proof, name the mutation that would make the proof fail and whether the assertions
|
|
15
|
+
Try to falsify each numbered claim with a concrete input, state, or interleaving. Before
|
|
16
|
+
confirming a claim about a proof, name the mutation that would make the proof fail and whether the assertions
|
|
17
17
|
distinguish it. Rule a claim whose only evidence is the writer's report UNRESOLVED. Mark a
|
|
18
18
|
rendered-surface claim the capture cannot show NOT-EVIDENCED.
|
|
19
19
|
|
|
20
20
|
Return the orkestrel-falsify verdict shape: numbered verdicts with evidence, findings outside the
|
|
21
|
-
claims,
|
|
21
|
+
claims, tested-and-held, one terminal line. Never edit, implement, reconcile, accept, or spawn.
|
|
22
22
|
Your final message is the verdict.
|
|
23
23
|
"""
|
|
@@ -4,7 +4,7 @@ model = "gpt-6-astra"
|
|
|
4
4
|
model_reasoning_effort = "high"
|
|
5
5
|
sandbox_mode = "read-only"
|
|
6
6
|
developer_instructions = """
|
|
7
|
-
Review one dispatched unit on GPT-6 Astra by trying to
|
|
7
|
+
Review one dispatched unit on GPT-6 Astra by trying to falsify its claims. Use read-only inspection
|
|
8
8
|
commands. Never edit, run a mutating command, or spawn. Use a clean context; never review work you wrote.
|
|
9
9
|
|
|
10
10
|
Read the claims file, the actual diff and git status --porcelain the dispatch supplies,
|
|
@@ -16,14 +16,14 @@ names and boundaries, the right layer, each concept's purpose, guide parity. Obj
|
|
|
16
16
|
correctness under adverse orderings, what contracts and installed declarations permit,
|
|
17
17
|
dependency and range truth, test sufficiency, and the letter of the rules.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
name the mutation that would make it fail and whether its assertions distinguish it. Rule a
|
|
19
|
+
Try to falsify each claim with a concrete input, state, or interleaving. Before confirming a
|
|
20
|
+
proof, name the mutation that would make it fail and whether its assertions distinguish it. Rule a
|
|
21
21
|
claim whose only evidence is the writer's report UNRESOLVED. Cite a capture for every rendered
|
|
22
22
|
surface claim; mark what the portfolio cannot show NOT-EVIDENCED. Refer a question outside your
|
|
23
23
|
lane to the other lane or the Orchestrator with evidence; never rule on it. Treat a bench finding
|
|
24
24
|
as a proposal to test against the code, never as authority.
|
|
25
25
|
|
|
26
26
|
Return the orkestrel-falsify verdict shape: numbered verdicts with evidence, findings outside the
|
|
27
|
-
claims,
|
|
27
|
+
claims, tested-and-held, one terminal line. Each required change carries file:line, what is
|
|
28
28
|
wrong, and what right looks like. Nothing else. Your final message is the verdict.
|
|
29
29
|
"""
|
|
@@ -911,9 +911,8 @@ export function declarationRollup(options: DeclarationRollupOptions): Plugin {
|
|
|
911
911
|
])
|
|
912
912
|
const entry = resolvePath(scratch, relative(scope.root, declaration))
|
|
913
913
|
// A literal `import()` of the extractor reddens `tsc` in a workspace that does not
|
|
914
|
-
// install it,
|
|
915
|
-
//
|
|
916
|
-
// workspace.
|
|
914
|
+
// install it, so the literal `createRequire` call is the form that clears the
|
|
915
|
+
// typecheck in an app-only workspace.
|
|
917
916
|
const loaded: unknown = load('@microsoft/api-extractor')
|
|
918
917
|
if (!isExtractorModule(loaded)) {
|
|
919
918
|
throw new Error(
|
|
@@ -999,19 +998,8 @@ export async function environmentAssetSources(
|
|
|
999
998
|
: specifier.type === 'TemplateLiteral' && specifier.expressions.length === 0
|
|
1000
999
|
? specifier.quasis.map((quasi) => quasi.value.cooked ?? quasi.value.raw).join('')
|
|
1001
1000
|
: undefined
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
if (
|
|
1005
|
-
location !== undefined &&
|
|
1006
|
-
/^(?:src\/server\/artifacts\/|tools\/artifacts\/|\.orkestrel\/[^/]+\/instruments\/(?:[^/]+\/)*tools\/artifacts\/).+\.(?:js|mjs|ts|mts)$/.test(
|
|
1007
|
-
location,
|
|
1008
|
-
)
|
|
1009
|
-
)
|
|
1010
|
-
return
|
|
1011
|
-
throw new Error(
|
|
1012
|
-
'[orkestrel-environment-boundary] Dynamic imports must use static string values',
|
|
1013
|
-
)
|
|
1014
|
-
}
|
|
1001
|
+
// A computed specifier names no module to inspect statically.
|
|
1002
|
+
if (value === undefined) return
|
|
1015
1003
|
const decoded = decodeAssetSource(value)
|
|
1016
1004
|
if (decoded === undefined) {
|
|
1017
1005
|
throw new Error('[orkestrel-environment-boundary] Module URLs must use valid URI encoding')
|
|
@@ -386,8 +386,9 @@ export const POLICY_BANNED_TERMS: readonly PolicyTerm[] = Object.freeze([
|
|
|
386
386
|
*
|
|
387
387
|
* @remarks
|
|
388
388
|
* Each row carries a permitted sense: a date value, a version value, a causal clause, the name a
|
|
389
|
-
* replication topology takes,
|
|
390
|
-
*
|
|
389
|
+
* replication topology takes, a comparative or spatial relation, and a literal engineering term such
|
|
390
|
+
* as a string escape, a loop `break`, or a request payload. The currency check proves each row is
|
|
391
|
+
* registered here.
|
|
391
392
|
*/
|
|
392
393
|
export const POLICY_JUDGED_TERMS: readonly string[] = Object.freeze([
|
|
393
394
|
'now',
|
|
@@ -398,6 +399,16 @@ export const POLICY_JUDGED_TERMS: readonly string[] = Object.freeze([
|
|
|
398
399
|
'above',
|
|
399
400
|
'below',
|
|
400
401
|
'master',
|
|
402
|
+
'hostile',
|
|
403
|
+
'adversarial',
|
|
404
|
+
'attack',
|
|
405
|
+
'break',
|
|
406
|
+
'forge',
|
|
407
|
+
'bypass',
|
|
408
|
+
'poison',
|
|
409
|
+
'escape',
|
|
410
|
+
'exploit',
|
|
411
|
+
'payload',
|
|
401
412
|
])
|
|
402
413
|
|
|
403
414
|
/** Returns the file name a policy rule keys on, read from either host separator. */
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
],
|
|
39
39
|
|
|
40
40
|
"import/no-default-export": "error",
|
|
41
|
-
"import/no-dynamic-require": ["error", { "esmodule":
|
|
41
|
+
"import/no-dynamic-require": ["error", { "esmodule": false }],
|
|
42
42
|
"import/extensions": "off",
|
|
43
43
|
"import/no-unassigned-import": [
|
|
44
44
|
"error",
|
|
@@ -70,16 +70,6 @@
|
|
|
70
70
|
"restriction": "off"
|
|
71
71
|
},
|
|
72
72
|
"overrides": [
|
|
73
|
-
{
|
|
74
|
-
"files": [
|
|
75
|
-
"src/server/artifacts/**/*.{js,mjs,ts,mts}",
|
|
76
|
-
"tools/artifacts/**/*.{js,mjs,ts,mts}",
|
|
77
|
-
".orkestrel/*/instruments/**/tools/artifacts/**/*.{js,mjs,ts,mts}"
|
|
78
|
-
],
|
|
79
|
-
"rules": {
|
|
80
|
-
"import/no-dynamic-require": ["error", { "esmodule": false }]
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
73
|
{
|
|
84
74
|
"files": ["*.config.ts", "*.config.js"],
|
|
85
75
|
"rules": {
|
|
@@ -230,6 +220,10 @@
|
|
|
230
220
|
{
|
|
231
221
|
"regex": "^(?:node:|(?:_(?:http_(?:agent|client|common|incoming|outgoing|server)|stream_(?:duplex|passthrough|readable|transform|wrap|writable)|tls_(?:common|wrap))|assert(?:/strict)?|async_hooks|buffer|child_process|cluster|console|constants|crypto|dgram|diagnostics_channel|dns(?:/promises)?|domain|events|fs(?:/promises)?|http|http2|https|inspector(?:/promises)?|module|net|os|path(?:/(?:posix|win32))?|perf_hooks|process|punycode|querystring|readline(?:/promises)?|repl|sqlite|stream(?:/(?:consumers|promises|web))?|string_decoder|sys|timers(?:/promises)?|tls|trace_events|tty|url|util(?:/types)?|v8|vm|wasi|worker_threads|zlib)(?:[/?#]|$)|@src/server(?:[/?#]|$)|@orkestrel/[^/]+/server(?:[/?#]|$)|(?:\\.\\./)+(?:server|src/server|app/server)(?:[/?#]|$))",
|
|
232
222
|
"message": "src/browser must not depend on Node or server-only modules"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"regex": "^(?:\\.\\./)+(?:src/)?core(?:[/?#]|$)",
|
|
226
|
+
"message": "src/browser must import src/core through the @src/core alias"
|
|
233
227
|
}
|
|
234
228
|
]
|
|
235
229
|
}
|
|
@@ -446,6 +440,14 @@
|
|
|
446
440
|
{
|
|
447
441
|
"regex": "^(?:node:|(?:_(?:http_(?:agent|client|common|incoming|outgoing|server)|stream_(?:duplex|passthrough|readable|transform|wrap|writable)|tls_(?:common|wrap))|assert(?:/strict)?|async_hooks|buffer|child_process|cluster|console|constants|crypto|dgram|diagnostics_channel|dns(?:/promises)?|domain|events|fs(?:/promises)?|http|http2|https|inspector(?:/promises)?|module|net|os|path(?:/(?:posix|win32))?|perf_hooks|process|punycode|querystring|readline(?:/promises)?|repl|sqlite|stream(?:/(?:consumers|promises|web))?|string_decoder|sys|timers(?:/promises)?|tls|trace_events|tty|url|util(?:/types)?|v8|vm|wasi|worker_threads|zlib)(?:[/?#]|$)|@src/server(?:[/?#]|$)|@orkestrel/[^/]+/server(?:[/?#]|$)|(?:\\.\\./)+(?:server|src/server|app/server)(?:[/?#]|$))",
|
|
448
442
|
"message": "src/vue must not depend on Node or server-only modules"
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"regex": "^(?:\\.\\./)+(?:src/)?core(?:[/?#]|$)",
|
|
446
|
+
"message": "src/vue must import src/core through the @src/core alias"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"regex": "^(?:\\.\\./)+(?:src/)?browser(?:[/?#]|$)",
|
|
450
|
+
"message": "src/vue must import src/browser through the @src/browser alias"
|
|
449
451
|
}
|
|
450
452
|
]
|
|
451
453
|
}
|
|
@@ -498,6 +500,10 @@
|
|
|
498
500
|
{
|
|
499
501
|
"regex": "^(?:(?:vue|vite)(?:[/?#]|$)|@(?:vue|vitejs)/|@src/browser(?:[/?#]|$)|@orkestrel/[^/]+/browser(?:[/?#]|$)|(?:\\.\\./)+(?:browser|src/browser|app/browser)(?:[/?#]|$))",
|
|
500
502
|
"message": "src/server must not depend on Vue or browser-only modules"
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"regex": "^(?:\\.\\./)+(?:src/)?core(?:[/?#]|$)",
|
|
506
|
+
"message": "src/server must import src/core through the @src/core alias"
|
|
501
507
|
}
|
|
502
508
|
]
|
|
503
509
|
}
|
|
@@ -730,6 +736,14 @@
|
|
|
730
736
|
{
|
|
731
737
|
"regex": "^(?:(?:vue|vite)(?:[/?#]|$)|@(?:vue|vitejs)/|@src/(?:browser|vue)(?:[/?#]|$)|@orkestrel/[^/]+/(?:browser|vue)(?:[/?#]|$)|(?:\\.\\./)+(?:browser|vue|src/(?:browser|vue)|app/browser)(?:[/?#]|$))",
|
|
732
738
|
"message": "src/bin must not depend on browser-only modules"
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
"regex": "^(?:\\.\\./)+(?:src/)?core(?:[/?#]|$)",
|
|
742
|
+
"message": "src/bin must import src/core through the @src/core alias"
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
"regex": "^(?:\\.\\./)+(?:src/)?server(?:[/?#]|$)",
|
|
746
|
+
"message": "src/bin must import src/server through the @src/server alias"
|
|
733
747
|
}
|
|
734
748
|
]
|
|
735
749
|
}
|