@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.
Files changed (99) hide show
  1. package/README.md +38 -0
  2. package/dist/bin/miosa.js +1 -0
  3. package/dist/bin/miosa.js.map +1 -1
  4. package/dist/commands/agent-runs.d.ts.map +1 -1
  5. package/dist/commands/agent-runs.js +20 -0
  6. package/dist/commands/agent-runs.js.map +1 -1
  7. package/dist/commands/agent.d.ts.map +1 -1
  8. package/dist/commands/agent.js +15 -0
  9. package/dist/commands/agent.js.map +1 -1
  10. package/dist/commands/capabilities.d.ts.map +1 -1
  11. package/dist/commands/capabilities.js +85 -4
  12. package/dist/commands/capabilities.js.map +1 -1
  13. package/dist/commands/completion.d.ts.map +1 -1
  14. package/dist/commands/completion.js +12 -1
  15. package/dist/commands/completion.js.map +1 -1
  16. package/dist/commands/computers.d.ts.map +1 -1
  17. package/dist/commands/computers.js +44 -0
  18. package/dist/commands/computers.js.map +1 -1
  19. package/dist/commands/connectors.d.ts.map +1 -1
  20. package/dist/commands/connectors.js +509 -1
  21. package/dist/commands/connectors.js.map +1 -1
  22. package/dist/commands/deploy.d.ts.map +1 -1
  23. package/dist/commands/deploy.js +147 -0
  24. package/dist/commands/deploy.js.map +1 -1
  25. package/dist/commands/devices.d.ts.map +1 -1
  26. package/dist/commands/devices.js +410 -35
  27. package/dist/commands/devices.js.map +1 -1
  28. package/dist/commands/osa.d.ts +3 -0
  29. package/dist/commands/osa.d.ts.map +1 -0
  30. package/dist/commands/osa.js +663 -0
  31. package/dist/commands/osa.js.map +1 -0
  32. package/dist/commands/sandbox.d.ts.map +1 -1
  33. package/dist/commands/sandbox.js +12 -0
  34. package/dist/commands/sandbox.js.map +1 -1
  35. package/dist/osa/build.d.ts +6 -0
  36. package/dist/osa/build.d.ts.map +1 -0
  37. package/dist/osa/build.js +23 -0
  38. package/dist/osa/build.js.map +1 -0
  39. package/dist/osa/builtin-skills.d.ts +7 -0
  40. package/dist/osa/builtin-skills.d.ts.map +1 -0
  41. package/dist/osa/builtin-skills.js +85 -0
  42. package/dist/osa/builtin-skills.js.map +1 -0
  43. package/dist/osa/computer.d.ts +10 -0
  44. package/dist/osa/computer.d.ts.map +1 -0
  45. package/dist/osa/computer.js +37 -0
  46. package/dist/osa/computer.js.map +1 -0
  47. package/dist/osa/deployments.d.ts +44 -0
  48. package/dist/osa/deployments.d.ts.map +1 -0
  49. package/dist/osa/deployments.js +140 -0
  50. package/dist/osa/deployments.js.map +1 -0
  51. package/dist/osa/discovery.d.ts +8 -0
  52. package/dist/osa/discovery.d.ts.map +1 -0
  53. package/dist/osa/discovery.js +668 -0
  54. package/dist/osa/discovery.js.map +1 -0
  55. package/dist/osa/doctor.d.ts +9 -0
  56. package/dist/osa/doctor.d.ts.map +1 -0
  57. package/dist/osa/doctor.js +41 -0
  58. package/dist/osa/doctor.js.map +1 -0
  59. package/dist/osa/eval.d.ts +7 -0
  60. package/dist/osa/eval.d.ts.map +1 -0
  61. package/dist/osa/eval.js +108 -0
  62. package/dist/osa/eval.js.map +1 -0
  63. package/dist/osa/integrations.d.ts +28 -0
  64. package/dist/osa/integrations.d.ts.map +1 -0
  65. package/dist/osa/integrations.js +65 -0
  66. package/dist/osa/integrations.js.map +1 -0
  67. package/dist/osa/paths.d.ts +8 -0
  68. package/dist/osa/paths.d.ts.map +1 -0
  69. package/dist/osa/paths.js +31 -0
  70. package/dist/osa/paths.js.map +1 -0
  71. package/dist/osa/plans.d.ts +9 -0
  72. package/dist/osa/plans.d.ts.map +1 -0
  73. package/dist/osa/plans.js +55 -0
  74. package/dist/osa/plans.js.map +1 -0
  75. package/dist/osa/projects.d.ts +45 -0
  76. package/dist/osa/projects.d.ts.map +1 -0
  77. package/dist/osa/projects.js +92 -0
  78. package/dist/osa/projects.js.map +1 -0
  79. package/dist/osa/runtime.d.ts +19 -0
  80. package/dist/osa/runtime.d.ts.map +1 -0
  81. package/dist/osa/runtime.js +92 -0
  82. package/dist/osa/runtime.js.map +1 -0
  83. package/dist/osa/scaffold.d.ts +11 -0
  84. package/dist/osa/scaffold.d.ts.map +1 -0
  85. package/dist/osa/scaffold.js +245 -0
  86. package/dist/osa/scaffold.js.map +1 -0
  87. package/dist/osa/skills.d.ts +19 -0
  88. package/dist/osa/skills.d.ts.map +1 -0
  89. package/dist/osa/skills.js +55 -0
  90. package/dist/osa/skills.js.map +1 -0
  91. package/dist/osa/types.d.ts +157 -0
  92. package/dist/osa/types.d.ts.map +1 -0
  93. package/dist/osa/types.js +2 -0
  94. package/dist/osa/types.js.map +1 -0
  95. package/dist/osa/yaml.d.ts +7 -0
  96. package/dist/osa/yaml.d.ts.map +1 -0
  97. package/dist/osa/yaml.js +59 -0
  98. package/dist/osa/yaml.js.map +1 -0
  99. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ import type { OsaBuildArtifact } from "./types.js";
2
+ export declare function buildOsaProject(options?: {
3
+ target?: string;
4
+ cwd?: string;
5
+ }): OsaBuildArtifact;
6
+ //# sourceMappingURL=build.d.ts.map
@@ -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,10 @@
1
+ export declare function enableComputer(options: {
2
+ name?: string;
3
+ target?: string;
4
+ cwd?: string;
5
+ }): {
6
+ name: string;
7
+ path: string;
8
+ updated: boolean;
9
+ };
10
+ //# sourceMappingURL=computer.d.ts.map
@@ -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"}