@trydreamstate/cli 1.2.0 → 1.2.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.
- package/README.md +5 -1
- package/dist/client.d.ts +3 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +6 -3
- package/dist/commands/sequences.d.ts +1 -1
- package/dist/commands/sequences.d.ts.map +1 -1
- package/dist/commands/sequences.js +3 -3
- package/dist/commands/shared.d.ts +2 -1
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +98 -20
- package/dist/commands/workflows.d.ts +1 -1
- package/dist/commands/workflows.d.ts.map +1 -1
- package/dist/commands/workflows.js +9 -9
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +95 -2
- package/dist/index.d.ts +36 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +330 -59
- package/dist/runWait.d.ts +9 -0
- package/dist/runWait.d.ts.map +1 -0
- package/dist/runWait.js +76 -0
- package/dist/skillInstaller.d.ts +1 -0
- package/dist/skillInstaller.d.ts.map +1 -1
- package/dist/skillInstaller.js +18 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runWait.d.ts","sourceRoot":"","sources":["../src/runWait.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAOjD,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAY5C,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AA+BD,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC7C,OAAO,CAAC,aAAa,CAAC,CAmBxB"}
|
package/dist/runWait.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RUN_WAIT_TIMEOUT_EXIT_CODE = void 0;
|
|
4
|
+
exports.columnRunReturnsRunId = columnRunReturnsRunId;
|
|
5
|
+
exports.waitForRun = waitForRun;
|
|
6
|
+
const TERMINAL_STATUSES = new Set([
|
|
7
|
+
'succeeded', 'completed', 'completed_with_errors', 'failed', 'cancelled', 'canceled', 'partially_completed',
|
|
8
|
+
'timed_out', 'rejected', 'awaiting_approval', 'awaiting_input', 'waiting', 'waiting_approval', 'approval_required',
|
|
9
|
+
]);
|
|
10
|
+
exports.RUN_WAIT_TIMEOUT_EXIT_CODE = 8;
|
|
11
|
+
const COLUMN_RUN_HAND_OFF = new Set([
|
|
12
|
+
'tables.columns.run',
|
|
13
|
+
'tables.columns.run_all',
|
|
14
|
+
'tables.columns.run_remaining',
|
|
15
|
+
]);
|
|
16
|
+
// timing:async column runs. The tools response is the durable run id. Waiting
|
|
17
|
+
// folds every provider row into the command. Progress and final cells are
|
|
18
|
+
// runs_get and rows.query. Other mutations still wait so the next command can
|
|
19
|
+
// read steps[0].outputs.
|
|
20
|
+
function columnRunReturnsRunId(capabilityId) {
|
|
21
|
+
return COLUMN_RUN_HAND_OFF.has(capabilityId);
|
|
22
|
+
}
|
|
23
|
+
function runFromEnvelope(value) {
|
|
24
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
25
|
+
return null;
|
|
26
|
+
const data = value.data;
|
|
27
|
+
if (!data || typeof data !== 'object' || Array.isArray(data))
|
|
28
|
+
return null;
|
|
29
|
+
const run = data.run;
|
|
30
|
+
if (!run || typeof run !== 'object' || Array.isArray(run))
|
|
31
|
+
return null;
|
|
32
|
+
const { id, run_id: runId, status } = run;
|
|
33
|
+
const resolvedId = typeof id === 'string' ? id : typeof runId === 'string' ? runId : null;
|
|
34
|
+
return resolvedId && typeof status === 'string' ? { id: resolvedId, status } : null;
|
|
35
|
+
}
|
|
36
|
+
function timedOutEnvelope(value, timeoutSeconds) {
|
|
37
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
38
|
+
return value;
|
|
39
|
+
const envelope = value;
|
|
40
|
+
const meta = envelope.meta && typeof envelope.meta === 'object' && !Array.isArray(envelope.meta)
|
|
41
|
+
? envelope.meta
|
|
42
|
+
: {};
|
|
43
|
+
return {
|
|
44
|
+
...envelope,
|
|
45
|
+
meta: {
|
|
46
|
+
...meta,
|
|
47
|
+
wait: {
|
|
48
|
+
timed_out: true,
|
|
49
|
+
note: `Run still active after ${timeoutSeconds} seconds. Read it with dreamstate runs get <run_id>.`,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
async function waitForRun(client, initial, timeoutSeconds, sleep) {
|
|
55
|
+
let value = initial;
|
|
56
|
+
let run = runFromEnvelope(value);
|
|
57
|
+
if (!run || TERMINAL_STATUSES.has(run.status))
|
|
58
|
+
return { value, timedOut: false };
|
|
59
|
+
const deadline = Date.now() + timeoutSeconds * 1_000;
|
|
60
|
+
let delay = 500;
|
|
61
|
+
while (Date.now() < deadline) {
|
|
62
|
+
try {
|
|
63
|
+
await sleep(Math.min(delay, Math.max(0, deadline - Date.now())));
|
|
64
|
+
value = await client.getRun(run.id);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// The admitted receipt is durable. Keep it printable when polling is interrupted.
|
|
68
|
+
return { value: timedOutEnvelope(value, timeoutSeconds), timedOut: true };
|
|
69
|
+
}
|
|
70
|
+
run = runFromEnvelope(value);
|
|
71
|
+
if (!run || TERMINAL_STATUSES.has(run.status))
|
|
72
|
+
return { value, timedOut: false };
|
|
73
|
+
delay = Math.min(delay * 2, 3_000);
|
|
74
|
+
}
|
|
75
|
+
return { value: timedOutEnvelope(value, timeoutSeconds), timedOut: true };
|
|
76
|
+
}
|
package/dist/skillInstaller.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export interface SkillInstallOptions {
|
|
|
22
22
|
}
|
|
23
23
|
export declare function canonicalSkillsDirectory(homeDirectory?: string, project?: boolean, cwd?: string): string;
|
|
24
24
|
export declare function skillInstallDirectory(agent: SkillInstallAgent, homeDirectory?: string, project?: boolean, cwd?: string): string;
|
|
25
|
+
export declare function detectInstalledSkillAgents(homeDirectory?: string): Promise<Array<'codex' | 'claude-code' | 'cursor'>>;
|
|
25
26
|
export declare function renderSkillMarkdown(skill: HostedSkill, provenance: {
|
|
26
27
|
workspaceId: string;
|
|
27
28
|
indexVersion: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillInstaller.d.ts","sourceRoot":"","sources":["../src/skillInstaller.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,oBAAoB,+EAAgF,CAAC;AAClH,MAAM,MAAM,iBAAiB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD,wBAAgB,wBAAwB,CAAC,aAAa,SAAY,EAAE,OAAO,UAAQ,EAAE,GAAG,SAAgB,GAAG,MAAM,CAEhH;AAiBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,EAAE,aAAa,SAAY,EAAE,OAAO,UAAQ,EAAE,GAAG,SAAgB,GAAG,MAAM,CAIvI;AA8BD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAczH;AA8BD,wBAAsB,aAAa,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,QAAQ,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAgB1N;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,CAO3D;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,EAAE,aAAa,SAAY,EAAE,OAAO,UAAQ,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,CAkC1W"}
|
|
1
|
+
{"version":3,"file":"skillInstaller.d.ts","sourceRoot":"","sources":["../src/skillInstaller.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,oBAAoB,+EAAgF,CAAC;AAClH,MAAM,MAAM,iBAAiB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD,wBAAgB,wBAAwB,CAAC,aAAa,SAAY,EAAE,OAAO,UAAQ,EAAE,GAAG,SAAgB,GAAG,MAAM,CAEhH;AAiBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,EAAE,aAAa,SAAY,EAAE,OAAO,UAAQ,EAAE,GAAG,SAAgB,GAAG,MAAM,CAIvI;AAQD,wBAAsB,0BAA0B,CAAC,aAAa,SAAY,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC,CAAC,CAM9H;AA8BD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAczH;AA8BD,wBAAsB,aAAa,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,QAAQ,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAgB1N;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,CAO3D;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,EAAE,aAAa,SAAY,EAAE,OAAO,UAAQ,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,CAkC1W"}
|
package/dist/skillInstaller.js
CHANGED
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.SKILL_INSTALL_AGENTS = void 0;
|
|
37
37
|
exports.canonicalSkillsDirectory = canonicalSkillsDirectory;
|
|
38
38
|
exports.skillInstallDirectory = skillInstallDirectory;
|
|
39
|
+
exports.detectInstalledSkillAgents = detectInstalledSkillAgents;
|
|
39
40
|
exports.renderSkillMarkdown = renderSkillMarkdown;
|
|
40
41
|
exports.installSkills = installSkills;
|
|
41
42
|
exports.routerSkill = routerSkill;
|
|
@@ -72,6 +73,23 @@ function skillInstallDirectory(agent, homeDirectory = (0, node_os_1.homedir)(),
|
|
|
72
73
|
return canonicalSkillsDirectory(homeDirectory, project, cwd);
|
|
73
74
|
return (0, node_path_1.join)(project ? cwd : homeDirectory, ...segments);
|
|
74
75
|
}
|
|
76
|
+
const LOGIN_SKILL_AGENT_DIRECTORIES = {
|
|
77
|
+
codex: '.codex',
|
|
78
|
+
'claude-code': '.claude',
|
|
79
|
+
cursor: '.cursor',
|
|
80
|
+
};
|
|
81
|
+
async function detectInstalledSkillAgents(homeDirectory = (0, node_os_1.homedir)()) {
|
|
82
|
+
const agents = Object.entries(LOGIN_SKILL_AGENT_DIRECTORIES);
|
|
83
|
+
const present = await Promise.all(agents.map(async ([agent, directory]) => {
|
|
84
|
+
try {
|
|
85
|
+
return (await (0, promises_1.stat)((0, node_path_1.join)(homeDirectory, directory))).isDirectory() ? agent : null;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}));
|
|
91
|
+
return present.filter((agent) => agent !== null);
|
|
92
|
+
}
|
|
75
93
|
function linksIntoCanonical(agent) {
|
|
76
94
|
return AGENT_SKILL_DIRECTORIES[agent] !== null;
|
|
77
95
|
}
|