spets 0.1.97 → 0.1.99

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 CHANGED
@@ -23,7 +23,6 @@ npx spets start "TODO 앱 만들어줘"
23
23
  # 다른 AI 에이전트 사용
24
24
  npx spets start "task" --agent gemini # Google Gemini CLI
25
25
  npx spets start "task" --agent codex # OpenAI Codex CLI
26
- npx spets start "task" --agent opencode # OpenCode CLI
27
26
 
28
27
  # 상태 확인
29
28
  npx spets status
@@ -202,12 +201,11 @@ Spets supports multiple AI agents via the `--agent` flag:
202
201
  | Claude (default) | `claude` | `--permission-mode bypassPermissions` |
203
202
  | Gemini | `gemini` | `--yolo` |
204
203
  | Codex | `codex` | `exec --full-auto` |
205
- | OpenCode | `opencode` | `run` |
206
204
 
207
205
  ```bash
208
206
  # Set default agent in config
209
207
  # .spets/config.yml
210
- agent: gemini # or claude, codex, opencode
208
+ agent: gemini # or claude, codex
211
209
  ```
212
210
 
213
211
  ## Requirements
@@ -217,7 +215,6 @@ agent: gemini # or claude, codex, opencode
217
215
  - Claude CLI (`claude` command) - default
218
216
  - Gemini CLI (`gemini` command) - `--agent gemini`
219
217
  - Codex CLI (`codex` command) - `--agent codex`
220
- - OpenCode CLI (`opencode` command) - `--agent opencode`
221
218
  - GitHub CLI (`gh`) - GitHub 연동 사용 시
222
219
 
223
220
  ## License
@@ -96,6 +96,24 @@ function clearConfigCache() {
96
96
  configCachePath = null;
97
97
  stepDefinitionCache.clear();
98
98
  }
99
+ function loadStepDefinition(stepName, cwd = process.cwd()) {
100
+ const cacheKey = `${cwd}:${stepName}`;
101
+ if (stepDefinitionCache.has(cacheKey)) {
102
+ return stepDefinitionCache.get(cacheKey);
103
+ }
104
+ const stepDir = join(getStepsDir(cwd), stepName);
105
+ const templatePath = join(stepDir, "template.md");
106
+ const template = existsSync(templatePath) ? readFileSync(templatePath, "utf-8") : void 0;
107
+ const stepDef = {
108
+ name: stepName,
109
+ template
110
+ };
111
+ stepDefinitionCache.set(cacheKey, stepDef);
112
+ return stepDef;
113
+ }
114
+ function loadAllSteps(config, cwd = process.cwd()) {
115
+ return config.steps.map((stepName) => loadStepDefinition(stepName, cwd));
116
+ }
99
117
  function getGitHubConfig(cwd = process.cwd()) {
100
118
  const config = loadConfig(cwd);
101
119
  return config.github;
@@ -109,5 +127,6 @@ export {
109
127
  spetsExists,
110
128
  loadConfig,
111
129
  clearConfigCache,
130
+ loadAllSteps,
112
131
  getGitHubConfig
113
132
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getSpetsDir,
3
3
  getStepsDir
4
- } from "./chunk-BQWHTHA3.js";
4
+ } from "./chunk-2MUV3F53.js";
5
5
 
6
6
  // src/ui/sections/docs.ts
7
7
  import { readFileSync, existsSync, readdirSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getSpetsDir
3
- } from "./chunk-BQWHTHA3.js";
3
+ } from "./chunk-2MUV3F53.js";
4
4
 
5
5
  // src/ui/sections/knowledge.ts
6
6
  import { spawnSync } from "child_process";
@@ -204,6 +204,9 @@ async function runKnowledgeInteractive(cwd = process.cwd()) {
204
204
  }
205
205
 
206
206
  export {
207
+ getKnowledgeDir,
208
+ listKnowledgeFiles,
209
+ loadKnowledgeFile,
207
210
  loadKnowledgeFiles,
208
211
  saveKnowledge,
209
212
  loadGuide,
@@ -2,7 +2,7 @@ import {
2
2
  clearConfigCache,
3
3
  getConfigPath,
4
4
  loadConfig
5
- } from "./chunk-BQWHTHA3.js";
5
+ } from "./chunk-2MUV3F53.js";
6
6
 
7
7
  // src/ui/sections/config.ts
8
8
  import { writeFileSync } from "fs";
@@ -2,7 +2,7 @@ import {
2
2
  getOutputsDir,
3
3
  loadConfig,
4
4
  spetsExists
5
- } from "./chunk-BQWHTHA3.js";
5
+ } from "./chunk-2MUV3F53.js";
6
6
 
7
7
  // src/ui/sections/tasks.ts
8
8
  import { select as select2 } from "@inquirer/prompts";
@@ -363,10 +363,9 @@ var CLIDashboardRenderer = class {
363
363
  lines.push("");
364
364
  lines.push("Verification Scores:");
365
365
  const scores = task.verifyOutput.score;
366
- lines.push(` Requirements: ${scores.requirementsCoverage}%`);
367
- lines.push(` Template: ${scores.templateCompliance}%`);
368
- lines.push(` Consistency: ${scores.consistency}%`);
366
+ lines.push(` Accuracy: ${scores.accuracy}%`);
369
367
  lines.push(` Completeness: ${scores.completeness}%`);
368
+ lines.push(` Consistency: ${scores.consistency}%`);
370
369
  }
371
370
  return lines.join("\n");
372
371
  }
@@ -531,6 +530,7 @@ To resume this task, run:`);
531
530
 
532
531
  export {
533
532
  generateTaskId,
533
+ loadDocument,
534
534
  listTasks,
535
535
  getWorkflowState,
536
536
  loadTaskMetadata,
@@ -3,8 +3,8 @@ import {
3
3
  renderConfigJSON,
4
4
  runConfigInteractive,
5
5
  setConfigField
6
- } from "./chunk-HXNXQAVN.js";
7
- import "./chunk-BQWHTHA3.js";
6
+ } from "./chunk-BCOGSLCX.js";
7
+ import "./chunk-2MUV3F53.js";
8
8
  export {
9
9
  openConfigInEditor,
10
10
  renderConfigJSON,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  renderDocsJSON,
3
3
  runDocsInteractive
4
- } from "./chunk-3OOPOFUK.js";
5
- import "./chunk-BQWHTHA3.js";
4
+ } from "./chunk-3JIHGW47.js";
5
+ import "./chunk-2MUV3F53.js";
6
6
  export {
7
7
  renderDocsJSON,
8
8
  runDocsInteractive