@kenkaiiii/ggcoder 4.3.162 → 4.3.163

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.
@@ -884,11 +884,11 @@ Report which are present, missing, or configured below the pack's strictness rec
884
884
 
885
885
  ### 5. Style pack alignment
886
886
 
887
- "Active style packs" refers specifically to the **Language Style Packs** section in your system prompt (e.g. TypeScript, Python, Go). It does **NOT** include Skills (\`.gg/skills/\`) or any other extension category. If the Language Style Packs section is absent or empty, **skip this entire section entirely** — do not substitute Skills or any other concept.
887
+ "Active style packs" refers specifically to the per-language sub-sections inside the **Language Style Packs** section in your system prompt (e.g. \`### TypeScript\`, \`### Python\`, \`### Go\`). It does **NOT** include the cross-cutting \`### Agent-Written Code\` preamble that sits above them — those are guidelines for how code is *written*, not project-scaffolding to audit. It also does **NOT** include Skills (\`.gg/skills/\`) or any other extension category. If the Language Style Packs section is absent or empty, **skip this entire section entirely** — do not substitute Skills or any other concept.
888
888
 
889
- When Language Style Packs are present, compare the project against each pack's **Tooling** bullet and the system prompt's **Verification** commands:
890
- - Tooling: which strict-mode flags or lint-rule presets does the pack recommend that the project is missing? (e.g. \`tsconfig\` missing \`noUncheckedIndexedAccess\`, \`pyproject\` missing \`[tool.ruff]\`).
891
- - Dependencies: list which pack-mentioned libs (Zod, neverthrow, Pydantic, thiserror, etc.) the project uses, has an equivalent for, or lacks. **Observation only — no recommendation to install.**
889
+ When per-language packs are present, compare the project against each pack's **Tooling** bullet and the system prompt's **Verification** commands:
890
+ - Tooling: which strict-mode flags or lint-rule presets does the pack recommend that the project is missing? (e.g. \`tsconfig\` missing \`noUncheckedIndexedAccess\`, \`pyproject\` missing \`[tool.ruff]\`, Go project missing \`golangci-lint\` config).
891
+ - Dependencies: list which pack-mentioned libs (Zod, Pydantic, thiserror, anyhow, etc.) the project uses, has an equivalent for, or lacks. **Observation only — no recommendation to install.**
892
892
 
893
893
  ### 6. Documentation hygiene
894
894
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/style-packs/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAepF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/style-packs/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBpF"}
@@ -45,6 +45,26 @@ export function renderStylePacksSection(active, cwd) {
45
45
  return (`## Language Style Packs\n\n` +
46
46
  `Conventions for new code in each active language. Library names below are ` +
47
47
  `illustrative — use whatever the project already imports.\n\n` +
48
+ `${AGENT_WRITTEN_CODE_PREAMBLE}\n\n` +
48
49
  parts.join("\n\n"));
49
50
  }
51
+ /**
52
+ * Cross-cutting rules that apply to every language pack. These are agent-native
53
+ * concerns (determinism, observability, no hidden state, output stability) that
54
+ * matter more for code written *by* and *read by* agents than for human-only
55
+ * codebases. Kept terse — every line is a load-bearing constraint, not advice.
56
+ *
57
+ * Lives in the system prompt above the per-language packs so the model reads
58
+ * universal rules first, then specializes per language.
59
+ */
60
+ const AGENT_WRITTEN_CODE_PREAMBLE = `### Agent-Written Code (cross-cutting)
61
+
62
+ Universal rules — apply to every language below.
63
+
64
+ - **Observability at boundaries.** Structured logging (key/value pairs, not string interpolation) at every external I/O — HTTP calls, DB queries, file reads, subprocess runs. Log inputs, outcome, and elapsed time. Use the language's stdlib or canonical structured logger (\`log/slog\`, \`tracing\`, \`structlog\`, Pino, \`Microsoft.Extensions.Logging\`, etc.). Never leave \`console.log\`/\`print\`/\`fmt.Println\` debugging in committed code.
65
+ - **Determinism by default.** Sort before iterating maps/sets where output order is observable. Stable IDs (UUIDv7, ULID, or content hash) — never \`random + timestamp\`. Never read wall-clock time inside pure logic; inject a clock at the boundary. Use canonical-form serialization (sorted keys) for anything that gets compared, hashed, persisted, or diffed.
66
+ - **No hidden state.** No module-level mutables, no global singletons as the primary state container, no implicit DI through container magic. Pass dependencies explicitly through function signatures or constructors. State that escapes the signature is invisible at the call site, which means invisible to the agent reading it later.
67
+ - **Local verifiability.** A function should be small enough that its correctness is confirmable by reading it plus its direct callers — not by tracing through four layers of indirection. Prefer composing small pure functions over deep class hierarchies. The agent will re-read this code; optimize for that.
68
+ - **Tests pin behavior, not implementation.** Arrange-Act-Assert with each phase visible. No shared mutable fixtures across tests. Each test runnable independently in any order. Table-driven when there's a clear input→output mapping. A test that breaks on a refactor without a behavior change is a bad test.
69
+ - **Fail loudly at boundaries, handle locally inside.** Validate untrusted input the moment it crosses into your code (per the per-language Data rules). Once validated, interior code trusts the types. Errors as values for the local-handling half — see each pack's Errors rule.`;
50
70
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/style-packs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAc,EAAE,GAAW;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAuB,EAAE,GAAW;IAC1E,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO,CACL,6BAA6B;QAC7B,4EAA4E;QAC5E,8DAA8D;QAC9D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CACnB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/style-packs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAc,EAAE,GAAW;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAuB,EAAE,GAAW;IAC1E,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO,CACL,6BAA6B;QAC7B,4EAA4E;QAC5E,8DAA8D;QAC9D,GAAG,2BAA2B,MAAM;QACpC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,2BAA2B,GAAG;;;;;;;;;qRASiP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"packs.d.ts","sourceRoot":"","sources":["../../../src/core/style-packs/packs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CA2OtD,CAAC"}
1
+ {"version":3,"file":"packs.d.ts","sourceRoot":"","sources":["../../../src/core/style-packs/packs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CA4OtD,CAAC"}
@@ -16,16 +16,16 @@
16
16
  export const PACKS = {
17
17
  typescript: `### TypeScript
18
18
 
19
- - **Tooling.** \`tsc --strict\` always. Enable \`noUncheckedIndexedAccess\`, \`exactOptionalPropertyTypes\`, \`noImplicitOverride\`. Prettier + \`@typescript-eslint/strict-type-checked\`.
20
- - **Types.** Explicit return types on every exported function and async function. Inference is fine inside function bodies. Never use \`any\`. Never use \`as\` casts except \`as const\`. Never use the non-null \`!\` operator. Ban the \`Function\` type and \`Object\` type.
19
+ - **Tooling.** \`tsc --strict\` always. Enable \`noUncheckedIndexedAccess\`, \`exactOptionalPropertyTypes\`, \`noImplicitOverride\`. **Biome** (single Rust binary — format + lint) as the default for new projects; fall back to Prettier + \`@typescript-eslint/strict-type-checked\` only when Biome's rule coverage is insufficient. Don't run both in one project.
20
+ - **Types.** Explicit return types on every exported function and async function. Inference is fine inside function bodies. Never use \`any\`. Prefer \`satisfies\` over \`as\` for narrowing literal-typed values; reserve \`as\` for genuinely unavoidable casts (and \`as const\`). Never use the non-null \`!\` operator. Branded types (\`type UserId = string & { __brand: "UserId" }\`) for domain primitives. Ban the \`Function\` type and \`Object\` type.
21
21
  - **Data.** Validate every external boundary (HTTP, env, file, IPC) with Zod or Valibot. Never trust untyped JSON. Discriminated unions over class hierarchies. \`Readonly<T>\` for immutable shapes.
22
- - **Errors.** Use \`Result<T, E>\` (e.g. \`neverthrow\`) for expected failures network errors, validation failures, missing records. Reserve \`throw\` for truly unrecoverable bugs (impossible states, assertion failures). Never throw for control flow.
22
+ - **Errors.** Zero-dep discriminated-union returns for expected failures: \`type Result<T, E> = { ok: true; value: T } | { ok: false; error: E }\`. Type-narrowable, no runtime dependency, model-friendly. Reserve \`throw\` for truly unrecoverable bugs (impossible states, assertion failures). Never throw for control flow.
23
23
  - **Modules.** Named exports only — no \`export default\`. One concept per file. No barrel files (\`index.ts\` re-exports). Feature folders (\`users/\`), not layer folders (\`controllers/services/repos/\`).
24
- - **Async.** \`async/await\` only — no \`.then\` chains. Always await or explicitly return promises. No floating promises.
24
+ - **Async.** \`async/await\` only — no \`.then\` chains. Always await or explicitly return promises. No floating promises. Pass \`AbortSignal\` through every async function that does I/O or long work; respect it.
25
25
  - **Avoid.** \`enum\` (use \`as const\` objects + \`typeof\` unions). Class inheritance beyond one level. \`namespace\`. Decorators outside framework-required slots. Conditional/mapped types in app code (keep in \`types.ts\` if unavoidable).`,
26
26
  javascript: `### JavaScript
27
27
 
28
- - **Tooling.** ESM only (\`"type": "module"\`). Prettier + ESLint with \`eslint:recommended\` and \`eslint-plugin-import\`. If types matter at all, use TypeScript instead of JSDoc.
28
+ - **Tooling.** ESM only (\`"type": "module"\`). **Biome** (single Rust binary — format + lint) as the default for new projects; or Prettier + ESLint with \`eslint:recommended\` and \`eslint-plugin-import\`. Don't run both in one project. If types matter at all, use TypeScript instead of JSDoc.
29
29
  - **Types.** If you must stay on JS, annotate exported functions with JSDoc \`@param\`/\`@returns\` so the LSP can infer. Otherwise treat the project as untyped and validate aggressively at boundaries.
30
30
  - **Data.** Validate every external boundary with Zod. Use plain objects + factory functions, not classes, for data shapes. \`Object.freeze\` for constants.
31
31
  - **Errors.** Return \`{ ok: true, value } | { ok: false, error }\` discriminated objects for expected failures. \`throw\` only for unrecoverable bugs. Always handle promise rejections.
@@ -47,6 +47,7 @@ export const PACKS = {
47
47
  - **Errors.** \`if err != nil { return fmt.Errorf("doing X: %w", err) }\` — wrap with context at every layer. Define sentinel errors as \`var ErrXxx = errors.New("xxx")\` at package level. Use \`errors.Is\`/\`errors.As\` for matching. Never \`panic\` outside \`init\` or truly impossible states.
48
48
  - **Types.** Small interfaces defined at the consumer, not the producer (\`io.Reader\`-style, 1-3 methods). Accept interfaces, return structs. No empty interface \`any\` except at adapter boundaries.
49
49
  - **Concurrency.** \`context.Context\` is the first parameter on every I/O or long-running function — always propagate, never \`context.Background()\` deep in a call chain. Goroutines launched only with clear lifecycle ownership (\`errgroup\`, \`sync.WaitGroup\`, or paired \`done\` channel).
50
+ - **Logging.** \`log/slog\` (stdlib, Go 1.21+) for structured logging — never \`log\`, \`fmt.Println\`, or third-party loggers in new code. Pass a \`*slog.Logger\` via context or as a struct field on services. Use \`slog.With(...)\` to attach request-scoped attrs.
50
51
  - **Structure.** Flat package layout by feature (\`user/\`, \`order/\`), not by layer. \`cmd/<binary>/main.go\` for executables. \`internal/\` for packages not meant to be imported externally. No \`utils\` or \`common\` packages.
51
52
  - **Generics.** Use only when they remove real duplication. Concrete types are the default.
52
53
  - **Avoid.** \`init()\` functions with side effects. Global mutable state. Returning bare \`error\` without wrapping context. Naked returns in functions longer than 5 lines. \`interface{}\` in new code.`,
@@ -1 +1 @@
1
- {"version":3,"file":"packs.js","sourceRoot":"","sources":["../../../src/core/style-packs/packs.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,KAAK,GAAyC;IACzD,UAAU,EAAE;;;;;;;;kPAQoO;IAEhP,UAAU,EAAE;;;;;;;;uIAQyH;IAErI,MAAM,EAAE;;;;;;;;wQAQ8P;IAEtQ,EAAE,EAAE;;;;;;;;2MAQqM;IAEzM,IAAI,EAAE;;;;;;;;gNAQwM;IAE9M,IAAI,EAAE;;;;;;;qMAO6L;IAEnM,MAAM,EAAE;;;;;;;;iKAQuJ;IAE/J,MAAM,EAAE;;;;;;;;kLAQwK;IAEhL,GAAG,EAAE;;;;;;;;6TAQsT;IAE3T,CAAC,EAAE;;;;;;;;6KAQwK;IAE3K,IAAI,EAAE;;;;;;;6OAOqO;IAE3O,GAAG,EAAE;;;;;;;uNAOgN;IAErN,KAAK,EAAE;;;;;;;;yMAQgM;IAEvM,KAAK,EAAE;;;;;;;sKAO6J;IAEpK,MAAM,EAAE;;;;;;;8NAOoN;IAE5N,OAAO,EAAE;;;;;;;6KAOkK;IAE3K,KAAK,EAAE;;;;;;;mOAO0N;IAEjO,MAAM,EAAE;;;;;;;2NAOiN;IAEzN,OAAO,EAAE;;;;;;;sPAO2O;IAEpP,IAAI,EAAE;;;;;;;2KAOmK;IAEzK,GAAG,EAAE;;;;;;;2MAOoM;IAEzM,GAAG,EAAE;;;;;;;uLAOgL;IAErL,GAAG,EAAE;;;;;;;2PAOoP;IAEzP,IAAI,EAAE;;;;;;;2LAOmL;IAEzL,SAAS,EAAE;;;;;;;iSAOoR;CAChS,CAAC"}
1
+ {"version":3,"file":"packs.js","sourceRoot":"","sources":["../../../src/core/style-packs/packs.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,KAAK,GAAyC;IACzD,UAAU,EAAE;;;;;;;;kPAQoO;IAEhP,UAAU,EAAE;;;;;;;;uIAQyH;IAErI,MAAM,EAAE;;;;;;;;wQAQ8P;IAEtQ,EAAE,EAAE;;;;;;;;;2MASqM;IAEzM,IAAI,EAAE;;;;;;;;gNAQwM;IAE9M,IAAI,EAAE;;;;;;;qMAO6L;IAEnM,MAAM,EAAE;;;;;;;;iKAQuJ;IAE/J,MAAM,EAAE;;;;;;;;kLAQwK;IAEhL,GAAG,EAAE;;;;;;;;6TAQsT;IAE3T,CAAC,EAAE;;;;;;;;6KAQwK;IAE3K,IAAI,EAAE;;;;;;;6OAOqO;IAE3O,GAAG,EAAE;;;;;;;uNAOgN;IAErN,KAAK,EAAE;;;;;;;;yMAQgM;IAEvM,KAAK,EAAE;;;;;;;sKAO6J;IAEpK,MAAM,EAAE;;;;;;;8NAOoN;IAE5N,OAAO,EAAE;;;;;;;6KAOkK;IAE3K,KAAK,EAAE;;;;;;;mOAO0N;IAEjO,MAAM,EAAE;;;;;;;2NAOiN;IAEzN,OAAO,EAAE;;;;;;;sPAO2O;IAEpP,IAAI,EAAE;;;;;;;2KAOmK;IAEzK,GAAG,EAAE;;;;;;;2MAOoM;IAEzM,GAAG,EAAE;;;;;;;uLAOgL;IAErL,GAAG,EAAE;;;;;;;2PAOoP;IAEzP,IAAI,EAAE;;;;;;;2LAOmL;IAEzL,SAAS,EAAE;;;;;;;iSAOoR;CAChS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenkaiiii/ggcoder",
3
- "version": "4.3.162",
3
+ "version": "4.3.163",
4
4
  "type": "module",
5
5
  "description": "CLI coding agent with OAuth authentication for Anthropic and OpenAI",
6
6
  "license": "MIT",
@@ -78,10 +78,10 @@
78
78
  "string-width": "^8.2.0",
79
79
  "wrap-ansi": "^10.0.0",
80
80
  "zod": "^4.4.3",
81
- "@kenkaiiii/gg-ai": "4.3.162",
82
- "@kenkaiiii/ggcoder-eyes": "0.1.2",
81
+ "@kenkaiiii/gg-agent": "4.3.163",
83
82
  "@kenkaiiii/gg-pixel": "4.3.95",
84
- "@kenkaiiii/gg-agent": "4.3.162"
83
+ "@kenkaiiii/gg-ai": "4.3.163",
84
+ "@kenkaiiii/ggcoder-eyes": "0.1.2"
85
85
  },
86
86
  "optionalDependencies": {
87
87
  "@huggingface/transformers": "^3.6.0",