@hasna/instructions 0.4.5 → 0.4.7

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
@@ -157,13 +157,19 @@ Local data is stored in `~/.hasna/configs/` (unchanged, for fleet continuity).
157
157
 
158
158
  `instructions session plan` and `instructions session apply` render
159
159
  OpenIdentities and instruction sources into provider-native files for Claude,
160
- Codex, Cursor, OpenCode, Codewith, aicopilot, and Google Antigravity.
160
+ Codex, Cursor, OpenCode, Codewith, Qwen, aicopilot, and Google Antigravity.
161
161
  The old Google agent target is removed; Antigravity is the only Google coding
162
162
  agent render target. Antigravity workspace rules are rendered to
163
163
  `.agents/rules/*.md`; its current global rules and MCP files use Google's
164
164
  legacy-named `~/.gemini/GEMINI.md` and `~/.gemini/config/mcp_config.json`
165
165
  paths but remain owned by the `antigravity` target.
166
166
 
167
+ Qwen Code session rendering writes `QWEN.md` instructional context with
168
+ `QWEN_HOME` pointing at the rendered profile home. Known config sync also
169
+ tracks Qwen Code `QWEN.md` and `settings.json` files at `~/.qwen/...` and
170
+ project `QWEN.md` / `.qwen/settings.json`, so native hook settings can be
171
+ managed without claiming session-rendered context is hard enforcement.
172
+
167
173
  ```bash
168
174
  instructions session plan \
169
175
  --tool codewith \
@@ -189,8 +195,17 @@ before mutating managed files.
189
195
  `instructions init` and `bun run seed` also seed
190
196
  `global-agent-rules-standard`, the managed global/system prompt source for
191
197
  session renaming, task-scoped worktrees, PR-first landing, protected-branch
192
- push safety, autonomous repair, Hasna CLI source-of-truth usage, conversation
193
- surface routing, and unbudgeted Codewith goals unless a user asks for budgets.
198
+ push safety, no brittle hardcoding when source-of-truth or reusable abstractions
199
+ exist, autonomous repair, Hasna CLI source-of-truth usage, conversation surface
200
+ routing, and unbudgeted Codewith goals unless a user asks for budgets.
201
+
202
+ They also seed `dangerous-operation-guard-standard`, the managed station01 guard
203
+ source for risky shell commands, edits, git operations, package installs, and
204
+ secret-adjacent access. The guard excludes Gemini CLI, requires Codewith/Codex
205
+ `PreToolUse` to hard-deny or inject context rather than ask for approval, uses
206
+ `PermissionRequest` for Codewith/Codex approvals, records that Qwen `QWEN.md`
207
+ is policy context only, and records native hook or wrapper/plugin fallback
208
+ expectations for Claude, Qwen, OpenCode, Cursor, and Antigravity.
194
209
 
195
210
  ## Machine-aware Profiles
196
211
 
package/dist/cli/index.js CHANGED
@@ -2092,6 +2092,7 @@ var init_types = __esm(() => {
2092
2092
  "codewith",
2093
2093
  "aicopilot",
2094
2094
  "antigravity",
2095
+ "qwen",
2095
2096
  "zsh",
2096
2097
  "git",
2097
2098
  "npm",
@@ -4022,6 +4023,7 @@ var init_session_render = __esm(() => {
4022
4023
  "cursor",
4023
4024
  "opencode",
4024
4025
  "codewith",
4026
+ "qwen",
4025
4027
  "aicopilot",
4026
4028
  "antigravity"
4027
4029
  ];
@@ -4101,6 +4103,15 @@ var init_session_render = __esm(() => {
4101
4103
  nativeImports: false,
4102
4104
  description: "AI Copilot AICOPILOT.md flattened instruction file."
4103
4105
  },
4106
+ qwen: {
4107
+ tool: "qwen",
4108
+ mode: "flattened-markdown",
4109
+ indexFile: "QWEN.md",
4110
+ managedDir: ".qwen/instructions",
4111
+ envVar: "QWEN_HOME",
4112
+ nativeImports: false,
4113
+ description: "Qwen Code QWEN.md hierarchical instructional context file."
4114
+ },
4104
4115
  antigravity: {
4105
4116
  tool: "antigravity",
4106
4117
  mode: "antigravity-rules",
@@ -4992,7 +5003,7 @@ function detectCategory(filePath) {
4992
5003
  return "rules";
4993
5004
  if (p.includes(".mcp.json") || p.includes("mcp"))
4994
5005
  return "mcp";
4995
- if (p.includes("/.claude/") || p.includes("/.codex/") || p.includes("/.antigravity/") || p.includes("/.agents/") || p.includes("/.cursor/") || p.includes("/.config/opencode/") || p.includes("/.codewith/") || p.includes("/.config/aicopilot/"))
5006
+ if (p.includes("/.claude/") || p.includes("/.codex/") || p.includes("/.antigravity/") || p.includes("/.agents/") || p.includes("/.cursor/") || p.includes("/.config/opencode/") || p.includes("/.codewith/") || p.includes("/.config/aicopilot/") || p.includes("/.qwen/"))
4996
5007
  return "agent";
4997
5008
  if (p.includes(".zshrc") || p.includes(".zprofile") || p.includes(".bashrc") || p.includes(".bash_profile"))
4998
5009
  return "shell";
@@ -5020,6 +5031,8 @@ function detectAgent(filePath) {
5020
5031
  return "codewith";
5021
5032
  if (p.includes("/.config/aicopilot/"))
5022
5033
  return "aicopilot";
5034
+ if (p.includes("/.qwen/"))
5035
+ return "qwen";
5023
5036
  if (p.includes("/.antigravity/"))
5024
5037
  return "antigravity";
5025
5038
  if (p.includes("/.codex/") || p.endsWith("agents.md"))
@@ -5061,7 +5074,8 @@ var init_sync = __esm(() => {
5061
5074
  { agent: "opencode", target_path: "~/.config/opencode/AGENTS.md", transform: "opencode-flat" },
5062
5075
  { agent: "aicopilot", target_path: "~/.config/aicopilot/AICOPILOT.md", transform: "codex-flat" },
5063
5076
  { agent: "antigravity", target_path: "~/.gemini/GEMINI.md", transform: "codex-flat" },
5064
- { agent: "cursor", target_path: "~/.cursor/rules/claude.mdc", transform: "cursor-mdc" }
5077
+ { agent: "cursor", target_path: "~/.cursor/rules/claude.mdc", transform: "cursor-mdc" },
5078
+ { agent: "qwen", target_path: "~/.qwen/QWEN.md", transform: "codex-flat" }
5065
5079
  ];
5066
5080
  KNOWN_CONFIGS = [
5067
5081
  { path: "~/.claude/CLAUDE.md", name: "claude-claude-md", category: "rules", agent: "claude", format: "markdown", outputs: CLAUDE_PROMPT_OUTPUTS },
@@ -5081,6 +5095,8 @@ var init_sync = __esm(() => {
5081
5095
  { path: "~/.config/aicopilot/aicopilot.json", name: "aicopilot-config", category: "mcp", agent: "aicopilot", format: "json", optional: true, description: "AI Copilot config (includes instructions and MCP server entries)" },
5082
5096
  { path: "~/.gemini/GEMINI.md", name: "antigravity-global-rules", category: "rules", agent: "antigravity", format: "markdown", optional: true, description: "Google Antigravity global rules file" },
5083
5097
  { path: "~/.gemini/config/mcp_config.json", name: "antigravity-global-mcp", category: "mcp", agent: "antigravity", format: "json", optional: true, description: "Google Antigravity global MCP server entries" },
5098
+ { path: "~/.qwen/QWEN.md", name: "qwen-qwen-md", category: "rules", agent: "qwen", format: "markdown", optional: true, description: "Qwen Code global instructional context" },
5099
+ { path: "~/.qwen/settings.json", name: "qwen-settings", category: "agent", agent: "qwen", format: "json", optional: true, description: "Qwen Code settings.json, including native hooks" },
5084
5100
  { path: "~/.claude.json", name: "claude-json", category: "mcp", agent: "claude", format: "json", description: "Claude Code global config (includes MCP server entries)" },
5085
5101
  { path: "~/.zshrc", name: "zshrc", category: "shell", agent: "zsh" },
5086
5102
  { path: "~/.zprofile", name: "zprofile", category: "shell", agent: "zsh", optional: true },
@@ -5103,7 +5119,9 @@ var init_sync = __esm(() => {
5103
5119
  { file: ".aicopilot/AICOPILOT.md", category: "rules", agent: "aicopilot", format: "markdown" },
5104
5120
  { file: "AICOPILOT.md", category: "rules", agent: "aicopilot", format: "markdown" },
5105
5121
  { file: ".cursor/mcp.json", category: "mcp", agent: "cursor", format: "json" },
5106
- { file: ".agents/mcp_config.json", category: "mcp", agent: "antigravity", format: "json" }
5122
+ { file: "QWEN.md", category: "rules", agent: "qwen", format: "markdown" },
5123
+ { file: ".agents/mcp_config.json", category: "mcp", agent: "antigravity", format: "json" },
5124
+ { file: ".qwen/settings.json", category: "agent", agent: "qwen", format: "json" }
5107
5125
  ];
5108
5126
  });
5109
5127
 
@@ -6861,6 +6879,7 @@ async function ensurePlatformProfiles(store = resolveConfigStore()) {
6861
6879
  // src/lib/global-agent-rules-standard.ts
6862
6880
  init_config_store();
6863
6881
  var GLOBAL_AGENT_RULES_STANDARD_SLUG = "global-agent-rules-standard";
6882
+ var NO_BRITTLE_HARDCODING_RULE = "Do not hardcode brittle values, paths, provider names, config, business logic, environment-specific IDs, or one-off mappings when a source-of-truth, schema/config-driven, package-owned, reusable, or cleaner abstraction exists. This is especially strict in medium and large applications. Explicit constants, fixtures, tests, and temporary compatibility shims are allowed only when scoped, named, and justified.";
6864
6883
  var GLOBAL_AGENT_RULES_STANDARD_CONTENT = `# Global Coding Agent Rules Standard
6865
6884
 
6866
6885
  This standard is managed global/system prompt source content for Hasna coding
@@ -6885,24 +6904,25 @@ policy source supersedes them.
6885
6904
  request before landing.
6886
6905
  5. Never push directly to \`main\`, the default branch, or any protected branch
6887
6906
  unless the user explicitly instructs that exact repo and operation.
6907
+ 6. ${NO_BRITTLE_HARDCODING_RULE}
6888
6908
 
6889
6909
  ## Autonomy and Source-of-Truth Tools
6890
6910
 
6891
- 6. Act autonomously. Diagnose, repair, validate, and iterate on the owning
6911
+ 7. Act autonomously. Diagnose, repair, validate, and iterate on the owning
6892
6912
  CLIs, packages, and workflows before asking the user. Ask only when blocked
6893
6913
  by destructive decisions, secret-bearing decisions, user-only authority, or
6894
6914
  external state the agent cannot safely obtain.
6895
- 7. Use Hasna CLIs/packages as the source of truth: \`todos\`, \`conversations\`,
6915
+ 8. Use Hasna CLIs/packages as the source of truth: \`todos\`, \`conversations\`,
6896
6916
  \`mementos\`, \`knowledge\`, \`projects\`, \`repos\`, \`accounts\`,
6897
6917
  \`instructions\`, \`machines\`, \`secrets\`, and \`access\`.
6898
- 8. Secrets safety is mandatory. Never expose secrets in prompts, tasks,
6918
+ 9. Secrets safety is mandatory. Never expose secrets in prompts, tasks,
6899
6919
  memories, conversations, manifests, reports, logs, PR text, or any other
6900
6920
  agent-visible output. Reference vault item names, secret identifiers, and
6901
6921
  access grants only; never print credential values.
6902
6922
 
6903
6923
  ## Conversation Surfaces
6904
6924
 
6905
- 9. Use default conversation surfaces correctly: \`announcements\` for policy,
6925
+ 10. Use default conversation surfaces correctly: \`announcements\` for policy,
6906
6926
  freeze, breaking, cutover, and release notices; \`incidents\` for outages,
6907
6927
  crash loops, data risk, or security exposure; \`git-publishing\` before and
6908
6928
  after package publishes; \`git-prs\`, \`git-commits\`, and \`git-releases\`
@@ -6933,6 +6953,127 @@ async function ensureGlobalAgentRulesStandardConfig(store = resolveConfigStore()
6933
6953
  }
6934
6954
  }
6935
6955
 
6956
+ // src/lib/dangerous-operation-guard-standard.ts
6957
+ init_config_store();
6958
+ var DANGEROUS_OPERATION_GUARD_STANDARD_SLUG = "dangerous-operation-guard-standard";
6959
+ var DANGEROUS_OPERATION_GUARD_STANDARD_CONTENT = `# Dangerous Operation Guard Standard
6960
+
6961
+ This standard is the managed instruction/config source for sustained Hasna
6962
+ coding agents on station01 and compatible fleet machines. Its purpose is to
6963
+ route risky shell commands, file edits, git operations, package installs, and
6964
+ secret-adjacent access through native guard surfaces where the runtime supports
6965
+ them, or through a documented wrapper/plugin fallback where it does not.
6966
+
6967
+ ## Scope
6968
+
6969
+ - Apply this guard to sustained Codewith, Codex, Claude Code, Qwen Code,
6970
+ OpenCode, Cursor, and Google Antigravity agents on station01.
6971
+ - Do not target Gemini CLI. Gemini is retired for Hasna coding-agent rollout
6972
+ purposes; Antigravity is the active Google agent target.
6973
+ - Keep guard policy in managed instructions/config. Do not repair rollout gaps
6974
+ by hand-editing generated agent files outside the managed renderer.
6975
+
6976
+ ## Codewith and Codex
6977
+
6978
+ - Use managed Codewith/Codex config and requirements where supported.
6979
+ - A managed requirements policy should set \`allow_managed_hooks_only = true\`
6980
+ so unmanaged local/project hooks cannot bypass the managed guard set.
6981
+ - \`PreToolUse\` is a hard-deny and context-injection surface. It may block a
6982
+ dangerous operation or allow a safe rewrite supported by the runtime, but it
6983
+ must not try to ask the user for approval.
6984
+ - Approval decisions belong in \`PermissionRequest\` hooks. If a dangerous
6985
+ operation needs human approval, let the runtime raise a permission request
6986
+ and decide there; do not return \`permissionDecision: "ask"\` from
6987
+ \`PreToolUse\`.
6988
+ - The current managed hook set should cover shell commands, file writes,
6989
+ patch/edit tools, MCP file-modifying tools, branch/worktree safety,
6990
+ secret-adjacent paths, package installs, staged secret scans before commit or
6991
+ push, and fleet freeze/blocker gates.
6992
+
6993
+ ## Claude Code
6994
+
6995
+ - Use Claude Code native hooks in managed \`settings.json\` where available.
6996
+ - Claude \`PreToolUse\` can use its native approval/defer semantics, but the
6997
+ shared classifier must keep runtime-specific adapters so Claude behavior is
6998
+ not collapsed into Codewith/Codex semantics.
6999
+ - When native hooks are unavailable, use the managed wrapper that launches
7000
+ Claude with the guarded hook profile rather than copying one-off rules into a
7001
+ local prompt file.
7002
+
7003
+ ## Qwen Code
7004
+
7005
+ - Session rendering writes Qwen Code \`QWEN.md\` instructional context. This is
7006
+ policy context only; hard enforcement still requires native hooks or a
7007
+ managed wrapper/plugin.
7008
+ - Use Qwen Code native \`settings.json\` hooks for hard enforcement. User-level
7009
+ settings live at \`~/.qwen/settings.json\`; project-level settings live at
7010
+ \`.qwen/settings.json\`.
7011
+ - Qwen hooks are configured under the \`hooks\` object with event arrays such
7012
+ as \`PreToolUse\`; each hook entry should be a managed command or HTTP hook
7013
+ with an explicit name, description, matcher, timeout, and shell where needed.
7014
+ - If the installed Qwen hook payload is not compatible with the shared
7015
+ classifier yet, use a managed extension or wrapper fallback that preserves
7016
+ the same deny-before-execute behavior.
7017
+
7018
+ ## OpenCode
7019
+
7020
+ - Use native \`opencode.json\` instructions and the OpenCode plugin surface
7021
+ where a plugin is available.
7022
+ - If no native plugin is installed, launch through the managed wrapper that
7023
+ runs the shared guard before auto-approved operations.
7024
+
7025
+ ## Cursor
7026
+
7027
+ - Use project-owned \`.cursor/rules/*.mdc\` for policy rendering.
7028
+ - Because Cursor rule files are advisory prompt context rather than a verified
7029
+ pre-tool hard gate, require a managed wrapper/plugin fallback for enforcement
7030
+ before claiming the dangerous-operation guard is active.
7031
+
7032
+ ## Antigravity
7033
+
7034
+ - Use project-owned \`.agents/rules/*.md\` and Antigravity-owned MCP/config
7035
+ paths where available.
7036
+ - Antigravity may still use legacy-named \`~/.gemini/...\` global paths for
7037
+ Antigravity-owned files, but this must never reintroduce an active
7038
+ \`gemini\` target.
7039
+ - If no native pre-tool hook is verified, use a managed wrapper/plugin
7040
+ fallback before claiming hard enforcement.
7041
+
7042
+ ## Verification
7043
+
7044
+ Before rollout is marked complete:
7045
+
7046
+ 1. Render managed instructions for every render-supported station01 agent and
7047
+ sync managed settings/config for hook-only surfaces.
7048
+ 2. Verify Gemini is absent from active target lists and generated outputs.
7049
+ 3. Verify Codewith/Codex \`PreToolUse\` rejects ask-style approvals and
7050
+ \`PermissionRequest\` is the approval path.
7051
+ 4. Verify each non-Codewith runtime either has a native hook/config proof or is
7052
+ explicitly listed as wrapper/plugin fallback.
7053
+ 5. Run the staged secrets scan before every commit or push.
7054
+ `;
7055
+ async function ensureDangerousOperationGuardStandardConfig(store = resolveConfigStore()) {
7056
+ const input = {
7057
+ name: "Dangerous Operation Guard Standard",
7058
+ category: "rules",
7059
+ agent: "global",
7060
+ format: "markdown",
7061
+ content: DANGEROUS_OPERATION_GUARD_STANDARD_CONTENT,
7062
+ kind: "reference",
7063
+ description: "Managed dangerous-operation guard policy for sustained Hasna coding agents",
7064
+ tags: ["dangerous-operation-guard", "hooks", "coding-agent-rules", "station01"]
7065
+ };
7066
+ try {
7067
+ const existing = await store.getConfig(DANGEROUS_OPERATION_GUARD_STANDARD_SLUG);
7068
+ if (existing.content !== input.content || existing.description !== input.description || existing.category !== input.category || existing.agent !== input.agent || existing.format !== input.format || existing.kind !== input.kind || JSON.stringify(existing.tags) !== JSON.stringify(input.tags)) {
7069
+ return await store.updateConfig(existing.id, input);
7070
+ }
7071
+ return existing;
7072
+ } catch {
7073
+ return await store.createConfig(input);
7074
+ }
7075
+ }
7076
+
6936
7077
  // src/status.ts
6937
7078
  init_config_store();
6938
7079
  init_apply();
@@ -7483,7 +7624,7 @@ program.command("diff [id]").description("Show diff between stored config and di
7483
7624
  process.exit(1);
7484
7625
  }
7485
7626
  });
7486
- program.command("sync").description("Sync known AI coding configs from disk into DB (claude, codex, opencode, cursor, codewith, aicopilot, antigravity, zsh, git, npm)").option("-a, --agent <agent>", "only sync configs for this agent (claude|codex|opencode|cursor|codewith|aicopilot|antigravity|zsh|git|npm)").option("-c, --category <cat>", "only sync configs in this category").option("-p, --project [dir]", "sync project-scoped configs (CLAUDE.md, .mcp.json, etc.) from a project dir").option("--all", "with --project: scan all subdirs for projects to sync").option("--to-disk", "apply DB configs back to disk instead").option("--dry-run", "preview without writing").option("--list", "show which files would be synced without doing anything").option("--limit <n>", `with --list, max rows (default ${DEFAULT_LIST_LIMIT})`).option("--cursor <n>", "with --list, zero-based pagination cursor").action(async (opts) => {
7627
+ program.command("sync").description("Sync known AI coding configs from disk into DB (claude, codex, opencode, cursor, codewith, aicopilot, antigravity, qwen, zsh, git, npm)").option("-a, --agent <agent>", "only sync configs for this agent (claude|codex|opencode|cursor|codewith|aicopilot|antigravity|qwen|zsh|git|npm)").option("-c, --category <cat>", "only sync configs in this category").option("-p, --project [dir]", "sync project-scoped configs (CLAUDE.md, .mcp.json, etc.) from a project dir").option("--all", "with --project: scan all subdirs for projects to sync").option("--to-disk", "apply DB configs back to disk instead").option("--dry-run", "preview without writing").option("--list", "show which files would be synced without doing anything").option("--limit <n>", `with --list, max rows (default ${DEFAULT_LIST_LIMIT})`).option("--cursor <n>", "with --list, zero-based pagination cursor").action(async (opts) => {
7487
7628
  const store = resolveConfigStore();
7488
7629
  if (opts.list) {
7489
7630
  const targets = KNOWN_CONFIGS.filter((k) => {
@@ -8144,6 +8285,7 @@ Keys: ANTHROPIC_API_KEY, OPENAI_API_KEY, EXA_API_KEY, NPM_TOKEN, GITHUB_TOKEN`,
8144
8285
  }
8145
8286
  }
8146
8287
  await ensureGlobalAgentRulesStandardConfig(store);
8288
+ await ensureDangerousOperationGuardStandardConfig(store);
8147
8289
  await ensureProjectDashboardStandardConfig(store);
8148
8290
  try {
8149
8291
  await store.getProfile("my-setup");
package/dist/index.d.ts CHANGED
@@ -19,6 +19,7 @@ export type { MachineContextOverrides } from "./lib/machine.js";
19
19
  export { PLATFORM_PROFILE_PRESETS, ensurePlatformProfiles } from "./lib/platform-profiles.js";
20
20
  export { PROJECT_DASHBOARD_PROFILE_VARIABLES, PROJECT_DASHBOARD_STANDARD_CONTENT, PROJECT_DASHBOARD_STANDARD_SLUG, ensureProjectDashboardStandardConfig, } from "./lib/project-dashboard-standard.js";
21
21
  export { GLOBAL_AGENT_RULES_STANDARD_CONTENT, GLOBAL_AGENT_RULES_STANDARD_SLUG, ensureGlobalAgentRulesStandardConfig, } from "./lib/global-agent-rules-standard.js";
22
+ export { DANGEROUS_OPERATION_GUARD_STANDARD_CONTENT, DANGEROUS_OPERATION_GUARD_STANDARD_SLUG, ensureDangerousOperationGuardStandardConfig, } from "./lib/dangerous-operation-guard-standard.js";
22
23
  export { syncKnown, syncToDisk, syncProject, diffConfig, detectCategory, detectAgent, detectFormat, KNOWN_CONFIGS, PROJECT_CONFIG_FILES } from "./lib/sync.js";
23
24
  export { syncFromDir, syncToDir } from "./lib/sync-dir.js";
24
25
  export type { SyncKnownOptions, SyncToDiskOptions, SyncProjectOptions, KnownConfig } from "./lib/sync.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ var CONFIG_AGENTS = [
19
19
  "codewith",
20
20
  "aicopilot",
21
21
  "antigravity",
22
+ "qwen",
22
23
  "zsh",
23
24
  "git",
24
25
  "npm",
@@ -1109,6 +1110,7 @@ var SESSION_RENDER_TOOLS = [
1109
1110
  "cursor",
1110
1111
  "opencode",
1111
1112
  "codewith",
1113
+ "qwen",
1112
1114
  "aicopilot",
1113
1115
  "antigravity"
1114
1116
  ];
@@ -1188,6 +1190,15 @@ var SESSION_TOOL_ADAPTERS = {
1188
1190
  nativeImports: false,
1189
1191
  description: "AI Copilot AICOPILOT.md flattened instruction file."
1190
1192
  },
1193
+ qwen: {
1194
+ tool: "qwen",
1195
+ mode: "flattened-markdown",
1196
+ indexFile: "QWEN.md",
1197
+ managedDir: ".qwen/instructions",
1198
+ envVar: "QWEN_HOME",
1199
+ nativeImports: false,
1200
+ description: "Qwen Code QWEN.md hierarchical instructional context file."
1201
+ },
1191
1202
  antigravity: {
1192
1203
  tool: "antigravity",
1193
1204
  mode: "antigravity-rules",
@@ -3213,6 +3224,7 @@ async function ensurePlatformProfiles(store = resolveConfigStore()) {
3213
3224
  }
3214
3225
  // src/lib/global-agent-rules-standard.ts
3215
3226
  var GLOBAL_AGENT_RULES_STANDARD_SLUG = "global-agent-rules-standard";
3227
+ var NO_BRITTLE_HARDCODING_RULE = "Do not hardcode brittle values, paths, provider names, config, business logic, environment-specific IDs, or one-off mappings when a source-of-truth, schema/config-driven, package-owned, reusable, or cleaner abstraction exists. This is especially strict in medium and large applications. Explicit constants, fixtures, tests, and temporary compatibility shims are allowed only when scoped, named, and justified.";
3216
3228
  var GLOBAL_AGENT_RULES_STANDARD_CONTENT = `# Global Coding Agent Rules Standard
3217
3229
 
3218
3230
  This standard is managed global/system prompt source content for Hasna coding
@@ -3237,24 +3249,25 @@ policy source supersedes them.
3237
3249
  request before landing.
3238
3250
  5. Never push directly to \`main\`, the default branch, or any protected branch
3239
3251
  unless the user explicitly instructs that exact repo and operation.
3252
+ 6. ${NO_BRITTLE_HARDCODING_RULE}
3240
3253
 
3241
3254
  ## Autonomy and Source-of-Truth Tools
3242
3255
 
3243
- 6. Act autonomously. Diagnose, repair, validate, and iterate on the owning
3256
+ 7. Act autonomously. Diagnose, repair, validate, and iterate on the owning
3244
3257
  CLIs, packages, and workflows before asking the user. Ask only when blocked
3245
3258
  by destructive decisions, secret-bearing decisions, user-only authority, or
3246
3259
  external state the agent cannot safely obtain.
3247
- 7. Use Hasna CLIs/packages as the source of truth: \`todos\`, \`conversations\`,
3260
+ 8. Use Hasna CLIs/packages as the source of truth: \`todos\`, \`conversations\`,
3248
3261
  \`mementos\`, \`knowledge\`, \`projects\`, \`repos\`, \`accounts\`,
3249
3262
  \`instructions\`, \`machines\`, \`secrets\`, and \`access\`.
3250
- 8. Secrets safety is mandatory. Never expose secrets in prompts, tasks,
3263
+ 9. Secrets safety is mandatory. Never expose secrets in prompts, tasks,
3251
3264
  memories, conversations, manifests, reports, logs, PR text, or any other
3252
3265
  agent-visible output. Reference vault item names, secret identifiers, and
3253
3266
  access grants only; never print credential values.
3254
3267
 
3255
3268
  ## Conversation Surfaces
3256
3269
 
3257
- 9. Use default conversation surfaces correctly: \`announcements\` for policy,
3270
+ 10. Use default conversation surfaces correctly: \`announcements\` for policy,
3258
3271
  freeze, breaking, cutover, and release notices; \`incidents\` for outages,
3259
3272
  crash loops, data risk, or security exposure; \`git-publishing\` before and
3260
3273
  after package publishes; \`git-prs\`, \`git-commits\`, and \`git-releases\`
@@ -3284,6 +3297,125 @@ async function ensureGlobalAgentRulesStandardConfig(store = resolveConfigStore()
3284
3297
  return await store.createConfig(input);
3285
3298
  }
3286
3299
  }
3300
+ // src/lib/dangerous-operation-guard-standard.ts
3301
+ var DANGEROUS_OPERATION_GUARD_STANDARD_SLUG = "dangerous-operation-guard-standard";
3302
+ var DANGEROUS_OPERATION_GUARD_STANDARD_CONTENT = `# Dangerous Operation Guard Standard
3303
+
3304
+ This standard is the managed instruction/config source for sustained Hasna
3305
+ coding agents on station01 and compatible fleet machines. Its purpose is to
3306
+ route risky shell commands, file edits, git operations, package installs, and
3307
+ secret-adjacent access through native guard surfaces where the runtime supports
3308
+ them, or through a documented wrapper/plugin fallback where it does not.
3309
+
3310
+ ## Scope
3311
+
3312
+ - Apply this guard to sustained Codewith, Codex, Claude Code, Qwen Code,
3313
+ OpenCode, Cursor, and Google Antigravity agents on station01.
3314
+ - Do not target Gemini CLI. Gemini is retired for Hasna coding-agent rollout
3315
+ purposes; Antigravity is the active Google agent target.
3316
+ - Keep guard policy in managed instructions/config. Do not repair rollout gaps
3317
+ by hand-editing generated agent files outside the managed renderer.
3318
+
3319
+ ## Codewith and Codex
3320
+
3321
+ - Use managed Codewith/Codex config and requirements where supported.
3322
+ - A managed requirements policy should set \`allow_managed_hooks_only = true\`
3323
+ so unmanaged local/project hooks cannot bypass the managed guard set.
3324
+ - \`PreToolUse\` is a hard-deny and context-injection surface. It may block a
3325
+ dangerous operation or allow a safe rewrite supported by the runtime, but it
3326
+ must not try to ask the user for approval.
3327
+ - Approval decisions belong in \`PermissionRequest\` hooks. If a dangerous
3328
+ operation needs human approval, let the runtime raise a permission request
3329
+ and decide there; do not return \`permissionDecision: "ask"\` from
3330
+ \`PreToolUse\`.
3331
+ - The current managed hook set should cover shell commands, file writes,
3332
+ patch/edit tools, MCP file-modifying tools, branch/worktree safety,
3333
+ secret-adjacent paths, package installs, staged secret scans before commit or
3334
+ push, and fleet freeze/blocker gates.
3335
+
3336
+ ## Claude Code
3337
+
3338
+ - Use Claude Code native hooks in managed \`settings.json\` where available.
3339
+ - Claude \`PreToolUse\` can use its native approval/defer semantics, but the
3340
+ shared classifier must keep runtime-specific adapters so Claude behavior is
3341
+ not collapsed into Codewith/Codex semantics.
3342
+ - When native hooks are unavailable, use the managed wrapper that launches
3343
+ Claude with the guarded hook profile rather than copying one-off rules into a
3344
+ local prompt file.
3345
+
3346
+ ## Qwen Code
3347
+
3348
+ - Session rendering writes Qwen Code \`QWEN.md\` instructional context. This is
3349
+ policy context only; hard enforcement still requires native hooks or a
3350
+ managed wrapper/plugin.
3351
+ - Use Qwen Code native \`settings.json\` hooks for hard enforcement. User-level
3352
+ settings live at \`~/.qwen/settings.json\`; project-level settings live at
3353
+ \`.qwen/settings.json\`.
3354
+ - Qwen hooks are configured under the \`hooks\` object with event arrays such
3355
+ as \`PreToolUse\`; each hook entry should be a managed command or HTTP hook
3356
+ with an explicit name, description, matcher, timeout, and shell where needed.
3357
+ - If the installed Qwen hook payload is not compatible with the shared
3358
+ classifier yet, use a managed extension or wrapper fallback that preserves
3359
+ the same deny-before-execute behavior.
3360
+
3361
+ ## OpenCode
3362
+
3363
+ - Use native \`opencode.json\` instructions and the OpenCode plugin surface
3364
+ where a plugin is available.
3365
+ - If no native plugin is installed, launch through the managed wrapper that
3366
+ runs the shared guard before auto-approved operations.
3367
+
3368
+ ## Cursor
3369
+
3370
+ - Use project-owned \`.cursor/rules/*.mdc\` for policy rendering.
3371
+ - Because Cursor rule files are advisory prompt context rather than a verified
3372
+ pre-tool hard gate, require a managed wrapper/plugin fallback for enforcement
3373
+ before claiming the dangerous-operation guard is active.
3374
+
3375
+ ## Antigravity
3376
+
3377
+ - Use project-owned \`.agents/rules/*.md\` and Antigravity-owned MCP/config
3378
+ paths where available.
3379
+ - Antigravity may still use legacy-named \`~/.gemini/...\` global paths for
3380
+ Antigravity-owned files, but this must never reintroduce an active
3381
+ \`gemini\` target.
3382
+ - If no native pre-tool hook is verified, use a managed wrapper/plugin
3383
+ fallback before claiming hard enforcement.
3384
+
3385
+ ## Verification
3386
+
3387
+ Before rollout is marked complete:
3388
+
3389
+ 1. Render managed instructions for every render-supported station01 agent and
3390
+ sync managed settings/config for hook-only surfaces.
3391
+ 2. Verify Gemini is absent from active target lists and generated outputs.
3392
+ 3. Verify Codewith/Codex \`PreToolUse\` rejects ask-style approvals and
3393
+ \`PermissionRequest\` is the approval path.
3394
+ 4. Verify each non-Codewith runtime either has a native hook/config proof or is
3395
+ explicitly listed as wrapper/plugin fallback.
3396
+ 5. Run the staged secrets scan before every commit or push.
3397
+ `;
3398
+ async function ensureDangerousOperationGuardStandardConfig(store = resolveConfigStore()) {
3399
+ const input = {
3400
+ name: "Dangerous Operation Guard Standard",
3401
+ category: "rules",
3402
+ agent: "global",
3403
+ format: "markdown",
3404
+ content: DANGEROUS_OPERATION_GUARD_STANDARD_CONTENT,
3405
+ kind: "reference",
3406
+ description: "Managed dangerous-operation guard policy for sustained Hasna coding agents",
3407
+ tags: ["dangerous-operation-guard", "hooks", "coding-agent-rules", "station01"]
3408
+ };
3409
+ try {
3410
+ const existing = await store.getConfig(DANGEROUS_OPERATION_GUARD_STANDARD_SLUG);
3411
+ if (existing.content !== input.content || existing.description !== input.description || existing.category !== input.category || existing.agent !== input.agent || existing.format !== input.format || existing.kind !== input.kind || JSON.stringify(existing.tags) !== JSON.stringify(input.tags)) {
3412
+ return await store.updateConfig(existing.id, input);
3413
+ }
3414
+ return existing;
3415
+ } catch {
3416
+ return await store.createConfig(input);
3417
+ }
3418
+ }
3287
3419
  // src/lib/sync.ts
3288
3420
  import { existsSync as existsSync9, readdirSync as readdirSync2, readFileSync as readFileSync7 } from "fs";
3289
3421
  import { basename as basename4, extname as extname3, join as join7 } from "path";
@@ -3374,7 +3506,8 @@ var CLAUDE_PROMPT_OUTPUTS = [
3374
3506
  { agent: "opencode", target_path: "~/.config/opencode/AGENTS.md", transform: "opencode-flat" },
3375
3507
  { agent: "aicopilot", target_path: "~/.config/aicopilot/AICOPILOT.md", transform: "codex-flat" },
3376
3508
  { agent: "antigravity", target_path: "~/.gemini/GEMINI.md", transform: "codex-flat" },
3377
- { agent: "cursor", target_path: "~/.cursor/rules/claude.mdc", transform: "cursor-mdc" }
3509
+ { agent: "cursor", target_path: "~/.cursor/rules/claude.mdc", transform: "cursor-mdc" },
3510
+ { agent: "qwen", target_path: "~/.qwen/QWEN.md", transform: "codex-flat" }
3378
3511
  ];
3379
3512
  function claudeRuleOutputs(fileName) {
3380
3513
  const stem = basename4(fileName, extname3(fileName));
@@ -3442,6 +3575,8 @@ var KNOWN_CONFIGS = [
3442
3575
  { path: "~/.config/aicopilot/aicopilot.json", name: "aicopilot-config", category: "mcp", agent: "aicopilot", format: "json", optional: true, description: "AI Copilot config (includes instructions and MCP server entries)" },
3443
3576
  { path: "~/.gemini/GEMINI.md", name: "antigravity-global-rules", category: "rules", agent: "antigravity", format: "markdown", optional: true, description: "Google Antigravity global rules file" },
3444
3577
  { path: "~/.gemini/config/mcp_config.json", name: "antigravity-global-mcp", category: "mcp", agent: "antigravity", format: "json", optional: true, description: "Google Antigravity global MCP server entries" },
3578
+ { path: "~/.qwen/QWEN.md", name: "qwen-qwen-md", category: "rules", agent: "qwen", format: "markdown", optional: true, description: "Qwen Code global instructional context" },
3579
+ { path: "~/.qwen/settings.json", name: "qwen-settings", category: "agent", agent: "qwen", format: "json", optional: true, description: "Qwen Code settings.json, including native hooks" },
3445
3580
  { path: "~/.claude.json", name: "claude-json", category: "mcp", agent: "claude", format: "json", description: "Claude Code global config (includes MCP server entries)" },
3446
3581
  { path: "~/.zshrc", name: "zshrc", category: "shell", agent: "zsh" },
3447
3582
  { path: "~/.zprofile", name: "zprofile", category: "shell", agent: "zsh", optional: true },
@@ -3464,7 +3599,9 @@ var PROJECT_CONFIG_FILES = [
3464
3599
  { file: ".aicopilot/AICOPILOT.md", category: "rules", agent: "aicopilot", format: "markdown" },
3465
3600
  { file: "AICOPILOT.md", category: "rules", agent: "aicopilot", format: "markdown" },
3466
3601
  { file: ".cursor/mcp.json", category: "mcp", agent: "cursor", format: "json" },
3467
- { file: ".agents/mcp_config.json", category: "mcp", agent: "antigravity", format: "json" }
3602
+ { file: "QWEN.md", category: "rules", agent: "qwen", format: "markdown" },
3603
+ { file: ".agents/mcp_config.json", category: "mcp", agent: "antigravity", format: "json" },
3604
+ { file: ".qwen/settings.json", category: "agent", agent: "qwen", format: "json" }
3468
3605
  ];
3469
3606
  async function syncProject(opts) {
3470
3607
  const store = opts.store ?? resolveConfigStore();
@@ -3738,7 +3875,7 @@ function detectCategory(filePath) {
3738
3875
  return "rules";
3739
3876
  if (p.includes(".mcp.json") || p.includes("mcp"))
3740
3877
  return "mcp";
3741
- if (p.includes("/.claude/") || p.includes("/.codex/") || p.includes("/.antigravity/") || p.includes("/.agents/") || p.includes("/.cursor/") || p.includes("/.config/opencode/") || p.includes("/.codewith/") || p.includes("/.config/aicopilot/"))
3878
+ if (p.includes("/.claude/") || p.includes("/.codex/") || p.includes("/.antigravity/") || p.includes("/.agents/") || p.includes("/.cursor/") || p.includes("/.config/opencode/") || p.includes("/.codewith/") || p.includes("/.config/aicopilot/") || p.includes("/.qwen/"))
3742
3879
  return "agent";
3743
3880
  if (p.includes(".zshrc") || p.includes(".zprofile") || p.includes(".bashrc") || p.includes(".bash_profile"))
3744
3881
  return "shell";
@@ -3766,6 +3903,8 @@ function detectAgent(filePath) {
3766
3903
  return "codewith";
3767
3904
  if (p.includes("/.config/aicopilot/"))
3768
3905
  return "aicopilot";
3906
+ if (p.includes("/.qwen/"))
3907
+ return "qwen";
3769
3908
  if (p.includes("/.antigravity/"))
3770
3909
  return "antigravity";
3771
3910
  if (p.includes("/.codex/") || p.endsWith("agents.md"))
@@ -4323,6 +4462,7 @@ export {
4323
4462
  ensureProjectDashboardStandardConfig,
4324
4463
  ensurePlatformProfiles,
4325
4464
  ensureGlobalAgentRulesStandardConfig,
4465
+ ensureDangerousOperationGuardStandardConfig,
4326
4466
  diffConfig,
4327
4467
  detectMachineContext,
4328
4468
  detectFormat,
@@ -4360,6 +4500,8 @@ export {
4360
4500
  KNOWN_CONFIGS,
4361
4501
  GLOBAL_AGENT_RULES_STANDARD_SLUG,
4362
4502
  GLOBAL_AGENT_RULES_STANDARD_CONTENT,
4503
+ DANGEROUS_OPERATION_GUARD_STANDARD_SLUG,
4504
+ DANGEROUS_OPERATION_GUARD_STANDARD_CONTENT,
4363
4505
  ConfigNotFoundError,
4364
4506
  ConfigApplyError,
4365
4507
  CloudHttpError,
@@ -0,0 +1,6 @@
1
+ import type { Config } from "../types/index.js";
2
+ import { type ConfigStore } from "../data/config-store.js";
3
+ export declare const DANGEROUS_OPERATION_GUARD_STANDARD_SLUG = "dangerous-operation-guard-standard";
4
+ export declare const DANGEROUS_OPERATION_GUARD_STANDARD_CONTENT = "# Dangerous Operation Guard Standard\n\nThis standard is the managed instruction/config source for sustained Hasna\ncoding agents on station01 and compatible fleet machines. Its purpose is to\nroute risky shell commands, file edits, git operations, package installs, and\nsecret-adjacent access through native guard surfaces where the runtime supports\nthem, or through a documented wrapper/plugin fallback where it does not.\n\n## Scope\n\n- Apply this guard to sustained Codewith, Codex, Claude Code, Qwen Code,\n OpenCode, Cursor, and Google Antigravity agents on station01.\n- Do not target Gemini CLI. Gemini is retired for Hasna coding-agent rollout\n purposes; Antigravity is the active Google agent target.\n- Keep guard policy in managed instructions/config. Do not repair rollout gaps\n by hand-editing generated agent files outside the managed renderer.\n\n## Codewith and Codex\n\n- Use managed Codewith/Codex config and requirements where supported.\n- A managed requirements policy should set `allow_managed_hooks_only = true`\n so unmanaged local/project hooks cannot bypass the managed guard set.\n- `PreToolUse` is a hard-deny and context-injection surface. It may block a\n dangerous operation or allow a safe rewrite supported by the runtime, but it\n must not try to ask the user for approval.\n- Approval decisions belong in `PermissionRequest` hooks. If a dangerous\n operation needs human approval, let the runtime raise a permission request\n and decide there; do not return `permissionDecision: \"ask\"` from\n `PreToolUse`.\n- The current managed hook set should cover shell commands, file writes,\n patch/edit tools, MCP file-modifying tools, branch/worktree safety,\n secret-adjacent paths, package installs, staged secret scans before commit or\n push, and fleet freeze/blocker gates.\n\n## Claude Code\n\n- Use Claude Code native hooks in managed `settings.json` where available.\n- Claude `PreToolUse` can use its native approval/defer semantics, but the\n shared classifier must keep runtime-specific adapters so Claude behavior is\n not collapsed into Codewith/Codex semantics.\n- When native hooks are unavailable, use the managed wrapper that launches\n Claude with the guarded hook profile rather than copying one-off rules into a\n local prompt file.\n\n## Qwen Code\n\n- Session rendering writes Qwen Code `QWEN.md` instructional context. This is\n policy context only; hard enforcement still requires native hooks or a\n managed wrapper/plugin.\n- Use Qwen Code native `settings.json` hooks for hard enforcement. User-level\n settings live at `~/.qwen/settings.json`; project-level settings live at\n `.qwen/settings.json`.\n- Qwen hooks are configured under the `hooks` object with event arrays such\n as `PreToolUse`; each hook entry should be a managed command or HTTP hook\n with an explicit name, description, matcher, timeout, and shell where needed.\n- If the installed Qwen hook payload is not compatible with the shared\n classifier yet, use a managed extension or wrapper fallback that preserves\n the same deny-before-execute behavior.\n\n## OpenCode\n\n- Use native `opencode.json` instructions and the OpenCode plugin surface\n where a plugin is available.\n- If no native plugin is installed, launch through the managed wrapper that\n runs the shared guard before auto-approved operations.\n\n## Cursor\n\n- Use project-owned `.cursor/rules/*.mdc` for policy rendering.\n- Because Cursor rule files are advisory prompt context rather than a verified\n pre-tool hard gate, require a managed wrapper/plugin fallback for enforcement\n before claiming the dangerous-operation guard is active.\n\n## Antigravity\n\n- Use project-owned `.agents/rules/*.md` and Antigravity-owned MCP/config\n paths where available.\n- Antigravity may still use legacy-named `~/.gemini/...` global paths for\n Antigravity-owned files, but this must never reintroduce an active\n `gemini` target.\n- If no native pre-tool hook is verified, use a managed wrapper/plugin\n fallback before claiming hard enforcement.\n\n## Verification\n\nBefore rollout is marked complete:\n\n1. Render managed instructions for every render-supported station01 agent and\n sync managed settings/config for hook-only surfaces.\n2. Verify Gemini is absent from active target lists and generated outputs.\n3. Verify Codewith/Codex `PreToolUse` rejects ask-style approvals and\n `PermissionRequest` is the approval path.\n4. Verify each non-Codewith runtime either has a native hook/config proof or is\n explicitly listed as wrapper/plugin fallback.\n5. Run the staged secrets scan before every commit or push.\n";
5
+ export declare function ensureDangerousOperationGuardStandardConfig(store?: ConfigStore): Promise<Config>;
6
+ //# sourceMappingURL=dangerous-operation-guard-standard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dangerous-operation-guard-standard.d.ts","sourceRoot":"","sources":["../../src/lib/dangerous-operation-guard-standard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E,eAAO,MAAM,uCAAuC,uCAAuC,CAAC;AAE5F,eAAO,MAAM,0CAA0C,ojJA+FtD,CAAC;AAEF,wBAAsB,2CAA2C,CAAC,KAAK,GAAE,WAAkC,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B5H"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dangerous-operation-guard-standard.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dangerous-operation-guard-standard.test.d.ts","sourceRoot":"","sources":["../../src/lib/dangerous-operation-guard-standard.test.ts"],"names":[],"mappings":""}
@@ -1,6 +1,7 @@
1
1
  import type { Config } from "../types/index.js";
2
2
  import { type ConfigStore } from "../data/config-store.js";
3
3
  export declare const GLOBAL_AGENT_RULES_STANDARD_SLUG = "global-agent-rules-standard";
4
- export declare const GLOBAL_AGENT_RULES_STANDARD_CONTENT = "# Global Coding Agent Rules Standard\n\nThis standard is managed global/system prompt source content for Hasna coding\nagents. Rendered agents must receive these rules unless a newer authorized\npolicy source supersedes them.\n\n## Session and Planning Defaults\n\n1. Use automatic session renaming when the agent supports it. Rename the\n session early to match the active task; if the task materially pivots, rename\n it again so operators can identify the run.\n2. Never set Codewith goal/token budgets or goal-plan budgets unless the user\n explicitly asks for a budget. Durable goals and goal plans are unbudgeted by\n default.\n\n## Repository Mutation and Landing\n\n3. Repo mutation must happen in a task-scoped worktree. First inspect the canonical worktree root\n `$HOME/.hasna/repos/worktrees`; prefer Hasna repo/project worktree\n mechanisms when available; otherwise use `git worktree`. Never mutate shared checkouts.\n4. PR-first landing: normal changes go through a branch/worktree and pull\n request before landing.\n5. Never push directly to `main`, the default branch, or any protected branch\n unless the user explicitly instructs that exact repo and operation.\n\n## Autonomy and Source-of-Truth Tools\n\n6. Act autonomously. Diagnose, repair, validate, and iterate on the owning\n CLIs, packages, and workflows before asking the user. Ask only when blocked\n by destructive decisions, secret-bearing decisions, user-only authority, or\n external state the agent cannot safely obtain.\n7. Use Hasna CLIs/packages as the source of truth: `todos`, `conversations`,\n `mementos`, `knowledge`, `projects`, `repos`, `accounts`,\n `instructions`, `machines`, `secrets`, and `access`.\n8. Secrets safety is mandatory. Never expose secrets in prompts, tasks,\n memories, conversations, manifests, reports, logs, PR text, or any other\n agent-visible output. Reference vault item names, secret identifiers, and\n access grants only; never print credential values.\n\n## Conversation Surfaces\n\n9. Use default conversation surfaces correctly: `announcements` for policy,\n freeze, breaking, cutover, and release notices; `incidents` for outages,\n crash loops, data risk, or security exposure; `git-publishing` before and\n after package publishes; `git-prs`, `git-commits`, and `git-releases`\n for repository landing events; `hq` for broad coordination;\n `agent-policy` for agent operating-rule discussion; project/product\n channels for normal work; and `conversations blockers` for blocker\n discovery. Do not invent or refer to a literal blockers channel.\n";
4
+ export declare const NO_BRITTLE_HARDCODING_RULE = "Do not hardcode brittle values, paths, provider names, config, business logic, environment-specific IDs, or one-off mappings when a source-of-truth, schema/config-driven, package-owned, reusable, or cleaner abstraction exists. This is especially strict in medium and large applications. Explicit constants, fixtures, tests, and temporary compatibility shims are allowed only when scoped, named, and justified.";
5
+ export declare const GLOBAL_AGENT_RULES_STANDARD_CONTENT = "# Global Coding Agent Rules Standard\n\nThis standard is managed global/system prompt source content for Hasna coding\nagents. Rendered agents must receive these rules unless a newer authorized\npolicy source supersedes them.\n\n## Session and Planning Defaults\n\n1. Use automatic session renaming when the agent supports it. Rename the\n session early to match the active task; if the task materially pivots, rename\n it again so operators can identify the run.\n2. Never set Codewith goal/token budgets or goal-plan budgets unless the user\n explicitly asks for a budget. Durable goals and goal plans are unbudgeted by\n default.\n\n## Repository Mutation and Landing\n\n3. Repo mutation must happen in a task-scoped worktree. First inspect the canonical worktree root\n `$HOME/.hasna/repos/worktrees`; prefer Hasna repo/project worktree\n mechanisms when available; otherwise use `git worktree`. Never mutate shared checkouts.\n4. PR-first landing: normal changes go through a branch/worktree and pull\n request before landing.\n5. Never push directly to `main`, the default branch, or any protected branch\n unless the user explicitly instructs that exact repo and operation.\n6. Do not hardcode brittle values, paths, provider names, config, business logic, environment-specific IDs, or one-off mappings when a source-of-truth, schema/config-driven, package-owned, reusable, or cleaner abstraction exists. This is especially strict in medium and large applications. Explicit constants, fixtures, tests, and temporary compatibility shims are allowed only when scoped, named, and justified.\n\n## Autonomy and Source-of-Truth Tools\n\n7. Act autonomously. Diagnose, repair, validate, and iterate on the owning\n CLIs, packages, and workflows before asking the user. Ask only when blocked\n by destructive decisions, secret-bearing decisions, user-only authority, or\n external state the agent cannot safely obtain.\n8. Use Hasna CLIs/packages as the source of truth: `todos`, `conversations`,\n `mementos`, `knowledge`, `projects`, `repos`, `accounts`,\n `instructions`, `machines`, `secrets`, and `access`.\n9. Secrets safety is mandatory. Never expose secrets in prompts, tasks,\n memories, conversations, manifests, reports, logs, PR text, or any other\n agent-visible output. Reference vault item names, secret identifiers, and\n access grants only; never print credential values.\n\n## Conversation Surfaces\n\n10. Use default conversation surfaces correctly: `announcements` for policy,\n freeze, breaking, cutover, and release notices; `incidents` for outages,\n crash loops, data risk, or security exposure; `git-publishing` before and\n after package publishes; `git-prs`, `git-commits`, and `git-releases`\n for repository landing events; `hq` for broad coordination;\n `agent-policy` for agent operating-rule discussion; project/product\n channels for normal work; and `conversations blockers` for blocker\n discovery. Do not invent or refer to a literal blockers channel.\n";
5
6
  export declare function ensureGlobalAgentRulesStandardConfig(store?: ConfigStore): Promise<Config>;
6
7
  //# sourceMappingURL=global-agent-rules-standard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-agent-rules-standard.d.ts","sourceRoot":"","sources":["../../src/lib/global-agent-rules-standard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E,eAAO,MAAM,gCAAgC,gCAAgC,CAAC;AAE9E,eAAO,MAAM,mCAAmC,ikFAiD/C,CAAC;AAEF,wBAAsB,oCAAoC,CAAC,KAAK,GAAE,WAAkC,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BrH"}
1
+ {"version":3,"file":"global-agent-rules-standard.d.ts","sourceRoot":"","sources":["../../src/lib/global-agent-rules-standard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E,eAAO,MAAM,gCAAgC,gCAAgC,CAAC;AAE9E,eAAO,MAAM,0BAA0B,8ZAA8Z,CAAC;AAEtc,eAAO,MAAM,mCAAmC,g+FAkD/C,CAAC;AAEF,wBAAsB,oCAAoC,CAAC,KAAK,GAAE,WAAkC,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BrH"}
@@ -4,7 +4,7 @@ export declare const SESSION_RENDER_MANAGED_MARKER = "Managed by @hasna/configs
4
4
  export declare const SESSION_RENDER_SCHEMA = "hasna.configs.session-render/v1";
5
5
  export declare const RAW_STORE_ROOT_ENV = "HASNA_CONFIGS_HOME";
6
6
  export declare const ANTIGRAVITY_RULE_FILE_CHAR_LIMIT = 12000;
7
- export declare const SESSION_RENDER_TOOLS: readonly ["claude", "codex", "cursor", "opencode", "codewith", "aicopilot", "antigravity"];
7
+ export declare const SESSION_RENDER_TOOLS: readonly ["claude", "codex", "cursor", "opencode", "codewith", "qwen", "aicopilot", "antigravity"];
8
8
  export type SessionRenderTool = (typeof SESSION_RENDER_TOOLS)[number];
9
9
  export type SessionRenderMode = "native-imports" | "flattened-markdown" | "cursor-mdc" | "opencode-instructions" | "antigravity-rules";
10
10
  export declare const SESSION_INSTRUCTION_LAYERS: readonly ["global", "tool", "account", "machine", "division", "workspace", "repo", "path", "agent", "session", "local"];
@@ -1 +1 @@
1
- {"version":3,"file":"session-render.d.ts","sourceRoot":"","sources":["../../src/lib/session-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-render.d.ts","sourceRoot":"","sources":["../../src/lib/session-render.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrH,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAW/E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,qBAAqB,EAAE,YAAY,EAO/C,CAAC;AAwDF,eAAO,MAAM,aAAa,EAAE,WAAW,EAoDtC,CAAC;AAIF,eAAO,MAAM,oBAAoB;;cAC2B,cAAc;WAAsB,WAAW;YAAwB,YAAY;GAY9I,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgE/E;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqGhF;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CA2BlF;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAwBD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B9F;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAU/D;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAezD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAQ3D;AAGD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrH,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAW/E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,qBAAqB,EAAE,YAAY,EAQ/C,CAAC;AAwDF,eAAO,MAAM,aAAa,EAAE,WAAW,EAwDtC,CAAC;AAIF,eAAO,MAAM,oBAAoB;;cAC2B,cAAc;WAAsB,WAAW;YAAwB,YAAY;GAc9I,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgE/E;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqGhF;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CA2BlF;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAwBD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B9F;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAU/D;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAgBzD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAQ3D;AAGD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
package/dist/mcp/index.js CHANGED
@@ -29,6 +29,7 @@ var init_types = __esm(() => {
29
29
  "codewith",
30
30
  "aicopilot",
31
31
  "antigravity",
32
+ "qwen",
32
33
  "zsh",
33
34
  "git",
34
35
  "npm",
@@ -1909,7 +1910,7 @@ function detectCategory(filePath) {
1909
1910
  return "rules";
1910
1911
  if (p.includes(".mcp.json") || p.includes("mcp"))
1911
1912
  return "mcp";
1912
- if (p.includes("/.claude/") || p.includes("/.codex/") || p.includes("/.antigravity/") || p.includes("/.agents/") || p.includes("/.cursor/") || p.includes("/.config/opencode/") || p.includes("/.codewith/") || p.includes("/.config/aicopilot/"))
1913
+ if (p.includes("/.claude/") || p.includes("/.codex/") || p.includes("/.antigravity/") || p.includes("/.agents/") || p.includes("/.cursor/") || p.includes("/.config/opencode/") || p.includes("/.codewith/") || p.includes("/.config/aicopilot/") || p.includes("/.qwen/"))
1913
1914
  return "agent";
1914
1915
  if (p.includes(".zshrc") || p.includes(".zprofile") || p.includes(".bashrc") || p.includes(".bash_profile"))
1915
1916
  return "shell";
@@ -1937,6 +1938,8 @@ function detectAgent(filePath) {
1937
1938
  return "codewith";
1938
1939
  if (p.includes("/.config/aicopilot/"))
1939
1940
  return "aicopilot";
1941
+ if (p.includes("/.qwen/"))
1942
+ return "qwen";
1940
1943
  if (p.includes("/.antigravity/"))
1941
1944
  return "antigravity";
1942
1945
  if (p.includes("/.codex/") || p.endsWith("agents.md"))
@@ -1978,7 +1981,8 @@ var init_sync = __esm(() => {
1978
1981
  { agent: "opencode", target_path: "~/.config/opencode/AGENTS.md", transform: "opencode-flat" },
1979
1982
  { agent: "aicopilot", target_path: "~/.config/aicopilot/AICOPILOT.md", transform: "codex-flat" },
1980
1983
  { agent: "antigravity", target_path: "~/.gemini/GEMINI.md", transform: "codex-flat" },
1981
- { agent: "cursor", target_path: "~/.cursor/rules/claude.mdc", transform: "cursor-mdc" }
1984
+ { agent: "cursor", target_path: "~/.cursor/rules/claude.mdc", transform: "cursor-mdc" },
1985
+ { agent: "qwen", target_path: "~/.qwen/QWEN.md", transform: "codex-flat" }
1982
1986
  ];
1983
1987
  KNOWN_CONFIGS = [
1984
1988
  { path: "~/.claude/CLAUDE.md", name: "claude-claude-md", category: "rules", agent: "claude", format: "markdown", outputs: CLAUDE_PROMPT_OUTPUTS },
@@ -1998,6 +2002,8 @@ var init_sync = __esm(() => {
1998
2002
  { path: "~/.config/aicopilot/aicopilot.json", name: "aicopilot-config", category: "mcp", agent: "aicopilot", format: "json", optional: true, description: "AI Copilot config (includes instructions and MCP server entries)" },
1999
2003
  { path: "~/.gemini/GEMINI.md", name: "antigravity-global-rules", category: "rules", agent: "antigravity", format: "markdown", optional: true, description: "Google Antigravity global rules file" },
2000
2004
  { path: "~/.gemini/config/mcp_config.json", name: "antigravity-global-mcp", category: "mcp", agent: "antigravity", format: "json", optional: true, description: "Google Antigravity global MCP server entries" },
2005
+ { path: "~/.qwen/QWEN.md", name: "qwen-qwen-md", category: "rules", agent: "qwen", format: "markdown", optional: true, description: "Qwen Code global instructional context" },
2006
+ { path: "~/.qwen/settings.json", name: "qwen-settings", category: "agent", agent: "qwen", format: "json", optional: true, description: "Qwen Code settings.json, including native hooks" },
2001
2007
  { path: "~/.claude.json", name: "claude-json", category: "mcp", agent: "claude", format: "json", description: "Claude Code global config (includes MCP server entries)" },
2002
2008
  { path: "~/.zshrc", name: "zshrc", category: "shell", agent: "zsh" },
2003
2009
  { path: "~/.zprofile", name: "zprofile", category: "shell", agent: "zsh", optional: true },
@@ -2020,7 +2026,9 @@ var init_sync = __esm(() => {
2020
2026
  { file: ".aicopilot/AICOPILOT.md", category: "rules", agent: "aicopilot", format: "markdown" },
2021
2027
  { file: "AICOPILOT.md", category: "rules", agent: "aicopilot", format: "markdown" },
2022
2028
  { file: ".cursor/mcp.json", category: "mcp", agent: "cursor", format: "json" },
2023
- { file: ".agents/mcp_config.json", category: "mcp", agent: "antigravity", format: "json" }
2029
+ { file: "QWEN.md", category: "rules", agent: "qwen", format: "markdown" },
2030
+ { file: ".agents/mcp_config.json", category: "mcp", agent: "antigravity", format: "json" },
2031
+ { file: ".qwen/settings.json", category: "agent", agent: "qwen", format: "json" }
2024
2032
  ];
2025
2033
  });
2026
2034
 
@@ -2113,7 +2121,7 @@ var init_sync_dir = __esm(() => {
2113
2121
  var require_package = __commonJS((exports, module) => {
2114
2122
  module.exports = {
2115
2123
  name: "@hasna/instructions",
2116
- version: "0.4.5",
2124
+ version: "0.4.7",
2117
2125
  description: "AI coding agent instruction & configuration manager \u2014 store, version, apply, and share all your AI coding configs. CLI + MCP + HTTP API (instructions-serve) + generated SDK + Dashboard.",
2118
2126
  type: "module",
2119
2127
  main: "dist/index.js",
@@ -2,7 +2,7 @@ export declare const CONFIG_KINDS: readonly ["file", "reference"];
2
2
  export type ConfigKind = (typeof CONFIG_KINDS)[number];
3
3
  export declare const CONFIG_CATEGORIES: readonly ["agent", "rules", "mcp", "shell", "secrets_schema", "workspace", "git", "tools"];
4
4
  export type ConfigCategory = (typeof CONFIG_CATEGORIES)[number];
5
- export declare const CONFIG_AGENTS: readonly ["claude", "codex", "opencode", "cursor", "codewith", "aicopilot", "antigravity", "zsh", "git", "npm", "global"];
5
+ export declare const CONFIG_AGENTS: readonly ["claude", "codex", "opencode", "cursor", "codewith", "aicopilot", "antigravity", "qwen", "zsh", "git", "npm", "global"];
6
6
  export type ConfigAgent = (typeof CONFIG_AGENTS)[number];
7
7
  export declare const CONFIG_TRANSFORMS: readonly ["passthrough", "claude-passthrough", "codex-flat", "opencode-flat", "cursor-mdc", "skill-neutral"];
8
8
  export type ConfigTransform = (typeof CONFIG_TRANSFORMS)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hasna/instructions",
3
- "version": "0.4.5",
4
- "description": "AI coding agent instruction & configuration manager \u2014 store, version, apply, and share all your AI coding configs. CLI + MCP + HTTP API (instructions-serve) + generated SDK + Dashboard.",
3
+ "version": "0.4.7",
4
+ "description": "AI coding agent instruction & configuration manager store, version, apply, and share all your AI coding configs. CLI + MCP + HTTP API (instructions-serve) + generated SDK + Dashboard.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -1,73 +0,0 @@
1
- # React + TypeScript + Vite
2
-
3
- This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4
-
5
- Currently, two official plugins are available:
6
-
7
- - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
8
- - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
9
-
10
- ## React Compiler
11
-
12
- The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
13
-
14
- ## Expanding the ESLint configuration
15
-
16
- If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
17
-
18
- ```js
19
- export default defineConfig([
20
- globalIgnores(['dist']),
21
- {
22
- files: ['**/*.{ts,tsx}'],
23
- extends: [
24
- // Other configs...
25
-
26
- // Remove tseslint.configs.recommended and replace with this
27
- tseslint.configs.recommendedTypeChecked,
28
- // Alternatively, use this for stricter rules
29
- tseslint.configs.strictTypeChecked,
30
- // Optionally, add this for stylistic rules
31
- tseslint.configs.stylisticTypeChecked,
32
-
33
- // Other configs...
34
- ],
35
- languageOptions: {
36
- parserOptions: {
37
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
38
- tsconfigRootDir: import.meta.dirname,
39
- },
40
- // other options...
41
- },
42
- },
43
- ])
44
- ```
45
-
46
- You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
47
-
48
- ```js
49
- // eslint.config.js
50
- import reactX from 'eslint-plugin-react-x'
51
- import reactDom from 'eslint-plugin-react-dom'
52
-
53
- export default defineConfig([
54
- globalIgnores(['dist']),
55
- {
56
- files: ['**/*.{ts,tsx}'],
57
- extends: [
58
- // Other configs...
59
- // Enable lint rules for React
60
- reactX.configs['recommended-typescript'],
61
- // Enable lint rules for React DOM
62
- reactDom.configs.recommended,
63
- ],
64
- languageOptions: {
65
- parserOptions: {
66
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
67
- tsconfigRootDir: import.meta.dirname,
68
- },
69
- // other options...
70
- },
71
- },
72
- ])
73
- ```