@buzzni/saycode-cli 0.5.0 → 0.5.1

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 (2) hide show
  1. package/index.mjs +54 -50
  2. package/package.json +1 -1
package/index.mjs CHANGED
@@ -40,7 +40,7 @@ function _mergeNamespaces(n, m) {
40
40
  }
41
41
  return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: "Module" }));
42
42
  }
43
- const version$1 = "0.5.0";
43
+ const version$1 = "0.5.1";
44
44
  const manifest = {
45
45
  version: version$1
46
46
  };
@@ -277,7 +277,8 @@ const hubSessionKo = {
277
277
  "hubSession.hint": "같은 프로젝트의 다른 대화가 턴을 끝내거나 입력을 기다리면 이 대화에 메시지로 알려줍니다",
278
278
  "hubSession.newSessionLabel": "이 대화를 프로젝트 허브로 시작",
279
279
  "hubSession.newSessionHint": "다른 대화의 완료·질문을 여기로 모읍니다",
280
- "hubSession.newSessionReplaces": '지금 허브는 "{title}" — 켜면 이 대화로 바뀝니다'
280
+ "hubSession.newSessionReplaces": '지금 허브는 "{title}" — 켜면 이 대화로 바뀝니다',
281
+ "hubSession.newSessionParallelUnavailable": "병렬로 여러 대화를 시작할 때는 허브를 지정할 수 없습니다 — 시작한 뒤 헤더에서 켜세요"
281
282
  };
282
283
  const taskNotificationKo = {
283
284
  "taskNotification.ariaLabel": "백그라운드 작업 알림",
@@ -1559,6 +1560,8 @@ const terminalFontKo = {
1559
1560
  const subagentKo = {
1560
1561
  "subagent.title": "자식 에이전트 {count}개",
1561
1562
  "subagent.open": "자식 대화 열기",
1563
+ "subagent.parent.link": "부모 에이전트로 이동: {title}",
1564
+ "subagent.parent.untitled": "제목 없는 대화",
1562
1565
  "subagent.status.responding": "응답 중",
1563
1566
  "subagent.status.waiting": "입력 대기",
1564
1567
  "subagent.status.completed": "완료",
@@ -4037,6 +4040,7 @@ const ko = {
4037
4040
  "security.patDeleteFailed": "GitHub PAT를 삭제하지 못했습니다.",
4038
4041
  // Module-level helper errors (non-hook)
4039
4042
  "file.readFailed": "파일을 읽지 못했습니다.",
4043
+ "file.linkOutsideScope": "이 프로젝트가 열 수 있는 폴더 밖의 경로입니다: {path}",
4040
4044
  "session.loadMessagesFailed": "대화 메시지를 불러올 수 없습니다.",
4041
4045
  "session.sendToSessionFailed": "대화에 메시지를 보낼 수 없습니다.",
4042
4046
  "session.sendBlockedAccountKeyLocked": "이 대화는 계정 키로 잠겨 있습니다. 잠금을 해제한 뒤 다시 시도하세요.",
@@ -8845,6 +8849,53 @@ function sessionFilesystemScopePatch(metadata, existing) {
8845
8849
  }
8846
8850
  return { filesystemScope: parseSessionFilesystemScope(metadata.filesystemScope) };
8847
8851
  }
8852
+ const claudeEffortOptions = [
8853
+ { key: "low", label: "Low" },
8854
+ { key: "medium", label: "Medium" },
8855
+ { key: "high", label: "High" },
8856
+ { key: "max", label: "Max" }
8857
+ ];
8858
+ const claudeFableEffortOptions = [
8859
+ { key: "low", label: "Low" },
8860
+ { key: "medium", label: "Medium" },
8861
+ { key: "high", label: "High" },
8862
+ { key: "xhigh", label: "Xhigh" },
8863
+ { key: "max", label: "Max" }
8864
+ ];
8865
+ const codexEffortOptions = [
8866
+ { key: "low", label: "Low" },
8867
+ { key: "medium", label: "Medium" },
8868
+ { key: "high", label: "High" },
8869
+ { key: "xhigh", label: "Xhigh" }
8870
+ ];
8871
+ const codexMaxEffortOptions = [
8872
+ ...codexEffortOptions,
8873
+ { key: "max", label: "Max" }
8874
+ ];
8875
+ const codexUltraEffortOptions = [
8876
+ ...codexMaxEffortOptions,
8877
+ { key: "ultra", label: "Ultra" }
8878
+ ];
8879
+ function getEffortOptionsForAgent(agent, model) {
8880
+ if (model === "default") return [];
8881
+ if (agent === "codex") {
8882
+ if (model === "gpt-6-astra" || model === "gpt-5.6-sol" || model === "gpt-5.6-terra") return codexUltraEffortOptions;
8883
+ if (model === "gpt-5.6-luna") return codexMaxEffortOptions;
8884
+ return codexEffortOptions;
8885
+ }
8886
+ if (agent === "gemini" || agent === "opencode" || agent === "grok") return [];
8887
+ if (model === "claude-fable-5-1") return claudeFableEffortOptions;
8888
+ return claudeEffortOptions;
8889
+ }
8890
+ function defaultEffortForAgent(agent, model) {
8891
+ const options = getEffortOptionsForAgent(agent, model);
8892
+ if (options.length === 0) return null;
8893
+ if (agent === "codex") {
8894
+ if (model === "gpt-5.6-sol") return "low";
8895
+ if (model === "gpt-6-astra" || model === "gpt-5.6-terra" || model === "gpt-5.6-luna") return "medium";
8896
+ }
8897
+ return options.some((option) => option.key === "high") ? "high" : options[options.length - 1].key;
8898
+ }
8848
8899
  function normalizeEpochMilliseconds(value2) {
8849
8900
  const abs = Math.abs(value2);
8850
8901
  if (abs >= 1e15) return value2 / 1e3;
@@ -21739,53 +21790,6 @@ function chatStartupHints(supportsQueuedInput = false) {
21739
21790
  "At the prompt: /model · /effort · /voice to dictate · /detach to leave running · /exit to leave.\n"
21740
21791
  ];
21741
21792
  }
21742
- const claudeEffortOptions = [
21743
- { key: "low", label: "Low" },
21744
- { key: "medium", label: "Medium" },
21745
- { key: "high", label: "High" },
21746
- { key: "max", label: "Max" }
21747
- ];
21748
- const claudeFableEffortOptions = [
21749
- { key: "low", label: "Low" },
21750
- { key: "medium", label: "Medium" },
21751
- { key: "high", label: "High" },
21752
- { key: "xhigh", label: "Xhigh" },
21753
- { key: "max", label: "Max" }
21754
- ];
21755
- const codexEffortOptions = [
21756
- { key: "low", label: "Low" },
21757
- { key: "medium", label: "Medium" },
21758
- { key: "high", label: "High" },
21759
- { key: "xhigh", label: "Xhigh" }
21760
- ];
21761
- const codexMaxEffortOptions = [
21762
- ...codexEffortOptions,
21763
- { key: "max", label: "Max" }
21764
- ];
21765
- const codexUltraEffortOptions = [
21766
- ...codexMaxEffortOptions,
21767
- { key: "ultra", label: "Ultra" }
21768
- ];
21769
- function getEffortOptionsForAgent(agent, model) {
21770
- if (model === "default") return [];
21771
- if (agent === "codex") {
21772
- if (model === "gpt-6-astra" || model === "gpt-5.6-sol" || model === "gpt-5.6-terra") return codexUltraEffortOptions;
21773
- if (model === "gpt-5.6-luna") return codexMaxEffortOptions;
21774
- return codexEffortOptions;
21775
- }
21776
- if (agent === "gemini" || agent === "opencode" || agent === "grok") return [];
21777
- if (model === "claude-fable-5-1") return claudeFableEffortOptions;
21778
- return claudeEffortOptions;
21779
- }
21780
- function defaultEffortForAgent(agent, model) {
21781
- const options = getEffortOptionsForAgent(agent, model);
21782
- if (options.length === 0) return null;
21783
- if (agent === "codex") {
21784
- if (model === "gpt-5.6-sol") return "low";
21785
- if (model === "gpt-6-astra" || model === "gpt-5.6-terra" || model === "gpt-5.6-luna") return "medium";
21786
- }
21787
- return options.some((option) => option.key === "high") ? "high" : options[options.length - 1].key;
21788
- }
21789
21793
  const newSessionAgents = [
21790
21794
  { id: "claude", label: "Claude", provider: "Anthropic" },
21791
21795
  { id: "codex", label: "Codex", provider: "OpenAI" },
@@ -21924,8 +21928,8 @@ function buildLiveChatUserMessage(text2, settings) {
21924
21928
  return {
21925
21929
  role: "user",
21926
21930
  content: { type: "text", text: text2 },
21931
+ // permissionMode 는 싣지 않는다 — 부재가 곧 "현재 모드 유지" (specs/delegated-session-permission-mode).
21927
21932
  meta: {
21928
- permissionMode: "default",
21929
21933
  ...modelOptions.model ? { model: modelOptions.model } : {},
21930
21934
  ...modelOptions.effort ? { effort: modelOptions.effort } : {}
21931
21935
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buzzni/saycode-cli",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Drive Saycode sessions across your machines from the terminal.",
5
5
  "type": "module",
6
6
  "bin": {