mimetic-cli 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.
- package/LICENSE +21 -0
- package/README.md +132 -0
- package/dist/argv.d.ts +1 -0
- package/dist/argv.js +8 -0
- package/dist/argv.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -0
- package/dist/feedback.d.ts +48 -0
- package/dist/feedback.js +243 -0
- package/dist/feedback.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/init-templates.d.ts +12 -0
- package/dist/init-templates.js +251 -0
- package/dist/init-templates.js.map +1 -0
- package/dist/init.d.ts +26 -0
- package/dist/init.js +343 -0
- package/dist/init.js.map +1 -0
- package/dist/observer-assets.d.ts +2 -0
- package/dist/observer-assets.js +2322 -0
- package/dist/observer-assets.js.map +1 -0
- package/dist/observer-data.d.ts +53 -0
- package/dist/observer-data.js +123 -0
- package/dist/observer-data.js.map +1 -0
- package/dist/observer.d.ts +36 -0
- package/dist/observer.js +360 -0
- package/dist/observer.js.map +1 -0
- package/dist/oss-lab.d.ts +50 -0
- package/dist/oss-lab.js +298 -0
- package/dist/oss-lab.js.map +1 -0
- package/dist/oss-meta-lab.d.ts +43 -0
- package/dist/oss-meta-lab.js +901 -0
- package/dist/oss-meta-lab.js.map +1 -0
- package/dist/program.d.ts +36 -0
- package/dist/program.js +825 -0
- package/dist/program.js.map +1 -0
- package/dist/run.d.ts +206 -0
- package/dist/run.js +688 -0
- package/dist/run.js.map +1 -0
- package/package.json +78 -0
- package/skills/mimetic-cli/SKILL.md +92 -0
- package/skills/mimetic-cli/agents/openai.yaml +7 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Mimetic CLI contributors
|
|
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,132 @@
|
|
|
1
|
+
# mimetic-cli
|
|
2
|
+
|
|
3
|
+
Open-source-safe persona simulation for apps, CLIs, and agent-facing product
|
|
4
|
+
flows.
|
|
5
|
+
|
|
6
|
+
Mimetic gives a project a repeatable way to ask: what happens when realistic
|
|
7
|
+
synthetic users, with different goals and tolerances, try to use this thing?
|
|
8
|
+
It creates committed simulation source under `mimetic/`, ignored run evidence
|
|
9
|
+
under `.mimetic/`, a watchable Observer UI, verification gates, and public-safe
|
|
10
|
+
feedback drafts.
|
|
11
|
+
|
|
12
|
+
## Install
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm i -D mimetic-cli
|
|
16
|
+
npx mimetic init --yes
|
|
17
|
+
npx mimetic watch
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
For coding agents, install the repo skill first:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npx skills add danielgwilson/mimetic-cli --skill mimetic-cli
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The skill lives at [`skills/mimetic-cli/SKILL.md`](skills/mimetic-cli/SKILL.md)
|
|
27
|
+
for skills.sh discovery.
|
|
28
|
+
|
|
29
|
+
## Public-Safety Boundary
|
|
30
|
+
|
|
31
|
+
Mimetic is designed for public repositories and public issue queues.
|
|
32
|
+
|
|
33
|
+
Do not commit, emit, paste, preserve, or generate PII, PHI, secrets, keys,
|
|
34
|
+
tokens, raw private transcripts, private screenshots, private customer data,
|
|
35
|
+
private patient data, or private source snippets.
|
|
36
|
+
|
|
37
|
+
Use synthetic personas, synthetic examples, redacted evidence pointers, and
|
|
38
|
+
env var names without values. Generated run bundles belong under ignored
|
|
39
|
+
`.mimetic/`.
|
|
40
|
+
|
|
41
|
+
## How It Works
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
mimetic/ committed source plane: personas, scenarios, policy, adapters
|
|
45
|
+
.mimetic/ ignored runtime plane: runs, Observer output, reviews, local state
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The first-run path does not require credentials:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npx mimetic doctor
|
|
52
|
+
npx mimetic watch
|
|
53
|
+
npx mimetic verify --run latest --json
|
|
54
|
+
npx mimetic feedback issue --run latest --repo owner/repo --format markdown
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
`mimetic watch` starts a fresh four-lane synthetic run, renders the Observer,
|
|
58
|
+
opens it in the browser, serves it over localhost, and keeps the shell attached.
|
|
59
|
+
The CI-safe equivalent is:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npx mimetic watch --json --no-open
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Commands
|
|
66
|
+
|
|
67
|
+
| Command | Purpose |
|
|
68
|
+
| --- | --- |
|
|
69
|
+
| `mimetic init` | Scaffold committed `mimetic/` source and ignored `.mimetic/` runtime state. |
|
|
70
|
+
| `mimetic doctor` | Explain readiness and missing setup. |
|
|
71
|
+
| `mimetic run --dry-run` | Generate a synthetic run bundle without browser, keys, or provider spend. |
|
|
72
|
+
| `mimetic watch` | Run sims, open Observer, and keep watching. |
|
|
73
|
+
| `mimetic verify` | Validate a run bundle and public-safety gates. |
|
|
74
|
+
| `mimetic review` | Read review evidence for a run. |
|
|
75
|
+
| `mimetic runs` | List local runs and latest pointers. |
|
|
76
|
+
| `mimetic feedback issue` | Print a public-safe GitHub issue draft without API mutation. |
|
|
77
|
+
| `mimetic lab oss` | Experimental Observer-of-Observers for headed public-OSS setup attempts. |
|
|
78
|
+
| `mimetic lab oss-smoke` | Disposable clone smoke test against public OSS repos. |
|
|
79
|
+
|
|
80
|
+
## OSS Lab
|
|
81
|
+
|
|
82
|
+
The experimental public-OSS dogfood loop is:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
pnpm mimetic -- lab oss
|
|
86
|
+
pnpm mimetic -- lab oss --repos developit/mitt,lukeed/clsx,sindresorhus/is-plain-obj,ai/nanoid
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
With `E2B_API_KEY` and `OPENAI_API_KEY` present, Mimetic launches headed E2B
|
|
90
|
+
desktop lanes, uploads the local package tarball, clones each assigned public
|
|
91
|
+
repository inside the sandbox, initializes Mimetic, runs nested proof commands,
|
|
92
|
+
attempts a Codex TUI pass, and opens the nested Observer in the sandbox browser.
|
|
93
|
+
|
|
94
|
+
The contract-safe path for agents and CI is:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
pnpm mimetic -- lab oss --dry-run --json --no-open
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Development
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
pnpm install
|
|
104
|
+
pnpm check
|
|
105
|
+
pnpm public-surface:scan
|
|
106
|
+
pnpm pack:dry-run
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Local dogfood:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
pnpm mimetic:watch
|
|
113
|
+
pnpm mimetic:verify
|
|
114
|
+
pnpm mimetic:feedback
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Docs
|
|
118
|
+
|
|
119
|
+
- [Project layout](docs/architecture/project-layout.md)
|
|
120
|
+
- [Observer architecture](docs/architecture/observer.md)
|
|
121
|
+
- [OSS lab POC](docs/architecture/oss-lab-poc.md)
|
|
122
|
+
- [Feedback contract](docs/contracts/feedback.md)
|
|
123
|
+
- [Open-source install experience](docs/product/open-source-install-experience.md)
|
|
124
|
+
- [Self-driving harness principles](docs/principles/self-driving-harness.md)
|
|
125
|
+
- [World-class open-source v0 roadmap](docs/roadmap/world-class-open-source-v0.md)
|
|
126
|
+
- [Open-source release readiness](docs/release/open-source-readiness.md)
|
|
127
|
+
|
|
128
|
+
## Release Status
|
|
129
|
+
|
|
130
|
+
This package is prepared for public npm packaging, but publication is still a
|
|
131
|
+
human release action. Do not run `npm publish` unless the maintainer explicitly
|
|
132
|
+
approves it in the current context.
|
package/dist/argv.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function normalizeCliArgv(argv: string[]): string[];
|
package/dist/argv.js
ADDED
package/dist/argv.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,IAAc;IAC7C,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAEvD,IAAI,OAAO,IAAI,UAAU,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/cli.d.ts
ADDED
package/dist/cli.js
ADDED
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,aAAa,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export declare const FEEDBACK_SCHEMA = "mimetic.feedback.v1";
|
|
2
|
+
export declare const FEEDBACK_RESULT_SCHEMA = "mimetic.feedback-result.v1";
|
|
3
|
+
export interface FeedbackDraft {
|
|
4
|
+
schema: typeof FEEDBACK_SCHEMA;
|
|
5
|
+
run_id: string;
|
|
6
|
+
adapter_id: string;
|
|
7
|
+
scenario_id: string;
|
|
8
|
+
persona_id: string;
|
|
9
|
+
actor: "synthetic-dry-run";
|
|
10
|
+
substrate: "local-filesystem";
|
|
11
|
+
failure_owner: "harness";
|
|
12
|
+
summary: string;
|
|
13
|
+
expected: string;
|
|
14
|
+
actual: string;
|
|
15
|
+
source_bundle: string;
|
|
16
|
+
evidence: Array<{
|
|
17
|
+
path: string;
|
|
18
|
+
kind: "review" | "state";
|
|
19
|
+
note: string;
|
|
20
|
+
}>;
|
|
21
|
+
redaction: {
|
|
22
|
+
status: "passed";
|
|
23
|
+
notes: string;
|
|
24
|
+
};
|
|
25
|
+
idempotency_key: string;
|
|
26
|
+
proposed_next_state: "watch";
|
|
27
|
+
acceptance_proof: string[];
|
|
28
|
+
}
|
|
29
|
+
export interface FeedbackResult {
|
|
30
|
+
schema: typeof FEEDBACK_RESULT_SCHEMA;
|
|
31
|
+
ok: boolean;
|
|
32
|
+
cwd: string;
|
|
33
|
+
run: string;
|
|
34
|
+
draftPath?: string;
|
|
35
|
+
issuePath?: string;
|
|
36
|
+
issueMarkdown?: string;
|
|
37
|
+
issueUrl?: string;
|
|
38
|
+
draft?: FeedbackDraft;
|
|
39
|
+
error?: {
|
|
40
|
+
code: "MIMETIC_RUN_NOT_FOUND" | "MIMETIC_INVALID_RUN_BUNDLE" | "MIMETIC_INVALID_FEEDBACK_DRAFT";
|
|
41
|
+
message: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export declare function draftFeedback(cwdInput: string, runInput: string): Promise<FeedbackResult>;
|
|
45
|
+
export declare function verifyFeedback(cwdInput: string, runInput: string): Promise<FeedbackResult>;
|
|
46
|
+
export declare function renderIssueMarkdown(cwdInput: string, runInput: string, repo: string): Promise<FeedbackResult>;
|
|
47
|
+
export declare function renderIssueUrl(cwdInput: string, runInput: string, repo: string): Promise<FeedbackResult>;
|
|
48
|
+
export declare function listFeedback(cwdInput: string, runInput: string): Promise<FeedbackResult>;
|
package/dist/feedback.js
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { loadRunBundle, verifyRun } from "./run.js";
|
|
4
|
+
export const FEEDBACK_SCHEMA = "mimetic.feedback.v1";
|
|
5
|
+
export const FEEDBACK_RESULT_SCHEMA = "mimetic.feedback-result.v1";
|
|
6
|
+
export async function draftFeedback(cwdInput, runInput) {
|
|
7
|
+
const cwd = path.resolve(cwdInput);
|
|
8
|
+
const loaded = await loadRunBundle(cwd, runInput);
|
|
9
|
+
if (!loaded) {
|
|
10
|
+
return {
|
|
11
|
+
schema: FEEDBACK_RESULT_SCHEMA,
|
|
12
|
+
ok: false,
|
|
13
|
+
cwd,
|
|
14
|
+
run: runInput,
|
|
15
|
+
error: {
|
|
16
|
+
code: "MIMETIC_RUN_NOT_FOUND",
|
|
17
|
+
message: `Run not found: ${runInput}`
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const verified = await verifyRun(cwd, runInput);
|
|
22
|
+
if (!verified.ok) {
|
|
23
|
+
return {
|
|
24
|
+
schema: FEEDBACK_RESULT_SCHEMA,
|
|
25
|
+
ok: false,
|
|
26
|
+
cwd,
|
|
27
|
+
run: runInput,
|
|
28
|
+
error: {
|
|
29
|
+
code: "MIMETIC_INVALID_RUN_BUNDLE",
|
|
30
|
+
message: verified.error?.message ?? "Run bundle failed verification."
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const draft = buildDraft(loaded.bundle, loaded.bundlePath);
|
|
35
|
+
const feedbackDir = path.join(loaded.runDir, "feedback");
|
|
36
|
+
const draftPath = path.join(feedbackDir, "draft.json");
|
|
37
|
+
await mkdir(feedbackDir, { recursive: true });
|
|
38
|
+
await writeJson(draftPath, draft);
|
|
39
|
+
return {
|
|
40
|
+
schema: FEEDBACK_RESULT_SCHEMA,
|
|
41
|
+
ok: true,
|
|
42
|
+
cwd,
|
|
43
|
+
run: runInput,
|
|
44
|
+
draftPath: path.relative(cwd, draftPath),
|
|
45
|
+
draft
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export async function verifyFeedback(cwdInput, runInput) {
|
|
49
|
+
const drafted = await draftFeedback(cwdInput, runInput);
|
|
50
|
+
if (!drafted.ok || !drafted.draft) {
|
|
51
|
+
return drafted;
|
|
52
|
+
}
|
|
53
|
+
const missingEvidence = [];
|
|
54
|
+
for (const evidence of drafted.draft.evidence) {
|
|
55
|
+
if (!await fileExists(path.join(drafted.cwd, evidence.path))) {
|
|
56
|
+
missingEvidence.push(evidence.path);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (missingEvidence.length > 0) {
|
|
60
|
+
return {
|
|
61
|
+
...drafted,
|
|
62
|
+
ok: false,
|
|
63
|
+
error: {
|
|
64
|
+
code: "MIMETIC_INVALID_FEEDBACK_DRAFT",
|
|
65
|
+
message: `Feedback evidence missing: ${missingEvidence.join(", ")}`
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return drafted;
|
|
70
|
+
}
|
|
71
|
+
export async function renderIssueMarkdown(cwdInput, runInput, repo) {
|
|
72
|
+
const verified = await verifyFeedback(cwdInput, runInput);
|
|
73
|
+
if (!verified.ok || !verified.draft || !verified.draftPath) {
|
|
74
|
+
return verified;
|
|
75
|
+
}
|
|
76
|
+
const loaded = await loadRunBundle(verified.cwd, runInput);
|
|
77
|
+
if (!loaded) {
|
|
78
|
+
return verified;
|
|
79
|
+
}
|
|
80
|
+
const issueMarkdown = renderMarkdown(verified.draft, repo);
|
|
81
|
+
const issuePath = path.join(loaded.runDir, "feedback", "issue.md");
|
|
82
|
+
await writeFile(issuePath, issueMarkdown, "utf8");
|
|
83
|
+
return {
|
|
84
|
+
...verified,
|
|
85
|
+
issuePath: path.relative(verified.cwd, issuePath),
|
|
86
|
+
issueMarkdown
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export async function renderIssueUrl(cwdInput, runInput, repo) {
|
|
90
|
+
const rendered = await renderIssueMarkdown(cwdInput, runInput, repo);
|
|
91
|
+
if (!rendered.ok || !rendered.issueMarkdown || !rendered.draft) {
|
|
92
|
+
return rendered;
|
|
93
|
+
}
|
|
94
|
+
const title = `[Mimetic] ${rendered.draft.summary}`;
|
|
95
|
+
return {
|
|
96
|
+
...rendered,
|
|
97
|
+
issueUrl: `https://github.com/${encodeGitHubRepoPath(repo)}/issues/new?title=${encodeURIComponent(title)}&body=${encodeURIComponent(rendered.issueMarkdown)}`
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export async function listFeedback(cwdInput, runInput) {
|
|
101
|
+
const cwd = path.resolve(cwdInput);
|
|
102
|
+
const loaded = await loadRunBundle(cwd, runInput);
|
|
103
|
+
if (!loaded) {
|
|
104
|
+
return {
|
|
105
|
+
schema: FEEDBACK_RESULT_SCHEMA,
|
|
106
|
+
ok: false,
|
|
107
|
+
cwd,
|
|
108
|
+
run: runInput,
|
|
109
|
+
error: {
|
|
110
|
+
code: "MIMETIC_RUN_NOT_FOUND",
|
|
111
|
+
message: `Run not found: ${runInput}`
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const draftPath = path.join(loaded.runDir, "feedback", "draft.json");
|
|
116
|
+
const draftText = await readTextIfExists(draftPath);
|
|
117
|
+
const draft = draftText === null ? undefined : JSON.parse(draftText);
|
|
118
|
+
return {
|
|
119
|
+
schema: FEEDBACK_RESULT_SCHEMA,
|
|
120
|
+
ok: true,
|
|
121
|
+
cwd,
|
|
122
|
+
run: runInput,
|
|
123
|
+
...(draft ? { draftPath: path.relative(cwd, draftPath), draft } : {})
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function buildDraft(bundle, bundlePath) {
|
|
127
|
+
return {
|
|
128
|
+
schema: FEEDBACK_SCHEMA,
|
|
129
|
+
run_id: bundle.runId,
|
|
130
|
+
adapter_id: bundle.source.packageName ?? "synthetic-app",
|
|
131
|
+
scenario_id: bundle.scenario.id,
|
|
132
|
+
persona_id: bundle.persona.id,
|
|
133
|
+
actor: "synthetic-dry-run",
|
|
134
|
+
substrate: "local-filesystem",
|
|
135
|
+
failure_owner: "harness",
|
|
136
|
+
summary: "Dry-run contract proof needs product-evidence follow-up",
|
|
137
|
+
expected: "Mimetic should produce verified, public-safe evidence before product claims are filed.",
|
|
138
|
+
actual: "This dry-run produced a contract-proof bundle only; no browser or product behavior was exercised.",
|
|
139
|
+
source_bundle: bundlePath,
|
|
140
|
+
evidence: [
|
|
141
|
+
{
|
|
142
|
+
path: bundlePath,
|
|
143
|
+
kind: "state",
|
|
144
|
+
note: "Synthetic run bundle."
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
path: path.join(path.dirname(bundlePath), "review.md"),
|
|
148
|
+
kind: "review",
|
|
149
|
+
note: "Review skeleton labels this as contract proof only."
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
redaction: {
|
|
153
|
+
status: "passed",
|
|
154
|
+
notes: bundle.redaction.notes
|
|
155
|
+
},
|
|
156
|
+
idempotency_key: `mimetic:${bundle.runId}:dry-run-contract-proof`,
|
|
157
|
+
proposed_next_state: "watch",
|
|
158
|
+
acceptance_proof: [
|
|
159
|
+
`pnpm mimetic -- verify --run ${bundle.runId} --json`,
|
|
160
|
+
`pnpm mimetic -- watch --run ${bundle.runId} --no-open`
|
|
161
|
+
]
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
function renderMarkdown(draft, repo) {
|
|
165
|
+
return `This issue was drafted by Mimetic from a verified dry-run bundle.
|
|
166
|
+
|
|
167
|
+
It contributes to public-safe simulation harness coverage. It does not claim product behavior proof.
|
|
168
|
+
|
|
169
|
+
## Summary
|
|
170
|
+
|
|
171
|
+
${draft.summary}
|
|
172
|
+
|
|
173
|
+
## Expected
|
|
174
|
+
|
|
175
|
+
${draft.expected}
|
|
176
|
+
|
|
177
|
+
## Actual
|
|
178
|
+
|
|
179
|
+
${draft.actual}
|
|
180
|
+
|
|
181
|
+
## Evidence
|
|
182
|
+
|
|
183
|
+
${draft.evidence.map((item) => `- ${item.kind}: \`${item.path}\` - ${item.note}`).join("\n")}
|
|
184
|
+
|
|
185
|
+
## Filing Notes
|
|
186
|
+
|
|
187
|
+
- Repository: ${repo}
|
|
188
|
+
- GitHub mutation: not performed
|
|
189
|
+
- Provider spend: not used
|
|
190
|
+
- Production data: not used
|
|
191
|
+
|
|
192
|
+
\`\`\`yaml
|
|
193
|
+
mimetic_feedback:
|
|
194
|
+
schema: ${draft.schema}
|
|
195
|
+
run_id: ${draft.run_id}
|
|
196
|
+
adapter_id: ${draft.adapter_id}
|
|
197
|
+
scenario_id: ${draft.scenario_id}
|
|
198
|
+
persona_id: ${draft.persona_id}
|
|
199
|
+
actor: ${draft.actor}
|
|
200
|
+
substrate: ${draft.substrate}
|
|
201
|
+
failure_owner: ${draft.failure_owner}
|
|
202
|
+
source_bundle: ${draft.source_bundle}
|
|
203
|
+
evidence:
|
|
204
|
+
${draft.evidence.map((item) => ` - path: ${item.path}\n kind: ${item.kind}\n note: ${item.note}`).join("\n")}
|
|
205
|
+
redaction:
|
|
206
|
+
status: ${draft.redaction.status}
|
|
207
|
+
notes: ${draft.redaction.notes}
|
|
208
|
+
idempotency_key: ${draft.idempotency_key}
|
|
209
|
+
proposed_next_state: ${draft.proposed_next_state}
|
|
210
|
+
acceptance_proof:
|
|
211
|
+
${draft.acceptance_proof.map((proof) => ` - ${proof}`).join("\n")}
|
|
212
|
+
\`\`\`
|
|
213
|
+
`;
|
|
214
|
+
}
|
|
215
|
+
function encodeGitHubRepoPath(repo) {
|
|
216
|
+
return repo.split("/").map((part) => encodeURIComponent(part)).join("/");
|
|
217
|
+
}
|
|
218
|
+
async function writeJson(filePath, value) {
|
|
219
|
+
await writeFile(filePath, `${JSON.stringify(value, null, 2)}\n`, "utf8");
|
|
220
|
+
}
|
|
221
|
+
async function readTextIfExists(filePath) {
|
|
222
|
+
try {
|
|
223
|
+
return await readFile(filePath, "utf8");
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
if (error instanceof Error && "code" in error && error.code === "ENOENT") {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
throw error;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
async function fileExists(filePath) {
|
|
233
|
+
try {
|
|
234
|
+
return (await stat(filePath)).isFile();
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
if (error instanceof Error && "code" in error && error.code === "ENOENT") {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
throw error;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { normalizeCliArgv } from "./argv.js";
|
|
2
|
+
export { FEEDBACK_RESULT_SCHEMA, FEEDBACK_SCHEMA, draftFeedback, listFeedback, renderIssueMarkdown, renderIssueUrl, verifyFeedback } from "./feedback.js";
|
|
3
|
+
export type { FeedbackDraft, FeedbackResult } from "./feedback.js";
|
|
4
|
+
export { INIT_RESPONSE_SCHEMA, runInit } from "./init.js";
|
|
5
|
+
export type { InitChange, InitMode, InitOptions, InitResult } from "./init.js";
|
|
6
|
+
export { OBSERVER_DATA_SCHEMA, buildObserverData, stripAnsi } from "./observer-data.js";
|
|
7
|
+
export type { ObserverData, ObserverStream } from "./observer-data.js";
|
|
8
|
+
export { OBSERVER_SCHEMA, renderObserver, serveObserver } from "./observer.js";
|
|
9
|
+
export type { ObserverOptions, ObserverResult, ObserverServeOptions, ObserverServer } from "./observer.js";
|
|
10
|
+
export { DEFAULT_OSS_REPOS, OSS_LAB_SCHEMA, normalizeOssRepoSlugs, runOssLab, validateOssRepoSlug } from "./oss-lab.js";
|
|
11
|
+
export type { OssLabOptions, OssLabRepoResult, OssLabResult, OssLabStep } from "./oss-lab.js";
|
|
12
|
+
export { DOCTOR_SCHEMA, REVIEW_SCHEMA, RUNS_SCHEMA, RUN_BUNDLE_SCHEMA, VERIFY_SCHEMA, doctor, listRuns, readReview, runDryRun, verifyRun } from "./run.js";
|
|
13
|
+
export type { DoctorResult, ReviewSummary, RunBundle, RunEvent, RunOptions, RunResult, RunSimulation, RunStream, RunStreamKind, RunsResult, VerifyResult } from "./run.js";
|
|
14
|
+
export { CLI_RESPONSE_SCHEMA, createProgram, plannedCommands } from "./program.js";
|
|
15
|
+
export type { CliIo, PlannedCommand, UnsupportedEnvelope } from "./program.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { normalizeCliArgv } from "./argv.js";
|
|
2
|
+
export { FEEDBACK_RESULT_SCHEMA, FEEDBACK_SCHEMA, draftFeedback, listFeedback, renderIssueMarkdown, renderIssueUrl, verifyFeedback } from "./feedback.js";
|
|
3
|
+
export { INIT_RESPONSE_SCHEMA, runInit } from "./init.js";
|
|
4
|
+
export { OBSERVER_DATA_SCHEMA, buildObserverData, stripAnsi } from "./observer-data.js";
|
|
5
|
+
export { OBSERVER_SCHEMA, renderObserver, serveObserver } from "./observer.js";
|
|
6
|
+
export { DEFAULT_OSS_REPOS, OSS_LAB_SCHEMA, normalizeOssRepoSlugs, runOssLab, validateOssRepoSlug } from "./oss-lab.js";
|
|
7
|
+
export { DOCTOR_SCHEMA, REVIEW_SCHEMA, RUNS_SCHEMA, RUN_BUNDLE_SCHEMA, VERIFY_SCHEMA, doctor, listRuns, readReview, runDryRun, verifyRun } from "./run.js";
|
|
8
|
+
export { CLI_RESPONSE_SCHEMA, createProgram, plannedCommands } from "./program.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,cAAc,EACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAExF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAS,EACV,MAAM,UAAU,CAAC;AAclB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface StarterFile {
|
|
2
|
+
path: string;
|
|
3
|
+
contents: string;
|
|
4
|
+
plane: "source";
|
|
5
|
+
}
|
|
6
|
+
export interface RuntimeDirectory {
|
|
7
|
+
path: string;
|
|
8
|
+
plane: "runtime";
|
|
9
|
+
}
|
|
10
|
+
export declare const starterFiles: StarterFile[];
|
|
11
|
+
export declare const runtimeDirectories: RuntimeDirectory[];
|
|
12
|
+
export declare const mimeticScripts: Record<string, string>;
|