tandem-mode 0.1.4 → 0.2.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 (51) hide show
  1. package/README.md +8 -1
  2. package/README.sr.md +8 -1
  3. package/dist/agent/clipboard.js +4 -5
  4. package/dist/agent/clipboard.js.map +1 -1
  5. package/dist/agent/loop.js +2 -2
  6. package/dist/agent/loop.js.map +1 -1
  7. package/dist/agent/tools/edit.js +11 -11
  8. package/dist/agent/tools/edit.js.map +1 -1
  9. package/dist/agent/tools/gitDiff.js +6 -6
  10. package/dist/agent/tools/gitDiff.js.map +1 -1
  11. package/dist/agent/tools/listDir.js +4 -4
  12. package/dist/agent/tools/listDir.js.map +1 -1
  13. package/dist/agent/tools/readFile.js +7 -7
  14. package/dist/agent/tools/readFile.js.map +1 -1
  15. package/dist/agent/tools/search.js +10 -10
  16. package/dist/agent/tools/search.js.map +1 -1
  17. package/dist/agent/tools/shell.js +9 -9
  18. package/dist/agent/tools/shell.js.map +1 -1
  19. package/dist/agent/tools/viewImage.js +4 -4
  20. package/dist/agent/tools/viewImage.js.map +1 -1
  21. package/dist/agent/tools/webSearch.js +3 -3
  22. package/dist/agent/tools/webSearch.js.map +1 -1
  23. package/dist/cli.js +36 -22
  24. package/dist/cli.js.map +1 -1
  25. package/dist/config/credentials.js +5 -5
  26. package/dist/config/credentials.js.map +1 -1
  27. package/dist/config/schema.js.map +1 -1
  28. package/dist/deepseek/vision.js +4 -4
  29. package/dist/deepseek/vision.js.map +1 -1
  30. package/dist/deepseek/webSearch.js +1 -1
  31. package/dist/i18n/en.js +86 -0
  32. package/dist/i18n/en.js.map +1 -0
  33. package/dist/i18n/index.js +23 -0
  34. package/dist/i18n/index.js.map +1 -0
  35. package/dist/i18n/sr.js +84 -0
  36. package/dist/i18n/sr.js.map +1 -0
  37. package/dist/orchestrator/orchestrate.js +35 -19
  38. package/dist/orchestrator/orchestrate.js.map +1 -1
  39. package/dist/orchestrator/planner.js +10 -10
  40. package/dist/orchestrator/planner.js.map +1 -1
  41. package/dist/orchestrator/repoMap.js +1 -1
  42. package/dist/orchestrator/repoMap.js.map +1 -1
  43. package/dist/orchestrator/reviewer.js +20 -12
  44. package/dist/orchestrator/reviewer.js.map +1 -1
  45. package/dist/repl/commands.js +24 -37
  46. package/dist/repl/commands.js.map +1 -1
  47. package/dist/repl/system-prompt.js +13 -11
  48. package/dist/repl/system-prompt.js.map +1 -1
  49. package/dist/repl/wizard.js +17 -9
  50. package/dist/repl/wizard.js.map +1 -1
  51. package/package.json +1 -1
@@ -1,23 +1,31 @@
1
1
  import { password, select } from "@inquirer/prompts";
2
2
  import { setStoredApiKey } from "../config/credentials.js";
3
3
  import { saveGlobalConfig } from "../config/store.js";
4
+ import { LANGUAGES, setLanguage, t } from "../i18n/index.js";
4
5
  export async function runFirstRunWizard() {
5
- console.log("Prvo pokretanje — potreban je DeepSeek API ključ.\n");
6
+ // Bilingual on purpose: asked before the language is known.
7
+ const language = await select({
8
+ message: "Language / Jezik:",
9
+ choices: LANGUAGES.map((value) => ({ name: value === "en" ? "English" : "Srpski", value })),
10
+ default: "en",
11
+ });
12
+ setLanguage(language);
13
+ console.log(t("wizardIntro"));
6
14
  const apiKey = await password({
7
- message: "DeepSeek API ključ:",
15
+ message: t("wizardApiKey"),
8
16
  mask: "*",
9
- validate: (value) => (value.trim().length > 0 ? true : "Ključ ne može biti prazan."),
17
+ validate: (value) => (value.trim().length > 0 ? true : t("wizardKeyEmpty")),
10
18
  });
11
19
  const defaultModel = await select({
12
- message: "Podrazumevani model:",
20
+ message: t("wizardModel"),
13
21
  choices: [
14
- { name: "deepseek-v4-pro (jači, skuplji)", value: "deepseek-v4-pro" },
15
- { name: "deepseek-v4-flash (brži, jeftiniji)", value: "deepseek-v4-flash" },
22
+ { name: t("wizardModelPro"), value: "deepseek-v4-pro" },
23
+ { name: t("wizardModelFlash"), value: "deepseek-v4-flash" },
16
24
  ],
17
25
  default: "deepseek-v4-pro",
18
26
  });
19
27
  const defaultReasoningEffort = await select({
20
- message: "Podrazumevani reasoning effort:",
28
+ message: t("wizardEffort"),
21
29
  choices: [
22
30
  { name: "low", value: "low" },
23
31
  { name: "high", value: "high" },
@@ -26,9 +34,9 @@ export async function runFirstRunWizard() {
26
34
  default: "high",
27
35
  });
28
36
  await setStoredApiKey(apiKey.trim());
29
- const config = { defaultModel, defaultReasoningEffort };
37
+ const config = { defaultModel, defaultReasoningEffort, language };
30
38
  await saveGlobalConfig(config);
31
- console.log("\nSačuvano — ključ je u OS credential store-u, podešavanja u ~/.tandem/config.json.\n");
39
+ console.log(t("wizardSaved"));
32
40
  return config;
33
41
  }
34
42
  //# sourceMappingURL=wizard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/repl/wizard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;QAC5B,OAAO,EAAE,qBAAqB;QAC9B,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC;KACrF,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,MAAM,CAA0C;QACzE,OAAO,EAAE,sBAAsB;QAC/B,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACrE,EAAE,IAAI,EAAE,qCAAqC,EAAE,KAAK,EAAE,mBAAmB,EAAE;SAC5E;QACD,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,MAAM,MAAM,CAAyB;QAClE,OAAO,EAAE,iCAAiC;QAC1C,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;YAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAC/B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;SAC9B;QACD,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAiB,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACtE,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE/B,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;IACrG,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/repl/wizard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAiB,MAAM,kBAAkB,CAAC;AAE5E,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAW;QACtC,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3F,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;QAC5B,OAAO,EAAE,CAAC,CAAC,cAAc,CAAC;QAC1B,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;KAC5E,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,MAAM,CAA0C;QACzE,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC;QACzB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACvD,EAAE,IAAI,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE;SAC5D;QACD,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,MAAM,MAAM,CAAyB;QAClE,OAAO,EAAE,CAAC,CAAC,cAAc,CAAC;QAC1B,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;YAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAC/B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;SAC9B;QACD,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAiB,EAAE,YAAY,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAAC;IAChF,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tandem-mode",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "description": "DeepSeek coding CLI — planner/worker/reviewer agentic loop",
5
5
  "type": "module",
6
6
  "license": "MIT",