@hexidecibel/companion 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/__tests__/task-parser.test.js +29 -29
  2. package/dist/__tests__/task-parser.test.js.map +1 -1
  3. package/dist/anthropic-usage.d.ts.map +1 -1
  4. package/dist/anthropic-usage.js +1 -1
  5. package/dist/anthropic-usage.js.map +1 -1
  6. package/dist/cert-generator.d.ts.map +1 -1
  7. package/dist/cert-generator.js +4 -21
  8. package/dist/cert-generator.js.map +1 -1
  9. package/dist/cli.d.ts +9 -0
  10. package/dist/cli.d.ts.map +1 -0
  11. package/dist/cli.js +413 -0
  12. package/dist/cli.js.map +1 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +1 -7
  15. package/dist/config.js.map +1 -1
  16. package/dist/escalation.d.ts +51 -0
  17. package/dist/escalation.d.ts.map +1 -0
  18. package/dist/escalation.js +198 -0
  19. package/dist/escalation.js.map +1 -0
  20. package/dist/index.js +67 -30
  21. package/dist/index.js.map +1 -1
  22. package/dist/input-injector.d.ts.map +1 -1
  23. package/dist/input-injector.js +9 -5
  24. package/dist/input-injector.js.map +1 -1
  25. package/dist/notification-store.d.ts +35 -0
  26. package/dist/notification-store.d.ts.map +1 -0
  27. package/dist/notification-store.js +272 -0
  28. package/dist/notification-store.js.map +1 -0
  29. package/dist/parser.d.ts +15 -1
  30. package/dist/parser.d.ts.map +1 -1
  31. package/dist/parser.js +106 -61
  32. package/dist/parser.js.map +1 -1
  33. package/dist/push.d.ts +18 -26
  34. package/dist/push.d.ts.map +1 -1
  35. package/dist/push.js +90 -184
  36. package/dist/push.js.map +1 -1
  37. package/dist/qr-server.d.ts.map +1 -1
  38. package/dist/qr-server.js +134 -135
  39. package/dist/qr-server.js.map +1 -1
  40. package/dist/rules-engine.d.ts +20 -0
  41. package/dist/rules-engine.d.ts.map +1 -0
  42. package/dist/rules-engine.js +71 -0
  43. package/dist/rules-engine.js.map +1 -0
  44. package/dist/scaffold/claude-commands.d.ts +18 -0
  45. package/dist/scaffold/claude-commands.d.ts.map +1 -0
  46. package/dist/scaffold/claude-commands.js +352 -0
  47. package/dist/scaffold/claude-commands.js.map +1 -0
  48. package/dist/scaffold/generator.d.ts.map +1 -1
  49. package/dist/scaffold/generator.js +26 -1
  50. package/dist/scaffold/generator.js.map +1 -1
  51. package/dist/scaffold/scorer.d.ts +19 -0
  52. package/dist/scaffold/scorer.d.ts.map +1 -0
  53. package/dist/scaffold/scorer.js +92 -0
  54. package/dist/scaffold/scorer.js.map +1 -0
  55. package/dist/scaffold/templates/go-cli.d.ts +3 -0
  56. package/dist/scaffold/templates/go-cli.d.ts.map +1 -0
  57. package/dist/scaffold/templates/go-cli.js +249 -0
  58. package/dist/scaffold/templates/go-cli.js.map +1 -0
  59. package/dist/scaffold/templates/index.d.ts.map +1 -1
  60. package/dist/scaffold/templates/index.js +8 -2
  61. package/dist/scaffold/templates/index.js.map +1 -1
  62. package/dist/scaffold/templates/nextjs.d.ts +3 -0
  63. package/dist/scaffold/templates/nextjs.d.ts.map +1 -0
  64. package/dist/scaffold/templates/nextjs.js +336 -0
  65. package/dist/scaffold/templates/nextjs.js.map +1 -0
  66. package/dist/scaffold/templates/node-express.d.ts.map +1 -1
  67. package/dist/scaffold/templates/node-express.js +170 -157
  68. package/dist/scaffold/templates/node-express.js.map +1 -1
  69. package/dist/scaffold/templates/python-fastapi.d.ts.map +1 -1
  70. package/dist/scaffold/templates/python-fastapi.js +234 -221
  71. package/dist/scaffold/templates/python-fastapi.js.map +1 -1
  72. package/dist/scaffold/templates/react-mui-website.d.ts.map +1 -1
  73. package/dist/scaffold/templates/react-mui-website.js +337 -324
  74. package/dist/scaffold/templates/react-mui-website.js.map +1 -1
  75. package/dist/scaffold/templates/react-typescript.d.ts.map +1 -1
  76. package/dist/scaffold/templates/react-typescript.js +219 -206
  77. package/dist/scaffold/templates/react-typescript.js.map +1 -1
  78. package/dist/scaffold/templates/typescript-library.d.ts +3 -0
  79. package/dist/scaffold/templates/typescript-library.d.ts.map +1 -0
  80. package/dist/scaffold/templates/typescript-library.js +241 -0
  81. package/dist/scaffold/templates/typescript-library.js.map +1 -0
  82. package/dist/scaffold/types.d.ts +7 -0
  83. package/dist/scaffold/types.d.ts.map +1 -1
  84. package/dist/subagent-watcher.d.ts.map +1 -1
  85. package/dist/subagent-watcher.js +3 -3
  86. package/dist/subagent-watcher.js.map +1 -1
  87. package/dist/tmux-manager.d.ts +37 -0
  88. package/dist/tmux-manager.d.ts.map +1 -1
  89. package/dist/tmux-manager.js +165 -5
  90. package/dist/tmux-manager.js.map +1 -1
  91. package/dist/tool-config.d.ts.map +1 -1
  92. package/dist/tool-config.js +2 -2
  93. package/dist/tool-config.js.map +1 -1
  94. package/dist/types.d.ts +85 -0
  95. package/dist/types.d.ts.map +1 -1
  96. package/dist/types.js +18 -0
  97. package/dist/types.js.map +1 -1
  98. package/dist/watcher.d.ts +7 -0
  99. package/dist/watcher.d.ts.map +1 -1
  100. package/dist/watcher.js +118 -9
  101. package/dist/watcher.js.map +1 -1
  102. package/dist/websocket.d.ts +16 -2
  103. package/dist/websocket.d.ts.map +1 -1
  104. package/dist/websocket.js +758 -117
  105. package/dist/websocket.js.map +1 -1
  106. package/dist/work-group-manager.d.ts +69 -0
  107. package/dist/work-group-manager.d.ts.map +1 -0
  108. package/dist/work-group-manager.js +610 -0
  109. package/dist/work-group-manager.js.map +1 -0
  110. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"react-mui-website.js","sourceRoot":"","sources":["../../../src/scaffold/templates/react-mui-website.ts"],"names":[],"mappings":";;;AAEa,QAAA,uBAAuB,GAAkB;IACpD,EAAE,EAAE,mBAAmB;IACvB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qEAAqE;IAClF,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC;IAC1E,KAAK,EAAE;QACL;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;EAyBd;SACG;QACD;YACE,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;EAmBd;SACG;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE;;;;;GAKb;SACE;QACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;;;;;;;;;;;;QAYR;SACH;QACD;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;;;;;;;;EAgBd;SACG;QACD;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2Bb;SACE;QACD;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;mBAsBG;SACd;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+Bd;SACG;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;EA0Bd;SACG;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE;;;;;;;;;;;;;;;;;;EAkBd;SACG;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDd;SACG;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,uCAAuC;SAClD;QACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;UAkBN;SACL;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAiCY;SACvB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;OAsBT;SACF;KACF;IACD,UAAU,EAAE;QACV;YACE,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,yBAAyB;SACvC;KACF;IACD,iBAAiB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;CACpC,CAAC"}
1
+ {"version":3,"file":"react-mui-website.js","sourceRoot":"","sources":["../../../src/scaffold/templates/react-mui-website.ts"],"names":[],"mappings":";;;AAEa,QAAA,uBAAuB,GAAkB;IACpD,EAAE,EAAE,mBAAmB;IACvB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qEAAqE;IAClF,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC;IAC1E,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;QACvE,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC;QAC/F,QAAQ,EAAE;YACR,mBAAmB;YACnB,cAAc;YACd,gBAAgB;YAChB,oBAAoB;YACpB,qBAAqB;YACrB,iBAAiB;SAClB;QACD,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;KACjF;IACD,KAAK,EAAE;QACL;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;EAyBd;SACG;QACD;YACE,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;EAmBd;SACG;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE;;;;;GAKb;SACE;QACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;;;;;;;;;;;;QAYR;SACH;QACD;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;;;;;;;;EAgBd;SACG;QACD;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2Bb;SACE;QACD;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;mBAsBG;SACd;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+Bd;SACG;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;EA0Bd;SACG;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE;;;;;;;;;;;;;;;;;;EAkBd;SACG;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDd;SACG;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,uCAAuC;SAClD;QACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;UAkBN;SACL;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAiCY;SACvB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;OAsBT;SACF;KACF;IACD,UAAU,EAAE;QACV;YACE,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,yBAAyB;SACvC;KACF;IACD,iBAAiB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;CACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-typescript.d.ts","sourceRoot":"","sources":["../../../src/scaffold/templates/react-typescript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,uBAAuB,EAAE,aA8QrC,CAAC"}
1
+ {"version":3,"file":"react-typescript.d.ts","sourceRoot":"","sources":["../../../src/scaffold/templates/react-typescript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,uBAAuB,EAAE,aA2RrC,CAAC"}
@@ -8,180 +8,193 @@ exports.reactTypescriptTemplate = {
8
8
  type: 'frontend',
9
9
  icon: '⚛️',
10
10
  tags: ['react', 'typescript', 'vite', 'frontend'],
11
+ scoring: {
12
+ primaryKeywords: ['react', 'vite', 'jsx', 'tsx', 'component', 'spa'],
13
+ secondaryKeywords: ['frontend', 'ui', 'interface', 'web', 'app', 'client', 'browser'],
14
+ useCases: [
15
+ 'react app',
16
+ 'single page',
17
+ 'web app',
18
+ 'frontend app',
19
+ 'react dashboard',
20
+ 'react project',
21
+ ],
22
+ typeSignals: { frontend: 3, spa: 3, dashboard: 2, widget: 1, ui: 2 },
23
+ },
11
24
  files: [
12
25
  {
13
26
  path: 'package.json',
14
- template: `{
15
- "name": "{{projectName}}",
16
- "private": true,
17
- "version": "0.0.0",
18
- "type": "module",
19
- "scripts": {
20
- "dev": "vite",
21
- "build": "tsc -b && vite build",
22
- "lint": "eslint .",
23
- "preview": "vite preview",
24
- "test": "vitest"
25
- },
26
- "dependencies": {
27
- "react": "^18.3.1",
28
- "react-dom": "^18.3.1"
29
- },
30
- "devDependencies": {
31
- "@eslint/js": "^9.13.0",
32
- "@types/react": "^18.3.12",
33
- "@types/react-dom": "^18.3.1",
34
- "@vitejs/plugin-react": "^4.3.3",
35
- "eslint": "^9.13.0",
36
- "eslint-plugin-react-hooks": "^5.0.0",
37
- "eslint-plugin-react-refresh": "^0.4.14",
38
- "globals": "^15.11.0",
39
- "typescript": "~5.6.2",
40
- "typescript-eslint": "^8.11.0",
41
- "vite": "^5.4.10",
42
- "vitest": "^2.1.4"
43
- }
27
+ template: `{
28
+ "name": "{{projectName}}",
29
+ "private": true,
30
+ "version": "0.0.0",
31
+ "type": "module",
32
+ "scripts": {
33
+ "dev": "vite",
34
+ "build": "tsc -b && vite build",
35
+ "lint": "eslint .",
36
+ "preview": "vite preview",
37
+ "test": "vitest"
38
+ },
39
+ "dependencies": {
40
+ "react": "^18.3.1",
41
+ "react-dom": "^18.3.1"
42
+ },
43
+ "devDependencies": {
44
+ "@eslint/js": "^9.13.0",
45
+ "@types/react": "^18.3.12",
46
+ "@types/react-dom": "^18.3.1",
47
+ "@vitejs/plugin-react": "^4.3.3",
48
+ "eslint": "^9.13.0",
49
+ "eslint-plugin-react-hooks": "^5.0.0",
50
+ "eslint-plugin-react-refresh": "^0.4.14",
51
+ "globals": "^15.11.0",
52
+ "typescript": "~5.6.2",
53
+ "typescript-eslint": "^8.11.0",
54
+ "vite": "^5.4.10",
55
+ "vitest": "^2.1.4"
56
+ }
44
57
  }`,
45
58
  },
46
59
  {
47
60
  path: 'tsconfig.json',
48
- template: `{
49
- "compilerOptions": {
50
- "target": "ES2020",
51
- "useDefineForClassFields": true,
52
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
53
- "module": "ESNext",
54
- "skipLibCheck": true,
55
- "moduleResolution": "bundler",
56
- "allowImportingTsExtensions": true,
57
- "isolatedModules": true,
58
- "moduleDetection": "force",
59
- "noEmit": true,
60
- "jsx": "react-jsx",
61
- "strict": true,
62
- "noUnusedLocals": true,
63
- "noUnusedParameters": true,
64
- "noFallthroughCasesInSwitch": true,
65
- "noUncheckedSideEffectImports": true
66
- },
67
- "include": ["src"]
61
+ template: `{
62
+ "compilerOptions": {
63
+ "target": "ES2020",
64
+ "useDefineForClassFields": true,
65
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
66
+ "module": "ESNext",
67
+ "skipLibCheck": true,
68
+ "moduleResolution": "bundler",
69
+ "allowImportingTsExtensions": true,
70
+ "isolatedModules": true,
71
+ "moduleDetection": "force",
72
+ "noEmit": true,
73
+ "jsx": "react-jsx",
74
+ "strict": true,
75
+ "noUnusedLocals": true,
76
+ "noUnusedParameters": true,
77
+ "noFallthroughCasesInSwitch": true,
78
+ "noUncheckedSideEffectImports": true
79
+ },
80
+ "include": ["src"]
68
81
  }`,
69
82
  },
70
83
  {
71
84
  path: 'vite.config.ts',
72
- template: `import { defineConfig } from 'vite'
73
- import react from '@vitejs/plugin-react'
74
-
75
- export default defineConfig({
76
- plugins: [react()],
85
+ template: `import { defineConfig } from 'vite'
86
+ import react from '@vitejs/plugin-react'
87
+
88
+ export default defineConfig({
89
+ plugins: [react()],
77
90
  })`,
78
91
  },
79
92
  {
80
93
  path: 'index.html',
81
- template: `<!doctype html>
82
- <html lang="en">
83
- <head>
84
- <meta charset="UTF-8" />
85
- <link rel="icon" type="image/svg+xml" href="/vite.svg" />
86
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
87
- <title>{{projectName}}</title>
88
- </head>
89
- <body>
90
- <div id="root"></div>
91
- <script type="module" src="/src/main.tsx"></script>
92
- </body>
94
+ template: `<!doctype html>
95
+ <html lang="en">
96
+ <head>
97
+ <meta charset="UTF-8" />
98
+ <link rel="icon" type="image/svg+xml" href="/vite.svg" />
99
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
100
+ <title>{{projectName}}</title>
101
+ </head>
102
+ <body>
103
+ <div id="root"></div>
104
+ <script type="module" src="/src/main.tsx"></script>
105
+ </body>
93
106
  </html>`,
94
107
  },
95
108
  {
96
109
  path: 'src/main.tsx',
97
- template: `import { StrictMode } from 'react'
98
- import { createRoot } from 'react-dom/client'
99
- import App from './App'
100
- import './index.css'
101
-
102
- createRoot(document.getElementById('root')!).render(
103
- <StrictMode>
104
- <App />
105
- </StrictMode>,
110
+ template: `import { StrictMode } from 'react'
111
+ import { createRoot } from 'react-dom/client'
112
+ import App from './App'
113
+ import './index.css'
114
+
115
+ createRoot(document.getElementById('root')!).render(
116
+ <StrictMode>
117
+ <App />
118
+ </StrictMode>,
106
119
  )`,
107
120
  },
108
121
  {
109
122
  path: 'src/App.tsx',
110
- template: `import { useState } from 'react'
111
- import './App.css'
112
-
113
- function App() {
114
- const [count, setCount] = useState(0)
115
-
116
- return (
117
- <div className="app">
118
- <h1>{{projectName}}</h1>
119
- <p>{{projectDescription}}</p>
120
- <div className="card">
121
- <button onClick={() => setCount((count) => count + 1)}>
122
- count is {count}
123
- </button>
124
- </div>
125
- </div>
126
- )
127
- }
128
-
123
+ template: `import { useState } from 'react'
124
+ import './App.css'
125
+
126
+ function App() {
127
+ const [count, setCount] = useState(0)
128
+
129
+ return (
130
+ <div className="app">
131
+ <h1>{{projectName}}</h1>
132
+ <p>{{projectDescription}}</p>
133
+ <div className="card">
134
+ <button onClick={() => setCount((count) => count + 1)}>
135
+ count is {count}
136
+ </button>
137
+ </div>
138
+ </div>
139
+ )
140
+ }
141
+
129
142
  export default App`,
130
143
  },
131
144
  {
132
145
  path: 'src/App.css',
133
- template: `.app {
134
- max-width: 1280px;
135
- margin: 0 auto;
136
- padding: 2rem;
137
- text-align: center;
138
- }
139
-
140
- .card {
141
- padding: 2em;
142
- }
143
-
144
- button {
145
- border-radius: 8px;
146
- border: 1px solid transparent;
147
- padding: 0.6em 1.2em;
148
- font-size: 1em;
149
- font-weight: 500;
150
- font-family: inherit;
151
- background-color: #1a1a1a;
152
- color: #fff;
153
- cursor: pointer;
154
- transition: border-color 0.25s;
155
- }
156
-
157
- button:hover {
158
- border-color: #646cff;
159
- }
160
-
161
- button:focus,
162
- button:focus-visible {
163
- outline: 4px auto -webkit-focus-ring-color;
146
+ template: `.app {
147
+ max-width: 1280px;
148
+ margin: 0 auto;
149
+ padding: 2rem;
150
+ text-align: center;
151
+ }
152
+
153
+ .card {
154
+ padding: 2em;
155
+ }
156
+
157
+ button {
158
+ border-radius: 8px;
159
+ border: 1px solid transparent;
160
+ padding: 0.6em 1.2em;
161
+ font-size: 1em;
162
+ font-weight: 500;
163
+ font-family: inherit;
164
+ background-color: #1a1a1a;
165
+ color: #fff;
166
+ cursor: pointer;
167
+ transition: border-color 0.25s;
168
+ }
169
+
170
+ button:hover {
171
+ border-color: #646cff;
172
+ }
173
+
174
+ button:focus,
175
+ button:focus-visible {
176
+ outline: 4px auto -webkit-focus-ring-color;
164
177
  }`,
165
178
  },
166
179
  {
167
180
  path: 'src/index.css',
168
- template: `:root {
169
- font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
170
- line-height: 1.5;
171
- font-weight: 400;
172
- color-scheme: light dark;
173
- color: rgba(255, 255, 255, 0.87);
174
- background-color: #242424;
175
- font-synthesis: none;
176
- text-rendering: optimizeLegibility;
177
- -webkit-font-smoothing: antialiased;
178
- -moz-osx-font-smoothing: grayscale;
179
- }
180
-
181
- body {
182
- margin: 0;
183
- min-width: 320px;
184
- min-height: 100vh;
181
+ template: `:root {
182
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
183
+ line-height: 1.5;
184
+ font-weight: 400;
185
+ color-scheme: light dark;
186
+ color: rgba(255, 255, 255, 0.87);
187
+ background-color: #242424;
188
+ font-synthesis: none;
189
+ text-rendering: optimizeLegibility;
190
+ -webkit-font-smoothing: antialiased;
191
+ -moz-osx-font-smoothing: grayscale;
192
+ }
193
+
194
+ body {
195
+ margin: 0;
196
+ min-width: 320px;
197
+ min-height: 100vh;
185
198
  }`,
186
199
  },
187
200
  {
@@ -190,77 +203,77 @@ body {
190
203
  },
191
204
  {
192
205
  path: '.gitignore',
193
- template: `# Dependencies
194
- node_modules
195
-
196
- # Build
197
- dist
198
- dist-ssr
199
- *.local
200
-
201
- # Editor
202
- .vscode/*
203
- !.vscode/extensions.json
204
- .idea
205
-
206
- # Logs
207
- *.log
208
- npm-debug.log*
209
-
210
- # OS
206
+ template: `# Dependencies
207
+ node_modules
208
+
209
+ # Build
210
+ dist
211
+ dist-ssr
212
+ *.local
213
+
214
+ # Editor
215
+ .vscode/*
216
+ !.vscode/extensions.json
217
+ .idea
218
+
219
+ # Logs
220
+ *.log
221
+ npm-debug.log*
222
+
223
+ # OS
211
224
  .DS_Store`,
212
225
  },
213
226
  {
214
227
  path: 'CLAUDE.md',
215
- template: `# {{projectName}}
216
-
217
- {{projectDescription}}
218
-
219
- ## Tech Stack
220
- - React 18 with TypeScript
221
- - Vite for build tooling
222
- - Vitest for testing
223
-
224
- ## Project Structure
225
- \`\`\`
226
- src/
227
- ├── main.tsx # Entry point
228
- ├── App.tsx # Main component
229
- ├── App.css # Component styles
230
- └── index.css # Global styles
231
- \`\`\`
232
-
233
- ## Commands
234
- - \`npm run dev\` - Start dev server
235
- - \`npm run build\` - Build for production
236
- - \`npm run test\` - Run tests
237
- - \`npm run lint\` - Run linter
238
-
239
- ## Development Notes
240
- - Components go in \`src/components/\`
241
- - Hooks go in \`src/hooks/\`
242
- - Types go in \`src/types/\`
228
+ template: `# {{projectName}}
229
+
230
+ {{projectDescription}}
231
+
232
+ ## Tech Stack
233
+ - React 18 with TypeScript
234
+ - Vite for build tooling
235
+ - Vitest for testing
236
+
237
+ ## Project Structure
238
+ \`\`\`
239
+ src/
240
+ ├── main.tsx # Entry point
241
+ ├── App.tsx # Main component
242
+ ├── App.css # Component styles
243
+ └── index.css # Global styles
244
+ \`\`\`
245
+
246
+ ## Commands
247
+ - \`npm run dev\` - Start dev server
248
+ - \`npm run build\` - Build for production
249
+ - \`npm run test\` - Run tests
250
+ - \`npm run lint\` - Run linter
251
+
252
+ ## Development Notes
253
+ - Components go in \`src/components/\`
254
+ - Hooks go in \`src/hooks/\`
255
+ - Types go in \`src/types/\`
243
256
  - Services/API calls go in \`src/services/\``,
244
257
  },
245
258
  {
246
259
  path: 'README.md',
247
- template: `# {{projectName}}
248
-
249
- {{projectDescription}}
250
-
251
- ## Getting Started
252
-
253
- \`\`\`bash
254
- npm install
255
- npm run dev
256
- \`\`\`
257
-
258
- ## Scripts
259
-
260
- - \`npm run dev\` - Start development server
261
- - \`npm run build\` - Build for production
262
- - \`npm run preview\` - Preview production build
263
- - \`npm run test\` - Run tests
260
+ template: `# {{projectName}}
261
+
262
+ {{projectDescription}}
263
+
264
+ ## Getting Started
265
+
266
+ \`\`\`bash
267
+ npm install
268
+ npm run dev
269
+ \`\`\`
270
+
271
+ ## Scripts
272
+
273
+ - \`npm run dev\` - Start development server
274
+ - \`npm run build\` - Build for production
275
+ - \`npm run preview\` - Preview production build
276
+ - \`npm run test\` - Run tests
264
277
  - \`npm run lint\` - Lint code`,
265
278
  },
266
279
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"react-typescript.js","sourceRoot":"","sources":["../../../src/scaffold/templates/react-typescript.ts"],"names":[],"mappings":";;;AAEa,QAAA,uBAAuB,GAAkB;IACpD,EAAE,EAAE,kBAAkB;IACtB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,4DAA4D;IACzE,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC;IACjD,KAAK,EAAE;QACL;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8Bd;SACG;QACD;YACE,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;EAoBd;SACG;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE;;;;;GAKb;SACE;QACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;;;;;;;;;;;;QAYR;SACH;QACD;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;EASd;SACG;QACD;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;mBAmBG;SACd;QACD;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+Bd;SACG;QACD;YACE,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE;;;;;;;;;;;;;;;;;EAiBd;SACG;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,uCAAuC;SAClD;QACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;UAkBN;SACL;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CA4B6B;SACxC;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;;;;;;;;;;;;;;;;;+BAiBe;SAC1B;KACF;IACD,UAAU,EAAE;QACV;YACE,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,yBAAyB;SACvC;KACF;IACD,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;CAC5C,CAAC"}
1
+ {"version":3,"file":"react-typescript.js","sourceRoot":"","sources":["../../../src/scaffold/templates/react-typescript.ts"],"names":[],"mappings":";;;AAEa,QAAA,uBAAuB,GAAkB;IACpD,EAAE,EAAE,kBAAkB;IACtB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,4DAA4D;IACzE,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC;IACjD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC;QACpE,iBAAiB,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;QACrF,QAAQ,EAAE;YACR,WAAW;YACX,aAAa;YACb,SAAS;YACT,cAAc;YACd,iBAAiB;YACjB,eAAe;SAChB;QACD,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;KACrE;IACD,KAAK,EAAE;QACL;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8Bd;SACG;QACD;YACE,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;EAoBd;SACG;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE;;;;;GAKb;SACE;QACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;;;;;;;;;;;;QAYR;SACH;QACD;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;EASd;SACG;QACD;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;mBAmBG;SACd;QACD;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+Bd;SACG;QACD;YACE,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE;;;;;;;;;;;;;;;;;EAiBd;SACG;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,uCAAuC;SAClD;QACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;UAkBN;SACL;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CA4B6B;SACxC;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;;;;;;;;;;;;;;;;;+BAiBe;SAC1B;KACF;IACD,UAAU,EAAE;QACV;YACE,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,yBAAyB;SACvC;KACF;IACD,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;CAC5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { StackTemplate } from '../types';
2
+ export declare const typescriptLibraryTemplate: StackTemplate;
3
+ //# sourceMappingURL=typescript-library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-library.d.ts","sourceRoot":"","sources":["../../../src/scaffold/templates/typescript-library.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,yBAAyB,EAAE,aA4OvC,CAAC"}