@miosa/cli 1.0.79 → 1.0.81

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 (90) 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/capabilities.d.ts.map +1 -1
  5. package/dist/commands/capabilities.js +85 -4
  6. package/dist/commands/capabilities.js.map +1 -1
  7. package/dist/commands/completion.d.ts.map +1 -1
  8. package/dist/commands/completion.js +12 -1
  9. package/dist/commands/completion.js.map +1 -1
  10. package/dist/commands/computers.d.ts.map +1 -1
  11. package/dist/commands/computers.js +44 -0
  12. package/dist/commands/computers.js.map +1 -1
  13. package/dist/commands/connectors.d.ts.map +1 -1
  14. package/dist/commands/connectors.js +509 -1
  15. package/dist/commands/connectors.js.map +1 -1
  16. package/dist/commands/deploy.d.ts.map +1 -1
  17. package/dist/commands/deploy.js +147 -0
  18. package/dist/commands/deploy.js.map +1 -1
  19. package/dist/commands/devices.d.ts.map +1 -1
  20. package/dist/commands/devices.js +410 -35
  21. package/dist/commands/devices.js.map +1 -1
  22. package/dist/commands/osa.d.ts +3 -0
  23. package/dist/commands/osa.d.ts.map +1 -0
  24. package/dist/commands/osa.js +663 -0
  25. package/dist/commands/osa.js.map +1 -0
  26. package/dist/osa/build.d.ts +6 -0
  27. package/dist/osa/build.d.ts.map +1 -0
  28. package/dist/osa/build.js +23 -0
  29. package/dist/osa/build.js.map +1 -0
  30. package/dist/osa/builtin-skills.d.ts +7 -0
  31. package/dist/osa/builtin-skills.d.ts.map +1 -0
  32. package/dist/osa/builtin-skills.js +85 -0
  33. package/dist/osa/builtin-skills.js.map +1 -0
  34. package/dist/osa/computer.d.ts +10 -0
  35. package/dist/osa/computer.d.ts.map +1 -0
  36. package/dist/osa/computer.js +37 -0
  37. package/dist/osa/computer.js.map +1 -0
  38. package/dist/osa/deployments.d.ts +44 -0
  39. package/dist/osa/deployments.d.ts.map +1 -0
  40. package/dist/osa/deployments.js +140 -0
  41. package/dist/osa/deployments.js.map +1 -0
  42. package/dist/osa/discovery.d.ts +8 -0
  43. package/dist/osa/discovery.d.ts.map +1 -0
  44. package/dist/osa/discovery.js +668 -0
  45. package/dist/osa/discovery.js.map +1 -0
  46. package/dist/osa/doctor.d.ts +9 -0
  47. package/dist/osa/doctor.d.ts.map +1 -0
  48. package/dist/osa/doctor.js +41 -0
  49. package/dist/osa/doctor.js.map +1 -0
  50. package/dist/osa/eval.d.ts +7 -0
  51. package/dist/osa/eval.d.ts.map +1 -0
  52. package/dist/osa/eval.js +108 -0
  53. package/dist/osa/eval.js.map +1 -0
  54. package/dist/osa/integrations.d.ts +28 -0
  55. package/dist/osa/integrations.d.ts.map +1 -0
  56. package/dist/osa/integrations.js +65 -0
  57. package/dist/osa/integrations.js.map +1 -0
  58. package/dist/osa/paths.d.ts +8 -0
  59. package/dist/osa/paths.d.ts.map +1 -0
  60. package/dist/osa/paths.js +31 -0
  61. package/dist/osa/paths.js.map +1 -0
  62. package/dist/osa/plans.d.ts +9 -0
  63. package/dist/osa/plans.d.ts.map +1 -0
  64. package/dist/osa/plans.js +55 -0
  65. package/dist/osa/plans.js.map +1 -0
  66. package/dist/osa/projects.d.ts +45 -0
  67. package/dist/osa/projects.d.ts.map +1 -0
  68. package/dist/osa/projects.js +92 -0
  69. package/dist/osa/projects.js.map +1 -0
  70. package/dist/osa/runtime.d.ts +19 -0
  71. package/dist/osa/runtime.d.ts.map +1 -0
  72. package/dist/osa/runtime.js +92 -0
  73. package/dist/osa/runtime.js.map +1 -0
  74. package/dist/osa/scaffold.d.ts +11 -0
  75. package/dist/osa/scaffold.d.ts.map +1 -0
  76. package/dist/osa/scaffold.js +245 -0
  77. package/dist/osa/scaffold.js.map +1 -0
  78. package/dist/osa/skills.d.ts +19 -0
  79. package/dist/osa/skills.d.ts.map +1 -0
  80. package/dist/osa/skills.js +55 -0
  81. package/dist/osa/skills.js.map +1 -0
  82. package/dist/osa/types.d.ts +157 -0
  83. package/dist/osa/types.d.ts.map +1 -0
  84. package/dist/osa/types.js +2 -0
  85. package/dist/osa/types.js.map +1 -0
  86. package/dist/osa/yaml.d.ts +7 -0
  87. package/dist/osa/yaml.d.ts.map +1 -0
  88. package/dist/osa/yaml.js +59 -0
  89. package/dist/osa/yaml.js.map +1 -0
  90. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/osa/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { OsaExecutionPlan } from "./types.js";
2
+ export interface OsaRunDispatchOptions {
3
+ project?: string;
4
+ task: string;
5
+ sandbox?: string;
6
+ computer?: string;
7
+ provider?: string;
8
+ model?: string;
9
+ cwd?: string;
10
+ timeout?: string;
11
+ dryRun?: boolean;
12
+ }
13
+ export interface OsaRunDispatchResult {
14
+ plan: OsaExecutionPlan;
15
+ request: Record<string, unknown>;
16
+ run?: unknown;
17
+ }
18
+ export declare function dispatchOsaRun(options: OsaRunDispatchOptions): Promise<OsaRunDispatchResult>;
19
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/osa/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAyClG"}
@@ -0,0 +1,92 @@
1
+ import { MiosaClient } from "../client.js";
2
+ import { loadConfig } from "../config.js";
3
+ import { UserError } from "../errors.js";
4
+ import { buildOsaProject } from "./build.js";
5
+ export async function dispatchOsaRun(options) {
6
+ const { createOsaPlan } = await import("./plans.js");
7
+ const plan = createOsaPlan({
8
+ kind: "run",
9
+ target: options.project,
10
+ runtimeTarget: options.computer ? "computer" : options.sandbox ? "sandbox" : undefined,
11
+ task: options.task,
12
+ });
13
+ const build = buildOsaProject({ target: options.project });
14
+ const runtimeProfile = applyRunOverrides(plan.runtimeProfile, {
15
+ provider: options.provider,
16
+ model: options.model,
17
+ runtimeTarget: options.computer ? "computer" : options.sandbox ? "sandbox" : undefined,
18
+ });
19
+ const target = resolveTarget(options, runtimeProfile);
20
+ const request = {
21
+ prompt: options.task,
22
+ provider: resolvedProvider(runtimeProfile),
23
+ runtime_profile: runtimeProfile,
24
+ metadata: {
25
+ osa_project: true,
26
+ osa_manifest_path: build.manifestPath,
27
+ osa_build_path: ".miosa/osa-build.json",
28
+ osa_agent_name: plan.agentName,
29
+ osa_runtime_target: plan.target,
30
+ },
31
+ };
32
+ if (target.kind === "sandbox")
33
+ request["sandbox_id"] = target.id;
34
+ if (target.kind === "computer")
35
+ request["computer_id"] = target.id;
36
+ const model = resolvedModel(runtimeProfile);
37
+ if (model)
38
+ request["model"] = model;
39
+ if (options.cwd)
40
+ request["cwd"] = options.cwd;
41
+ if (options.timeout)
42
+ request["timeout"] = options.timeout;
43
+ if (options.dryRun)
44
+ return { plan: { ...plan, runtimeProfile }, request };
45
+ const client = new MiosaClient(loadConfig());
46
+ const run = await client.apiPost("/api/v1/agent-runs", request);
47
+ return { plan: { ...plan, runtimeProfile }, request, run };
48
+ }
49
+ function resolveTarget(options, runtimeProfile) {
50
+ if (options.sandbox && options.computer) {
51
+ throw new UserError("Use either --sandbox or --computer, not both.");
52
+ }
53
+ if (options.sandbox)
54
+ return { kind: "sandbox", id: options.sandbox };
55
+ if (options.computer)
56
+ return { kind: "computer", id: options.computer };
57
+ const runtimeTarget = stringFromRecord(runtimeProfile.runtime, "target");
58
+ if (runtimeTarget === "miosa-cloud" || runtimeTarget === "managed") {
59
+ return { kind: "managed" };
60
+ }
61
+ throw new UserError("OSA run needs a runtime target.", "Pass --sandbox <id> or --computer <id>. Use --dry-run to inspect the plan without dispatching.");
62
+ }
63
+ function applyRunOverrides(profile, overrides) {
64
+ const next = { ...profile };
65
+ if (overrides.provider) {
66
+ next.provider = overrides.provider;
67
+ next.harness = { ...(next.harness ?? {}), engine: overrides.provider };
68
+ }
69
+ if (overrides.model)
70
+ next.model = overrides.model;
71
+ if (overrides.runtimeTarget) {
72
+ next.runtime = { ...(next.runtime ?? {}), target: overrides.runtimeTarget };
73
+ }
74
+ return next;
75
+ }
76
+ function resolvedProvider(profile) {
77
+ return profile.provider ?? stringFromRecord(profile.harness, "engine") ?? "osa";
78
+ }
79
+ function resolvedModel(profile) {
80
+ if (typeof profile.model === "string")
81
+ return profile.model;
82
+ return (stringFromRecord(profile.model, "primary") ??
83
+ stringFromRecord(profile.model, "id") ??
84
+ stringFromRecord(profile.model, "default"));
85
+ }
86
+ function stringFromRecord(value, key) {
87
+ if (!value || typeof value !== "object" || Array.isArray(value))
88
+ return undefined;
89
+ const field = value[key];
90
+ return typeof field === "string" ? field : undefined;
91
+ }
92
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/osa/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface InitResult {
2
+ projectRoot: string;
3
+ created: string[];
4
+ skipped: string[];
5
+ }
6
+ export declare function initOsaProject(options: {
7
+ target?: string;
8
+ cwd?: string;
9
+ force?: boolean;
10
+ }): InitResult;
11
+ //# sourceMappingURL=scaffold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/osa/scaffold.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAmOD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,UAAU,CA2Bb"}
@@ -0,0 +1,245 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { UserError } from "../errors.js";
4
+ import { resolveTarget } from "./paths.js";
5
+ const scaffoldFiles = [
6
+ {
7
+ path: "agent/AGENTS.md",
8
+ content: `# OSA Agent Instructions
9
+
10
+ This project defines a filesystem-first OSA agent. Keep always-needed project
11
+ context here. Put optional procedures in \`agent/skills/\`.
12
+ `,
13
+ },
14
+ {
15
+ path: "agent/instructions.md",
16
+ content: `# Identity
17
+
18
+ You are an OSA agent. Work carefully, inspect available project context, use
19
+ tools only when needed, and explain material uncertainty.
20
+
21
+ # Rules
22
+
23
+ - Use tools instead of guessing.
24
+ - Ask for approval before external side effects.
25
+ - Keep outputs concise and cite the source of important facts.
26
+ `,
27
+ },
28
+ {
29
+ path: "agent/agent.ts",
30
+ content: `import { defineAgent } from "@miosa/osa";
31
+
32
+ export default defineAgent({
33
+ description: "Filesystem-defined OSA agent operating environment.",
34
+ model: {
35
+ primary: "default",
36
+ fallback: [],
37
+ },
38
+ harness: {
39
+ engine: "auto",
40
+ allowed: ["codex", "claude-code", "hermes", "osa"],
41
+ },
42
+ runtime: {
43
+ target: "miosa-cloud",
44
+ durability: "checkpointed",
45
+ streaming: true,
46
+ },
47
+ sandbox: {
48
+ backend: "auto",
49
+ allowed: ["miosa-computer", "miosa-sandbox", "local-docker"],
50
+ resources: {
51
+ cpu: 2,
52
+ memoryGb: 4,
53
+ },
54
+ },
55
+ policy: {
56
+ network: "restricted",
57
+ approvals: ["external_side_effects"],
58
+ },
59
+ capabilities: {
60
+ shell: true,
61
+ browser: true,
62
+ },
63
+ });
64
+ `,
65
+ },
66
+ {
67
+ path: "agent/permissions.yml",
68
+ content: `filesystem:
69
+ read:
70
+ - "."
71
+ write:
72
+ - "./workspace"
73
+ network:
74
+ default: deny
75
+ allow:
76
+ - "localhost"
77
+ secrets:
78
+ allow: []
79
+ approvals:
80
+ required_for:
81
+ - "outbound_message"
82
+ - "network:external"
83
+ `,
84
+ },
85
+ {
86
+ path: "agent/sandbox/sandbox.ts",
87
+ content: `import { defineSandbox } from "@miosa/osa/sandbox";
88
+
89
+ export default defineSandbox({
90
+ description: "Default isolated MIOSA sandbox.",
91
+ resources: {
92
+ cpu: 2,
93
+ memoryGb: 4,
94
+ },
95
+ workspaceSeed: "agent/sandbox/workspace",
96
+ });
97
+ `,
98
+ },
99
+ {
100
+ path: "agent/sandbox/workspace/README.md",
101
+ content: `# Workspace
102
+
103
+ Seed files copied into the agent sandbox at session start.
104
+ `,
105
+ },
106
+ {
107
+ path: "agent/computers/default.yml",
108
+ content: `enabled: false
109
+ kind: miosa-computer
110
+ size: standard
111
+ workspace:
112
+ persist: true
113
+ network:
114
+ default: deny
115
+ allow:
116
+ - "localhost"
117
+ capabilities:
118
+ browser: true
119
+ screenshot: true
120
+ shell: true
121
+ desktop: true
122
+ `,
123
+ },
124
+ {
125
+ path: "agent/docs/README.md",
126
+ content: `# OSA Project Docs
127
+
128
+ Place reference material here. Keep always-needed operating rules in
129
+ \`agent/AGENTS.md\`.
130
+ `,
131
+ },
132
+ {
133
+ path: "evals/smoke.yml",
134
+ content: `name: smoke
135
+ description: Basic scaffold smoke eval placeholder.
136
+ prompt: "Summarize what this OSA project can do."
137
+ checks:
138
+ - type: completed
139
+ `,
140
+ },
141
+ {
142
+ path: "agent/skills/getting-started.md",
143
+ content: `---
144
+ description: Use when a user asks what this OSA project contains or how to extend it.
145
+ trust: local
146
+ ---
147
+
148
+ Explain the project layout, point to \`agent/AGENTS.md\`, and recommend running
149
+ \`miosa osa info\` before changing runtime behavior.
150
+ `,
151
+ },
152
+ {
153
+ path: "agent/tools/get_weather.ts",
154
+ content: `import { defineTool } from "@miosa/osa/tools";
155
+
156
+ export default defineTool({
157
+ description: "Return mocked weather for a city.",
158
+ inputSchema: {
159
+ type: "object",
160
+ properties: { city: { type: "string" } },
161
+ required: ["city"],
162
+ },
163
+ async execute({ city }) {
164
+ return { city, condition: "Sunny", temperatureF: 72 };
165
+ },
166
+ });
167
+ `,
168
+ },
169
+ {
170
+ path: "agent/channels/slack.ts",
171
+ content: `import { defineChannel } from "@miosa/osa/channels";
172
+
173
+ export default defineChannel({
174
+ description: "Slack surface for OSA agent messages.",
175
+ type: "slack",
176
+ });
177
+ `,
178
+ },
179
+ {
180
+ path: "agent/connections/linear.ts",
181
+ content: `import { defineConnection } from "@miosa/osa/connections";
182
+
183
+ export default defineConnection({
184
+ description: "Linear connection for issue follow-up.",
185
+ type: "linear",
186
+ auth: {
187
+ mode: "env",
188
+ variable: "LINEAR_API_KEY",
189
+ },
190
+ });
191
+ `,
192
+ },
193
+ {
194
+ path: "agent/subagents/researcher/agent.ts",
195
+ content: `import { defineAgent } from "@miosa/osa";
196
+
197
+ export default defineAgent({
198
+ description: "Researches unfamiliar topics and returns evidence.",
199
+ model: {
200
+ primary: "default",
201
+ },
202
+ harness: {
203
+ engine: "auto",
204
+ },
205
+ });
206
+ `,
207
+ },
208
+ {
209
+ path: "agent/subagents/researcher/instructions.md",
210
+ content: `Find relevant evidence, separate facts from uncertainty, and return concise
211
+ notes to the parent agent. Do not make final user-facing decisions.
212
+ `,
213
+ },
214
+ {
215
+ path: "agent/schedules/daily-report.md",
216
+ content: `---
217
+ cron: "0 8 * * *"
218
+ ---
219
+
220
+ Prepare a daily OSA project status report and list blocked follow-ups.
221
+ `,
222
+ },
223
+ ];
224
+ export function initOsaProject(options) {
225
+ const projectRoot = resolveTarget(options.target, options.cwd);
226
+ const created = [];
227
+ const skipped = [];
228
+ fs.mkdirSync(projectRoot, { recursive: true });
229
+ for (const file of scaffoldFiles) {
230
+ const fullPath = path.join(projectRoot, file.path);
231
+ const exists = fs.existsSync(fullPath);
232
+ if (exists && !options.force) {
233
+ skipped.push(file.path);
234
+ continue;
235
+ }
236
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
237
+ fs.writeFileSync(fullPath, file.content, "utf8");
238
+ created.push(file.path);
239
+ }
240
+ if (created.length === 0 && skipped.length > 0 && !options.force) {
241
+ throw new UserError("OSA project files already exist.", "Pass --force to overwrite scaffolded OSA files.");
242
+ }
243
+ return { projectRoot, created, skipped };
244
+ }
245
+ //# sourceMappingURL=scaffold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/osa/scaffold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { OsaSkill } from "./types.js";
2
+ export declare function listSkills(options?: {
3
+ target?: string;
4
+ cwd?: string;
5
+ }): OsaSkill[];
6
+ export declare function searchSkills(query: string, options?: {
7
+ target?: string;
8
+ cwd?: string;
9
+ }): OsaSkill[];
10
+ export declare function addSkill(options: {
11
+ nameOrSource: string;
12
+ target?: string;
13
+ cwd?: string;
14
+ force?: boolean;
15
+ }): {
16
+ installed: OsaSkill;
17
+ path: string;
18
+ };
19
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/osa/skills.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAgB,UAAU,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,QAAQ,EAAE,CAUtF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,QAAQ,EAAE,CAQvG;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG;IAAE,SAAS,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAsCxC"}
@@ -0,0 +1,55 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { UserError } from "../errors.js";
4
+ import { builtinSkills, findBuiltinSkill } from "./builtin-skills.js";
5
+ import { discoverOsaProject } from "./discovery.js";
6
+ import { resolveTarget, sourceRoot } from "./paths.js";
7
+ export function listSkills(options = {}) {
8
+ const projectRoot = resolveTarget(options.target, options.cwd);
9
+ const discovery = discoverOsaProject({ target: projectRoot, writeArtifacts: false });
10
+ const byName = new Map();
11
+ for (const skill of builtinSkills)
12
+ byName.set(`builtin:${skill.name}`, skill);
13
+ for (const skill of discovery.manifest.skills)
14
+ byName.set(`project:${skill.name}`, skill);
15
+ return [...byName.values()].sort((a, b) => {
16
+ if (a.source !== b.source)
17
+ return a.source === "project" ? -1 : 1;
18
+ return a.name.localeCompare(b.name);
19
+ });
20
+ }
21
+ export function searchSkills(query, options = {}) {
22
+ const normalized = query.trim().toLowerCase();
23
+ if (!normalized)
24
+ return listSkills(options);
25
+ return listSkills(options).filter((skill) => skill.name.toLowerCase().includes(normalized) ||
26
+ skill.description.toLowerCase().includes(normalized));
27
+ }
28
+ export function addSkill(options) {
29
+ const projectRoot = resolveTarget(options.target, options.cwd);
30
+ const builtin = findBuiltinSkill(options.nameOrSource);
31
+ if (!builtin) {
32
+ const sourcePath = path.resolve(projectRoot, options.nameOrSource);
33
+ if (fs.existsSync(sourcePath)) {
34
+ throw new UserError("Installing skills from local paths is not implemented yet.", "Use a built-in skill name for this release.");
35
+ }
36
+ throw new UserError(`Unknown OSA skill: ${options.nameOrSource}`, `Run "miosa osa skills search ${options.nameOrSource}" to find installable skills.`);
37
+ }
38
+ const installDir = path.join(sourceRoot(projectRoot), "skills", builtin.name);
39
+ const skillPath = path.join(installDir, "SKILL.md");
40
+ if (fs.existsSync(skillPath) && !options.force) {
41
+ throw new UserError(`OSA skill already exists: ${builtin.name}`, "Pass --force to overwrite it.");
42
+ }
43
+ fs.mkdirSync(installDir, { recursive: true });
44
+ fs.writeFileSync(skillPath, builtin.content, "utf8");
45
+ return {
46
+ installed: {
47
+ ...builtin,
48
+ path: path.relative(projectRoot, skillPath).split(path.sep).join("/"),
49
+ source: "project",
50
+ trust: "local",
51
+ },
52
+ path: skillPath,
53
+ };
54
+ }
55
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/osa/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ export type DiagnosticSeverity = "error" | "warning";
2
+ export interface OsaDiagnostic {
3
+ severity: DiagnosticSeverity;
4
+ code: string;
5
+ message: string;
6
+ path?: string;
7
+ }
8
+ export interface OsaSkill {
9
+ name: string;
10
+ path: string;
11
+ source: "project" | "builtin";
12
+ trust: "local" | "builtin" | "verified" | "workspace" | "third_party";
13
+ description: string;
14
+ permissions: string[];
15
+ }
16
+ export interface OsaConnection {
17
+ name: string;
18
+ path: string;
19
+ type: string;
20
+ description: string;
21
+ hasAuth: boolean;
22
+ url?: string;
23
+ }
24
+ export interface OsaChannel {
25
+ name: string;
26
+ path: string;
27
+ type: string;
28
+ description: string;
29
+ entrypoint?: string;
30
+ }
31
+ export interface OsaSchedule {
32
+ name: string;
33
+ path: string;
34
+ cron?: string;
35
+ prompt?: string;
36
+ }
37
+ export interface OsaComputer {
38
+ name: string;
39
+ path: string;
40
+ enabled: boolean;
41
+ kind?: string;
42
+ size?: string;
43
+ capabilities: string[];
44
+ }
45
+ export interface OsaSubagent {
46
+ name: string;
47
+ path: string;
48
+ description?: string;
49
+ model?: string;
50
+ config?: string;
51
+ instructions?: string;
52
+ }
53
+ export interface OsaEval {
54
+ name: string;
55
+ path: string;
56
+ }
57
+ export type OsaRuntimeScalar = string | number | boolean | null;
58
+ export type OsaRuntimeRecord = {
59
+ [key: string]: OsaRuntimeScalar | OsaRuntimeScalar[] | OsaRuntimeRecord | OsaRuntimeRecord[];
60
+ };
61
+ export interface OsaRuntimeProfile {
62
+ model?: string | OsaRuntimeRecord;
63
+ provider?: string;
64
+ harness?: OsaRuntimeRecord;
65
+ runtime?: OsaRuntimeRecord;
66
+ sandbox?: OsaRuntimeRecord;
67
+ policy?: OsaRuntimeRecord;
68
+ capabilities?: OsaRuntimeRecord;
69
+ }
70
+ export interface OsaManifest {
71
+ version: 1;
72
+ projectRoot: string;
73
+ osaRoot: string;
74
+ sourceRoot: "agent" | "osa";
75
+ agent: {
76
+ name: string;
77
+ description?: string;
78
+ model?: string;
79
+ config?: string;
80
+ };
81
+ runtimeProfile: OsaRuntimeProfile;
82
+ context: {
83
+ agentsMd?: string;
84
+ instructions: string[];
85
+ docs: string[];
86
+ };
87
+ skills: OsaSkill[];
88
+ connections: OsaConnection[];
89
+ channels: OsaChannel[];
90
+ schedules: OsaSchedule[];
91
+ computers: OsaComputer[];
92
+ subagents: OsaSubagent[];
93
+ hooks: string[];
94
+ sandbox: {
95
+ config?: string;
96
+ workspace: string[];
97
+ };
98
+ evals: OsaEval[];
99
+ diagnostics: {
100
+ errors: number;
101
+ warnings: number;
102
+ };
103
+ }
104
+ export interface OsaDiscovery {
105
+ manifest: OsaManifest;
106
+ diagnostics: OsaDiagnostic[];
107
+ }
108
+ export interface OsaDoctorCheck {
109
+ name: string;
110
+ ok: boolean;
111
+ detail: string;
112
+ fix?: string;
113
+ warn?: boolean;
114
+ }
115
+ export interface OsaBuildArtifact {
116
+ version: 1;
117
+ builtAt: string;
118
+ projectRoot: string;
119
+ manifestPath: string;
120
+ diagnosticsPath: string;
121
+ errors: number;
122
+ warnings: number;
123
+ }
124
+ export interface OsaEvalResult {
125
+ name: string;
126
+ path: string;
127
+ status: "passed" | "failed";
128
+ checks: Array<{
129
+ name: string;
130
+ status: "passed" | "failed";
131
+ detail: string;
132
+ }>;
133
+ }
134
+ export interface OsaEvalReport {
135
+ ok: boolean;
136
+ projectRoot: string;
137
+ results: OsaEvalResult[];
138
+ errors: number;
139
+ warnings: number;
140
+ }
141
+ export interface OsaExecutionPlan {
142
+ version: 1;
143
+ kind: "run" | "dev" | "deploy";
144
+ createdAt: string;
145
+ projectRoot: string;
146
+ agentName: string;
147
+ target: string;
148
+ task?: string;
149
+ manifestPath: string;
150
+ runtimeProfile: OsaRuntimeProfile;
151
+ requiredRuntime: boolean;
152
+ steps: Array<{
153
+ id: string;
154
+ description: string;
155
+ }>;
156
+ }
157
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/osa/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/osa/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { OsaDiagnostic } from "./types.js";
2
+ export declare function readYamlObject(projectRoot: string, filePath: string, diagnostics: OsaDiagnostic[]): Record<string, unknown>;
3
+ export declare function stringValue(value: unknown): string | undefined;
4
+ export declare function booleanValue(value: unknown): boolean;
5
+ export declare function stringArray(value: unknown): string[];
6
+ export declare function recordValue(value: unknown): Record<string, unknown>;
7
+ //# sourceMappingURL=yaml.d.ts.map