@skaile/workspaces 0.12.2 → 0.13.0

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 (85) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/asset-manager/index.js +6 -8
  3. package/dist/asset-manager/installer.js +3 -4
  4. package/dist/asset-manager/src/index.d.ts +1 -2
  5. package/dist/asset-manager/src/index.d.ts.map +1 -1
  6. package/dist/asset-manager/src/{scaffold/layers/agents.d.ts → install-agent.d.ts} +11 -33
  7. package/dist/asset-manager/src/install-agent.d.ts.map +1 -0
  8. package/dist/base-assets/connectors/deploy.js +2 -2
  9. package/dist/base-assets/connectors/devserver.js +2 -2
  10. package/dist/base-assets/connectors/flow/adapter.js +2 -2
  11. package/dist/base-assets/connectors/flow/run-flow.js +3 -3
  12. package/dist/base-assets/connectors/flow.js +2 -2
  13. package/dist/base-assets/connectors/git.js +2 -2
  14. package/dist/base-assets/connectors/gmail.js +2 -2
  15. package/dist/base-assets/connectors/local.js +2 -2
  16. package/dist/base-assets/connectors/mattermost.js +2 -2
  17. package/dist/base-assets/connectors/memory.js +2 -2
  18. package/dist/base-assets/connectors/minio.js +2 -2
  19. package/dist/base-assets/connectors/postgres.js +2 -2
  20. package/dist/base-assets/connectors/redis.js +2 -2
  21. package/dist/base-assets/connectors/s3.js +2 -2
  22. package/dist/base-assets/connectors/sharepoint.js +2 -2
  23. package/dist/base-assets/connectors/sqlite.js +2 -2
  24. package/dist/base-assets/connectors/static-server.js +2 -2
  25. package/dist/base-assets/connectors/tunnel.js +2 -2
  26. package/dist/base-assets/connectors/webdav.js +2 -2
  27. package/dist/base-assets/connectors/xstate-store.js +2 -2
  28. package/dist/base-assets/connectors/xstate.js +2 -2
  29. package/dist/base-assets/connectors/yjs.js +2 -2
  30. package/dist/{chunk-UTKGPNLV.js → chunk-4DDQKKWX.js} +5 -5
  31. package/dist/{chunk-UTKGPNLV.js.map → chunk-4DDQKKWX.js.map} +1 -1
  32. package/dist/{chunk-DDVKNST3.js → chunk-CYRCPFZ2.js} +2 -2
  33. package/dist/{chunk-DDVKNST3.js.map → chunk-CYRCPFZ2.js.map} +1 -1
  34. package/dist/{chunk-M2NLRGIX.js → chunk-DZG3JD4Y.js} +160 -7
  35. package/dist/chunk-DZG3JD4Y.js.map +1 -0
  36. package/dist/{chunk-Z5PO7ZVP.js → chunk-GN6IYVJN.js} +2 -2
  37. package/dist/{chunk-Z5PO7ZVP.js.map → chunk-GN6IYVJN.js.map} +1 -1
  38. package/dist/{chunk-EARKGKKB.js → chunk-QG4X77V3.js} +6 -6
  39. package/dist/{chunk-EARKGKKB.js.map → chunk-QG4X77V3.js.map} +1 -1
  40. package/dist/cli/index.js +97 -37
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/connectors/config.js +2 -2
  43. package/dist/connectors/index.js +2 -2
  44. package/dist/core/index.js +2 -2
  45. package/dist/runner/index.js +7 -7
  46. package/dist/sdk/asset-manager.js +6 -8
  47. package/dist/sdk/core.js +2 -2
  48. package/dist/sdk/index.js +8 -8
  49. package/dist/sdk/runner.js +7 -7
  50. package/dist/{setup-WZFCLQ2J.js → setup-BQEST4RD.js} +4 -4
  51. package/dist/{setup-WZFCLQ2J.js.map → setup-BQEST4RD.js.map} +1 -1
  52. package/dist/{store-client-BM3IBDPT.js → store-client-CB6CYFXB.js} +4 -4
  53. package/dist/{store-client-BM3IBDPT.js.map → store-client-CB6CYFXB.js.map} +1 -1
  54. package/dist/tui/index.js +7 -7
  55. package/dist/workspace-plugin/adapters/mcp.js +2 -2
  56. package/dist/workspace-plugin/index.js +1 -1
  57. package/package.json +1 -7
  58. package/dist/asset-manager/scaffold.js +0 -18
  59. package/dist/asset-manager/scaffold.js.map +0 -1
  60. package/dist/asset-manager/src/scaffold/index.d.ts +0 -19
  61. package/dist/asset-manager/src/scaffold/index.d.ts.map +0 -1
  62. package/dist/asset-manager/src/scaffold/layers/agents.d.ts.map +0 -1
  63. package/dist/asset-manager/src/scaffold/layers/base.d.ts +0 -17
  64. package/dist/asset-manager/src/scaffold/layers/base.d.ts.map +0 -1
  65. package/dist/asset-manager/src/scaffold/layers/connectors.d.ts +0 -18
  66. package/dist/asset-manager/src/scaffold/layers/connectors.d.ts.map +0 -1
  67. package/dist/asset-manager/src/scaffold/layers/container.d.ts +0 -16
  68. package/dist/asset-manager/src/scaffold/layers/container.d.ts.map +0 -1
  69. package/dist/asset-manager/src/scaffold/layers/driver-target.d.ts +0 -17
  70. package/dist/asset-manager/src/scaffold/layers/driver-target.d.ts.map +0 -1
  71. package/dist/asset-manager/src/scaffold/layers/hooks.d.ts +0 -22
  72. package/dist/asset-manager/src/scaffold/layers/hooks.d.ts.map +0 -1
  73. package/dist/asset-manager/src/scaffold/layers/skills.d.ts +0 -31
  74. package/dist/asset-manager/src/scaffold/layers/skills.d.ts.map +0 -1
  75. package/dist/asset-manager/src/scaffold/layers/template.d.ts +0 -16
  76. package/dist/asset-manager/src/scaffold/layers/template.d.ts.map +0 -1
  77. package/dist/asset-manager/src/scaffold/scaffolder.d.ts +0 -77
  78. package/dist/asset-manager/src/scaffold/scaffolder.d.ts.map +0 -1
  79. package/dist/asset-manager/src/scaffold/types.d.ts +0 -241
  80. package/dist/asset-manager/src/scaffold/types.d.ts.map +0 -1
  81. package/dist/chunk-DIKFRNCS.js +0 -195
  82. package/dist/chunk-DIKFRNCS.js.map +0 -1
  83. package/dist/chunk-M2NLRGIX.js.map +0 -1
  84. package/dist/chunk-YHXBQLXX.js +0 -546
  85. package/dist/chunk-YHXBQLXX.js.map +0 -1
package/dist/cli/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { openCatalogSource, openLibrary, createFullRegistry, openUserLibraryManager } from '../chunk-VAJB2UJ5.js';
3
- import { S, logErr, logOk, colorRef, logInfo, logWarn, kindColorPad, kindColor, formatRelativeTime } from '../chunk-4NDWKA64.js';
3
+ import { logErr, S, logOk, colorRef, logInfo, logWarn, kindColorPad, kindColor, formatRelativeTime } from '../chunk-4NDWKA64.js';
4
4
  import { getStoreConfig, storeFetch, saveStoreTokens, clearStoreTokens, isStoreAuthenticated } from '../chunk-6DEGWPAR.js';
5
5
  import { AI_RESOURCES } from '../chunk-2M3XTMOL.js';
6
6
  import { LocalSecretsProvider } from '../chunk-JDX54X4Y.js';
@@ -8,24 +8,23 @@ import { resolveLibraryDir } from '../chunk-42OQF7UU.js';
8
8
  import '../chunk-R7FOF242.js';
9
9
  import '../chunk-GKIA2PU5.js';
10
10
  import '../chunk-OKRUTSG7.js';
11
- import { runFlow, resumeFlow } from '../chunk-DDVKNST3.js';
11
+ import { runFlow, resumeFlow } from '../chunk-CYRCPFZ2.js';
12
12
  import '../chunk-GCJXPUHG.js';
13
13
  import { validateFlowVersions, parseSkillFrontmatter } from '../chunk-IPUYL6TD.js';
14
- import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-UTKGPNLV.js';
15
- import { buildClaudePluginFiles } from '../chunk-Z5PO7ZVP.js';
14
+ import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-4DDQKKWX.js';
15
+ import { buildClaudePluginFiles } from '../chunk-GN6IYVJN.js';
16
16
  import '../chunk-X5YPJV4N.js';
17
+ import '../chunk-W3UDISS2.js';
18
+ import '../chunk-TDSRLMDB.js';
17
19
  import '../chunk-O7SG5PC2.js';
18
20
  import '../chunk-W2O5LWYU.js';
19
21
  import '../chunk-7PTP3SQJ.js';
20
22
  import '../chunk-PBWMV5GM.js';
21
- import '../chunk-W3UDISS2.js';
22
- import '../chunk-TDSRLMDB.js';
23
23
  import '../chunk-S2OVTCAL.js';
24
24
  import '../chunk-DQWREFRQ.js';
25
25
  import '../chunk-KOVLSBXK.js';
26
26
  import '../chunk-RRVQAE5D.js';
27
27
  import '../chunk-4ACWI5YT.js';
28
- import '../chunk-LV2HPH3C.js';
29
28
  import '../chunk-EAJKY27M.js';
30
29
  import '../chunk-W75ASXH4.js';
31
30
  import '../chunk-6MB7CRME.js';
@@ -33,25 +32,24 @@ import '../chunk-GCRKAFH7.js';
33
32
  import { loadAllFlows } from '../chunk-ICS76R4T.js';
34
33
  import '../chunk-GZWJGNNN.js';
35
34
  import '../chunk-FVTV7M76.js';
36
- import { AssetManager } from '../chunk-EARKGKKB.js';
37
- import '../chunk-M2NLRGIX.js';
38
- import '../chunk-KTBKW2FI.js';
39
- import '../chunk-UQ6LFBPZ.js';
40
- import '../chunk-YHXBQLXX.js';
41
- import '../chunk-DIKFRNCS.js';
35
+ import { AssetManager } from '../chunk-QG4X77V3.js';
36
+ import '../chunk-DZG3JD4Y.js';
42
37
  import { readLock, resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, portableSpawn, portableSpawnSync } from '../chunk-4RUVG5GX.js';
43
- import '../chunk-JKNWJ64A.js';
44
- import { SUPPORTED_DRIVER_TARGETS } from '../chunk-O4JH3KUE.js';
45
38
  import { DRIVER_DEFAULTS } from '../chunk-K5GBV4SA.js';
46
39
  import '../chunk-KLNL7QHN.js';
47
40
  import '../chunk-SVNFQSU3.js';
48
41
  import { resolveSkWorkspaceConfig, resolveAgentDir } from '../chunk-GAZINYCS.js';
49
42
  import '../chunk-ZHLRRT5D.js';
50
43
  import { ASSET_KINDS } from '../chunk-37JKX6D7.js';
44
+ import '../chunk-JKNWJ64A.js';
45
+ import { SUPPORTED_DRIVER_TARGETS } from '../chunk-O4JH3KUE.js';
51
46
  import { openSqlite } from '../chunk-24UIWON4.js';
47
+ import '../chunk-KTBKW2FI.js';
48
+ import '../chunk-UQ6LFBPZ.js';
52
49
  import '../chunk-6FNCZYJY.js';
53
50
  import '../chunk-NELZIQ2E.js';
54
51
  import '../chunk-CGYEHQOX.js';
52
+ import '../chunk-LV2HPH3C.js';
55
53
  import '../chunk-NSBPE2FW.js';
56
54
  import * as fs10 from 'fs';
57
55
  import fs10__default, { readFileSync, existsSync, writeFileSync, statSync } from 'fs';
@@ -314,7 +312,7 @@ function makeSearchCommand() {
314
312
  }
315
313
  if (showStore) {
316
314
  try {
317
- const { getStoreConfig: getStoreConfig2, storeFetch: storeFetch2 } = await import('../store-client-BM3IBDPT.js');
315
+ const { getStoreConfig: getStoreConfig2, storeFetch: storeFetch2 } = await import('../store-client-CB6CYFXB.js');
318
316
  const config = getStoreConfig2();
319
317
  const params = {};
320
318
  if (query) params.q = query;
@@ -5597,30 +5595,91 @@ Advanced:
5597
5595
  `;
5598
5596
  }
5599
5597
  });
5600
- program.command("init [project-dir]").description("Initialize a project directory (defaults to current directory)").option("--template <name>", "Workspace template", "base").option("--framework <name>", "Agent framework", "claude-code").option("--docker", "Enable Docker container generation").option("--skip-install", "Skip skill installation").action(
5598
+ program.command("init [project-dir]").description("Initialize a project directory (defaults to current directory)").option(
5599
+ "--backend <name>",
5600
+ "Coding-agent backend (claude-code | omp | codex)",
5601
+ "claude-code"
5602
+ ).option("--no-git", "Skip git init and .gitignore").action(
5601
5603
  async (projectDir, opts) => {
5602
- projectDir = projectDir ?? ".";
5603
- const { scaffoldWorkspace } = await import('../asset-manager/scaffold.js');
5604
- const resolved = path16__default.resolve(projectDir);
5605
- const projectName = path16__default.basename(resolved);
5606
- const result = await scaffoldWorkspace({
5607
- dest: resolved,
5608
- template: opts.template,
5609
- name: projectName,
5610
- driverTarget: opts.framework,
5611
- docker: opts.docker,
5612
- skipInstall: opts.skipInstall,
5613
- log: (msg) => console.log(` ${S.dim(msg)}`)
5614
- });
5615
- const hasErrors = result.warnings.length > 0 && result.created.length === 0;
5616
- if (result.warnings.length > 0) {
5617
- for (const w of result.warnings) console.log(` ${S.dim("\u26A0")} ${w}`);
5618
- }
5619
- if (hasErrors) {
5620
- logErr("Workspace scaffolding failed");
5604
+ const { execSync: execSync3 } = await import('child_process');
5605
+ const { existsSync: existsSync11, mkdirSync: mkdirSync3, readFileSync: readFileSync5, writeFileSync: writeFileSync2 } = await import('fs');
5606
+ const { stringify } = await import('yaml');
5607
+ const { DRIVER_TARGETS, SUPPORTED_DRIVER_TARGETS: SUPPORTED_DRIVER_TARGETS2 } = await import('../core/index.js');
5608
+ const backend = opts.backend;
5609
+ if (!SUPPORTED_DRIVER_TARGETS2.includes(backend)) {
5610
+ logErr(
5611
+ `Unknown backend "${opts.backend}". Supported: ${SUPPORTED_DRIVER_TARGETS2.join(", ")}`
5612
+ );
5621
5613
  process.exitCode = 1;
5622
5614
  return;
5623
5615
  }
5616
+ const resolved = path16__default.resolve(projectDir ?? ".");
5617
+ const projectName = path16__default.basename(resolved);
5618
+ const created = [];
5619
+ if (!existsSync11(resolved)) {
5620
+ mkdirSync3(resolved, { recursive: true });
5621
+ created.push(".");
5622
+ }
5623
+ const skaileDir = path16__default.join(resolved, ".skaile");
5624
+ if (!existsSync11(skaileDir)) {
5625
+ mkdirSync3(path16__default.join(skaileDir, "sessions"), { recursive: true });
5626
+ created.push(".skaile/");
5627
+ }
5628
+ const settingsPath = path16__default.join(skaileDir, "settings.json");
5629
+ if (!existsSync11(settingsPath)) {
5630
+ writeFileSync2(settingsPath, "{}\n");
5631
+ created.push(".skaile/settings.json");
5632
+ }
5633
+ const wsConfigPath = path16__default.join(resolved, "skaile.yaml");
5634
+ if (!existsSync11(wsConfigPath)) {
5635
+ writeFileSync2(
5636
+ wsConfigPath,
5637
+ stringify({
5638
+ name: projectName,
5639
+ description: `${projectName} AI skill dependencies`,
5640
+ "agent-config": {
5641
+ default: {
5642
+ agent: backend,
5643
+ provider: "anthropic",
5644
+ model: "claude-sonnet-4-6",
5645
+ driver: "claude-sdk",
5646
+ max_turns: 200
5647
+ }
5648
+ },
5649
+ ai_resources: []
5650
+ })
5651
+ );
5652
+ created.push("skaile.yaml");
5653
+ }
5654
+ for (const dir of new Set(Object.values(DRIVER_TARGETS[backend].local))) {
5655
+ const full = path16__default.join(resolved, dir);
5656
+ if (!existsSync11(full)) {
5657
+ mkdirSync3(full, { recursive: true });
5658
+ created.push(`${dir}/`);
5659
+ }
5660
+ }
5661
+ if (opts.git) {
5662
+ const gitignorePath = path16__default.join(resolved, ".gitignore");
5663
+ const entries = ["node_modules/", ".skaile/sessions/", "*.log", ".env", ".env.local"];
5664
+ const existing = existsSync11(gitignorePath) ? readFileSync5(gitignorePath, "utf-8") : "";
5665
+ const have = new Set(existing.split("\n").map((l) => l.trim()));
5666
+ const append = entries.filter((e) => !have.has(e));
5667
+ if (append.length > 0) {
5668
+ const prefix = existing && !existing.endsWith("\n") ? "\n" : "";
5669
+ writeFileSync2(gitignorePath, existing + prefix + `${append.join("\n")}
5670
+ `);
5671
+ if (!existing) created.push(".gitignore");
5672
+ }
5673
+ if (!existsSync11(path16__default.join(resolved, ".git"))) {
5674
+ try {
5675
+ execSync3("git init", { cwd: resolved, stdio: "pipe" });
5676
+ created.push(".git/");
5677
+ } catch (err) {
5678
+ const msg = err instanceof Error ? err.message : String(err);
5679
+ console.log(` ${S.dim(`\u26A0 git init failed: ${msg}`)}`);
5680
+ }
5681
+ }
5682
+ }
5624
5683
  try {
5625
5684
  const fs11 = await import('fs');
5626
5685
  const { userConfigPath, saveConfig, getConfigDefaults } = await import('../library/index.js');
@@ -5637,6 +5696,7 @@ program.command("init [project-dir]").description("Initialize a project director
5637
5696
  ` ${S.dim(`\u26A0 could not bootstrap user config: ${err instanceof Error ? err.message : String(err)}`)}`
5638
5697
  );
5639
5698
  }
5699
+ for (const c of created) console.log(` ${S.dim(`+ ${c}`)}`);
5640
5700
  logOk(`Initialized project at ${S.heading(resolved)}`);
5641
5701
  console.log();
5642
5702
  console.log(S.heading(" Next steps:"));
@@ -5653,7 +5713,7 @@ program.command("init [project-dir]").description("Initialize a project director
5653
5713
  }
5654
5714
  );
5655
5715
  program.command("setup").description("Interactive provider setup wizard").action(async () => {
5656
- const { cmdSetup } = await import('../setup-WZFCLQ2J.js');
5716
+ const { cmdSetup } = await import('../setup-BQEST4RD.js');
5657
5717
  await cmdSetup([], { projectDir: process.cwd() });
5658
5718
  });
5659
5719
  program.addCommand(makeInstallCommand());