@hcgstudio/ogma 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +39 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +155 -0
- package/dist/cli.js.map +1 -0
- package/dist/defineOgmaReview.d.ts +3 -0
- package/dist/defineOgmaReview.d.ts.map +1 -0
- package/dist/defineOgmaReview.js +4 -0
- package/dist/defineOgmaReview.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/node/project.d.ts +18 -0
- package/dist/node/project.d.ts.map +1 -0
- package/dist/node/project.js +104 -0
- package/dist/node/project.js.map +1 -0
- package/dist/node/server.d.ts +21 -0
- package/dist/node/server.d.ts.map +1 -0
- package/dist/node/server.js +476 -0
- package/dist/node/server.js.map +1 -0
- package/dist/node/templates.d.ts +5 -0
- package/dist/node/templates.d.ts.map +1 -0
- package/dist/node/templates.js +145 -0
- package/dist/node/templates.js.map +1 -0
- package/dist/types.d.ts +100 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/viewer/OgmaReviewApp.d.ts +7 -0
- package/dist/viewer/OgmaReviewApp.d.ts.map +1 -0
- package/dist/viewer/OgmaReviewApp.js +387 -0
- package/dist/viewer/OgmaReviewApp.js.map +1 -0
- package/dist/viewer/client.d.ts +2 -0
- package/dist/viewer/client.d.ts.map +1 -0
- package/dist/viewer/client.js +13 -0
- package/dist/viewer/client.js.map +1 -0
- package/dist/viewer/defaultReview.d.ts +4 -0
- package/dist/viewer/defaultReview.d.ts.map +1 -0
- package/dist/viewer/defaultReview.js +55 -0
- package/dist/viewer/defaultReview.js.map +1 -0
- package/dist/viewer/normalizeReviewModule.d.ts +3 -0
- package/dist/viewer/normalizeReviewModule.d.ts.map +1 -0
- package/dist/viewer/normalizeReviewModule.js +58 -0
- package/dist/viewer/normalizeReviewModule.js.map +1 -0
- package/package.json +47 -0
- package/src/cli.ts +194 -0
- package/src/defineOgmaReview.ts +5 -0
- package/src/index.ts +17 -0
- package/src/node/project.ts +143 -0
- package/src/node/server.ts +598 -0
- package/src/node/templates.ts +148 -0
- package/src/types.ts +111 -0
- package/src/viewer/OgmaReviewApp.tsx +1099 -0
- package/src/viewer/client.tsx +18 -0
- package/src/viewer/defaultReview.tsx +168 -0
- package/src/viewer/normalizeReviewModule.ts +87 -0
- package/src/viewer/styles.css +1140 -0
- package/src/viewer/virtual.d.ts +11 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 HCG Studio
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# @hcgstudio/ogma
|
|
2
|
+
|
|
3
|
+
Local-first design review for AI-generated React JSX prototypes.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npm install -D @hcgstudio/ogma
|
|
7
|
+
npx ogma scaffold
|
|
8
|
+
npx ogma start
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Ogma creates `designs/ogma/review.tsx`, `designs/ogma/product-notes.md`, and `.ogma/session.json` when they do not exist. `scaffold` prepares those files without launching a server; `start` also creates missing files before opening `http://localhost:4317/review`.
|
|
12
|
+
|
|
13
|
+
## Agent Skill URL
|
|
14
|
+
|
|
15
|
+
Give this URL to Codex, Claude Code, or another coding agent:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
https://raw.githubusercontent.com/hcgstudio/ogma/main/docs/skills/ogma/SKILL.md
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Install: Copy the following to your code agent:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
Read: https://raw.githubusercontent.com/hcgstudio/ogma/main/docs/skills/ogma/SKILL.md
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The skill tells agents how to write JSX screens, update product notes, install Ogma, start the local server, and preserve feedback IDs such as `OG-001`.
|
|
28
|
+
|
|
29
|
+
## Commands
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx ogma scaffold
|
|
33
|
+
npx ogma scaffold --review designs/ogma
|
|
34
|
+
npx ogma init
|
|
35
|
+
npx ogma start --review designs/ogma
|
|
36
|
+
npx ogma skill-url
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Feedback is stored locally in `.ogma/session.json`, exported for agents from `/api/ogma/feedback`, imported with `PUT /api/ogma/feedback`, tracked in `.ogma/history.json`, and snapshotted in `.ogma/snapshots`.
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { DEFAULT_DESIGN_DIR, DEFAULT_SKILL_URL } from './node/templates.js';
|
|
6
|
+
function parseArgs(argv) {
|
|
7
|
+
const args = [...argv];
|
|
8
|
+
const command = args[0] && !args[0].startsWith('-') ? args.shift() ?? 'start' : 'start';
|
|
9
|
+
const flags = new Map();
|
|
10
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
11
|
+
const item = args[index];
|
|
12
|
+
if (!item?.startsWith('--')) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const [rawName, rawValue] = item.slice(2).split('=', 2);
|
|
16
|
+
const name = rawName ?? '';
|
|
17
|
+
if (name.startsWith('no-')) {
|
|
18
|
+
flags.set(name.slice(3), false);
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (rawValue !== undefined) {
|
|
22
|
+
flags.set(name, rawValue);
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const next = args[index + 1];
|
|
26
|
+
if (next && !next.startsWith('--')) {
|
|
27
|
+
flags.set(name, next);
|
|
28
|
+
index += 1;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
flags.set(name, true);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return { command, flags };
|
|
35
|
+
}
|
|
36
|
+
function stringFlag(flags, name, fallback) {
|
|
37
|
+
const value = flags.get(name);
|
|
38
|
+
return typeof value === 'string' ? value : fallback;
|
|
39
|
+
}
|
|
40
|
+
function numberFlag(flags, name, fallback) {
|
|
41
|
+
const value = Number(stringFlag(flags, name, String(fallback)));
|
|
42
|
+
return Number.isFinite(value) ? value : fallback;
|
|
43
|
+
}
|
|
44
|
+
function booleanFlag(flags, name, fallback) {
|
|
45
|
+
const value = flags.get(name);
|
|
46
|
+
return typeof value === 'boolean' ? value : fallback;
|
|
47
|
+
}
|
|
48
|
+
function displayPath(cwd, targetPath) {
|
|
49
|
+
const relativePath = path.relative(cwd, targetPath);
|
|
50
|
+
return relativePath && !relativePath.startsWith('..') && !path.isAbsolute(relativePath)
|
|
51
|
+
? relativePath
|
|
52
|
+
: targetPath;
|
|
53
|
+
}
|
|
54
|
+
function printScaffoldResult(project) {
|
|
55
|
+
console.log('Ogma scaffold ready');
|
|
56
|
+
if (project.createdPaths.length > 0) {
|
|
57
|
+
console.log(' Created:');
|
|
58
|
+
for (const createdPath of project.createdPaths) {
|
|
59
|
+
console.log(` - ${displayPath(project.cwd, createdPath)}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
console.log(' Created: none');
|
|
64
|
+
}
|
|
65
|
+
console.log(` Designs: ${displayPath(project.cwd, project.designEntry)}`);
|
|
66
|
+
console.log(` Notes: ${displayPath(project.cwd, project.notesPath)}`);
|
|
67
|
+
console.log(` Feedback: ${displayPath(project.cwd, project.sessionPath)}`);
|
|
68
|
+
}
|
|
69
|
+
function printHelp() {
|
|
70
|
+
console.log(`Ogma local design review
|
|
71
|
+
|
|
72
|
+
Usage:
|
|
73
|
+
ogma scaffold [--review designs/ogma]
|
|
74
|
+
ogma start [--review designs/ogma] [--port 4317] [--host localhost] [--no-open]
|
|
75
|
+
ogma init [--review designs/ogma]
|
|
76
|
+
ogma skill-url
|
|
77
|
+
|
|
78
|
+
Commands:
|
|
79
|
+
scaffold Create the JSX review scaffold and local Ogma data files.
|
|
80
|
+
start Create missing design files and launch the local review server.
|
|
81
|
+
init Alias for scaffold.
|
|
82
|
+
skill-url Print the public Ogma skill URL.
|
|
83
|
+
|
|
84
|
+
Options:
|
|
85
|
+
--review <path> Design directory or review entry file. Default: ${DEFAULT_DESIGN_DIR}
|
|
86
|
+
--port <number> Preferred local port. Default: 4317
|
|
87
|
+
--host <host> Host for the local server. Default: localhost
|
|
88
|
+
--skill-url <url> Override the URL shown to agents.
|
|
89
|
+
--open / --no-open Open the browser after startup. Default: --open
|
|
90
|
+
`);
|
|
91
|
+
}
|
|
92
|
+
async function checkRuntimeDependencies() {
|
|
93
|
+
const major = Number(process.versions.node.split('.')[0] ?? '0');
|
|
94
|
+
if (major < 18) {
|
|
95
|
+
throw new Error('Ogma requires Node.js 18 or newer.');
|
|
96
|
+
}
|
|
97
|
+
const require = createRequire(path.join(packageRoot(), 'package.json'));
|
|
98
|
+
const missing = [];
|
|
99
|
+
for (const specifier of ['react', 'react-dom/client', 'vite']) {
|
|
100
|
+
try {
|
|
101
|
+
require.resolve(specifier);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
missing.push(specifier);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (missing.length > 0) {
|
|
108
|
+
throw new Error(`Missing runtime dependencies: ${missing.join(', ')}. Run npm install -D @hcgstudio/ogma react react-dom vite.`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function packageRoot() {
|
|
112
|
+
return path.dirname(path.dirname(fileURLToPath(import.meta.url)));
|
|
113
|
+
}
|
|
114
|
+
async function main() {
|
|
115
|
+
const { command, flags } = parseArgs(process.argv.slice(2));
|
|
116
|
+
if (flags.has('help') || command === 'help') {
|
|
117
|
+
printHelp();
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (command === 'skill-url') {
|
|
121
|
+
console.log(stringFlag(flags, 'skill-url', DEFAULT_SKILL_URL));
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
await checkRuntimeDependencies();
|
|
125
|
+
const cwd = process.cwd();
|
|
126
|
+
const review = stringFlag(flags, 'review');
|
|
127
|
+
if (command === 'init' || command === 'scaffold') {
|
|
128
|
+
const { ensureOgmaProject } = await import('./node/project.js');
|
|
129
|
+
const project = await ensureOgmaProject({ cwd, review });
|
|
130
|
+
printScaffoldResult(project);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (command !== 'start') {
|
|
134
|
+
printHelp();
|
|
135
|
+
process.exitCode = 1;
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const { startOgmaServer } = await import('./node/server.js');
|
|
139
|
+
await startOgmaServer({
|
|
140
|
+
cwd,
|
|
141
|
+
host: stringFlag(flags, 'host', 'localhost') ?? 'localhost',
|
|
142
|
+
open: booleanFlag(flags, 'open', true),
|
|
143
|
+
packageRoot: packageRoot(),
|
|
144
|
+
port: numberFlag(flags, 'port', 4317),
|
|
145
|
+
review,
|
|
146
|
+
skillUrl: stringFlag(flags, 'skill-url', DEFAULT_SKILL_URL)
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
main().catch((error) => {
|
|
150
|
+
console.error('');
|
|
151
|
+
console.error(`[ogma] ${error instanceof Error ? error.message : String(error)}`);
|
|
152
|
+
console.error('');
|
|
153
|
+
process.exitCode = 1;
|
|
154
|
+
});
|
|
155
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineOgmaReview.d.ts","sourceRoot":"","sources":["../src/defineOgmaReview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAEnF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineOgmaReview.js","sourceRoot":"","sources":["../src/defineOgmaReview.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,MAA4B;IAC3D,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { defineOgmaReview } from './defineOgmaReview.js';
|
|
2
|
+
export { OgmaReviewApp } from './viewer/OgmaReviewApp.js';
|
|
3
|
+
export { createDefaultOgmaReview } from './viewer/defaultReview.js';
|
|
4
|
+
export type { OgmaAnnotation, OgmaAnnotationStatus, OgmaClientConfig, OgmaFeedbackExport, OgmaPrototypeScreen, OgmaPrototypeScreenProps, OgmaReviewDefinition, OgmaReviewMetadata, OgmaReviewSession, OgmaServerStatus, OgmaSessionHistoryEntry, OgmaViewportSnapshot } from './types.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface OgmaResolvedProject {
|
|
2
|
+
cwd: string;
|
|
3
|
+
createdPaths: string[];
|
|
4
|
+
dataDir: string;
|
|
5
|
+
defaultDesignDir: string;
|
|
6
|
+
designEntry: string;
|
|
7
|
+
existingPaths: string[];
|
|
8
|
+
feedbackPath: string;
|
|
9
|
+
historyPath: string;
|
|
10
|
+
notesPath: string;
|
|
11
|
+
sessionPath: string;
|
|
12
|
+
snapshotsDir: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function ensureOgmaProject({ cwd, review }: {
|
|
15
|
+
cwd: string;
|
|
16
|
+
review?: string;
|
|
17
|
+
}): Promise<OgmaResolvedProject>;
|
|
18
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/node/project.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAqFD,wBAAsB,iBAAiB,CAAC,EACtC,GAAG,EACH,MAAM,EACP,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkC/B"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { mkdir, stat, writeFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { DEFAULT_DESIGN_DIR, DEFAULT_PRODUCT_NOTES, DEFAULT_REVIEW_SOURCE } from './templates.js';
|
|
4
|
+
const reviewEntryNames = ['review.tsx', 'review.jsx', 'ogma.review.tsx', 'ogma.review.jsx'];
|
|
5
|
+
function nowIso() {
|
|
6
|
+
return new Date().toISOString();
|
|
7
|
+
}
|
|
8
|
+
function emptySession() {
|
|
9
|
+
return {
|
|
10
|
+
reviewId: 'ogma-review',
|
|
11
|
+
annotations: [],
|
|
12
|
+
updatedAt: nowIso()
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
async function fileExists(filePath) {
|
|
16
|
+
try {
|
|
17
|
+
await stat(filePath);
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async function pathIsFile(filePath) {
|
|
25
|
+
try {
|
|
26
|
+
return (await stat(filePath)).isFile();
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return Boolean(path.extname(filePath));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async function ensureDirectory(dirPath, project) {
|
|
33
|
+
if (await fileExists(dirPath)) {
|
|
34
|
+
await mkdir(dirPath, { recursive: true });
|
|
35
|
+
project.existingPaths.push(dirPath);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
await mkdir(dirPath, { recursive: true });
|
|
39
|
+
project.createdPaths.push(dirPath);
|
|
40
|
+
}
|
|
41
|
+
async function ensureFile(filePath, contents, project) {
|
|
42
|
+
if (await fileExists(filePath)) {
|
|
43
|
+
project.existingPaths.push(filePath);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
await writeFile(filePath, contents, 'utf8');
|
|
47
|
+
project.createdPaths.push(filePath);
|
|
48
|
+
}
|
|
49
|
+
async function resolveReviewTarget(cwd, target = DEFAULT_DESIGN_DIR) {
|
|
50
|
+
const absoluteTarget = path.resolve(cwd, target);
|
|
51
|
+
if (await pathIsFile(absoluteTarget)) {
|
|
52
|
+
return {
|
|
53
|
+
designDir: path.dirname(absoluteTarget),
|
|
54
|
+
designEntry: absoluteTarget
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
for (const entryName of reviewEntryNames) {
|
|
58
|
+
const candidate = path.join(absoluteTarget, entryName);
|
|
59
|
+
if (await fileExists(candidate)) {
|
|
60
|
+
return {
|
|
61
|
+
designDir: absoluteTarget,
|
|
62
|
+
designEntry: candidate
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
designDir: absoluteTarget,
|
|
68
|
+
designEntry: path.join(absoluteTarget, reviewEntryNames[0] ?? 'review.tsx')
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
export async function ensureOgmaProject({ cwd, review }) {
|
|
72
|
+
const { designDir, designEntry } = await resolveReviewTarget(cwd, review);
|
|
73
|
+
const dataDir = path.join(cwd, '.ogma');
|
|
74
|
+
const notesPath = path.join(designDir, 'product-notes.md');
|
|
75
|
+
const sessionPath = path.join(dataDir, 'session.json');
|
|
76
|
+
const feedbackPath = path.join(dataDir, 'feedback.json');
|
|
77
|
+
const historyPath = path.join(dataDir, 'history.json');
|
|
78
|
+
const snapshotsDir = path.join(dataDir, 'snapshots');
|
|
79
|
+
const project = {
|
|
80
|
+
createdPaths: [],
|
|
81
|
+
existingPaths: []
|
|
82
|
+
};
|
|
83
|
+
await ensureDirectory(designDir, project);
|
|
84
|
+
await ensureDirectory(dataDir, project);
|
|
85
|
+
await ensureDirectory(snapshotsDir, project);
|
|
86
|
+
await ensureFile(designEntry, DEFAULT_REVIEW_SOURCE, project);
|
|
87
|
+
await ensureFile(notesPath, DEFAULT_PRODUCT_NOTES, project);
|
|
88
|
+
await ensureFile(sessionPath, `${JSON.stringify(emptySession(), null, 2)}\n`, project);
|
|
89
|
+
await ensureFile(historyPath, '[]\n', project);
|
|
90
|
+
return {
|
|
91
|
+
cwd,
|
|
92
|
+
createdPaths: project.createdPaths,
|
|
93
|
+
dataDir,
|
|
94
|
+
defaultDesignDir: path.relative(cwd, designDir) || '.',
|
|
95
|
+
designEntry,
|
|
96
|
+
existingPaths: project.existingPaths,
|
|
97
|
+
feedbackPath,
|
|
98
|
+
historyPath,
|
|
99
|
+
notesPath,
|
|
100
|
+
sessionPath,
|
|
101
|
+
snapshotsDir
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/node/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ViteDevServer } from 'vite';
|
|
2
|
+
import type { OgmaServerStatus } from '../types.js';
|
|
3
|
+
import { type OgmaResolvedProject } from './project.js';
|
|
4
|
+
export interface OgmaStartOptions {
|
|
5
|
+
cwd: string;
|
|
6
|
+
host: string;
|
|
7
|
+
open: boolean;
|
|
8
|
+
packageRoot: string;
|
|
9
|
+
port: number;
|
|
10
|
+
review?: string;
|
|
11
|
+
skillUrl?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function getPackageRootFromImportMeta(metaUrl: string): string;
|
|
14
|
+
export declare function startOgmaServer(options: OgmaStartOptions): Promise<{
|
|
15
|
+
project: OgmaResolvedProject;
|
|
16
|
+
reviewUrl: string;
|
|
17
|
+
server: ViteDevServer;
|
|
18
|
+
status: OgmaServerStatus;
|
|
19
|
+
}>;
|
|
20
|
+
export declare function assertPackageInstalledFromCwd(cwd: string): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/node/server.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AACrE,OAAO,KAAK,EAMV,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAK3E,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAmbD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,UAE3D;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,gBAAgB;;;;;GA6G9D;AAED,wBAAsB,6BAA6B,CAAC,GAAG,EAAE,MAAM,iBAiB9D"}
|