@crewx/skill 0.1.20-rc.40 → 0.1.20-rc.41

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/dist/cli.d.ts CHANGED
@@ -3,4 +3,4 @@ export interface SkillCliContext {
3
3
  readonly productPackageRoot?: string;
4
4
  }
5
5
  export declare function main(inputArgs?: string[], context?: SkillCliContext): Promise<void>;
6
- //# sourceMappingURL=cli.d.ts.map
6
+
package/dist/cli.js CHANGED
@@ -1,93 +1,6 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.main = main;
38
- const fs = __importStar(require("fs"));
39
- const path = __importStar(require("path"));
40
- const engine_1 = require("./src/engine");
41
- const product_bundle_1 = require("./src/product-bundle");
42
- let PKG_VERSION = 'unknown';
43
- try {
44
- const _pkgPath = fs.existsSync(path.join(__dirname, 'package.json'))
45
- ? path.join(__dirname, 'package.json')
46
- : path.join(__dirname, '..', 'package.json');
47
- const _pkg = JSON.parse(fs.readFileSync(_pkgPath, 'utf-8'));
48
- if (_pkg?.version)
49
- PKG_VERSION = String(_pkg.version);
50
- }
51
- catch { }
52
- async function loadTracer() {
53
- try {
54
- return await Promise.resolve().then(() => __importStar(require('@crewx/shared/skill-tracer')));
55
- }
56
- catch {
57
- return null;
58
- }
59
- }
60
- function showDetailedUsage() {
61
- const skillMd = path.join(__dirname, '..', 'SKILL.md');
62
- if (fs.existsSync(skillMd)) {
63
- process.stdout.write(fs.readFileSync(skillMd, 'utf-8'));
64
- }
65
- else {
66
- printUsage();
67
- }
68
- }
69
- function findProjectRoot() {
70
- let dir = process.cwd();
71
- while (dir !== path.dirname(dir)) {
72
- if (fs.existsSync(path.join(dir, 'crewx.yaml')) ||
73
- fs.existsSync(path.join(dir, 'skills'))) {
74
- return dir;
75
- }
76
- dir = path.dirname(dir);
77
- }
78
- return process.cwd();
79
- }
80
- function getAdditionalPaths(projectRoot) {
81
- const paths = [];
82
- const nmDir = path.join(projectRoot, 'node_modules');
83
- if (fs.existsSync(nmDir)) {
84
- paths.push(nmDir);
85
- }
86
- return paths;
87
- }
88
- function printUsage() {
89
- console.log(`
90
- @crewx/skill@${PKG_VERSION} - Unified skill runner for CrewX
2
+ "use strict";var P=exports&&exports.__createBinding||(Object.create?(function(e,n,s,t){if(t===void 0)t=s;var r=Object.getOwnPropertyDescriptor(n,s);if(!r||("get"in r?!n.__esModule:r.writable||r.configurable)){r={enumerable:true,get:function(){return n[s]}}}Object.defineProperty(e,t,r)}):(function(e,n,s,t){if(t===void 0)t=s;e[t]=n[s]}));var $=exports&&exports.__setModuleDefault||(Object.create?(function(e,n){Object.defineProperty(e,"default",{enumerable:true,value:n})}):function(e,n){e["default"]=n});var _=exports&&exports.__importStar||(function(){var e=function(n){e=Object.getOwnPropertyNames||function(s){var t=[];for(var r in s)if(Object.prototype.hasOwnProperty.call(s,r))t[t.length]=r;return t};return e(n)};return function(n){if(n&&n.__esModule)return n;var s={};if(n!=null){for(var t=e(n),r=0;r<t.length;r++)if(t[r]!=="default")P(s,n,t[r])}$(s,n);return s}})();Object.defineProperty(exports,"__esModule",{value:true});exports.main=y;const p=_(require("fs"));const d=_(require("path"));const D=require("./src/engine");const C=require("./src/product-bundle");let k="unknown";try{const e=p.existsSync(d.join(__dirname,"package.json"))?d.join(__dirname,"package.json"):d.join(__dirname,"..","package.json");const n=JSON.parse(p.readFileSync(e,"utf-8"));if(n?.version)k=String(n.version)}catch{}async function j(){try{return await Promise.resolve().then(()=>_(require("@crewx/shared/skill-tracer")))}catch{return null}}function N(){const e=d.join(__dirname,"..","SKILL.md");if(p.existsSync(e)){process.stdout.write(p.readFileSync(e,"utf-8"))}else{v()}}function M(){let e=process.cwd();while(e!==d.dirname(e)){if(p.existsSync(d.join(e,"crewx.yaml"))||p.existsSync(d.join(e,"skills"))){return e}e=d.dirname(e)}return process.cwd()}function R(e){const n=[];const s=d.join(e,"node_modules");if(p.existsSync(s)){n.push(s)}return n}function v(){console.log(`
3
+ @crewx/skill@${k} - Unified skill runner for CrewX
91
4
 
92
5
  Usage:
93
6
  skill <command> [options]
@@ -109,137 +22,4 @@ Examples:
109
22
  skill develop DELEGATE
110
23
 
111
24
  For detailed usage guide: skill usage
112
- `);
113
- }
114
- function printList(engine) {
115
- const skills = engine.discover();
116
- if (skills.length === 0) {
117
- console.log('No skills found.');
118
- return;
119
- }
120
- const maxName = Math.max(...skills.map(s => s.name.length), 4);
121
- const maxType = 4;
122
- console.log(`${'NAME'.padEnd(maxName)} ${'TYPE'.padEnd(maxType)} ${'VERSION'.padEnd(7)} DESCRIPTION`);
123
- console.log(`${'─'.repeat(maxName)} ${'─'.repeat(maxType)} ${'─'.repeat(7)} ${'─'.repeat(40)}`);
124
- for (const s of skills) {
125
- console.log(`${s.name.padEnd(maxName)} ${s.type.padEnd(maxType)} ${(s.version ?? '-').padEnd(7)} ${s.description}`);
126
- }
127
- }
128
- async function main(inputArgs, context = {}) {
129
- const args = inputArgs ?? process.argv.slice(2);
130
- const command = args[0];
131
- const projectRoot = findProjectRoot();
132
- const tracer = await loadTracer();
133
- const argv = args.join(' ');
134
- if (command === '--version') {
135
- console.log(PKG_VERSION);
136
- return;
137
- }
138
- if (!command || command === '--help' || command === '-h') {
139
- printUsage();
140
- return;
141
- }
142
- if (command === 'usage') {
143
- showDetailedUsage();
144
- return;
145
- }
146
- if (command === 'help') {
147
- printUsage();
148
- return;
149
- }
150
- const bundleResolution = (0, product_bundle_1.resolveProductAppBundleInput)(context.productPackageRoot);
151
- const engine = await engine_1.SkillEngine.create(projectRoot, getAdditionalPaths(projectRoot), bundleResolution.input, bundleResolution.diagnostic);
152
- for (const diagnostic of engine.getBundleDiagnostics()) {
153
- console.error(`[skill] Verified product bundle skill discovery failed (${diagnostic.code}): ${diagnostic.relativePath}`);
154
- }
155
- if (command === 'list') {
156
- printList(engine);
157
- return;
158
- }
159
- const skillName = command;
160
- const skillArgs = args.slice(1);
161
- let skill;
162
- try {
163
- skill = engine.resolve(skillName);
164
- }
165
- catch (err) {
166
- console.error(`Error: ${err.message}`);
167
- process.exitCode = 1;
168
- return;
169
- }
170
- if (skillArgs.length === 0) {
171
- const opts = { tracesDb: true };
172
- if (skill.version)
173
- opts.skillVersion = skill.version;
174
- const spanName = skill.name;
175
- const t = tracer ? tracer.trace(spanName, argv, opts) : null;
176
- const doc = engine.readDoc(skill);
177
- process.stdout.write(doc);
178
- engine.log(skill, skillArgs, 0);
179
- if (t && !t._skipped)
180
- t.ok(doc);
181
- return;
182
- }
183
- if (skill.type === 'exec' && skill.entrypoint) {
184
- const commandStr = skillArgs.join(' ');
185
- const opts = { tracesDb: true };
186
- if (skill.version)
187
- opts.skillVersion = skill.version;
188
- const spanName = skill.name;
189
- const t = tracer
190
- ? tracer.trace(spanName, commandStr, opts)
191
- : null;
192
- try {
193
- const result = await engine.execute(skill, skillArgs);
194
- engine.log(skill, skillArgs, result.exitCode);
195
- if (result.exitCode === 0) {
196
- if (t && !t._skipped)
197
- t.ok(result.stdout, { stderr: result.stderr });
198
- }
199
- else {
200
- if (t && !t._skipped)
201
- t.fail('exit ' + result.exitCode, { stderr: result.stderr });
202
- }
203
- process.exitCode = result.exitCode;
204
- return;
205
- }
206
- catch (e) {
207
- if (t && !t._skipped)
208
- t.fail(e.message || String(e));
209
- engine.log(skill, skillArgs, 1);
210
- process.exitCode = 1;
211
- return;
212
- }
213
- }
214
- const subDoc = skillArgs[0];
215
- const opts = { tracesDb: true };
216
- if (skill.version)
217
- opts.skillVersion = skill.version;
218
- const spanName = skill.name;
219
- const t = tracer ? tracer.trace(spanName, argv, opts) : null;
220
- try {
221
- const doc = engine.readDoc(skill, subDoc);
222
- process.stdout.write(doc);
223
- engine.log(skill, skillArgs, 0);
224
- if (t && !t._skipped)
225
- t.ok(doc);
226
- return;
227
- }
228
- catch (err) {
229
- if (t && !t._skipped)
230
- t.fail(err.message);
231
- engine.log(skill, skillArgs, 1);
232
- process.exitCode = 1;
233
- return;
234
- }
235
- }
236
- if (require.main === module) {
237
- loadTracer().then(tracer => {
238
- const opts = tracer ? { skillVersion: tracer.getOwnSkillVersion(__dirname) } : {};
239
- return tracer ? tracer.run('crewx/skill', () => main(), opts) : main();
240
- }).catch((err) => {
241
- console.error(`Error: ${err.message}`);
242
- process.exit(1);
243
- });
244
- }
245
- //# sourceMappingURL=cli.js.map
25
+ `)}function V(e){const n=e.discover();if(n.length===0){console.log("No skills found.");return}const s=Math.max(...n.map(r=>r.name.length),4);const t=4;console.log(`${"NAME".padEnd(s)} ${"TYPE".padEnd(t)} ${"VERSION".padEnd(7)} DESCRIPTION`);console.log(`${"\u2500".repeat(s)} ${"\u2500".repeat(t)} ${"\u2500".repeat(7)} ${"\u2500".repeat(40)}`);for(const r of n){console.log(`${r.name.padEnd(s)} ${r.type.padEnd(t)} ${(r.version??"-").padEnd(7)} ${r.description}`)}}async function y(e,n={}){const s=e??process.argv.slice(2);const t=s[0];const r=M();const f=await j();const w=s.join(" ");if(t==="--version"){console.log(k);return}if(!t||t==="--help"||t==="-h"){v();return}if(t==="usage"){N();return}if(t==="help"){v();return}const S=(0,C.resolveProductAppBundleInput)(n.productPackageRoot);const c=await D.SkillEngine.create(r,R(r),S.input,S.diagnostic);for(const o of c.getBundleDiagnostics()){console.error(`[skill] Verified product bundle skill discovery failed (${o.code}): ${o.relativePath}`)}if(t==="list"){V(c);return}const x=t;const u=s.slice(1);let i;try{i=c.resolve(x)}catch(o){console.error(`Error: ${o.message}`);process.exitCode=1;return}if(u.length===0){const o={tracesDb:true};if(i.version)o.skillVersion=i.version;const h=i.name;const m=f?f.trace(h,w,o):null;const l=c.readDoc(i);process.stdout.write(l);c.log(i,u,0);if(m&&!m._skipped)m.ok(l);return}if(i.type==="exec"&&i.entrypoint){const o=u.join(" ");const h={tracesDb:true};if(i.version)h.skillVersion=i.version;const m=i.name;const l=f?f.trace(m,o,h):null;try{const a=await c.execute(i,u);c.log(i,u,a.exitCode);if(a.exitCode===0){if(l&&!l._skipped)l.ok(a.stdout,{stderr:a.stderr})}else{if(l&&!l._skipped)l.fail("exit "+a.exitCode,{stderr:a.stderr})}process.exitCode=a.exitCode;return}catch(a){if(l&&!l._skipped)l.fail(a.message||String(a));c.log(i,u,1);process.exitCode=1;return}}const E=u[0];const b={tracesDb:true};if(i.version)b.skillVersion=i.version;const O=i.name;const g=f?f.trace(O,w,b):null;try{const o=c.readDoc(i,E);process.stdout.write(o);c.log(i,u,0);if(g&&!g._skipped)g.ok(o);return}catch(o){if(g&&!g._skipped)g.fail(o.message);c.log(i,u,1);process.exitCode=1;return}}if(require.main===module){j().then(e=>{const n=e?{skillVersion:e.getOwnSkillVersion(__dirname)}:{};return e?e.run("crewx/skill",()=>y(),n):y()}).catch(e=>{console.error(`Error: ${e.message}`);process.exit(1)})}
@@ -3,4 +3,4 @@ type TaskLookup = Pick<TaskRepository, 'getTask'>;
3
3
  export type TaskRepositoryFactory = () => TaskLookup;
4
4
  export declare function resolveCurrentTaskThreadId(env?: NodeJS.ProcessEnv, repositoryFactory?: TaskRepositoryFactory): string | undefined;
5
5
  export {};
6
- //# sourceMappingURL=current-task.d.ts.map
6
+
@@ -1,31 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveCurrentTaskThreadId = resolveCurrentTaskThreadId;
4
- const repository_1 = require("@crewx/sdk/repository");
5
- function resolveCurrentTaskThreadId(env = process.env, repositoryFactory = () => new repository_1.TaskRepository()) {
6
- const taskId = env.CREWX_TASK_ID?.trim();
7
- const agentId = env.CREWX_AGENT_ID?.trim();
8
- if (!taskId || !agentId)
9
- return undefined;
10
- try {
11
- const task = repositoryFactory().getTask(taskId);
12
- if (!task || task.id !== taskId || task.agent_id !== agentId || task.status !== 'running')
13
- return undefined;
14
- if (typeof task.thread_id !== 'string' || !isValidThreadId(task.thread_id))
15
- return undefined;
16
- const ambientThreadId = env.CREWX_THREAD_ID;
17
- if (ambientThreadId && ambientThreadId !== task.thread_id)
18
- return undefined;
19
- return task.thread_id;
20
- }
21
- catch {
22
- return undefined;
23
- }
24
- }
25
- function isValidThreadId(threadId) {
26
- const bytes = Buffer.byteLength(threadId, 'utf8');
27
- return bytes >= 1
28
- && bytes <= 512
29
- && !/[\u0000-\u001f\u007f-\u009f\u202a-\u202e\u2066-\u2069]/u.test(threadId);
30
- }
31
- //# sourceMappingURL=current-task.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.resolveCurrentTaskThreadId=s;const i=require("@crewx/sdk/repository");function s(t=process.env,r=()=>new i.TaskRepository){const n=t.CREWX_TASK_ID?.trim();const u=t.CREWX_AGENT_ID?.trim();if(!n||!u)return void 0;try{const e=r().getTask(n);if(!e||e.id!==n||e.agent_id!==u||e.status!=="running")return void 0;if(typeof e.thread_id!=="string"||!a(e.thread_id))return void 0;const d=t.CREWX_THREAD_ID;if(d&&d!==e.thread_id)return void 0;return e.thread_id}catch{return void 0}}function a(t){const r=Buffer.byteLength(t,"utf8");return r>=1&&r<=512&&!/[\u0000-\u001f\u007f-\u009f\u202a-\u202e\u2066-\u2069]/u.test(t)}
@@ -34,4 +34,4 @@ export declare class SkillEngine {
34
34
  log(skill: SkillInfo, args: string[], exitCode: number): void;
35
35
  }
36
36
  export { SkillInfo, SkillType, SkillLogEntry } from './types';
37
- //# sourceMappingURL=engine.d.ts.map
37
+
@@ -1,230 +1,3 @@
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.SkillEngine = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- const child_process_1 = require("child_process");
40
- const skills_1 = require("@crewx/sdk/skills");
41
- const current_task_1 = require("./current-task");
42
- const SKILL_MD = 'SKILL.md';
43
- const LOG_FILE = '.crewx/.skill-log.jsonl';
44
- class SkillEngine {
45
- constructor(projectRoot, additionalPaths, options = {}) {
46
- this.projectRoot = projectRoot;
47
- this.skillsDir = path.join(projectRoot, 'skills');
48
- this.additionalPaths = additionalPaths ?? [];
49
- this.productBundle = options.productBundle;
50
- this.bundleUnavailableDiagnostic = options.bundleUnavailableDiagnostic;
51
- this.bundleDiagnostics = options.bundleDiagnostics ?? [];
52
- this.bundledSkills = (options.bundledSkills ?? []).map((skill) => this.toSkillInfo(skill, 'bundled'));
53
- this.taskThreadResolver = options.taskThreadResolver ?? (() => (0, current_task_1.resolveCurrentTaskThreadId)());
54
- }
55
- static async create(projectRoot, additionalPaths = [], productBundle, bundleUnavailableDiagnostic) {
56
- if (!productBundle) {
57
- return new SkillEngine(projectRoot, additionalPaths, { bundleUnavailableDiagnostic });
58
- }
59
- const discovery = await (0, skills_1.discoverBundledProductSkills)(productBundle);
60
- return new SkillEngine(projectRoot, additionalPaths, {
61
- productBundle,
62
- bundledSkills: discovery.skills,
63
- bundleDiagnostics: discovery.diagnostics,
64
- });
65
- }
66
- getSearchDirs() {
67
- return [this.skillsDir, ...this.additionalPaths, path.join(this.projectRoot, 'apps')];
68
- }
69
- discover() {
70
- const workspaceSkills = (0, skills_1.discover)(this.getSearchDirs());
71
- this.warnShadowedWorkspaceSkills(workspaceSkills);
72
- const bundledNames = new Set(this.bundledSkills.map((skill) => skill.name));
73
- return [
74
- ...this.bundledSkills,
75
- ...workspaceSkills.filter((skill) => !bundledNames.has(skill.name)).map((skill) => this.toSkillInfo(skill)),
76
- ].sort((left, right) => left.name.localeCompare(right.name));
77
- }
78
- resolve(name) {
79
- const bundled = this.bundledSkills.find((skill) => skill.name === name);
80
- if (bundled) {
81
- const workspaceSkills = (0, skills_1.discover)(this.getSearchDirs());
82
- this.warnShadowedWorkspaceSkills(workspaceSkills, new Set([name]));
83
- return bundled;
84
- }
85
- try {
86
- return this.toSkillInfo((0, skills_1.resolve)(name, this.getSearchDirs()));
87
- }
88
- catch (error) {
89
- if (this.bundleUnavailableDiagnostic && isSkillNotFoundError(error)) {
90
- throw new Error(`${error.message}\n${this.bundleUnavailableDiagnostic}`);
91
- }
92
- throw error;
93
- }
94
- }
95
- getBundleDiagnostics() {
96
- return this.bundleDiagnostics;
97
- }
98
- warnShadowedWorkspaceSkills(workspaceSkills, onlyNames) {
99
- const bundledNames = new Set(this.bundledSkills.map((skill) => skill.name));
100
- for (const skill of workspaceSkills) {
101
- if (!bundledNames.has(skill.name) || (onlyNames && !onlyNames.has(skill.name)))
102
- continue;
103
- console.error(`[skill] Workspace skill '${skill.name}' is shadowed by a verified product bundle skill; using the bundled version.`);
104
- }
105
- }
106
- toSkillInfo(skill, source) {
107
- const entrypoint = (0, skills_1.findEntrypoint)(skill.dir, path.basename(skill.dir));
108
- return {
109
- name: skill.name,
110
- type: entrypoint ? 'exec' : 'doc',
111
- description: skill.description ?? '',
112
- version: skill.version,
113
- dir: skill.dir,
114
- entrypoint,
115
- skillMdPath: skill.skillMdPath,
116
- ...(source === undefined ? {} : { source }),
117
- };
118
- }
119
- async execute(skill, args) {
120
- if (!skill.entrypoint) {
121
- throw new Error(`Skill '${skill.name}' has no entrypoint`);
122
- }
123
- let childEnvironment = process.env;
124
- if (skill.source === 'bundled') {
125
- if (!this.productBundle)
126
- return this.failExecution('BUNDLE_INTEGRITY');
127
- try {
128
- const verified = await (0, skills_1.discoverBundledProductSkills)(this.productBundle);
129
- const candidate = verified.skills.find((item) => item.name === skill.name && item.dir === skill.dir);
130
- if (!candidate || (0, skills_1.findEntrypoint)(candidate.dir, path.basename(candidate.dir)) !== skill.entrypoint) {
131
- return this.failExecution('BUNDLE_INTEGRITY');
132
- }
133
- }
134
- catch {
135
- return this.failExecution('BUNDLE_INTEGRITY');
136
- }
137
- const explicitThread = hasExplicitThread(args);
138
- const currentThreadId = explicitThread ? undefined : this.taskThreadResolver();
139
- childEnvironment = { ...process.env };
140
- delete childEnvironment.CREWX_THREAD_ID;
141
- if (!explicitThread && currentThreadId)
142
- childEnvironment.CREWX_THREAD_ID = currentThreadId;
143
- if (this.projectRoot)
144
- childEnvironment.CREWX_WORKSPACE_ROOT = this.projectRoot;
145
- else
146
- delete childEnvironment.CREWX_WORKSPACE_ROOT;
147
- }
148
- return new Promise((resolve) => {
149
- const child = (0, child_process_1.spawn)('node', [skill.entrypoint, ...args], {
150
- cwd: this.projectRoot,
151
- stdio: ['inherit', 'pipe', 'pipe'],
152
- env: childEnvironment,
153
- });
154
- const stdoutChunks = [];
155
- const stderrChunks = [];
156
- child.stdout?.on('data', (chunk) => {
157
- stdoutChunks.push(chunk);
158
- process.stdout.write(chunk);
159
- });
160
- child.stderr?.on('data', (chunk) => {
161
- stderrChunks.push(chunk);
162
- process.stderr.write(chunk);
163
- });
164
- child.on('error', (err) => {
165
- console.error(`Error spawning skill '${skill.name}': ${err.message}`);
166
- resolve({
167
- exitCode: 1,
168
- stdout: Buffer.concat(stdoutChunks).toString('utf-8'),
169
- stderr: Buffer.concat(stderrChunks).toString('utf-8'),
170
- });
171
- });
172
- child.on('close', (code) => {
173
- resolve({
174
- exitCode: code ?? 1,
175
- stdout: Buffer.concat(stdoutChunks).toString('utf-8'),
176
- stderr: Buffer.concat(stderrChunks).toString('utf-8'),
177
- });
178
- });
179
- });
180
- }
181
- failExecution(code) {
182
- const stderr = `${code}\n`;
183
- process.stderr.write(stderr);
184
- return { exitCode: 1, stdout: '', stderr };
185
- }
186
- readDoc(skill, subDoc) {
187
- let filePath;
188
- if (subDoc) {
189
- filePath = path.join(skill.dir, `${subDoc}.md`);
190
- if (!fs.existsSync(filePath)) {
191
- throw new Error(`Document not found: ${subDoc}.md in skill '${skill.name}'`);
192
- }
193
- }
194
- else {
195
- filePath = skill.skillMdPath ?? path.join(skill.dir, SKILL_MD);
196
- }
197
- return fs.readFileSync(filePath, 'utf-8');
198
- }
199
- log(skill, args, exitCode) {
200
- const logPath = path.join(this.projectRoot, LOG_FILE);
201
- const logDir = path.dirname(logPath);
202
- if (!fs.existsSync(logDir)) {
203
- fs.mkdirSync(logDir, { recursive: true });
204
- }
205
- const entry = {
206
- ts: new Date().toISOString(),
207
- agent: process.env.CREWX_AGENT_ID || 'unknown',
208
- skill: skill.name,
209
- args,
210
- exit: exitCode,
211
- type: skill.type,
212
- };
213
- fs.appendFileSync(logPath, JSON.stringify(entry) + '\n');
214
- }
215
- }
216
- exports.SkillEngine = SkillEngine;
217
- function hasExplicitThread(args) {
218
- for (let index = 0; index < args.length; index += 1) {
219
- const argument = args[index] ?? '';
220
- if (argument.startsWith('--thread=') && argument.slice('--thread='.length).trim().length > 0)
221
- return true;
222
- if (argument === '--thread' && (args[index + 1]?.trim().length ?? 0) > 0)
223
- return true;
224
- }
225
- return false;
226
- }
227
- function isSkillNotFoundError(error) {
228
- return error instanceof Error && error.message.startsWith('Skill not found:');
229
- }
230
- //# sourceMappingURL=engine.js.map
1
+ "use strict";var p=exports&&exports.__createBinding||(Object.create?(function(i,e,n,t){if(t===void 0)t=n;var r=Object.getOwnPropertyDescriptor(e,n);if(!r||("get"in r?!e.__esModule:r.writable||r.configurable)){r={enumerable:true,get:function(){return e[n]}}}Object.defineProperty(i,t,r)}):(function(i,e,n,t){if(t===void 0)t=n;i[t]=e[n]}));var S=exports&&exports.__setModuleDefault||(Object.create?(function(i,e){Object.defineProperty(i,"default",{enumerable:true,value:e})}):function(i,e){i["default"]=e});var f=exports&&exports.__importStar||(function(){var i=function(e){i=Object.getOwnPropertyNames||function(n){var t=[];for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r))t[t.length]=r;return t};return i(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null){for(var t=i(e),r=0;r<t.length;r++)if(t[r]!=="default")p(n,e,t[r])}S(n,e);return n}})();Object.defineProperty(exports,"__esModule",{value:true});exports.SkillEngine=void 0;const u=f(require("fs"));const a=f(require("path"));const g=require("child_process");const l=require("@crewx/sdk/skills");const b=require("./current-task");const v="SKILL.md";const w=".crewx/.skill-log.jsonl";class h{constructor(e,n,t={}){this.projectRoot=e;this.skillsDir=a.join(e,"skills");this.additionalPaths=n??[];this.productBundle=t.productBundle;this.bundleUnavailableDiagnostic=t.bundleUnavailableDiagnostic;this.bundleDiagnostics=t.bundleDiagnostics??[];this.bundledSkills=(t.bundledSkills??[]).map(r=>this.toSkillInfo(r,"bundled"));this.taskThreadResolver=t.taskThreadResolver??(()=>(0,b.resolveCurrentTaskThreadId)())}static async create(e,n=[],t,r){if(!t){return new h(e,n,{bundleUnavailableDiagnostic:r})}const s=await(0,l.discoverBundledProductSkills)(t);return new h(e,n,{productBundle:t,bundledSkills:s.skills,bundleDiagnostics:s.diagnostics})}getSearchDirs(){return[this.skillsDir,...this.additionalPaths,a.join(this.projectRoot,"apps")]}discover(){const e=(0,l.discover)(this.getSearchDirs());this.warnShadowedWorkspaceSkills(e);const n=new Set(this.bundledSkills.map(t=>t.name));return[...this.bundledSkills,...e.filter(t=>!n.has(t.name)).map(t=>this.toSkillInfo(t))].sort((t,r)=>t.name.localeCompare(r.name))}resolve(e){const n=this.bundledSkills.find(t=>t.name===e);if(n){const t=(0,l.discover)(this.getSearchDirs());this.warnShadowedWorkspaceSkills(t,new Set([e]));return n}try{return this.toSkillInfo((0,l.resolve)(e,this.getSearchDirs()))}catch(t){if(this.bundleUnavailableDiagnostic&&m(t)){throw new Error(`${t.message}
2
+ ${this.bundleUnavailableDiagnostic}`)}throw t}}getBundleDiagnostics(){return this.bundleDiagnostics}warnShadowedWorkspaceSkills(e,n){const t=new Set(this.bundledSkills.map(r=>r.name));for(const r of e){if(!t.has(r.name)||n&&!n.has(r.name))continue;console.error(`[skill] Workspace skill '${r.name}' is shadowed by a verified product bundle skill; using the bundled version.`)}}toSkillInfo(e,n){const t=(0,l.findEntrypoint)(e.dir,a.basename(e.dir));return{name:e.name,type:t?"exec":"doc",description:e.description??"",version:e.version,dir:e.dir,entrypoint:t,skillMdPath:e.skillMdPath,...n===void 0?{}:{source:n}}}async execute(e,n){if(!e.entrypoint){throw new Error(`Skill '${e.name}' has no entrypoint`)}let t=process.env;if(e.source==="bundled"){if(!this.productBundle)return this.failExecution("BUNDLE_INTEGRITY");try{const d=await(0,l.discoverBundledProductSkills)(this.productBundle);const c=d.skills.find(o=>o.name===e.name&&o.dir===e.dir);if(!c||(0,l.findEntrypoint)(c.dir,a.basename(c.dir))!==e.entrypoint){return this.failExecution("BUNDLE_INTEGRITY")}}catch{return this.failExecution("BUNDLE_INTEGRITY")}const r=_(n);const s=r?void 0:this.taskThreadResolver();t={...process.env};delete t.CREWX_THREAD_ID;if(!r&&s)t.CREWX_THREAD_ID=s;if(this.projectRoot)t.CREWX_WORKSPACE_ROOT=this.projectRoot;else delete t.CREWX_WORKSPACE_ROOT}return new Promise(r=>{const s=(0,g.spawn)("node",[e.entrypoint,...n],{cwd:this.projectRoot,stdio:["inherit","pipe","pipe"],env:t});const d=[];const c=[];s.stdout?.on("data",o=>{d.push(o);process.stdout.write(o)});s.stderr?.on("data",o=>{c.push(o);process.stderr.write(o)});s.on("error",o=>{console.error(`Error spawning skill '${e.name}': ${o.message}`);r({exitCode:1,stdout:Buffer.concat(d).toString("utf-8"),stderr:Buffer.concat(c).toString("utf-8")})});s.on("close",o=>{r({exitCode:o??1,stdout:Buffer.concat(d).toString("utf-8"),stderr:Buffer.concat(c).toString("utf-8")})})})}failExecution(e){const n=`${e}
3
+ `;process.stderr.write(n);return{exitCode:1,stdout:"",stderr:n}}readDoc(e,n){let t;if(n){t=a.join(e.dir,`${n}.md`);if(!u.existsSync(t)){throw new Error(`Document not found: ${n}.md in skill '${e.name}'`)}}else{t=e.skillMdPath??a.join(e.dir,v)}return u.readFileSync(t,"utf-8")}log(e,n,t){const r=a.join(this.projectRoot,w);const s=a.dirname(r);if(!u.existsSync(s)){u.mkdirSync(s,{recursive:true})}const d={ts:new Date().toISOString(),agent:process.env.CREWX_AGENT_ID||"unknown",skill:e.name,args:n,exit:t,type:e.type};u.appendFileSync(r,JSON.stringify(d)+"\n")}}exports.SkillEngine=h;function _(i){for(let e=0;e<i.length;e+=1){const n=i[e]??"";if(n.startsWith("--thread=")&&n.slice("--thread=".length).trim().length>0)return true;if(n==="--thread"&&(i[e+1]?.trim().length??0)>0)return true}return false}function m(i){return i instanceof Error&&i.message.startsWith("Skill not found:")}
@@ -4,4 +4,4 @@ export interface ProductAppBundleResolution {
4
4
  readonly diagnostic?: string;
5
5
  }
6
6
  export declare function resolveProductAppBundleInput(productPackageRoot?: string): ProductAppBundleResolution;
7
- //# sourceMappingURL=product-bundle.d.ts.map
7
+
@@ -1,68 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveProductAppBundleInput = resolveProductAppBundleInput;
4
- const node_fs_1 = require("node:fs");
5
- const node_module_1 = require("node:module");
6
- const node_path_1 = require("node:path");
7
- const PRODUCT_BUNDLE_HELPER = (0, node_path_1.join)('dist-server', 'common', 'product-app-bundle.js');
8
- const SHA256_PATTERN = /^[a-f0-9]{64}$/;
9
- function resolveProductAppBundleInput(productPackageRoot) {
10
- if (typeof productPackageRoot !== 'string' || productPackageRoot.trim().length === 0) {
11
- return {
12
- diagnostic: 'PRODUCT_ROOT_UNAVAILABLE: verified bundled skills could not be checked because the running CrewX CLI product root is unavailable.',
13
- };
14
- }
15
- const packageRoot = (0, node_path_1.resolve)(productPackageRoot);
16
- const helperPath = (0, node_path_1.join)(packageRoot, PRODUCT_BUNDLE_HELPER);
17
- if (!(0, node_fs_1.existsSync)(helperPath)) {
18
- return {
19
- diagnostic: 'PRODUCT_BUNDLE_HELPER_UNAVAILABLE: verified bundled skills could not be checked because the compiled product helper is missing.',
20
- };
21
- }
22
- try {
23
- const helper = (0, node_module_1.createRequire)(helperPath)(helperPath);
24
- const input = helper.getProductAppBundleInput?.();
25
- if (!isProductAppBundleInput(input)) {
26
- return {
27
- diagnostic: 'PRODUCT_BUNDLE_PIN_INVALID: verified bundled skills could not be checked because the compiled product helper did not provide a valid bundle root and hash pin.',
28
- };
29
- }
30
- return {
31
- input: Object.freeze({
32
- root: input.root,
33
- expectedIndexHash: input.expectedIndexHash,
34
- reservedIds: Object.freeze({
35
- appIds: Object.freeze([...input.reservedIds.appIds]),
36
- definitionIds: Object.freeze([...input.reservedIds.definitionIds]),
37
- }),
38
- }),
39
- };
40
- }
41
- catch {
42
- return {
43
- diagnostic: 'PRODUCT_BUNDLE_HELPER_UNAVAILABLE: verified bundled skills could not be checked because the compiled product helper could not be loaded.',
44
- };
45
- }
46
- }
47
- function isProductAppBundleInput(value) {
48
- if (value === null || typeof value !== 'object' || Array.isArray(value))
49
- return false;
50
- const input = value;
51
- const rootIsValid = input.root === null || (typeof input.root === 'string' && input.root.length > 0);
52
- const reservations = input.reservedIds;
53
- if (!rootIsValid || typeof input.expectedIndexHash !== 'string'
54
- || !SHA256_PATTERN.test(input.expectedIndexHash)
55
- || reservations === undefined || reservations === null || typeof reservations !== 'object'
56
- || Array.isArray(reservations))
57
- return false;
58
- const reservationKeys = Reflect.ownKeys(reservations);
59
- const hasExactReservationKeys = reservationKeys.length === 2
60
- && reservationKeys.includes('appIds')
61
- && reservationKeys.includes('definitionIds');
62
- const hasValidIds = (ids) => Array.isArray(ids)
63
- && ids.every((id) => typeof id === 'string' && id.length > 0);
64
- return hasExactReservationKeys
65
- && hasValidIds(reservations.appIds)
66
- && hasValidIds(reservations.definitionIds);
67
- }
68
- //# sourceMappingURL=product-bundle.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.resolveProductAppBundleInput=I;const l=require("node:fs");const p=require("node:module");const d=require("node:path");const a=(0,d.join)("dist-server","common","product-app-bundle.js");const f=/^[a-f0-9]{64}$/;function I(n){if(typeof n!=="string"||n.trim().length===0){return{diagnostic:"PRODUCT_ROOT_UNAVAILABLE: verified bundled skills could not be checked because the running CrewX CLI product root is unavailable."}}const r=(0,d.resolve)(n);const s=(0,d.join)(r,a);if(!(0,l.existsSync)(s)){return{diagnostic:"PRODUCT_BUNDLE_HELPER_UNAVAILABLE: verified bundled skills could not be checked because the compiled product helper is missing."}}try{const e=(0,p.createRequire)(s)(s);const t=e.getProductAppBundleInput?.();if(!h(t)){return{diagnostic:"PRODUCT_BUNDLE_PIN_INVALID: verified bundled skills could not be checked because the compiled product helper did not provide a valid bundle root and hash pin."}}return{input:Object.freeze({root:t.root,expectedIndexHash:t.expectedIndexHash,reservedIds:Object.freeze({appIds:Object.freeze([...t.reservedIds.appIds]),definitionIds:Object.freeze([...t.reservedIds.definitionIds])})})}}catch{return{diagnostic:"PRODUCT_BUNDLE_HELPER_UNAVAILABLE: verified bundled skills could not be checked because the compiled product helper could not be loaded."}}}function h(n){if(n===null||typeof n!=="object"||Array.isArray(n))return false;const r=n;const s=r.root===null||typeof r.root==="string"&&r.root.length>0;const e=r.reservedIds;if(!s||typeof r.expectedIndexHash!=="string"||!f.test(r.expectedIndexHash)||e===void 0||e===null||typeof e!=="object"||Array.isArray(e))return false;const t=Reflect.ownKeys(e);const u=t.length===2&&t.includes("appIds")&&t.includes("definitionIds");const o=i=>Array.isArray(i)&&i.every(c=>typeof c==="string"&&c.length>0);return u&&o(e.appIds)&&o(e.definitionIds)}
@@ -25,4 +25,4 @@ export interface SkillSource {
25
25
  treeSha: string;
26
26
  installedAt: string;
27
27
  }
28
- //# sourceMappingURL=types.d.ts.map
28
+
package/dist/src/types.js CHANGED
@@ -1,3 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewx/skill",
3
- "version": "0.1.20-rc.40",
3
+ "version": "0.1.20-rc.41",
4
4
  "description": "Unified skill runner for CrewX - exec and doc skills via npx skill",
5
5
  "type": "commonjs",
6
6
  "main": "dist/src/engine.js",
@@ -22,8 +22,8 @@
22
22
  "SKILL.md"
23
23
  ],
24
24
  "dependencies": {
25
- "@crewx/sdk": "0.9.0-rc.146",
26
- "@crewx/shared": "0.0.6-rc.61"
25
+ "@crewx/sdk": "0.9.0-rc.147",
26
+ "@crewx/shared": "0.0.6-rc.62"
27
27
  },
28
28
  "keywords": [
29
29
  "crewx",
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AA+BA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAmFD,wBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiH7F"}
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"current-task.d.ts","sourceRoot":"","sources":["../../src/current-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,KAAK,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AAClD,MAAM,MAAM,qBAAqB,GAAG,MAAM,UAAU,CAAC;AAMrD,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,iBAAiB,GAAE,qBAAkD,GACpE,MAAM,GAAG,SAAS,CAgBpB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"current-task.js","sourceRoot":"","sources":["../../src/current-task.ts"],"names":[],"mappings":";;AASA,gEAmBC;AA5BD,sDAAuD;AASvD,SAAgB,0BAA0B,CACxC,MAAyB,OAAO,CAAC,GAAG,EACpC,oBAA2C,GAAG,EAAE,CAAC,IAAI,2BAAc,EAAE;IAErE,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC5G,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAE7F,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;QAC5C,IAAI,eAAe,IAAI,eAAe,KAAK,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAC5E,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,KAAK,IAAI,CAAC;WACZ,KAAK,IAAI,GAAG;WACZ,CAAC,yDAAyD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAE3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAA4B,MAAM,SAAS,CAAC;AAK9D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAC/D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,2BAA2B,CAAC,aAAa,CAAC,CAAC;IACxE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACxD;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAS;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6C;IAC/E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;gBAElD,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,kBAAuB;WAWhF,MAAM,CACjB,WAAW,EAAE,MAAM,EACnB,eAAe,GAAE,MAAM,EAAO,EAC9B,aAAa,CAAC,EAAE,qBAAqB,EACrC,2BAA2B,CAAC,EAAE,MAAM,GACnC,OAAO,CAAC,WAAW,CAAC;IAgBvB,OAAO,CAAC,aAAa;IAYrB,QAAQ,IAAI,SAAS,EAAE;IAcvB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAiBhC,oBAAoB,IAAI,2BAA2B,CAAC,aAAa,CAAC;IAIlE,OAAO,CAAC,2BAA2B;IAanC,OAAO,CAAC,WAAW;IAqBb,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAmE9G,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAmBlD,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAmB9D;AAeD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-bundle.d.ts","sourceRoot":"","sources":["../../src/product-bundle.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAS/D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAMD,wBAAgB,4BAA4B,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAsCpG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-bundle.js","sourceRoot":"","sources":["../../src/product-bundle.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}