gorsee 0.2.15 → 0.2.17

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/README.md CHANGED
@@ -21,6 +21,13 @@ Read the strategic docs:
21
21
  - [Security Model](./docs/SECURITY_MODEL.md)
22
22
  - [Top-Tier Roadmap](./docs/TOP_TIER_ROADMAP.md)
23
23
  - [Top-Tier Competition Plan](./docs/TOP_TIER_COMPETITION_PLAN.md)
24
+ - [Competition Closure Plan](./docs/COMPETITION_CLOSURE_PLAN.md)
25
+ - [External Proof Intake](./docs/EXTERNAL_PROOF_INTAKE.md)
26
+ - [External Proof Claims](./docs/EXTERNAL_PROOF_CLAIMS.json)
27
+ - [External Proof Execution](./docs/EXTERNAL_PROOF_EXECUTION.md)
28
+ - [External Proof Outreach](./docs/EXTERNAL_PROOF_OUTREACH.json)
29
+ - [External Proof Pipeline](./docs/EXTERNAL_PROOF_PIPELINE.json)
30
+ - [External Proof Review](./docs/EXTERNAL_PROOF_REVIEW.md)
24
31
  - [Canonical Language Plan](./docs/CANONICAL_LANGUAGE_PLAN.md)
25
32
  - [Canonical Recipes](./docs/CANONICAL_RECIPES.md)
26
33
  - [Canonical Examples](./examples/README.md)
@@ -31,6 +38,7 @@ Read the strategic docs:
31
38
  - [Reactive Hydration](./docs/REACTIVE_HYDRATION.md)
32
39
  - [Reactive Debugging](./docs/REACTIVE_DEBUGGING.md)
33
40
  - [Reactive Measurement Gaps](./docs/REACTIVE_MEASUREMENT_GAPS.md)
41
+ - [Reactive Evidence Summary](./docs/REACTIVE_EVIDENCE_SUMMARY.md)
34
42
  - [Benchmark Policy](./docs/BENCHMARK_POLICY.md)
35
43
  - [Benchmark Contract](./docs/BENCHMARK_CONTRACT.json)
36
44
  - [Benchmark Methodology](./docs/BENCHMARK_METHODOLOGY.md)
@@ -50,6 +58,9 @@ Read the strategic docs:
50
58
  - [AI Workflows](./docs/AI_WORKFLOWS.md)
51
59
  - [AI Artifact Contract](./docs/AI_ARTIFACT_CONTRACT.md)
52
60
  - [CLI Contract](./docs/CLI_CONTRACT.json)
61
+ - [Product Surface Audit](./docs/PRODUCT_SURFACE_AUDIT.md)
62
+ - [AI Integration Contract](./docs/AI_INTEGRATION_CONTRACT.json)
63
+ - [Third-Party Editor Integrations](./docs/THIRD_PARTY_EDITOR_INTEGRATIONS.md)
53
64
  - [AI IDE Sync Workflow](./docs/AI_IDE_SYNC_WORKFLOW.md)
54
65
  - [AI MCP Workflow](./docs/AI_MCP_WORKFLOW.md)
55
66
  - [AI Bridge Workflow](./docs/AI_BRIDGE_WORKFLOW.md)
@@ -60,6 +71,8 @@ Read the strategic docs:
60
71
  - [Starter Onboarding](./docs/STARTER_ONBOARDING.md)
61
72
  - [Market-Ready Proof](./docs/MARKET_READY_PROOF.md)
62
73
  - [Adoption Proof Manifest](./docs/ADOPTION_PROOF_MANIFEST.json)
74
+ - [Competition Backlog](./docs/COMPETITION_BACKLOG.json)
75
+ - [External Proof Registry](./docs/EXTERNAL_PROOF_REGISTRY.json)
63
76
  - [Release Contract](./docs/RELEASE_CONTRACT.json)
64
77
  - [Migration Guide](./docs/MIGRATION_GUIDE.md)
65
78
  - [Upgrade Playbook](./docs/UPGRADE_PLAYBOOK.md)
@@ -68,6 +81,7 @@ Read the strategic docs:
68
81
  - [Auth / Cache / Data Paths](./docs/AUTH_CACHE_DATA_PATHS.md)
69
82
  - [Recipe Boundaries](./docs/RECIPE_BOUNDARIES.md)
70
83
  - [Workspace Adoption](./docs/WORKSPACE_ADOPTION.md)
84
+ - [Node and npm Adoption](./docs/NODE_NPM_ADOPTION.md)
71
85
  - [Downstream Testing](./docs/DOWNSTREAM_TESTING.md)
72
86
  - [Test Coverage Audit](./docs/TEST_COVERAGE_AUDIT.md)
73
87
  - [Team Failures](./docs/TEAM_FAILURES.md)
@@ -148,6 +162,12 @@ For agent cold-start context:
148
162
  bunx gorsee ai framework --format markdown
149
163
  ```
150
164
 
165
+ For the first real external proof draft:
166
+
167
+ ```bash
168
+ npm run external-proof:scaffold -- --type reference --id first-public-reference
169
+ ```
170
+
151
171
  ## Why Gorsee
152
172
 
153
173
  Most modern frameworks optimize for flexibility, historical compatibility, or ecosystem breadth.
@@ -365,6 +385,7 @@ AI bootstrap and handoff:
365
385
  - [Reactive Hydration](./docs/REACTIVE_HYDRATION.md)
366
386
  - [Reactive Debugging](./docs/REACTIVE_DEBUGGING.md)
367
387
  - [Reactive Measurement Gaps](./docs/REACTIVE_MEASUREMENT_GAPS.md)
388
+ - [Reactive Measurement Contract](./docs/REACTIVE_MEASUREMENT_CONTRACT.json)
368
389
  - [Benchmark Policy](./docs/BENCHMARK_POLICY.md)
369
390
  - [Benchmark Methodology](./docs/BENCHMARK_METHODOLOGY.md)
370
391
  - [SSR Benchmark Proof](./docs/SSR_BENCHMARK_PROOF.md)
@@ -29,6 +29,18 @@ export interface AIFrameworkPacket {
29
29
  serverImports: string;
30
30
  routeExample: string;
31
31
  };
32
+ cli: {
33
+ topLevelCommands: Array<{
34
+ command: string;
35
+ stability: string;
36
+ purpose: string;
37
+ }>;
38
+ aiSubcommands: Array<{
39
+ command: string;
40
+ stability: string;
41
+ purpose: string;
42
+ }>;
43
+ };
32
44
  aiCommands: Array<{
33
45
  command: string;
34
46
  purpose: string;
@@ -16,14 +16,29 @@ const LOCAL_DOCS = [
16
16
  { path: "docs/APPLICATION_MODES.md", purpose: "\u041A\u0430\u043D\u043E\u043D\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u0440\u0435\u0436\u0438\u043C\u044B frontend/fullstack/server \u0438 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043C\u0435\u0436\u0434\u0443 \u043D\u0438\u043C\u0438" },
17
17
  { path: "docs/API_STABILITY.md", purpose: "\u0421\u0442\u0430\u0431\u0438\u043B\u044C\u043D\u044B\u0435 \u043F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 entrypoints \u0438 migration semantics" },
18
18
  { path: "docs/PUBLIC_SURFACE_MAP.md", purpose: "\u041A\u0430\u043D\u043E\u043D\u0438\u0447\u0435\u0441\u043A\u0430\u044F import map \u0438 bounded public surfaces" },
19
+ { path: "docs/PRODUCT_SURFACE_AUDIT.md", purpose: "\u041A\u0440\u0430\u0442\u043A\u0438\u0439 \u0438\u043D\u0434\u0435\u043A\u0441 \u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0445 \u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u043E \u0437\u0440\u0435\u043B\u044B\u0445 product surfaces" },
19
20
  { path: "docs/CLI_CONTRACT.json", purpose: "Machine-readable CLI command matrix \u0438 AI subcommand surface" },
21
+ { path: "docs/AI_INTEGRATION_CONTRACT.json", purpose: "Machine-readable local editor/tool integration contract for AI artifacts" },
22
+ { path: "docs/THIRD_PARTY_EDITOR_INTEGRATIONS.md", purpose: "Artifact-first guidance for VS Code/Cursor and other editor consumers" },
20
23
  { path: "docs/SECURITY_MODEL.md", purpose: "Runtime/security guarantees \u0438 fail-closed \u043C\u043E\u0434\u0435\u043B\u044C" },
21
24
  { path: "docs/AI_WORKFLOWS.md", purpose: "\u041A\u0430\u043D\u043E\u043D\u0438\u0447\u0435\u0441\u043A\u0438\u0439 human+agent workflow" },
22
25
  { path: "docs/AI_SURFACE_STABILITY.md", purpose: "\u0421\u0442\u0430\u0431\u0438\u043B\u044C\u043D\u043E\u0441\u0442\u044C AI-facing surface" },
23
26
  { path: "docs/AI_ARTIFACT_CONTRACT.md", purpose: "Versioned AI artifacts, checkpoints, and handoff expectations" },
24
27
  { path: "docs/AI_SESSION_PACKS.md", purpose: "Cross-session handoff \u0434\u043B\u044F \u0430\u0433\u0435\u043D\u0442\u043E\u0432" },
25
28
  { path: "docs/REACTIVE_RUNTIME.md", purpose: "\u0420\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u0430\u044F \u043C\u043E\u0434\u0435\u043B\u044C, diagnostics, resources, mutations, islands" },
29
+ { path: "docs/REACTIVE_MEASUREMENT_CONTRACT.json", purpose: "Machine-readable reactive benchmark backlog and remaining evidence gaps" },
30
+ { path: "docs/REACTIVE_EVIDENCE_SUMMARY.md", purpose: "Release-facing summary of promoted realistic reactive benchmark metrics" },
31
+ { path: "docs/COMPETITION_CLOSURE_PLAN.md", purpose: "\u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0441\u043A\u0438\u0439 \u043F\u043B\u0430\u043D \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u044F remaining external competition gaps" },
32
+ { path: "docs/COMPETITION_BACKLOG.json", purpose: "Machine-readable backlog \u0434\u043B\u044F remaining external competition work" },
33
+ { path: "docs/EXTERNAL_PROOF_CLAIMS.json", purpose: "Machine-readable normalized claim ids for future external proof entries" },
34
+ { path: "docs/EXTERNAL_PROOF_EXECUTION.md", purpose: "\u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0441\u043A\u0438\u0439 playbook \u0434\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u0438 \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 \u043F\u0435\u0440\u0432\u043E\u0433\u043E accepted external proof" },
35
+ { path: "docs/EXTERNAL_PROOF_OUTREACH.json", purpose: "Machine-readable sourcing and outreach queue for external proof leads" },
36
+ { path: "docs/EXTERNAL_PROOF_INTAKE.md", purpose: "\u041A\u0430\u043D\u043E\u043D\u0438\u0447\u0435\u0441\u043A\u0438\u0439 intake workflow \u0434\u043B\u044F \u0432\u043D\u0435\u0448\u043D\u0438\u0445 migration/reference \u043A\u0435\u0439\u0441\u043E\u0432" },
37
+ { path: "docs/EXTERNAL_PROOF_PIPELINE.json", purpose: "Pending queue for external proof candidates before acceptance" },
38
+ { path: "docs/EXTERNAL_PROOF_REVIEW.md", purpose: "Review workflow \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u0430 external proof \u0438\u0437 pending \u0432 accepted" },
39
+ { path: "docs/EXTERNAL_PROOF_REGISTRY.json", purpose: "Accepted registry for public external proof entries" },
26
40
  { path: "docs/SUPPORT_MATRIX.md", purpose: "\u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0435 runtime targets, CLI surfaces, and CI-validated contract" },
41
+ { path: "docs/NODE_NPM_ADOPTION.md", purpose: "Explicit Bun-first versus Node/npm adoption framing" },
27
42
  { path: "docs/DEPLOY_TARGET_GUIDE.md", purpose: "Mode-aware deploy target guidance \u0438 runtime profiles" },
28
43
  { path: "docs/STARTER_ONBOARDING.md", purpose: "\u0421\u0442\u0430\u0440\u0442\u043E\u0432\u044B\u0435 app-\u043A\u043B\u0430\u0441\u0441\u044B \u0438 onboarding path" },
29
44
  { path: "docs/MIGRATION_GUIDE.md", purpose: "\u041F\u0435\u0440\u0435\u0445\u043E\u0434 \u0441 compatibility imports \u043D\u0430 canonical surfaces" },
@@ -69,12 +84,31 @@ async function resolveFrameworkVersion() {
69
84
  }
70
85
  return;
71
86
  }
87
+ function normalizeCLICommands(value) {
88
+ if (!Array.isArray(value))
89
+ return [];
90
+ return value.flatMap((entry) => {
91
+ if (!entry || typeof entry !== "object")
92
+ return [];
93
+ const command = typeof entry.command === "string" ? entry.command : void 0, stability = typeof entry.stability === "string" ? entry.stability : void 0, purpose = typeof entry.purpose === "string" ? entry.purpose : void 0;
94
+ if (!command || !stability || !purpose)
95
+ return [];
96
+ return [{ command, stability, purpose }];
97
+ });
98
+ }
72
99
  async function resolveProjectName(cwd) {
73
100
  const pkg = await readJSON(join(cwd, "package.json"));
74
101
  if (typeof pkg?.name === "string" && pkg.name.trim().length > 0)
75
102
  return pkg.name;
76
103
  return basename(cwd);
77
104
  }
105
+ async function resolveCLIContract() {
106
+ const contract = await readJSON(join(import.meta.dir, "..", "..", "docs", "CLI_CONTRACT.json"));
107
+ return {
108
+ topLevelCommands: normalizeCLICommands(contract?.topLevelCommands),
109
+ aiSubcommands: normalizeCLICommands(contract?.aiSubcommands)
110
+ };
111
+ }
78
112
  async function collectDocRefs(cwd, refs) {
79
113
  const result = [];
80
114
  for (const ref of refs)
@@ -86,7 +120,7 @@ function renderDocLines(docs) {
86
120
  return docs.map((doc) => `- \`${doc.path}\` -- ${doc.purpose}`);
87
121
  }
88
122
  export async function buildAIFrameworkPacket(cwd) {
89
- const projectName = await resolveProjectName(cwd), appMode = resolveAppMode(await loadAppConfig(cwd)), localDocs = await collectDocRefs(cwd, LOCAL_DOCS), canonicalDocs = await collectDocRefs(cwd, CANONICAL_DOCS), frameworkReferencePath = await pathExists(join(cwd, "FRAMEWORK.md")) ? relative(cwd, join(cwd, "FRAMEWORK.md")) || "FRAMEWORK.md" : void 0, frameworkReferenceMarkdown = frameworkReferencePath ? await readFile(join(cwd, frameworkReferencePath), "utf-8") : generateFrameworkMD(projectName), rules = await resolveAIRulesFile(cwd);
123
+ const projectName = await resolveProjectName(cwd), appMode = resolveAppMode(await loadAppConfig(cwd)), localDocs = await collectDocRefs(cwd, LOCAL_DOCS), canonicalDocs = await collectDocRefs(cwd, CANONICAL_DOCS), frameworkReferencePath = await pathExists(join(cwd, "FRAMEWORK.md")) ? relative(cwd, join(cwd, "FRAMEWORK.md")) || "FRAMEWORK.md" : void 0, frameworkReferenceMarkdown = frameworkReferencePath ? await readFile(join(cwd, frameworkReferencePath), "utf-8") : generateFrameworkMD(projectName), rules = await resolveAIRulesFile(cwd), cliContract = await resolveCLIContract();
90
124
  return {
91
125
  kind: "gorsee.framework",
92
126
  schemaVersion: 1,
@@ -131,6 +165,7 @@ export async function buildAIFrameworkPacket(cwd) {
131
165
  serverImports: 'import { middleware, type Context } from "gorsee/server"',
132
166
  routeExample: "routes/users/[id].tsx -> /users/:id"
133
167
  },
168
+ cli: cliContract,
134
169
  aiCommands: AI_COMMANDS,
135
170
  operationModes: AI_OPERATION_MODES,
136
171
  transport: AI_TRANSPORT_CONTRACT,
@@ -146,7 +181,18 @@ export async function buildAIFrameworkPacket(cwd) {
146
181
  "Read AGENTS.md first when it exists.",
147
182
  "Read FRAMEWORK.md for the current app shape and syntax.",
148
183
  "Read docs/PUBLIC_SURFACE_MAP.md for the canonical import map and scoped stable surfaces.",
184
+ "Read docs/PRODUCT_SURFACE_AUDIT.md for the current closed-vs-partial maturity snapshot before making broad product claims.",
185
+ "Read docs/NODE_NPM_ADOPTION.md before making package-manager or runtime adoption claims.",
186
+ "Read docs/AI_INTEGRATION_CONTRACT.json when editor tooling, MCP, bridge, or session-handoff integration boundaries matter.",
187
+ "Read docs/THIRD_PARTY_EDITOR_INTEGRATIONS.md when wiring editor tooling beyond the packaged VS Code/Cursor extension.",
149
188
  "Read docs/SUPPORT_MATRIX.md when runtime, packaging, or deploy assumptions matter.",
189
+ "Read docs/REACTIVE_MEASUREMENT_CONTRACT.json before making broad benchmark or reactivity evidence claims.",
190
+ "Read docs/REACTIVE_EVIDENCE_SUMMARY.md for release-facing reactive evidence and docs/REACTIVE_MEASUREMENT_GAPS.md for the broader remaining backlog.",
191
+ "Read docs/COMPETITION_CLOSURE_PLAN.md and docs/COMPETITION_BACKLOG.json before making market-competition or adoption claims.",
192
+ "Read docs/EXTERNAL_PROOF_CLAIMS.json before writing or reviewing validatedClaims for external proof candidates.",
193
+ "Read docs/EXTERNAL_PROOF_EXECUTION.md and docs/EXTERNAL_PROOF_OUTREACH.json before sourcing or qualifying external proof leads.",
194
+ "Use npm run external-proof:scaffold -- --type migration|reference --id <candidate-id> when a real external proof lead needs a local draft bundle.",
195
+ "Use the external-proof intake/review/registry docs for real public migration stories and external references; do not treat pending entries as accepted proof.",
150
196
  "Prefer inspect/propose modes before apply/operate when the task is still ambiguous.",
151
197
  `Respect the current app.mode contract: ${appMode}.`,
152
198
  "Use gorsee/client for browser-safe code and gorsee/server for runtime/server boundaries.",
@@ -198,6 +244,14 @@ export function renderAIFrameworkMarkdown(packet) {
198
244
  "",
199
245
  ...packet.aiCommands.map((entry) => `- \`${entry.command}\` -- ${entry.purpose}`),
200
246
  "",
247
+ "## CLI Commands",
248
+ "",
249
+ ...packet.cli.topLevelCommands.map((entry) => `- \`${entry.command}\` [${entry.stability}] -- ${entry.purpose}`),
250
+ "",
251
+ "## CLI AI Subcommands",
252
+ "",
253
+ ...packet.cli.aiSubcommands.map((entry) => `- \`${entry.command}\` [${entry.stability}] -- ${entry.purpose}`),
254
+ "",
201
255
  "## AI Operation Modes",
202
256
  "",
203
257
  ...packet.operationModes.map((entry) => `- \`${entry.mode}\` -- ${entry.purpose}`),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gorsee",
3
- "version": "0.2.15",
3
+ "version": "0.2.17",
4
4
  "description": "AI-first reactive full-stack TypeScript framework for deterministic human and agent collaboration",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.9",
@@ -76,6 +76,8 @@
76
76
  "api:policy": "node scripts/api-stability-check.mjs",
77
77
  "cli:policy": "node scripts/cli-contract-check.mjs",
78
78
  "adoption:policy": "node scripts/adoption-proof-check.mjs",
79
+ "competition:policy": "node scripts/competition-backlog-check.mjs",
80
+ "external-proof:scaffold": "node scripts/external-proof-scaffold.mjs",
79
81
  "ai:policy": "node scripts/ai-policy-check.mjs",
80
82
  "dx:policy": "node scripts/dx-policy-check.mjs",
81
83
  "maturity:policy": "node scripts/maturity-policy-check.mjs",
@@ -106,7 +108,7 @@
106
108
  "coverage:audit": "node scripts/coverage-audit-check.mjs",
107
109
  "repo:policy": "node scripts/repo-policy-check.mjs",
108
110
  "ci:policy": "node scripts/ci-policy-check.mjs",
109
- "verify:security": "bun run check && bun run product:policy && bun run dependency:policy && bun run deploy:policy && bun run api:policy && bun run cli:policy && bun run adoption:policy && bun run ai:policy && bun run dx:policy && bun run maturity:policy && bun run top-tier:exit && bun run runtime:policy && bun run runtime:security:policy && bun run benchmarks:policy && bun run benchmarks:realworld:check && bun run examples:policy && bun run proof:policy && bun run critical:surface && bun run coverage:audit && bun run repo:policy && bun run ci:policy && bun run compiler:promotion:check && bun run build:promotion:check && bun run backend:switch:evidence:check && bun run backend:default-switch:review:check && bun run backend:candidate:rollout:check && bun run compiler:default:rehearsal:check && bun run build:default:rehearsal:check && bun run test:security && bun run test:critical-surface && bun run test:confidence",
111
+ "verify:security": "bun run check && bun run product:policy && bun run dependency:policy && bun run deploy:policy && bun run api:policy && bun run cli:policy && bun run adoption:policy && bun run competition:policy && bun run ai:policy && bun run dx:policy && bun run maturity:policy && bun run top-tier:exit && bun run runtime:policy && bun run runtime:security:policy && bun run benchmarks:policy && bun run benchmarks:realworld:check && bun run examples:policy && bun run proof:policy && bun run critical:surface && bun run coverage:audit && bun run repo:policy && bun run ci:policy && bun run compiler:promotion:check && bun run build:promotion:check && bun run backend:switch:evidence:check && bun run backend:default-switch:review:check && bun run backend:candidate:rollout:check && bun run compiler:default:rehearsal:check && bun run build:default:rehearsal:check && bun run test:security && bun run test:critical-surface && bun run test:confidence",
110
112
  "check": "tsc --noEmit",
111
113
  "install:matrix": "node scripts/install-matrix-check.mjs",
112
114
  "dev": "bun run src/dev.ts",