@rotifer/playground 0.32.1 → 0.33.1

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 (129) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +2 -2
  3. package/README.zh.md +2 -2
  4. package/dist/cloud/client.d.ts +28 -0
  5. package/dist/cloud/client.d.ts.map +1 -1
  6. package/dist/cloud/client.js +114 -25
  7. package/dist/cloud/client.js.map +1 -1
  8. package/dist/commands/agent-create.d.ts +11 -0
  9. package/dist/commands/agent-create.d.ts.map +1 -1
  10. package/dist/commands/agent-create.js +50 -1
  11. package/dist/commands/agent-create.js.map +1 -1
  12. package/dist/commands/agent-memory.d.ts +64 -0
  13. package/dist/commands/agent-memory.d.ts.map +1 -0
  14. package/dist/commands/agent-memory.js +235 -0
  15. package/dist/commands/agent-memory.js.map +1 -0
  16. package/dist/commands/agent-run.d.ts.map +1 -1
  17. package/dist/commands/agent-run.js +84 -26
  18. package/dist/commands/agent-run.js.map +1 -1
  19. package/dist/commands/arena-submit.d.ts.map +1 -1
  20. package/dist/commands/arena-submit.js +9 -24
  21. package/dist/commands/arena-submit.js.map +1 -1
  22. package/dist/commands/compare.d.ts.map +1 -1
  23. package/dist/commands/compare.js +3 -1
  24. package/dist/commands/compare.js.map +1 -1
  25. package/dist/commands/compile.d.ts.map +1 -1
  26. package/dist/commands/compile.js +32 -6
  27. package/dist/commands/compile.js.map +1 -1
  28. package/dist/commands/genome-format.d.ts +5 -1
  29. package/dist/commands/genome-format.d.ts.map +1 -1
  30. package/dist/commands/genome-format.js +5 -1
  31. package/dist/commands/genome-format.js.map +1 -1
  32. package/dist/commands/hello.d.ts.map +1 -1
  33. package/dist/commands/hello.js +15 -2
  34. package/dist/commands/hello.js.map +1 -1
  35. package/dist/commands/info.d.ts.map +1 -1
  36. package/dist/commands/info.js +3 -1
  37. package/dist/commands/info.js.map +1 -1
  38. package/dist/commands/install.d.ts.map +1 -1
  39. package/dist/commands/install.js +3 -1
  40. package/dist/commands/install.js.map +1 -1
  41. package/dist/commands/reputation.d.ts.map +1 -1
  42. package/dist/commands/reputation.js +3 -1
  43. package/dist/commands/reputation.js.map +1 -1
  44. package/dist/commands/run.d.ts.map +1 -1
  45. package/dist/commands/run.js +59 -4
  46. package/dist/commands/run.js.map +1 -1
  47. package/dist/commands/stats.d.ts.map +1 -1
  48. package/dist/commands/stats.js +3 -1
  49. package/dist/commands/stats.js.map +1 -1
  50. package/dist/commands/test.d.ts.map +1 -1
  51. package/dist/commands/test.js +78 -25
  52. package/dist/commands/test.js.map +1 -1
  53. package/dist/commands/versions.d.ts.map +1 -1
  54. package/dist/commands/versions.js +4 -1
  55. package/dist/commands/versions.js.map +1 -1
  56. package/dist/commands/wrap.d.ts.map +1 -1
  57. package/dist/commands/wrap.js +28 -70
  58. package/dist/commands/wrap.js.map +1 -1
  59. package/dist/index.js +47 -1
  60. package/dist/index.js.map +1 -1
  61. package/dist/memory/access.d.ts +53 -0
  62. package/dist/memory/access.d.ts.map +1 -0
  63. package/dist/memory/access.js +111 -0
  64. package/dist/memory/access.js.map +1 -0
  65. package/dist/memory/audit.d.ts +26 -0
  66. package/dist/memory/audit.d.ts.map +1 -0
  67. package/dist/memory/audit.js +30 -0
  68. package/dist/memory/audit.js.map +1 -0
  69. package/dist/memory/backend.d.ts +141 -0
  70. package/dist/memory/backend.d.ts.map +1 -0
  71. package/dist/memory/backend.js +536 -0
  72. package/dist/memory/backend.js.map +1 -0
  73. package/dist/memory/codec.d.ts +34 -0
  74. package/dist/memory/codec.d.ts.map +1 -0
  75. package/dist/memory/codec.js +184 -0
  76. package/dist/memory/codec.js.map +1 -0
  77. package/dist/memory/data-policy.d.ts +39 -0
  78. package/dist/memory/data-policy.d.ts.map +1 -0
  79. package/dist/memory/data-policy.js +42 -0
  80. package/dist/memory/data-policy.js.map +1 -0
  81. package/dist/memory/host.d.ts +119 -0
  82. package/dist/memory/host.d.ts.map +1 -0
  83. package/dist/memory/host.js +226 -0
  84. package/dist/memory/host.js.map +1 -0
  85. package/dist/memory/index.d.ts +37 -0
  86. package/dist/memory/index.d.ts.map +1 -0
  87. package/dist/memory/index.js +64 -0
  88. package/dist/memory/index.js.map +1 -0
  89. package/dist/memory/telemetry.d.ts +35 -0
  90. package/dist/memory/telemetry.d.ts.map +1 -0
  91. package/dist/memory/telemetry.js +51 -0
  92. package/dist/memory/telemetry.js.map +1 -0
  93. package/dist/memory/types.d.ts +110 -0
  94. package/dist/memory/types.d.ts.map +1 -0
  95. package/dist/memory/types.js +74 -0
  96. package/dist/memory/types.js.map +1 -0
  97. package/dist/publish/auto-publish.d.ts +1 -1
  98. package/dist/publish/auto-publish.js +1 -1
  99. package/dist/testsuite/gate.d.ts +8 -0
  100. package/dist/testsuite/gate.d.ts.map +1 -1
  101. package/dist/testsuite/gate.js +8 -2
  102. package/dist/testsuite/gate.js.map +1 -1
  103. package/dist/utils/arena-success.d.ts +10 -0
  104. package/dist/utils/arena-success.d.ts.map +1 -1
  105. package/dist/utils/arena-success.js +35 -8
  106. package/dist/utils/arena-success.js.map +1 -1
  107. package/dist/utils/binding.d.ts +6 -2
  108. package/dist/utils/binding.d.ts.map +1 -1
  109. package/dist/utils/binding.js.map +1 -1
  110. package/dist/utils/clawhub-client.d.ts +73 -0
  111. package/dist/utils/clawhub-client.d.ts.map +1 -0
  112. package/dist/utils/clawhub-client.js +176 -0
  113. package/dist/utils/clawhub-client.js.map +1 -0
  114. package/dist/utils/config.d.ts +7 -0
  115. package/dist/utils/config.d.ts.map +1 -1
  116. package/dist/utils/config.js +15 -1
  117. package/dist/utils/config.js.map +1 -1
  118. package/dist/utils/gene-id-display.d.ts +14 -0
  119. package/dist/utils/gene-id-display.d.ts.map +1 -0
  120. package/dist/utils/gene-id-display.js +64 -0
  121. package/dist/utils/gene-id-display.js.map +1 -0
  122. package/dist/utils/l0-gate.d.ts.map +1 -1
  123. package/dist/utils/l0-gate.js +4 -1
  124. package/dist/utils/l0-gate.js.map +1 -1
  125. package/dist/utils/rust-phenotype.d.ts +17 -5
  126. package/dist/utils/rust-phenotype.d.ts.map +1 -1
  127. package/dist/utils/rust-phenotype.js +25 -4
  128. package/dist/utils/rust-phenotype.js.map +1 -1
  129. package/package.json +10 -6
@@ -1 +1 @@
1
- {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/utils/binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/utils/binding.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/utils/binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/utils/binding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * The two ClawHub endpoints `wrap --from-clawhub` uses: skill metadata and
3
+ * the skill package.
4
+ *
5
+ * Both sit in front of ClawHub's Convex backend, which is slow (4–11 s per
6
+ * answer) and fails about one request in six with HTTP 500
7
+ * `[Request ID: …] Server Error` — from any network, measured 2026-10-31.
8
+ * So every request here has a timeout, transient failures (5xx, 408, 429, a
9
+ * timeout, a network error) are retried with backoff, and a failure that
10
+ * survives the retries says exactly what it was: a 404 is "not found", a 500
11
+ * carries ClawHub's own message, a non-JSON answer names its content type.
12
+ * Before this, all of them read "not found or API error", which is how a
13
+ * flaky upstream passed for a missing skill.
14
+ *
15
+ * `fetch` follows 301/302/307/308. The download endpoint answers 307, which
16
+ * an earlier hand-written client did not follow (2026-08-31).
17
+ */
18
+ export declare const CLAWHUB_API = "https://clawhub.ai/api/skill";
19
+ export declare const CLAWHUB_DOWNLOAD = "https://wry-manatee-359.convex.site/api/v1/download";
20
+ export interface ClawHubSkillInfo {
21
+ slug: string;
22
+ displayName: string;
23
+ summary: string;
24
+ stats: {
25
+ downloads: number;
26
+ stars: number;
27
+ versions: number;
28
+ installs?: number;
29
+ };
30
+ owner: {
31
+ handle: string;
32
+ displayName: string;
33
+ };
34
+ version: string;
35
+ }
36
+ export type ClawHubFailureKind = "not_found" | "http" | "not_json" | "timeout" | "network";
37
+ export declare class ClawHubError extends Error {
38
+ readonly kind: ClawHubFailureKind;
39
+ readonly url: string;
40
+ readonly attempts: number;
41
+ readonly status: number | undefined;
42
+ readonly detail: string;
43
+ constructor(kind: ClawHubFailureKind, url: string, attempts: number, status: number | undefined, detail: string);
44
+ }
45
+ export interface ClawHubRequestOptions {
46
+ /** Attempts in all, the first included. */
47
+ attempts?: number;
48
+ /** Per attempt, response body included. */
49
+ timeoutMs?: number;
50
+ /** Wait before attempt n+1; the last entry repeats. */
51
+ retryDelaysMs?: number[];
52
+ fetchImpl?: typeof fetch;
53
+ /** Told about each failed attempt that will be retried. */
54
+ onRetry?: (attempt: number, attempts: number, error: ClawHubError) => void;
55
+ }
56
+ /**
57
+ * The endpoints, or the overrides in ROTIFER_CLAWHUB_API_URL /
58
+ * ROTIFER_CLAWHUB_DOWNLOAD_URL (a mirror, or a local fixture in tests). An
59
+ * override must be https, or plain http to a loopback address; anything else
60
+ * is refused rather than silently sending requests somewhere unencrypted.
61
+ */
62
+ export declare function clawHubEndpoints(env?: NodeJS.ProcessEnv): {
63
+ api: string;
64
+ download: string;
65
+ };
66
+ export declare function fetchClawHubInfo(slug: string, options?: ClawHubRequestOptions & {
67
+ api?: string;
68
+ }): Promise<ClawHubSkillInfo>;
69
+ /** The skill package (a zip). */
70
+ export declare function fetchClawHubPackage(slug: string, options?: ClawHubRequestOptions & {
71
+ download?: string;
72
+ }): Promise<Buffer>;
73
+ //# sourceMappingURL=clawhub-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clawhub-client.d.ts","sourceRoot":"","sources":["../../src/utils/clawhub-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,WAAW,iCAAiC,CAAC;AAC1D,eAAO,MAAM,gBAAgB,wDAAwD,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjF,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAE3F,qBAAa,YAAa,SAAQ,KAAK;IAEnC,QAAQ,CAAC,IAAI,EAAE,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAJd,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM;CAK1B;AAuBD,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC5E;AAWD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAKxG;AAqFD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,OAAO,CAAC,gBAAgB,CAAC,CAsB3B;AAED,iCAAiC;AACjC,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,OAAO,CAAC,MAAM,CAAC,CAGjB"}
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ /**
3
+ * The two ClawHub endpoints `wrap --from-clawhub` uses: skill metadata and
4
+ * the skill package.
5
+ *
6
+ * Both sit in front of ClawHub's Convex backend, which is slow (4–11 s per
7
+ * answer) and fails about one request in six with HTTP 500
8
+ * `[Request ID: …] Server Error` — from any network, measured 2026-10-31.
9
+ * So every request here has a timeout, transient failures (5xx, 408, 429, a
10
+ * timeout, a network error) are retried with backoff, and a failure that
11
+ * survives the retries says exactly what it was: a 404 is "not found", a 500
12
+ * carries ClawHub's own message, a non-JSON answer names its content type.
13
+ * Before this, all of them read "not found or API error", which is how a
14
+ * flaky upstream passed for a missing skill.
15
+ *
16
+ * `fetch` follows 301/302/307/308. The download endpoint answers 307, which
17
+ * an earlier hand-written client did not follow (2026-08-31).
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.ClawHubError = exports.CLAWHUB_DOWNLOAD = exports.CLAWHUB_API = void 0;
21
+ exports.clawHubEndpoints = clawHubEndpoints;
22
+ exports.fetchClawHubInfo = fetchClawHubInfo;
23
+ exports.fetchClawHubPackage = fetchClawHubPackage;
24
+ exports.CLAWHUB_API = "https://clawhub.ai/api/skill";
25
+ exports.CLAWHUB_DOWNLOAD = "https://wry-manatee-359.convex.site/api/v1/download";
26
+ class ClawHubError extends Error {
27
+ kind;
28
+ url;
29
+ attempts;
30
+ status;
31
+ detail;
32
+ constructor(kind, url, attempts, status, detail) {
33
+ super(describeFailure(kind, attempts, status, detail));
34
+ this.kind = kind;
35
+ this.url = url;
36
+ this.attempts = attempts;
37
+ this.status = status;
38
+ this.detail = detail;
39
+ this.name = "ClawHubError";
40
+ }
41
+ }
42
+ exports.ClawHubError = ClawHubError;
43
+ function describeFailure(kind, attempts, status, detail) {
44
+ const tries = `${attempts} attempt${attempts === 1 ? "" : "s"}`;
45
+ switch (kind) {
46
+ case "not_found":
47
+ return `not found (HTTP ${status ?? 404})`;
48
+ case "http":
49
+ return `HTTP ${status}${detail ? ` — ${detail}` : ""} (${tries})`;
50
+ case "not_json":
51
+ return `the response was not JSON (${detail}) (${tries})`;
52
+ case "timeout":
53
+ return `no answer within ${detail} (${tries})`;
54
+ case "network":
55
+ return `network error: ${detail} (${tries})`;
56
+ }
57
+ }
58
+ const DEFAULTS = {
59
+ attempts: 3,
60
+ // A successful answer takes up to ~11 s; leave room above that.
61
+ timeoutMs: 30_000,
62
+ retryDelaysMs: [1_000, 3_000],
63
+ };
64
+ const LOOPBACK = new Set(["127.0.0.1", "localhost", "[::1]", "::1"]);
65
+ /**
66
+ * The endpoints, or the overrides in ROTIFER_CLAWHUB_API_URL /
67
+ * ROTIFER_CLAWHUB_DOWNLOAD_URL (a mirror, or a local fixture in tests). An
68
+ * override must be https, or plain http to a loopback address; anything else
69
+ * is refused rather than silently sending requests somewhere unencrypted.
70
+ */
71
+ function clawHubEndpoints(env = process.env) {
72
+ return {
73
+ api: checkedOverride("ROTIFER_CLAWHUB_API_URL", env.ROTIFER_CLAWHUB_API_URL) ?? exports.CLAWHUB_API,
74
+ download: checkedOverride("ROTIFER_CLAWHUB_DOWNLOAD_URL", env.ROTIFER_CLAWHUB_DOWNLOAD_URL) ?? exports.CLAWHUB_DOWNLOAD,
75
+ };
76
+ }
77
+ function checkedOverride(name, value) {
78
+ if (!value)
79
+ return undefined;
80
+ let url;
81
+ try {
82
+ url = new URL(value);
83
+ }
84
+ catch {
85
+ throw new Error(`${name} is not a URL: ${value}`);
86
+ }
87
+ if (url.protocol === "https:" || (url.protocol === "http:" && LOOPBACK.has(url.hostname))) {
88
+ return value;
89
+ }
90
+ throw new Error(`${name} must be https, or http to a loopback address: ${value}`);
91
+ }
92
+ function isTransientStatus(status) {
93
+ return status >= 500 || status === 408 || status === 429;
94
+ }
95
+ /** ClawHub's error text: the `code` / `message` / `error` field, or the body. */
96
+ function errorDetail(body) {
97
+ let text = body.trim();
98
+ try {
99
+ const parsed = JSON.parse(text);
100
+ const field = ["code", "message", "error"].map((k) => parsed[k]).find((v) => typeof v === "string");
101
+ if (typeof field === "string")
102
+ text = field;
103
+ }
104
+ catch {
105
+ // not JSON: keep the text
106
+ }
107
+ return text.length > 200 ? `${text.slice(0, 200)}…` : text;
108
+ }
109
+ function sleep(ms) {
110
+ return new Promise((resolve) => setTimeout(resolve, ms));
111
+ }
112
+ async function request(url, options) {
113
+ const attempts = Math.max(1, options.attempts ?? DEFAULTS.attempts);
114
+ const timeoutMs = options.timeoutMs ?? DEFAULTS.timeoutMs;
115
+ const delays = options.retryDelaysMs ?? DEFAULTS.retryDelaysMs;
116
+ const doFetch = options.fetchImpl ?? fetch;
117
+ let last;
118
+ for (let attempt = 1; attempt <= attempts; attempt++) {
119
+ let failure;
120
+ try {
121
+ const res = await doFetch(url, { redirect: "follow", signal: AbortSignal.timeout(timeoutMs) });
122
+ const body = Buffer.from(await res.arrayBuffer());
123
+ if (res.status === 200) {
124
+ return { status: 200, contentType: res.headers.get("content-type") ?? "", body };
125
+ }
126
+ const detail = errorDetail(body.toString("utf-8"));
127
+ if (res.status === 404)
128
+ throw new ClawHubError("not_found", url, attempt, 404, detail);
129
+ failure = new ClawHubError("http", url, attempt, res.status, detail);
130
+ if (!isTransientStatus(res.status))
131
+ throw failure;
132
+ }
133
+ catch (e) {
134
+ if (e instanceof ClawHubError)
135
+ throw e;
136
+ const err = e;
137
+ failure =
138
+ err.name === "TimeoutError" || err.name === "AbortError"
139
+ ? new ClawHubError("timeout", url, attempt, undefined, timeoutMs >= 1000 ? `${Math.round(timeoutMs / 1000)} s` : `${timeoutMs} ms`)
140
+ : new ClawHubError("network", url, attempt, undefined, err.cause?.code ?? err.cause?.message ?? err.message);
141
+ }
142
+ last = failure;
143
+ if (attempt < attempts) {
144
+ options.onRetry?.(attempt, attempts, failure);
145
+ await sleep(delays[Math.min(attempt - 1, delays.length - 1)] ?? 0);
146
+ }
147
+ }
148
+ throw last;
149
+ }
150
+ async function fetchClawHubInfo(slug, options = {}) {
151
+ const url = `${options.api ?? clawHubEndpoints().api}?slug=${encodeURIComponent(slug)}`;
152
+ const answer = await request(url, options);
153
+ let data;
154
+ try {
155
+ data = JSON.parse(answer.body.toString("utf-8"));
156
+ }
157
+ catch {
158
+ throw new ClawHubError("not_json", url, 1, 200, `content-type ${answer.contentType || "unknown"}`);
159
+ }
160
+ if (!data.skill)
161
+ throw new ClawHubError("not_found", url, 1, 200, "the answer names no skill");
162
+ return {
163
+ slug: data.skill.slug,
164
+ displayName: data.skill.displayName,
165
+ summary: data.skill.summary,
166
+ stats: data.skill.stats,
167
+ owner: { handle: data.owner?.handle || "unknown", displayName: data.owner?.displayName || "" },
168
+ version: data.latestVersion?.version || "0.0.0",
169
+ };
170
+ }
171
+ /** The skill package (a zip). */
172
+ async function fetchClawHubPackage(slug, options = {}) {
173
+ const url = `${options.download ?? clawHubEndpoints().download}?slug=${encodeURIComponent(slug)}`;
174
+ return (await request(url, options)).body;
175
+ }
176
+ //# sourceMappingURL=clawhub-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clawhub-client.js","sourceRoot":"","sources":["../../src/utils/clawhub-client.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,13 @@ export interface RotiferConfig {
6
6
  default_domain?: string;
7
7
  }
8
8
  export declare function findProjectRoot(startDir?: string): string | null;
9
+ /**
10
+ * rotifer.json exists but cannot be read as a config. The CLI entry point
11
+ * reports it as a message, not a stack (#456); the file is never rewritten.
12
+ */
13
+ export declare class ConfigError extends Error {
14
+ name: string;
15
+ }
9
16
  export declare function loadConfig(projectDir?: string): RotiferConfig;
10
17
  export declare function saveConfig(config: RotiferConfig, projectDir: string): void;
11
18
  export declare function getProjectRoot(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,wBAAgB,eAAe,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAS/E;AAED,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAW7D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAG1E;AAED,wBAAgB,cAAc,IAAI,MAAM,CAQvC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,wBAAgB,eAAe,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAS/E;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAC3B,IAAI,SAAiB;CAC/B;AAED,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAe7D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAG1E;AAED,wBAAgB,cAAc,IAAI,MAAM,CAQvC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigError = void 0;
3
4
  exports.findProjectRoot = findProjectRoot;
4
5
  exports.loadConfig = loadConfig;
5
6
  exports.saveConfig = saveConfig;
@@ -17,6 +18,14 @@ function findProjectRoot(startDir = process.cwd()) {
17
18
  }
18
19
  return null;
19
20
  }
21
+ /**
22
+ * rotifer.json exists but cannot be read as a config. The CLI entry point
23
+ * reports it as a message, not a stack (#456); the file is never rewritten.
24
+ */
25
+ class ConfigError extends Error {
26
+ name = "ConfigError";
27
+ }
28
+ exports.ConfigError = ConfigError;
20
29
  function loadConfig(projectDir) {
21
30
  const root = projectDir || findProjectRoot();
22
31
  if (!root) {
@@ -24,7 +33,12 @@ function loadConfig(projectDir) {
24
33
  }
25
34
  const configPath = (0, node_path_1.join)(root, CONFIG_FILE);
26
35
  const content = (0, node_fs_1.readFileSync)(configPath, "utf-8");
27
- return JSON.parse(content);
36
+ try {
37
+ return JSON.parse(content);
38
+ }
39
+ catch (err) {
40
+ throw new ConfigError(`${configPath} is not valid JSON: ${err.message}`);
41
+ }
28
42
  }
29
43
  function saveConfig(config, projectDir) {
30
44
  const configPath = (0, node_path_1.join)(projectDir, CONFIG_FILE);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;AAaA,0CASC;AAED,gCAWC;AAED,gCAGC;AAED,wCAQC;AAlDD,qCAAkE;AAClE,yCAAiC;AAUjC,MAAM,WAAW,GAAG,cAAc,CAAC;AAEnC,SAAgB,eAAe,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAC9D,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,OAAO,GAAG,KAAK,GAAG,EAAE,CAAC;QACnB,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,GAAG,CAAC;QACb,CAAC;QACD,GAAG,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,UAAU,CAAC,UAAmB;IAC5C,MAAM,IAAI,GAAG,UAAU,IAAI,eAAe,EAAE,CAAC;IAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,MAAM,WAAW,mCAAmC,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;AAC9C,CAAC;AAED,SAAgB,UAAU,CAAC,MAAqB,EAAE,UAAkB;IAClE,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACjD,IAAA,uBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,MAAM,WAAW,6DAA6D,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;AAaA,0CASC;AAUD,gCAeC;AAED,gCAGC;AAED,wCAQC;AA9DD,qCAAkE;AAClE,yCAAiC;AAUjC,MAAM,WAAW,GAAG,cAAc,CAAC;AAEnC,SAAgB,eAAe,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAC9D,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,OAAO,GAAG,KAAK,GAAG,EAAE,CAAC;QACnB,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,GAAG,CAAC;QACb,CAAC;QACD,GAAG,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAa,WAAY,SAAQ,KAAK;IAC3B,IAAI,GAAG,aAAa,CAAC;CAC/B;AAFD,kCAEC;AAED,SAAgB,UAAU,CAAC,UAAmB;IAC5C,MAAM,IAAI,GAAG,UAAU,IAAI,eAAe,EAAE,CAAC;IAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,MAAM,WAAW,mCAAmC,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CAAC,GAAG,UAAU,uBAAwB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,MAAqB,EAAE,UAAkB;IAClE,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACjD,IAAA,uBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,MAAM,WAAW,6DAA6D,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Print the gene's v2 ID, or why it has none (docs/gene-id-v2.md) — the ID
3
+ * the protocol names the gene by: P2P announces it and agent memory records
4
+ * it as createdBy. Not the unprefixed phenotype hash (superseded).
5
+ */
6
+ export declare function showGeneIdV2(geneDir: string): void;
7
+ /**
8
+ * Print the content_hash `rotifer publish` sends for this phenotype
9
+ * (docs/content-hash-v1.md, ADR-341) — what install compares against.
10
+ * Labelled for what it is: a hash of phenotype.json as it stands, not an
11
+ * identity (that is the v2 ID above).
12
+ */
13
+ export declare function showContentHash(phenotype: Record<string, unknown>): void;
14
+ //# sourceMappingURL=gene-id-display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gene-id-display.d.ts","sourceRoot":"","sources":["../../src/utils/gene-id-display.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAExE"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.showGeneIdV2 = showGeneIdV2;
37
+ exports.showContentHash = showContentHash;
38
+ const node_path_1 = require("node:path");
39
+ const display = __importStar(require("./display.js"));
40
+ const palette_js_1 = require("./palette.js");
41
+ const binding_js_1 = require("./binding.js");
42
+ const content_hash_js_1 = require("./content-hash.js");
43
+ /**
44
+ * Print the gene's v2 ID, or why it has none (docs/gene-id-v2.md) — the ID
45
+ * the protocol names the gene by: P2P announces it and agent memory records
46
+ * it as createdBy. Not the unprefixed phenotype hash (superseded).
47
+ */
48
+ function showGeneIdV2(geneDir) {
49
+ const r = (0, binding_js_1.geneIdV2)((0, node_path_1.dirname)(geneDir), (0, node_path_1.basename)(geneDir));
50
+ if ("id" in r)
51
+ display.keyValue("Gene ID (v2)", palette_js_1.c.warn(r.id));
52
+ else
53
+ display.keyValue("Gene ID (v2)", `not computable — ${r.reason}`);
54
+ }
55
+ /**
56
+ * Print the content_hash `rotifer publish` sends for this phenotype
57
+ * (docs/content-hash-v1.md, ADR-341) — what install compares against.
58
+ * Labelled for what it is: a hash of phenotype.json as it stands, not an
59
+ * identity (that is the v2 ID above).
60
+ */
61
+ function showContentHash(phenotype) {
62
+ display.keyValue("Content hash", `${(0, content_hash_js_1.contentHash)(phenotype)} (phenotype.json as publish sends it — not an identity)`);
63
+ }
64
+ //# sourceMappingURL=gene-id-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gene-id-display.js","sourceRoot":"","sources":["../../src/utils/gene-id-display.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,oCAIC;AAQD,0CAEC;AAzBD,yCAA8C;AAC9C,sDAAwC;AACxC,6CAAiC;AACjC,6CAAwC;AACxC,uDAAgD;AAEhD;;;;GAIG;AACH,SAAgB,YAAY,CAAC,OAAe;IAC1C,MAAM,CAAC,GAAG,IAAA,qBAAQ,EAAC,IAAA,mBAAO,EAAC,OAAO,CAAC,EAAE,IAAA,oBAAQ,EAAC,OAAO,CAAC,CAAC,CAAC;IACxD,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;QACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,SAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAA,6BAAW,EAAC,SAAS,CAAC,yDAAyD,CAAC,CAAC;AACvH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"l0-gate.d.ts","sourceRoot":"","sources":["../../src/utils/l0-gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,aAAa,GAAG,IAAI,EAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,SAAS,CAaX;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAW5D"}
1
+ {"version":3,"file":"l0-gate.d.ts","sourceRoot":"","sources":["../../src/utils/l0-gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,aAAa,GAAG,IAAI,EAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,SAAS,CAeX;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAW5D"}
@@ -4,6 +4,7 @@ exports.evaluateL0 = evaluateL0;
4
4
  exports.isExternallySourced = isExternallySourced;
5
5
  const node_fs_1 = require("node:fs");
6
6
  const node_path_1 = require("node:path");
7
+ const rust_phenotype_js_1 = require("./rust-phenotype.js");
7
8
  /**
8
9
  * 对一个基因的 phenotype 跑 L0 门控。
9
10
  *
@@ -18,8 +19,10 @@ function evaluateL0(binding, phenotype) {
18
19
  return { kind: "unavailable", detail: "native addon failed to load" };
19
20
  }
20
21
  try {
22
+ // In rotifer-core's shape: wrap's ISO createdAt made every wrapped gene's
23
+ // gate "unavailable" before (#448), which runs a local gene unchecked.
21
24
  const { irHash: _strip, ...phenotypeForL0 } = phenotype;
22
- const result = binding.l0Check(JSON.stringify(phenotypeForL0));
25
+ const result = binding.l0Check(JSON.stringify((0, rust_phenotype_js_1.toRustPhenotype)(phenotypeForL0)));
23
26
  return result.passed
24
27
  ? { kind: "pass" }
25
28
  : { kind: "violation", detail: result.violations.join("; ") };
@@ -1 +1 @@
1
- {"version":3,"file":"l0-gate.js","sourceRoot":"","sources":["../../src/utils/l0-gate.ts"],"names":[],"mappings":";;AA6BA,gCAgBC;AAuBD,kDAWC;AA/ED,qCAAmD;AACnD,yCAAiC;AAmBjC;;;;;;;;GAQG;AACH,SAAgB,UAAU,CACxB,OAA6B,EAC7B,SAAkC;IAElC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;IACxE,CAAC;IACD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,SAAS,CAAC;QACxD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,MAAM;YAClB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;YAClB,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAyB,GAAG,EAAE,OAAO,IAAI,GAAG,GAAG,EAAE,CAAC;IAC1F,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,YAAY,GAAG,IAAA,gBAAI,EAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAA,oBAAU,EAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,CAA4B,CAAC;QACrF,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC;QAC3D,MAAM,eAAe,GAAG,cAAc,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"l0-gate.js","sourceRoot":"","sources":["../../src/utils/l0-gate.ts"],"names":[],"mappings":";;AA8BA,gCAkBC;AAuBD,kDAWC;AAlFD,qCAAmD;AACnD,yCAAiC;AAEjC,2DAAsD;AAkBtD;;;;;;;;GAQG;AACH,SAAgB,UAAU,CACxB,OAA6B,EAC7B,SAAkC;IAElC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;IACxE,CAAC;IACD,IAAI,CAAC;QACH,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,SAAS,CAAC;QACxD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,mCAAe,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,MAAM,CAAC,MAAM;YAClB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;YAClB,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAyB,GAAG,EAAE,OAAO,IAAI,GAAG,GAAG,EAAE,CAAC;IAC1F,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,YAAY,GAAG,IAAA,gBAAI,EAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAA,oBAAU,EAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,CAA4B,CAAC;QACrF,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC;QAC3D,MAAM,eAAe,GAAG,cAAc,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -10,15 +10,27 @@
10
10
  *
11
11
  * Values are converted, not dropped. A value that cannot be converted
12
12
  * faithfully (an irHash that is not 32 bytes of hex, a createdAt that is not a
13
- * date) is omitted, so Rust falls back to its serde default (`None` / `0`).
14
- * None of the three fields is read while executing a gene — they are
15
- * metadata — so omitting one does not change what runs.
13
+ * date, a dependency named without a way to resolve the name) is omitted, so
14
+ * Rust falls back to its serde default (`None` / `0` / empty). None of the
15
+ * three fields is read while executing a gene — they are metadata — so
16
+ * omitting one does not change what runs. A caller that must not lose a value
17
+ * silently checks `createdAtProblem` first.
18
+ *
19
+ * Every path that hands a phenotype.json to rotifer-core goes through this:
20
+ * `agent run`'s algebra executor, `compile`'s IR compiler (#448), the L0 gate
21
+ * and `test --compliance` (#449).
16
22
  *
17
23
  * Other fields pass through unchanged.
18
24
  */
25
+ /**
26
+ * Why `createdAt` cannot be converted, or undefined when it can (or is absent).
27
+ * For callers that report the field rather than let Rust default it to 0.
28
+ */
29
+ export declare function createdAtProblem(phenotype: Record<string, unknown>): string | undefined;
19
30
  /**
20
31
  * @param geneId maps a dependency given by gene name to its gene id, using the
21
- * same derivation as the gene entries passed alongside the phenotype.
32
+ * same derivation as the gene entries passed alongside the phenotype. Without
33
+ * it, only dependencies already given as 64-char hex ids are kept.
22
34
  */
23
- export declare function toRustPhenotype(phenotype: Record<string, unknown>, geneId: (geneName: string) => string): Record<string, unknown>;
35
+ export declare function toRustPhenotype(phenotype: Record<string, unknown>, geneId?: (geneName: string) => string): Record<string, unknown>;
24
36
  //# sourceMappingURL=rust-phenotype.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rust-phenotype.d.ts","sourceRoot":"","sources":["../../src/utils/rust-phenotype.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAqBH;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB"}
1
+ {"version":3,"file":"rust-phenotype.d.ts","sourceRoot":"","sources":["../../src/utils/rust-phenotype.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAqBH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAKvF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB"}
@@ -11,13 +11,20 @@
11
11
  *
12
12
  * Values are converted, not dropped. A value that cannot be converted
13
13
  * faithfully (an irHash that is not 32 bytes of hex, a createdAt that is not a
14
- * date) is omitted, so Rust falls back to its serde default (`None` / `0`).
15
- * None of the three fields is read while executing a gene — they are
16
- * metadata — so omitting one does not change what runs.
14
+ * date, a dependency named without a way to resolve the name) is omitted, so
15
+ * Rust falls back to its serde default (`None` / `0` / empty). None of the
16
+ * three fields is read while executing a gene — they are metadata — so
17
+ * omitting one does not change what runs. A caller that must not lose a value
18
+ * silently checks `createdAtProblem` first.
19
+ *
20
+ * Every path that hands a phenotype.json to rotifer-core goes through this:
21
+ * `agent run`'s algebra executor, `compile`'s IR compiler (#448), the L0 gate
22
+ * and `test --compliance` (#449).
17
23
  *
18
24
  * Other fields pass through unchanged.
19
25
  */
20
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.createdAtProblem = createdAtProblem;
21
28
  exports.toRustPhenotype = toRustPhenotype;
22
29
  const HEX_32_BYTES = /^[0-9a-fA-F]{64}$/;
23
30
  function hexToBytes(hex) {
@@ -36,9 +43,22 @@ function toEpochMillis(value) {
36
43
  }
37
44
  return undefined;
38
45
  }
46
+ /**
47
+ * Why `createdAt` cannot be converted, or undefined when it can (or is absent).
48
+ * For callers that report the field rather than let Rust default it to 0.
49
+ */
50
+ function createdAtProblem(phenotype) {
51
+ const { createdAt } = phenotype;
52
+ if (createdAt === undefined)
53
+ return undefined;
54
+ if (toEpochMillis(createdAt) !== undefined)
55
+ return undefined;
56
+ return `createdAt ${JSON.stringify(createdAt)} is not a date: use epoch milliseconds or an ISO 8601 timestamp`;
57
+ }
39
58
  /**
40
59
  * @param geneId maps a dependency given by gene name to its gene id, using the
41
- * same derivation as the gene entries passed alongside the phenotype.
60
+ * same derivation as the gene entries passed alongside the phenotype. Without
61
+ * it, only dependencies already given as 64-char hex ids are kept.
42
62
  */
43
63
  function toRustPhenotype(phenotype, geneId) {
44
64
  const { irHash, createdAt, dependencies, ...rest } = phenotype;
@@ -52,6 +72,7 @@ function toRustPhenotype(phenotype, geneId) {
52
72
  if (Array.isArray(dependencies)) {
53
73
  out.dependencies = dependencies
54
74
  .filter((d) => typeof d === "string" && d.length > 0)
75
+ .filter((d) => HEX_32_BYTES.test(d) || geneId !== undefined)
55
76
  .map((d) => hexToBytes(HEX_32_BYTES.test(d) ? d : geneId(d)));
56
77
  }
57
78
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"rust-phenotype.js","sourceRoot":"","sources":["../../src/utils/rust-phenotype.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAyBH,0CAqBC;AA5CD,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEzC,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAC7B,SAAkC,EAClC,MAAoC;IAEpC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC;IAC/D,MAAM,GAAG,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IAEjD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,EAAE,KAAK,SAAS;QAAE,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;IAEzC,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,YAAY,GAAG,YAAY;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"rust-phenotype.js","sourceRoot":"","sources":["../../src/utils/rust-phenotype.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;AAyBH,4CAKC;AAOD,0CAsBC;AAzDD,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEzC,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,SAAkC;IACjE,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAChC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7D,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,iEAAiE,CAAC;AACjH,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAC7B,SAAkC,EAClC,MAAqC;IAErC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC;IAC/D,MAAM,GAAG,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IAEjD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,EAAE,KAAK,SAAS;QAAE,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;IAEzC,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,YAAY,GAAG,YAAY;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aACjE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,KAAK,SAAS,CAAC;aAC3D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}