@miosa/cli 1.0.78 → 1.0.80
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 +38 -0
- package/dist/bin/miosa.js +1 -0
- package/dist/bin/miosa.js.map +1 -1
- package/dist/commands/agent-runs.d.ts.map +1 -1
- package/dist/commands/agent-runs.js +20 -0
- package/dist/commands/agent-runs.js.map +1 -1
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +15 -0
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/capabilities.d.ts.map +1 -1
- package/dist/commands/capabilities.js +85 -4
- package/dist/commands/capabilities.js.map +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +12 -1
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/computers.d.ts.map +1 -1
- package/dist/commands/computers.js +44 -0
- package/dist/commands/computers.js.map +1 -1
- package/dist/commands/connectors.d.ts.map +1 -1
- package/dist/commands/connectors.js +509 -1
- package/dist/commands/connectors.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +147 -0
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/devices.d.ts.map +1 -1
- package/dist/commands/devices.js +410 -35
- package/dist/commands/devices.js.map +1 -1
- package/dist/commands/osa.d.ts +3 -0
- package/dist/commands/osa.d.ts.map +1 -0
- package/dist/commands/osa.js +663 -0
- package/dist/commands/osa.js.map +1 -0
- package/dist/commands/sandbox.d.ts.map +1 -1
- package/dist/commands/sandbox.js +12 -0
- package/dist/commands/sandbox.js.map +1 -1
- package/dist/osa/build.d.ts +6 -0
- package/dist/osa/build.d.ts.map +1 -0
- package/dist/osa/build.js +23 -0
- package/dist/osa/build.js.map +1 -0
- package/dist/osa/builtin-skills.d.ts +7 -0
- package/dist/osa/builtin-skills.d.ts.map +1 -0
- package/dist/osa/builtin-skills.js +85 -0
- package/dist/osa/builtin-skills.js.map +1 -0
- package/dist/osa/computer.d.ts +10 -0
- package/dist/osa/computer.d.ts.map +1 -0
- package/dist/osa/computer.js +37 -0
- package/dist/osa/computer.js.map +1 -0
- package/dist/osa/deployments.d.ts +44 -0
- package/dist/osa/deployments.d.ts.map +1 -0
- package/dist/osa/deployments.js +140 -0
- package/dist/osa/deployments.js.map +1 -0
- package/dist/osa/discovery.d.ts +8 -0
- package/dist/osa/discovery.d.ts.map +1 -0
- package/dist/osa/discovery.js +668 -0
- package/dist/osa/discovery.js.map +1 -0
- package/dist/osa/doctor.d.ts +9 -0
- package/dist/osa/doctor.d.ts.map +1 -0
- package/dist/osa/doctor.js +41 -0
- package/dist/osa/doctor.js.map +1 -0
- package/dist/osa/eval.d.ts +7 -0
- package/dist/osa/eval.d.ts.map +1 -0
- package/dist/osa/eval.js +108 -0
- package/dist/osa/eval.js.map +1 -0
- package/dist/osa/integrations.d.ts +28 -0
- package/dist/osa/integrations.d.ts.map +1 -0
- package/dist/osa/integrations.js +65 -0
- package/dist/osa/integrations.js.map +1 -0
- package/dist/osa/paths.d.ts +8 -0
- package/dist/osa/paths.d.ts.map +1 -0
- package/dist/osa/paths.js +31 -0
- package/dist/osa/paths.js.map +1 -0
- package/dist/osa/plans.d.ts +9 -0
- package/dist/osa/plans.d.ts.map +1 -0
- package/dist/osa/plans.js +55 -0
- package/dist/osa/plans.js.map +1 -0
- package/dist/osa/projects.d.ts +45 -0
- package/dist/osa/projects.d.ts.map +1 -0
- package/dist/osa/projects.js +92 -0
- package/dist/osa/projects.js.map +1 -0
- package/dist/osa/runtime.d.ts +19 -0
- package/dist/osa/runtime.d.ts.map +1 -0
- package/dist/osa/runtime.js +92 -0
- package/dist/osa/runtime.js.map +1 -0
- package/dist/osa/scaffold.d.ts +11 -0
- package/dist/osa/scaffold.d.ts.map +1 -0
- package/dist/osa/scaffold.js +245 -0
- package/dist/osa/scaffold.js.map +1 -0
- package/dist/osa/skills.d.ts +19 -0
- package/dist/osa/skills.d.ts.map +1 -0
- package/dist/osa/skills.js +55 -0
- package/dist/osa/skills.js.map +1 -0
- package/dist/osa/types.d.ts +157 -0
- package/dist/osa/types.d.ts.map +1 -0
- package/dist/osa/types.js +2 -0
- package/dist/osa/types.js.map +1 -0
- package/dist/osa/yaml.d.ts +7 -0
- package/dist/osa/yaml.d.ts.map +1 -0
- package/dist/osa/yaml.js +59 -0
- package/dist/osa/yaml.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/osa/build.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,wBAAgB,eAAe,CAAC,OAAO,GAAE;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACT,GAAG,gBAAgB,CAgCxB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { UserError } from "../errors.js";
|
|
4
|
+
import { artifactRoot, relativePath } from "./paths.js";
|
|
5
|
+
import { discoverOsaProject } from "./discovery.js";
|
|
6
|
+
export function buildOsaProject(options = {}) {
|
|
7
|
+
const discovery = discoverOsaProject(options);
|
|
8
|
+
if (discovery.manifest.diagnostics.errors > 0) {
|
|
9
|
+
throw new UserError("OSA project has blocking diagnostics.", "Run `miosa osa info` and fix errors before building.");
|
|
10
|
+
}
|
|
11
|
+
const artifact = {
|
|
12
|
+
version: 1,
|
|
13
|
+
builtAt: new Date().toISOString(),
|
|
14
|
+
projectRoot: discovery.manifest.projectRoot,
|
|
15
|
+
manifestPath: relativePath(discovery.manifest.projectRoot, path.join(artifactRoot(discovery.manifest.projectRoot), "osa-manifest.json")),
|
|
16
|
+
diagnosticsPath: relativePath(discovery.manifest.projectRoot, path.join(artifactRoot(discovery.manifest.projectRoot), "osa-diagnostics.json")),
|
|
17
|
+
errors: discovery.manifest.diagnostics.errors,
|
|
18
|
+
warnings: discovery.manifest.diagnostics.warnings,
|
|
19
|
+
};
|
|
20
|
+
fs.writeFileSync(path.join(artifactRoot(discovery.manifest.projectRoot), "osa-build.json"), `${JSON.stringify(artifact, null, 2)}\n`, "utf8");
|
|
21
|
+
return artifact;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/osa/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,MAAM,UAAU,eAAe,CAAC,UAG5B,EAAE;IACJ,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CACjB,uCAAuC,EACvC,sDAAsD,CACvD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAqB;QACjC,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,WAAW;QAC3C,YAAY,EAAE,YAAY,CACxB,SAAS,CAAC,QAAQ,CAAC,WAAW,EAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAC7E;QACD,eAAe,EAAE,YAAY,CAC3B,SAAS,CAAC,QAAQ,CAAC,WAAW,EAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,sBAAsB,CAAC,CAChF;QACD,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM;QAC7C,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ;KAClD,CAAC;IAEF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,EACzE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACxC,MAAM,CACP,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { OsaSkill } from "./types.js";
|
|
2
|
+
export interface BuiltinSkill extends OsaSkill {
|
|
3
|
+
content: string;
|
|
4
|
+
}
|
|
5
|
+
export declare const builtinSkills: BuiltinSkill[];
|
|
6
|
+
export declare function findBuiltinSkill(name: string): BuiltinSkill | undefined;
|
|
7
|
+
//# sourceMappingURL=builtin-skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin-skills.d.ts","sourceRoot":"","sources":["../../src/osa/builtin-skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,YAAY,EAgFvC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEvE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export const builtinSkills = [
|
|
2
|
+
{
|
|
3
|
+
name: "browser-qa",
|
|
4
|
+
path: "builtin/browser-qa/SKILL.md",
|
|
5
|
+
source: "builtin",
|
|
6
|
+
trust: "builtin",
|
|
7
|
+
description: "Use when validating a browser workflow, visual state, or regression.",
|
|
8
|
+
permissions: ["browser", "screenshot", "network:localhost"],
|
|
9
|
+
content: `---
|
|
10
|
+
name: browser-qa
|
|
11
|
+
description: Use when validating a browser workflow, visual state, or regression.
|
|
12
|
+
trust: builtin
|
|
13
|
+
permissions:
|
|
14
|
+
tools:
|
|
15
|
+
- browser
|
|
16
|
+
- screenshot
|
|
17
|
+
network:
|
|
18
|
+
- "localhost"
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
Inspect the target UI, exercise the critical path, capture evidence, and report concrete failures with reproduction steps.
|
|
22
|
+
`,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "code-review",
|
|
26
|
+
path: "builtin/code-review/SKILL.md",
|
|
27
|
+
source: "builtin",
|
|
28
|
+
trust: "builtin",
|
|
29
|
+
description: "Use when reviewing code changes for bugs, regressions, and missing tests.",
|
|
30
|
+
permissions: ["filesystem:read"],
|
|
31
|
+
content: `---
|
|
32
|
+
name: code-review
|
|
33
|
+
description: Use when reviewing code changes for bugs, regressions, and missing tests.
|
|
34
|
+
trust: builtin
|
|
35
|
+
permissions:
|
|
36
|
+
tools:
|
|
37
|
+
- read_file
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
Prioritize correctness risks, production regressions, missing edge-case handling, and missing tests. Cite exact files and lines.
|
|
41
|
+
`,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "release-checklist",
|
|
45
|
+
path: "builtin/release-checklist/SKILL.md",
|
|
46
|
+
source: "builtin",
|
|
47
|
+
trust: "builtin",
|
|
48
|
+
description: "Use when preparing a release checklist, verification plan, or launch handoff.",
|
|
49
|
+
permissions: ["filesystem:read"],
|
|
50
|
+
content: `---
|
|
51
|
+
name: release-checklist
|
|
52
|
+
description: Use when preparing a release checklist, verification plan, or launch handoff.
|
|
53
|
+
trust: builtin
|
|
54
|
+
permissions:
|
|
55
|
+
tools:
|
|
56
|
+
- read_file
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
Create a narrow release checklist covering build, tests, smoke checks, rollback, monitoring, and owner handoff.
|
|
60
|
+
`,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: "support-triage",
|
|
64
|
+
path: "builtin/support-triage/SKILL.md",
|
|
65
|
+
source: "builtin",
|
|
66
|
+
trust: "builtin",
|
|
67
|
+
description: "Use when triaging customer support issues into severity, owner, and next action.",
|
|
68
|
+
permissions: ["filesystem:read"],
|
|
69
|
+
content: `---
|
|
70
|
+
name: support-triage
|
|
71
|
+
description: Use when triaging customer support issues into severity, owner, and next action.
|
|
72
|
+
trust: builtin
|
|
73
|
+
permissions:
|
|
74
|
+
tools:
|
|
75
|
+
- read_file
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
Classify the issue, identify missing facts, propose the next action, and separate user impact from internal implementation detail.
|
|
79
|
+
`,
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
export function findBuiltinSkill(name) {
|
|
83
|
+
return builtinSkills.find((skill) => skill.name === name);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=builtin-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin-skills.js","sourceRoot":"","sources":["../../src/osa/builtin-skills.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,6BAA6B;QACnC,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,sEAAsE;QACnF,WAAW,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,mBAAmB,CAAC;QAC3D,OAAO,EAAE;;;;;;;;;;;;;CAaZ;KACE;IACD;QACE,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,8BAA8B;QACpC,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,2EAA2E;QACxF,WAAW,EAAE,CAAC,iBAAiB,CAAC;QAChC,OAAO,EAAE;;;;;;;;;;CAUZ;KACE;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,oCAAoC;QAC1C,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,+EAA+E;QAC5F,WAAW,EAAE,CAAC,iBAAiB,CAAC;QAChC,OAAO,EAAE;;;;;;;;;;CAUZ;KACE;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,iCAAiC;QACvC,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,kFAAkF;QAC/F,WAAW,EAAE,CAAC,iBAAiB,CAAC;QAChC,OAAO,EAAE;;;;;;;;;;CAUZ;KACE;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computer.d.ts","sourceRoot":"","sources":["../../src/osa/computer.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAmCnD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import YAML from "yaml";
|
|
4
|
+
import { resolveTarget, sourceRoot } from "./paths.js";
|
|
5
|
+
export function enableComputer(options) {
|
|
6
|
+
const name = options.name ?? "default";
|
|
7
|
+
const projectRoot = resolveTarget(options.target, options.cwd);
|
|
8
|
+
const computersRoot = path.join(sourceRoot(projectRoot), "computers");
|
|
9
|
+
const filePath = path.join(computersRoot, `${name}.yml`);
|
|
10
|
+
const existed = fs.existsSync(filePath);
|
|
11
|
+
let config = {};
|
|
12
|
+
if (existed) {
|
|
13
|
+
const parsed = YAML.parse(fs.readFileSync(filePath, "utf8"));
|
|
14
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
15
|
+
config = parsed;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
config["enabled"] = true;
|
|
19
|
+
config["kind"] = typeof config["kind"] === "string" ? config["kind"] : "miosa-computer";
|
|
20
|
+
config["size"] = typeof config["size"] === "string" ? config["size"] : "standard";
|
|
21
|
+
config["workspace"] =
|
|
22
|
+
config["workspace"] && typeof config["workspace"] === "object"
|
|
23
|
+
? config["workspace"]
|
|
24
|
+
: { persist: true };
|
|
25
|
+
config["network"] =
|
|
26
|
+
config["network"] && typeof config["network"] === "object"
|
|
27
|
+
? config["network"]
|
|
28
|
+
: { default: "deny", allow: ["localhost"] };
|
|
29
|
+
config["capabilities"] =
|
|
30
|
+
config["capabilities"] && typeof config["capabilities"] === "object"
|
|
31
|
+
? config["capabilities"]
|
|
32
|
+
: { browser: true, screenshot: true, shell: true, desktop: true };
|
|
33
|
+
fs.mkdirSync(computersRoot, { recursive: true });
|
|
34
|
+
fs.writeFileSync(filePath, YAML.stringify(config), "utf8");
|
|
35
|
+
return { name, path: filePath, updated: existed };
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=computer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computer.js","sourceRoot":"","sources":["../../src/osa/computer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,UAAU,cAAc,CAAC,OAI9B;IACC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;IACvC,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAY,CAAC;QACxE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,GAAG,MAAiC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACxF,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAClF,MAAM,CAAC,WAAW,CAAC;QACjB,MAAM,CAAC,WAAW,CAAC,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,QAAQ;YAC5D,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;YACrB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxB,MAAM,CAAC,SAAS,CAAC;QACf,MAAM,CAAC,SAAS,CAAC,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ;YACxD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;YACnB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;IAChD,MAAM,CAAC,cAAc,CAAC;QACpB,MAAM,CAAC,cAAc,CAAC,IAAI,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,QAAQ;YAClE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;YACxB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEtE,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAE3D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type OsaProjectPublishResult } from "./projects.js";
|
|
2
|
+
import type { OsaExecutionPlan } from "./types.js";
|
|
3
|
+
export interface DeployOsaProjectOptions {
|
|
4
|
+
target?: string;
|
|
5
|
+
workspace?: string;
|
|
6
|
+
projectId?: string;
|
|
7
|
+
osaProjectId?: string;
|
|
8
|
+
deployTarget?: string;
|
|
9
|
+
sandbox?: string;
|
|
10
|
+
computer?: string;
|
|
11
|
+
source?: string;
|
|
12
|
+
wait?: boolean;
|
|
13
|
+
waitTimeout?: string;
|
|
14
|
+
waitPollIntervalMs?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface ListOsaDeploymentsOptions {
|
|
17
|
+
status?: string;
|
|
18
|
+
limit?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface OsaDeploymentRequest {
|
|
21
|
+
deploy_target: string;
|
|
22
|
+
source: string;
|
|
23
|
+
deployment_plan: OsaExecutionPlan;
|
|
24
|
+
runtime_profile: OsaExecutionPlan["runtimeProfile"];
|
|
25
|
+
metadata: {
|
|
26
|
+
osa_project: true;
|
|
27
|
+
cli_command: "miosa osa deploy";
|
|
28
|
+
};
|
|
29
|
+
sandbox_id?: string;
|
|
30
|
+
computer_id?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface OsaDeploymentResult {
|
|
33
|
+
plan: OsaExecutionPlan;
|
|
34
|
+
osaProjectId: string;
|
|
35
|
+
publish?: OsaProjectPublishResult;
|
|
36
|
+
request: OsaDeploymentRequest;
|
|
37
|
+
deployment: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
export declare function deployOsaProject(options?: DeployOsaProjectOptions): Promise<OsaDeploymentResult>;
|
|
40
|
+
export declare function getOsaDeployment(osaProjectId: string, deploymentId: string): Promise<Record<string, unknown>>;
|
|
41
|
+
export declare function listOsaDeployments(osaProjectId: string, options?: ListOsaDeploymentsOptions): Promise<Array<Record<string, unknown>>>;
|
|
42
|
+
export declare function retryOsaDeployment(osaProjectId: string, deploymentId: string): Promise<Record<string, unknown>>;
|
|
43
|
+
export declare function cancelOsaDeployment(osaProjectId: string, deploymentId: string): Promise<Record<string, unknown>>;
|
|
44
|
+
//# sourceMappingURL=deployments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../../src/osa/deployments.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,gBAAgB,CAAC;IAClC,eAAe,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACpD,QAAQ,EAAE;QACR,WAAW,EAAE,IAAI,CAAC;QAClB,WAAW,EAAE,kBAAkB,CAAC;KACjC,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAID,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CAqE9B;AAED,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQlC;AAED,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAczC;AAED,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAElC;AAED,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAElC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { MiosaClient } from "../client.js";
|
|
2
|
+
import { loadConfig } from "../config.js";
|
|
3
|
+
import { createOsaPlan } from "./plans.js";
|
|
4
|
+
import { publishOsaProject } from "./projects.js";
|
|
5
|
+
const TERMINAL_STATUSES = new Set(["deployed", "failed", "canceled"]);
|
|
6
|
+
export async function deployOsaProject(options = {}) {
|
|
7
|
+
const plan = createOsaPlan({
|
|
8
|
+
kind: "deploy",
|
|
9
|
+
target: options.target,
|
|
10
|
+
runtimeTarget: options.computer
|
|
11
|
+
? "computer"
|
|
12
|
+
: options.sandbox
|
|
13
|
+
? "sandbox"
|
|
14
|
+
: options.deployTarget,
|
|
15
|
+
});
|
|
16
|
+
const deployTarget = options.computer
|
|
17
|
+
? "computer"
|
|
18
|
+
: options.sandbox
|
|
19
|
+
? "sandbox"
|
|
20
|
+
: options.deployTarget ?? plan.target ?? "miosa-cloud";
|
|
21
|
+
const publish = options.osaProjectId
|
|
22
|
+
? undefined
|
|
23
|
+
: await publishOsaProject({
|
|
24
|
+
target: options.target,
|
|
25
|
+
workspace: options.workspace,
|
|
26
|
+
projectId: options.projectId,
|
|
27
|
+
source: options.source ?? "miosa-cli",
|
|
28
|
+
});
|
|
29
|
+
const osaProjectId = options.osaProjectId ?? stringField(publish?.project, "id");
|
|
30
|
+
if (!osaProjectId) {
|
|
31
|
+
throw new Error("OSA publish response did not include a project id.");
|
|
32
|
+
}
|
|
33
|
+
const request = {
|
|
34
|
+
deploy_target: deployTarget,
|
|
35
|
+
source: options.source ?? "miosa-cli",
|
|
36
|
+
deployment_plan: plan,
|
|
37
|
+
runtime_profile: plan.runtimeProfile,
|
|
38
|
+
metadata: {
|
|
39
|
+
osa_project: true,
|
|
40
|
+
cli_command: "miosa osa deploy",
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
if (options.sandbox)
|
|
44
|
+
request.sandbox_id = options.sandbox;
|
|
45
|
+
if (options.computer)
|
|
46
|
+
request.computer_id = options.computer;
|
|
47
|
+
const client = new MiosaClient(loadConfig());
|
|
48
|
+
const response = await client.apiPost(`/api/v1/osa-projects/${encodeURIComponent(osaProjectId)}/deployments`, request);
|
|
49
|
+
let deployment = unwrapData(response);
|
|
50
|
+
if (options.wait) {
|
|
51
|
+
const deploymentId = stringField(deployment, "id");
|
|
52
|
+
if (!deploymentId) {
|
|
53
|
+
throw new Error("OSA deployment response did not include a deployment id.");
|
|
54
|
+
}
|
|
55
|
+
deployment = await waitForOsaDeployment(client, osaProjectId, deploymentId, {
|
|
56
|
+
timeoutSeconds: parsePositiveInt(options.waitTimeout, 600),
|
|
57
|
+
pollIntervalMs: options.waitPollIntervalMs ?? 1000,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
plan,
|
|
62
|
+
osaProjectId,
|
|
63
|
+
...(publish ? { publish } : {}),
|
|
64
|
+
request,
|
|
65
|
+
deployment,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export async function getOsaDeployment(osaProjectId, deploymentId) {
|
|
69
|
+
const client = new MiosaClient(loadConfig());
|
|
70
|
+
const payload = await client.apiGet(`/api/v1/osa-projects/${encodeURIComponent(osaProjectId)}/deployments/${encodeURIComponent(deploymentId)}`);
|
|
71
|
+
return unwrapData(payload);
|
|
72
|
+
}
|
|
73
|
+
export async function listOsaDeployments(osaProjectId, options = {}) {
|
|
74
|
+
const params = new URLSearchParams();
|
|
75
|
+
if (options.status)
|
|
76
|
+
params.set("status", options.status);
|
|
77
|
+
if (options.limit)
|
|
78
|
+
params.set("limit", options.limit);
|
|
79
|
+
const client = new MiosaClient(loadConfig());
|
|
80
|
+
const payload = await client.apiGet(`/api/v1/osa-projects/${encodeURIComponent(osaProjectId)}/deployments${queryString(params)}`);
|
|
81
|
+
if (isRecord(payload) && Array.isArray(payload["data"])) {
|
|
82
|
+
return payload["data"].filter(isRecord);
|
|
83
|
+
}
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
export async function retryOsaDeployment(osaProjectId, deploymentId) {
|
|
87
|
+
return deploymentAction(osaProjectId, deploymentId, "retry");
|
|
88
|
+
}
|
|
89
|
+
export async function cancelOsaDeployment(osaProjectId, deploymentId) {
|
|
90
|
+
return deploymentAction(osaProjectId, deploymentId, "cancel");
|
|
91
|
+
}
|
|
92
|
+
async function waitForOsaDeployment(client, osaProjectId, deploymentId, opts) {
|
|
93
|
+
const deadline = Date.now() + opts.timeoutSeconds * 1000;
|
|
94
|
+
while (true) {
|
|
95
|
+
const payload = await client.apiGet(`/api/v1/osa-projects/${encodeURIComponent(osaProjectId)}/deployments/${encodeURIComponent(deploymentId)}`);
|
|
96
|
+
const deployment = unwrapData(payload);
|
|
97
|
+
const status = stringField(deployment, "status");
|
|
98
|
+
if (status && TERMINAL_STATUSES.has(status))
|
|
99
|
+
return deployment;
|
|
100
|
+
if (Date.now() >= deadline) {
|
|
101
|
+
throw new Error(`Timed out waiting for OSA deployment ${deploymentId}.`);
|
|
102
|
+
}
|
|
103
|
+
await sleep(opts.pollIntervalMs);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function parsePositiveInt(value, defaultValue) {
|
|
107
|
+
if (!value)
|
|
108
|
+
return defaultValue;
|
|
109
|
+
const parsed = Number.parseInt(value, 10);
|
|
110
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
111
|
+
throw new Error("Invalid --wait-timeout value. Use a positive number of seconds.");
|
|
112
|
+
}
|
|
113
|
+
return parsed;
|
|
114
|
+
}
|
|
115
|
+
function sleep(ms) {
|
|
116
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
117
|
+
}
|
|
118
|
+
async function deploymentAction(osaProjectId, deploymentId, action) {
|
|
119
|
+
const client = new MiosaClient(loadConfig());
|
|
120
|
+
const payload = await client.apiPost(`/api/v1/osa-projects/${encodeURIComponent(osaProjectId)}/deployments/${encodeURIComponent(deploymentId)}/${action}`);
|
|
121
|
+
return unwrapData(payload);
|
|
122
|
+
}
|
|
123
|
+
function queryString(params) {
|
|
124
|
+
const value = params.toString();
|
|
125
|
+
return value ? `?${value}` : "";
|
|
126
|
+
}
|
|
127
|
+
function stringField(record, field) {
|
|
128
|
+
const value = record?.[field];
|
|
129
|
+
return typeof value === "string" && value !== "" ? value : undefined;
|
|
130
|
+
}
|
|
131
|
+
function unwrapData(payload) {
|
|
132
|
+
if (isRecord(payload) && isRecord(payload["data"])) {
|
|
133
|
+
return payload["data"];
|
|
134
|
+
}
|
|
135
|
+
return isRecord(payload) ? payload : {};
|
|
136
|
+
}
|
|
137
|
+
function isRecord(value) {
|
|
138
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=deployments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../src/osa/deployments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { OsaDiagnostic, OsaDiscovery, OsaSkill } from "./types.js";
|
|
2
|
+
export declare function discoverOsaProject(options?: {
|
|
3
|
+
target?: string;
|
|
4
|
+
cwd?: string;
|
|
5
|
+
writeArtifacts?: boolean;
|
|
6
|
+
}): OsaDiscovery;
|
|
7
|
+
export declare function discoverSkills(projectRoot: string, root?: string, diagnostics?: OsaDiagnostic[]): OsaSkill[];
|
|
8
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/osa/discovery.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAIV,aAAa,EACb,YAAY,EAOZ,QAAQ,EAET,MAAM,YAAY,CAAC;AASpB,wBAAgB,kBAAkB,CAAC,OAAO,GAAE;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,YAAY,CAsFpB;AAgCD,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,IAAI,SAA0B,EAC9B,WAAW,GAAE,aAAa,EAAO,GAChC,QAAQ,EAAE,CAqDZ"}
|