@rotifer/playground 0.15.0 → 0.16.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.
@@ -0,0 +1,190 @@
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.republishCommand = exports.unpublishCommand = void 0;
37
+ exports.splitVersionSuffix = splitVersionSuffix;
38
+ exports.chooseVersion = chooseVersion;
39
+ const commander_1 = require("commander");
40
+ const display = __importStar(require("../utils/display.js"));
41
+ const palette_js_1 = require("../utils/palette.js");
42
+ const auth_js_1 = require("../cloud/auth.js");
43
+ const client_js_1 = require("../cloud/client.js");
44
+ const gene_ref_js_1 = require("../cloud/gene-ref.js");
45
+ /** Split a trailing `@version` off a gene reference, leaving `@owner/name` alone. */
46
+ function splitVersionSuffix(ref) {
47
+ const trimmed = ref.trim();
48
+ // Only a version suffix has an `@` that is neither leading nor part of `@owner/name`.
49
+ const at = trimmed.lastIndexOf("@");
50
+ if (at <= 0 || trimmed.slice(at).includes("/"))
51
+ return { name: trimmed, version: null };
52
+ return { name: trimmed.slice(0, at), version: trimmed.slice(at + 1) || null };
53
+ }
54
+ /**
55
+ * Pick the version to act on.
56
+ *
57
+ * With no version given this takes the newest one that is actually in the
58
+ * state the command can change — the newest published version to take down,
59
+ * the newest unpublished one to put back. Falling back to the newest of any
60
+ * state would let a repeated command report success while the visible version
61
+ * stayed exactly as it was.
62
+ */
63
+ function chooseVersion(versions, requested, direction) {
64
+ const shouldTargetPublished = direction === "down";
65
+ if (versions.length === 0)
66
+ return { chosen: null, reason: "no-such-gene" };
67
+ if (requested) {
68
+ const exact = versions.find((v) => v.version === requested);
69
+ if (!exact)
70
+ return { chosen: null, reason: "no-such-version" };
71
+ if (exact.published !== shouldTargetPublished)
72
+ return { chosen: null, reason: "already-in-state" };
73
+ return { chosen: exact, reason: null };
74
+ }
75
+ const candidates = versions.filter((v) => v.published === shouldTargetPublished);
76
+ if (candidates.length === 0)
77
+ return { chosen: null, reason: "nothing-to-do" };
78
+ return { chosen: candidates[0], reason: null };
79
+ }
80
+ const WORDING = {
81
+ down: {
82
+ verb: "unpublish",
83
+ pastTense: "Unpublished",
84
+ alreadyState: "already unpublished",
85
+ nothingToDo: "Every version is already unpublished.",
86
+ notYours: "Only the author of a version can take it down",
87
+ },
88
+ up: {
89
+ verb: "republish",
90
+ pastTense: "Republished",
91
+ alreadyState: "already published",
92
+ nothingToDo: "Every version is already published.",
93
+ notYours: "Only the author of a version can put it back",
94
+ },
95
+ };
96
+ async function run(geneRef, direction, shouldSkipConfirm) {
97
+ const w = WORDING[direction];
98
+ try {
99
+ await (0, auth_js_1.requireAuth)();
100
+ }
101
+ catch {
102
+ display.error("Not logged in. Run 'rotifer login' first.");
103
+ process.exitCode = 1;
104
+ return;
105
+ }
106
+ let targetId;
107
+ let label;
108
+ const asRef = (0, gene_ref_js_1.parseGeneRef)(geneRef);
109
+ if (asRef.kind === "uuid") {
110
+ targetId = asRef.raw;
111
+ label = asRef.raw;
112
+ }
113
+ else {
114
+ const { name, version } = splitVersionSuffix(geneRef);
115
+ let versions;
116
+ try {
117
+ versions = await (0, client_js_1.listOwnGeneVersions)(name);
118
+ }
119
+ catch (err) {
120
+ display.error("Could not look up your genes", err.message);
121
+ process.exitCode = 1;
122
+ return;
123
+ }
124
+ const { chosen, reason } = chooseVersion(versions, version, direction);
125
+ if (!chosen) {
126
+ reportUnresolved(name, version, versions, reason, w);
127
+ process.exitCode = 1;
128
+ return;
129
+ }
130
+ targetId = chosen.id;
131
+ label = `${chosen.name}@${chosen.version}`;
132
+ }
133
+ if (!shouldSkipConfirm && direction === "down") {
134
+ display.warn(`About to unpublish ${palette_js_1.c.bold(label)}.`);
135
+ display.hint("It disappears from search and the public registry.");
136
+ display.hint("Its Arena entry, invocation history and published artifact are kept.");
137
+ display.hint(`Put it back with: rotifer republish ${label}`);
138
+ display.hint(`Re-run with ${palette_js_1.c.bold("--yes")} to confirm.`);
139
+ process.exitCode = 1;
140
+ return;
141
+ }
142
+ try {
143
+ const result = direction === "down"
144
+ ? await (0, client_js_1.unpublishGene)(targetId)
145
+ : await (0, client_js_1.republishGene)(targetId);
146
+ display.renderResult({ ok: true, direction, id: result.id, name: result.name, version: result.version }, (data) => {
147
+ display.success(`${w.pastTense} ${data.name}@${data.version}`);
148
+ if (direction === "down") {
149
+ display.hint(`Undo with: rotifer republish ${data.name}@${data.version}`);
150
+ }
151
+ });
152
+ }
153
+ catch (err) {
154
+ display.error(`Could not ${w.verb} the gene`, err.message);
155
+ process.exitCode = 1;
156
+ }
157
+ }
158
+ exports.unpublishCommand = new commander_1.Command("unpublish")
159
+ .description("Take one of your published gene versions off the public registry")
160
+ .argument("<gene>", "gene name, optionally name@version, or a gene UUID")
161
+ .option("--yes", "skip the confirmation prompt", false)
162
+ .action(async (geneRef, options) => {
163
+ await run(geneRef, "down", options.yes);
164
+ });
165
+ exports.republishCommand = new commander_1.Command("republish")
166
+ .description("Put one of your unpublished gene versions back on the public registry")
167
+ .argument("<gene>", "gene name, optionally name@version, or a gene UUID")
168
+ .action(async (geneRef) => {
169
+ await run(geneRef, "up", true);
170
+ });
171
+ function reportUnresolved(name, version, versions, reason, w) {
172
+ switch (reason) {
173
+ case "no-such-gene":
174
+ display.error(`You have no gene named '${name}'.`, `${w.notYours}, so ${w.verb} looks only at your own genes.`);
175
+ display.hint("Check the name with 'rotifer search', or publish it first.");
176
+ return;
177
+ case "no-such-version":
178
+ display.error(`You have no version '${version}' of '${name}'.`);
179
+ display.hint(`Your versions: ${versions.map((v) => v.version).join(", ")}`);
180
+ return;
181
+ case "already-in-state":
182
+ display.warn(`${name}@${version} is ${w.alreadyState} — nothing to do.`);
183
+ return;
184
+ case "nothing-to-do":
185
+ display.warn(`${w.nothingToDo} ('${name}')`);
186
+ display.hint(`Versions: ${versions.map((v) => v.version).join(", ")}`);
187
+ return;
188
+ }
189
+ }
190
+ //# sourceMappingURL=unpublish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unpublish.js","sourceRoot":"","sources":["../../src/commands/unpublish.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,gDAMC;AAoBD,sCAmBC;AA1DD,yCAAoC;AACpC,6DAA+C;AAC/C,oDAAwC;AACxC,8CAA+C;AAC/C,kDAK4B;AAC5B,sDAAoD;AAEpD,qFAAqF;AACrF,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,sFAAsF;IACtF,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxF,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;AAChF,CAAC;AAWD;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAC3B,QAA4B,EAC5B,SAAwB,EACxB,SAAoB;IAEpB,MAAM,qBAAqB,GAAG,SAAS,KAAK,MAAM,CAAC;IAEnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAE3E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC/D,IAAI,KAAK,CAAC,SAAS,KAAK,qBAAqB;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACnG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,qBAAqB,CAAC,CAAC;IACjF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAC9E,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACjD,CAAC;AAUD,MAAM,OAAO,GAA+B;IAC1C,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,qBAAqB;QACnC,WAAW,EAAE,uCAAuC;QACpD,QAAQ,EAAE,+CAA+C;KAC1D;IACD,EAAE,EAAE;QACF,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE,qCAAqC;QAClD,QAAQ,EAAE,8CAA8C;KACzD;CACF,CAAC;AAEF,KAAK,UAAU,GAAG,CAAC,OAAe,EAAE,SAAoB,EAAE,iBAA0B;IAClF,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,IAAA,qBAAW,GAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,KAAa,CAAC;IAElB,MAAM,KAAK,GAAG,IAAA,0BAAY,EAAC,OAAO,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;QACrB,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,QAA4B,CAAC;QACjC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAA,+BAAmB,EAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAO,EAAE,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,KAAK,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,iBAAiB,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,sBAAsB,cAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,eAAe,cAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,KAAK,MAAM;YACjC,CAAC,CAAC,MAAM,IAAA,yBAAa,EAAC,QAAQ,CAAC;YAC/B,CAAC,CAAC,MAAM,IAAA,yBAAa,EAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,CAAC,YAAY,CAClB,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAClF,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,WAAW,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAEY,QAAA,gBAAgB,GAAG,IAAI,mBAAO,CAAC,WAAW,CAAC;KACrD,WAAW,CAAC,kEAAkE,CAAC;KAC/E,QAAQ,CAAC,QAAQ,EAAE,oDAAoD,CAAC;KACxE,MAAM,CAAC,OAAO,EAAE,8BAA8B,EAAE,KAAK,CAAC;KACtD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAyB,EAAE,EAAE;IAC3D,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEQ,QAAA,gBAAgB,GAAG,IAAI,mBAAO,CAAC,WAAW,CAAC;KACrD,WAAW,CAAC,uEAAuE,CAAC;KACpF,QAAQ,CAAC,QAAQ,EAAE,oDAAoD,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEL,SAAS,gBAAgB,CACvB,IAAY,EACZ,OAAsB,EACtB,QAA4B,EAC5B,MAAoB,EACpB,CAAU;IAEV,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,cAAc;YACjB,OAAO,CAAC,KAAK,CACX,2BAA2B,IAAI,IAAI,EACnC,GAAG,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,IAAI,gCAAgC,CAC5D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC3E,OAAO;QACT,KAAK,iBAAiB;YACpB,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,SAAS,IAAI,IAAI,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5E,OAAO;QACT,KAAK,kBAAkB;YACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,OAAO,OAAO,CAAC,CAAC,YAAY,mBAAmB,CAAC,CAAC;YACzE,OAAO;QACT,KAAK,eAAe;YAClB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,MAAM,IAAI,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,OAAO;IACX,CAAC;AACH,CAAC"}
package/dist/index.js CHANGED
@@ -13,12 +13,14 @@ const doctor_js_1 = require("./commands/doctor.js");
13
13
  const arena_submit_js_1 = require("./commands/arena-submit.js");
14
14
  const arena_list_js_1 = require("./commands/arena-list.js");
15
15
  const arena_watch_js_1 = require("./commands/arena-watch.js");
16
+ const arena_audit_js_1 = require("./commands/arena-audit.js");
16
17
  const agent_create_js_1 = require("./commands/agent-create.js");
17
18
  const agent_list_js_1 = require("./commands/agent-list.js");
18
19
  const agent_run_js_1 = require("./commands/agent-run.js");
19
20
  const login_js_1 = require("./commands/login.js");
20
21
  const logout_js_1 = require("./commands/logout.js");
21
22
  const publish_js_1 = require("./commands/publish.js");
23
+ const unpublish_js_1 = require("./commands/unpublish.js");
22
24
  const search_js_1 = require("./commands/search.js");
23
25
  const install_js_1 = require("./commands/install.js");
24
26
  const rollback_js_1 = require("./commands/rollback.js");
@@ -73,6 +75,8 @@ program.addCommand(doctor_js_1.doctorCommand);
73
75
  program.addCommand(login_js_1.loginCommand);
74
76
  program.addCommand(logout_js_1.logoutCommand);
75
77
  program.addCommand(publish_js_1.publishCommand);
78
+ program.addCommand(unpublish_js_1.unpublishCommand);
79
+ program.addCommand(unpublish_js_1.republishCommand);
76
80
  program.addCommand(search_js_1.searchCommand);
77
81
  program.addCommand(install_js_1.installCommand);
78
82
  program.addCommand(rollback_js_1.uninstallCommand);
@@ -89,6 +93,7 @@ const arena = program.command("arena").description("Arena competition commands")
89
93
  arena.addCommand(arena_submit_js_1.arenaSubmitCommand);
90
94
  arena.addCommand(arena_list_js_1.arenaListCommand);
91
95
  arena.addCommand(arena_watch_js_1.arenaWatchCommand);
96
+ arena.addCommand(arena_audit_js_1.arenaAuditCommand);
92
97
  const agent = program.command("agent").description("Agent lifecycle commands");
93
98
  agent.addCommand(agent_create_js_1.agentCreateCommand);
94
99
  agent.addCommand(agent_list_js_1.agentListCommand);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ interface CodeFormatOutput {
15
15
  * Formats source code. MVP uses simple heuristic formatting.
16
16
  * Production binding would delegate to prettier/rustfmt/etc.
17
17
  */
18
- export async function express(input: CodeFormatInput): Promise<CodeFormatOutput> {
18
+ export function express(input: CodeFormatInput): CodeFormatOutput {
19
19
  let formatted: string;
20
20
 
21
21
  switch (input.language) {
@@ -25,7 +25,7 @@
25
25
  "semanticRequirements": {
26
26
  "timeModel": "Sync",
27
27
  "concurrencyModel": "Stateless",
28
- "failureSemantics": "Fail"
28
+ "failureSemantics": "FAIL_FAST"
29
29
  },
30
30
  "tags": ["formatter", "prettier", "typescript", "rust", "genesis"]
31
31
  }
@@ -17,7 +17,7 @@ interface FileReadOutput {
17
17
  * Reads a local file and returns its contents.
18
18
  * Restricted by L0 sandbox constraints (path allowlist).
19
19
  */
20
- export async function express(input: FileReadInput): Promise<FileReadOutput> {
20
+ export function express(input: FileReadInput): FileReadOutput {
21
21
  const encoding = input.encoding ?? "utf-8";
22
22
 
23
23
  let buffer: Buffer;
@@ -25,7 +25,7 @@
25
25
  "semanticRequirements": {
26
26
  "timeModel": "Sync",
27
27
  "concurrencyModel": "Stateless",
28
- "failureSemantics": "Fail"
28
+ "failureSemantics": "FAIL_FAST"
29
29
  },
30
30
  "tags": ["file-io", "encoding", "base64", "local-files", "genesis"]
31
31
  }
@@ -29,7 +29,7 @@ const DEFAULT_MAX_FUEL = 1_000_000;
29
29
  * constraints. This is a meta-gene used by the Arena admission process
30
30
  * and the testing framework.
31
31
  */
32
- export async function express(input: ConstraintCheckInput): Promise<ConstraintCheckOutput> {
32
+ export function express(input: ConstraintCheckInput): ConstraintCheckOutput {
33
33
  const maxMem = input.constraints?.maxMemoryBytes ?? DEFAULT_MAX_MEMORY;
34
34
  const maxFuel = input.constraints?.maxFuel ?? DEFAULT_MAX_FUEL;
35
35
  const allowed = input.constraints?.allowedHostFunctions ?? [];
@@ -33,7 +33,7 @@
33
33
  "semanticRequirements": {
34
34
  "timeModel": "Sync",
35
35
  "concurrencyModel": "Stateless",
36
- "failureSemantics": "Fail"
36
+ "failureSemantics": "FAIL_FAST"
37
37
  },
38
38
  "tags": ["l0", "constraints", "wasm", "compliance", "sandbox"]
39
39
  }
@@ -21,7 +21,7 @@ interface SearchOutput {
21
21
  * Full-featured web search gene. In MVP, returns simulated results.
22
22
  * Production binding would connect to a real search API.
23
23
  */
24
- export async function express(input: SearchInput): Promise<SearchOutput> {
24
+ export function express(input: SearchInput): SearchOutput {
25
25
  const start = Date.now();
26
26
  const max = input.maxResults ?? 5;
27
27
 
@@ -14,7 +14,7 @@ interface LiteSearchOutput {
14
14
  * instead of a list. Lower resource cost, suitable for Par composition
15
15
  * with deadline constraints.
16
16
  */
17
- export async function express(input: LiteSearchInput): Promise<LiteSearchOutput> {
17
+ export function express(input: LiteSearchInput): LiteSearchOutput {
18
18
  return {
19
19
  answer: `[Simulated] Quick answer for "${input.query}": This is a placeholder response from genesis-web-search-lite. In production, this returns a concise answer from a search provider.`,
20
20
  source: "https://example.com/instant?q=" + encodeURIComponent(input.query),
@@ -23,7 +23,7 @@
23
23
  "semanticRequirements": {
24
24
  "timeModel": "Async",
25
25
  "concurrencyModel": "Stateless",
26
- "failureSemantics": "Fallback"
26
+ "failureSemantics": "SILENT_DEGRADE"
27
27
  },
28
28
  "tags": ["web-search", "single-answer", "attribution", "lightweight", "async"]
29
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rotifer/playground",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "Rotifer Protocol Playground — local development environment for gene development, Arena competition, and protocol simulation",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Rotifer Protocol Contributors",
@@ -84,10 +84,10 @@
84
84
  },
85
85
  "optionalDependencies": {
86
86
  "@rolldown/binding-linux-x64-gnu": "1.1.1",
87
- "@rotifer/playground-darwin-arm64": "0.15.0",
88
- "@rotifer/playground-darwin-x64": "0.15.0",
89
- "@rotifer/playground-linux-x64-gnu": "0.15.0",
90
- "@rotifer/playground-win32-x64-msvc": "0.15.0"
87
+ "@rotifer/playground-darwin-arm64": "0.16.0",
88
+ "@rotifer/playground-darwin-x64": "0.16.0",
89
+ "@rotifer/playground-linux-x64-gnu": "0.16.0",
90
+ "@rotifer/playground-win32-x64-msvc": "0.16.0"
91
91
  },
92
92
  "engines": {
93
93
  "node": ">=20.0.0"