pipcode 0.0.0-stage → 2.1.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.
- package/LICENSE +47 -0
- package/README.md +44 -2
- package/auto.js +40 -0
- package/bin/setup.js +31 -0
- package/bin/teardown.js +18 -0
- package/grammars/tree-sitter-javascript.wasm +0 -0
- package/grammars/tree-sitter-python.wasm +0 -0
- package/grammars/tree-sitter-tsx.wasm +0 -0
- package/grammars/tree-sitter-typescript.wasm +0 -0
- package/index.js +39 -0
- package/package.json +45 -4
- package/src/auth/auth-email.js +32 -0
- package/src/auth/trusted-key.js +13 -0
- package/src/auto/adjust.js +41 -0
- package/src/auto/amnesia.js +37 -0
- package/src/auto/anonymize-tasks.js +13 -0
- package/src/auto/apply-diff-backed.js +10 -0
- package/src/auto/apply-diff.js +60 -0
- package/src/auto/ask-guard.js +16 -0
- package/src/auto/ask-pause.js +36 -0
- package/src/auto/ask-protocol.js +6 -0
- package/src/auto/ask-user.js +29 -0
- package/src/auto/backup-touched.js +30 -0
- package/src/auto/budget.js +52 -0
- package/src/auto/cancel.js +20 -0
- package/src/auto/constants.js +30 -0
- package/src/auto/crypto-util.js +17 -0
- package/src/auto/decompose.js +47 -0
- package/src/auto/diff.js +19 -0
- package/src/auto/fs-list.js +34 -0
- package/src/auto/git-base.js +16 -0
- package/src/auto/git-init.js +39 -0
- package/src/auto/git-restore.js +34 -0
- package/src/auto/git-scope.js +10 -0
- package/src/auto/git.js +38 -0
- package/src/auto/mission-docs.js +29 -0
- package/src/auto/mission-line.js +22 -0
- package/src/auto/node-check.js +30 -0
- package/src/auto/observe.js +23 -0
- package/src/auto/orchestrator.js +30 -0
- package/src/auto/patch-ask.js +16 -0
- package/src/auto/paths.js +18 -0
- package/src/auto/plan.js +42 -0
- package/src/auto/pricing.js +49 -0
- package/src/auto/project-files.js +12 -0
- package/src/auto/prompts.js +24 -0
- package/src/auto/quote-format.js +33 -0
- package/src/auto/retry.js +40 -0
- package/src/auto/run-lock.js +40 -0
- package/src/auto/run-loop.js +38 -0
- package/src/auto/run.js +49 -0
- package/src/auto/snapshot-gate.js +51 -0
- package/src/auto/snapshot-paths.js +33 -0
- package/src/auto/snapshot-restore.js +59 -0
- package/src/auto/snapshot-take.js +30 -0
- package/src/auto/state.js +52 -0
- package/src/auto/step-commit.js +46 -0
- package/src/auto/step-green.js +38 -0
- package/src/auto/step-loop.js +56 -0
- package/src/auto/step-prep.js +60 -0
- package/src/auto/step-qa.js +53 -0
- package/src/auto/step.js +30 -0
- package/src/auto/stop-options.js +34 -0
- package/src/auto/stop-report.js +17 -0
- package/src/auto/tasks.js +44 -0
- package/src/cli/apply-loop.js +29 -0
- package/src/cli/apply-toml.js +26 -0
- package/src/cli/apply.js +45 -0
- package/src/cli/ask-prepare.js +37 -0
- package/src/cli/auth-branches.js +53 -0
- package/src/cli/auth-interactive.js +46 -0
- package/src/cli/auto-ask.js +33 -0
- package/src/cli/auto-audit.js +16 -0
- package/src/cli/auto-cli.js +46 -0
- package/src/cli/auto-consent.js +22 -0
- package/src/cli/auto-flags.js +39 -0
- package/src/cli/auto-gate-session.js +27 -0
- package/src/cli/auto-gate.js +34 -0
- package/src/cli/auto-loader.js +17 -0
- package/src/cli/auto-plan.js +36 -0
- package/src/cli/auto-preflight.js +35 -0
- package/src/cli/auto-quote.js +28 -0
- package/src/cli/auto-report.js +36 -0
- package/src/cli/auto-resume.js +28 -0
- package/src/cli/auto-rules.js +20 -0
- package/src/cli/auto-run.js +26 -0
- package/src/cli/auto-task.js +26 -0
- package/src/cli/banner.js +20 -0
- package/src/cli/centralize.js +23 -0
- package/src/cli/collect-step.js +25 -0
- package/src/cli/config-pairs.js +46 -0
- package/src/cli/config.js +51 -0
- package/src/cli/detect-os.js +11 -0
- package/src/cli/dispatch.js +36 -0
- package/src/cli/env-file.js +44 -0
- package/src/cli/env-load.js +28 -0
- package/src/cli/env-parse.js +39 -0
- package/src/cli/env-rebuild.js +33 -0
- package/src/cli/gitignore-env.js +46 -0
- package/src/cli/help.js +28 -0
- package/src/cli/ide-entries.js +42 -0
- package/src/cli/ide-paths.js +37 -0
- package/src/cli/ide-roots.js +25 -0
- package/src/cli/interactive.js +26 -0
- package/src/cli/jetbrains.js +40 -0
- package/src/cli/legacy-entry.js +17 -0
- package/src/cli/main.js +42 -0
- package/src/cli/memory-cli.js +15 -0
- package/src/cli/prompts.js +24 -0
- package/src/cli/server-entry.js +42 -0
- package/src/cli/setup-args.js +39 -0
- package/src/cli/target-manual.js +24 -0
- package/src/cli/target-select.js +51 -0
- package/src/cli/toml-merge.js +56 -0
- package/src/cli/trial-check.js +15 -0
- package/src/cli/welcome.js +7 -0
- package/src/core/abort-signal.js +38 -0
- package/src/core/auto-deps.js +29 -0
- package/src/core/cache-ttl.js +21 -0
- package/src/core/config-base.js +38 -0
- package/src/core/config-cache.js +50 -0
- package/src/core/config.js +58 -0
- package/src/core/constants.js +31 -0
- package/src/core/crypto.js +45 -0
- package/src/core/dlp.js +51 -0
- package/src/core/doctrine-all.js +31 -0
- package/src/core/doctrine-caches.js +10 -0
- package/src/core/doctrine-fetch.js +49 -0
- package/src/core/doctrine-one.js +18 -0
- package/src/core/doctrine.js +39 -0
- package/src/core/dual-stream-parser.js +55 -0
- package/src/core/exports.js +28 -0
- package/src/core/google-route.js +17 -0
- package/src/core/identity.js +23 -0
- package/src/core/lang.js +19 -0
- package/src/core/leak-guard.js +40 -0
- package/src/core/llm-builder-anthropic.js +26 -0
- package/src/core/llm-builder-gemini.js +22 -0
- package/src/core/llm-builder-openai.js +26 -0
- package/src/core/llm-call.js +53 -0
- package/src/core/llm-config-secondary.js +28 -0
- package/src/core/llm-config.js +32 -0
- package/src/core/llm-errors.js +25 -0
- package/src/core/llm-exchange.js +27 -0
- package/src/core/llm-extract.js +52 -0
- package/src/core/llm-label.js +33 -0
- package/src/core/llm-ollama-request.js +32 -0
- package/src/core/llm-ollama.js +42 -0
- package/src/core/llm-prompts.js +14 -0
- package/src/core/llm-providers.js +26 -0
- package/src/core/llm-request.js +17 -0
- package/src/core/llm-retry-429.js +23 -0
- package/src/core/llm-stream-events.js +29 -0
- package/src/core/llm-stream.js +42 -0
- package/src/core/llm-unbounded.js +15 -0
- package/src/core/llm-warmup.js +44 -0
- package/src/core/manifest.js +42 -0
- package/src/core/master-prompt.js +11 -0
- package/src/core/model-id.js +19 -0
- package/src/core/ollama-lines.js +48 -0
- package/src/core/ollama.js +43 -0
- package/src/core/pkg-manager.js +35 -0
- package/src/core/process-guards.js +47 -0
- package/src/core/progress-emit.js +25 -0
- package/src/core/purge-key.js +20 -0
- package/src/core/reasoning-cut.js +19 -0
- package/src/core/reasoning-models.js +8 -0
- package/src/core/session-net.js +60 -0
- package/src/core/session-resilient.js +44 -0
- package/src/core/session.js +49 -0
- package/src/core/sse-parser.js +25 -0
- package/src/core/stdout-guard.js +11 -0
- package/src/core/tier.js +48 -0
- package/src/core/trial-resolve.js +22 -0
- package/src/core/trial-session.js +60 -0
- package/src/core/trial-status.js +35 -0
- package/src/core/usage-cost.js +25 -0
- package/src/core/usage-extract.js +28 -0
- package/src/core/usage-meter.js +41 -0
- package/src/engine/analyze-need.js +24 -0
- package/src/engine/analyze-ux.js +42 -0
- package/src/engine/ask-history.js +43 -0
- package/src/engine/ask-llm.js +40 -0
- package/src/engine/ask-prompt.js +48 -0
- package/src/engine/ask-rules.js +13 -0
- package/src/engine/ast-call-rules-danger.js +24 -0
- package/src/engine/ast-call-rules-inject.js +29 -0
- package/src/engine/ast-context.js +28 -0
- package/src/engine/ast-import-helpers.js +46 -0
- package/src/engine/ast-lang.js +24 -0
- package/src/engine/ast-node-helpers.js +51 -0
- package/src/engine/ast-rules-calls.js +16 -0
- package/src/engine/ast-rules-graph.js +58 -0
- package/src/engine/ast-rules-js.js +30 -0
- package/src/engine/ast-rules-jsx-py.js +26 -0
- package/src/engine/ast-runtime.js +60 -0
- package/src/engine/ast-scan.js +48 -0
- package/src/engine/audit-citations.js +28 -0
- package/src/engine/audit-facts.js +47 -0
- package/src/engine/audit-report.js +40 -0
- package/src/engine/audit-task.js +37 -0
- package/src/engine/cap-cache.js +50 -0
- package/src/engine/cap-eval.js +49 -0
- package/src/engine/cap-http.js +32 -0
- package/src/engine/cap-meta-anthropic.js +15 -0
- package/src/engine/cap-meta-ollama.js +15 -0
- package/src/engine/cap-meta-openrouter.js +19 -0
- package/src/engine/cap-meta.js +19 -0
- package/src/engine/cap-probe.js +34 -0
- package/src/engine/cap-types.js +29 -0
- package/src/engine/chat-doctrine.js +31 -0
- package/src/engine/checkpoint-control.js +23 -0
- package/src/engine/checkpoint-detect.js +19 -0
- package/src/engine/checkpoint-rules.js +19 -0
- package/src/engine/code-decls.js +12 -0
- package/src/engine/code-graph.js +52 -0
- package/src/engine/coerce.js +8 -0
- package/src/engine/collect.js +21 -0
- package/src/engine/compute-impact.js +17 -0
- package/src/engine/context-files.js +42 -0
- package/src/engine/context-fit.js +28 -0
- package/src/engine/context-margin.js +37 -0
- package/src/engine/context-relay.js +60 -0
- package/src/engine/control-duo.js +38 -0
- package/src/engine/control-phase.js +32 -0
- package/src/engine/control-prompt.js +25 -0
- package/src/engine/control-verdict.js +36 -0
- package/src/engine/default-steps.js +7 -0
- package/src/engine/deps-parse-js.js +49 -0
- package/src/engine/deps-parse-more.js +30 -0
- package/src/engine/deps-parse-other.js +41 -0
- package/src/engine/deps-parse.js +31 -0
- package/src/engine/det-builders-1.js +38 -0
- package/src/engine/det-builders-2.js +50 -0
- package/src/engine/detect-domains.js +27 -0
- package/src/engine/diff-files.js +35 -0
- package/src/engine/doc-suite.js +39 -0
- package/src/engine/doctrine-prefix.js +13 -0
- package/src/engine/domain-regex.js +11 -0
- package/src/engine/exports.js +35 -0
- package/src/engine/extract-deterministic.js +33 -0
- package/src/engine/extract-llm.js +48 -0
- package/src/engine/facts-binary.js +12 -0
- package/src/engine/facts-embedded.js +18 -0
- package/src/engine/facts-functions.js +21 -0
- package/src/engine/facts-html.js +22 -0
- package/src/engine/facts-inventory.js +33 -0
- package/src/engine/facts-lang.js +34 -0
- package/src/engine/facts-measure.js +43 -0
- package/src/engine/facts-patterns.js +28 -0
- package/src/engine/facts-project.js +26 -0
- package/src/engine/facts-size.js +26 -0
- package/src/engine/facts-wordpress.js +36 -0
- package/src/engine/generate-architecture-guide.js +46 -0
- package/src/engine/generate-readme.js +38 -0
- package/src/engine/generate-runbook.js +47 -0
- package/src/engine/git-facts.js +16 -0
- package/src/engine/history-purge.js +16 -0
- package/src/engine/json-balance.js +37 -0
- package/src/engine/json-safe.js +13 -0
- package/src/engine/line-numbers.js +16 -0
- package/src/engine/md-build-mid.js +35 -0
- package/src/engine/md-build-top.js +58 -0
- package/src/engine/md-build.js +36 -0
- package/src/engine/md-parse-helpers.js +7 -0
- package/src/engine/md-parse-pillars.js +38 -0
- package/src/engine/md-parse-ux-design.js +31 -0
- package/src/engine/md-parse.js +33 -0
- package/src/engine/mission-context-prefix.js +30 -0
- package/src/engine/mission-guard.js +36 -0
- package/src/engine/mission-helpers.js +23 -0
- package/src/engine/mission-log.js +56 -0
- package/src/engine/mission-paths.js +7 -0
- package/src/engine/mission-store.js +51 -0
- package/src/engine/normalize-extraction.js +35 -0
- package/src/engine/normalize-impact-design.js +39 -0
- package/src/engine/normalize-pillars.js +36 -0
- package/src/engine/orchestrate-route.js +39 -0
- package/src/engine/orchestrator-build.js +37 -0
- package/src/engine/orchestrator-phases.js +55 -0
- package/src/engine/orchestrator.js +40 -0
- package/src/engine/osv.js +43 -0
- package/src/engine/parse-json-loose.js +36 -0
- package/src/engine/patch-file-sections.js +28 -0
- package/src/engine/patch-scan-cheat.js +52 -0
- package/src/engine/patch-scan-prep.js +37 -0
- package/src/engine/patch-scan-rules.js +51 -0
- package/src/engine/patch-scan.js +38 -0
- package/src/engine/patch-secret-guard.js +50 -0
- package/src/engine/patch-ui-guard.js +49 -0
- package/src/engine/pattern-sanitize.js +23 -0
- package/src/engine/plan-draft.js +37 -0
- package/src/engine/plan-mission.js +60 -0
- package/src/engine/plan-reply-legacy.js +34 -0
- package/src/engine/plan-reply-pillars.js +34 -0
- package/src/engine/plan-reply-ux.js +17 -0
- package/src/engine/plan-reply.js +28 -0
- package/src/engine/plan-summary.js +16 -0
- package/src/engine/preflight-text.js +27 -0
- package/src/engine/preflight.js +27 -0
- package/src/engine/project-brief.js +41 -0
- package/src/engine/project-context.js +49 -0
- package/src/engine/project-instructions.js +19 -0
- package/src/engine/py-imports.js +31 -0
- package/src/engine/relay-analysis.js +44 -0
- package/src/engine/relay-digest.js +42 -0
- package/src/engine/route-llm.js +25 -0
- package/src/engine/rule-text.js +12 -0
- package/src/engine/self-assessment.js +33 -0
- package/src/engine/steps-block.js +19 -0
- package/src/engine/ux-violations-leak.js +43 -0
- package/src/engine/vuln-facts.js +37 -0
- package/src/fs/atomic-text.js +45 -0
- package/src/fs/atomic-write.js +21 -0
- package/src/fs/backup-once.js +27 -0
- package/src/fs/config-path.js +39 -0
- package/src/fs/config-read.js +23 -0
- package/src/fs/config-write.js +60 -0
- package/src/fs/home-root.js +55 -0
- package/src/fs/load-config.js +36 -0
- package/src/fs/os-errors.js +26 -0
- package/src/fs/permissions.js +48 -0
- package/src/mcp/boot-warmup.js +9 -0
- package/src/mcp/call-tool.js +20 -0
- package/src/mcp/client-info.js +35 -0
- package/src/mcp/engine-rules.js +16 -0
- package/src/mcp/handle-dlp.js +37 -0
- package/src/mcp/handle-licence.js +46 -0
- package/src/mcp/handle-list.js +15 -0
- package/src/mcp/handle-memory.js +37 -0
- package/src/mcp/handle-skill-fetch.js +50 -0
- package/src/mcp/handle-skill.js +38 -0
- package/src/mcp/licence-text.js +29 -0
- package/src/mcp/prompt-licence.js +11 -0
- package/src/mcp/server-create.js +33 -0
- package/src/mcp/server-main.js +39 -0
- package/src/mcp/tool-dispatch.js +28 -0
- package/src/mcp/tool-dlp.js +20 -0
- package/src/mcp/tool-licence.js +17 -0
- package/src/mcp/tool-memory.js +32 -0
- package/src/mcp/tool-skill.js +24 -0
- package/src/mcp/tools-list.js +13 -0
- package/src/memory/exports.js +5 -0
- package/src/memory/memory-filter.js +32 -0
- package/src/memory/memory-gate.js +21 -0
- package/src/memory/memory-store.js +44 -0
- package/src/net/auth-browser.js +49 -0
- package/src/net/auth-endpoints.js +33 -0
- package/src/net/local-fetch.js +31 -0
- package/src/net/loopback.js +8 -0
- package/src/net/proxy-env.js +59 -0
- package/src/project-memory/batches.js +17 -0
- package/src/project-memory/cahiers.js +42 -0
- package/src/project-memory/decision-settle.js +15 -0
- package/src/project-memory/decisions.js +36 -0
- package/src/project-memory/index-build.js +35 -0
- package/src/project-memory/memory-build.js +16 -0
- package/src/project-memory/memory-tags.js +40 -0
- package/src/project-memory/pending.js +24 -0
- package/src/project-memory/qa-apply.js +39 -0
- package/src/project-memory/qa-tags.js +28 -0
- package/src/project-memory/recall.js +38 -0
- package/src/project-memory/store.js +37 -0
- package/src/project-memory/window.js +13 -0
- package/src/rules/rules-advisor.js +17 -0
- package/src/rules/rules-frugality.js +17 -0
- package/src/rules/rules-load.js +56 -0
- package/src/rules/rules-project.js +16 -0
- package/src/rules/rules-registry.js +32 -0
- package/src/rules/rules-validate-pricing.js +22 -0
- package/src/rules/rules-validate-scan.js +45 -0
- package/src/rules/rules-validate.js +53 -0
- package/src/teardown/consent.js +31 -0
- package/src/teardown/flags.js +39 -0
- package/src/teardown/main.js +41 -0
- package/src/teardown/plan.js +31 -0
- package/src/teardown/remove-entry.js +39 -0
- package/src/teardown/remove-file.js +37 -0
- package/src/teardown/remove-toml.js +33 -0
- package/src/teardown/report.js +34 -0
- package/src/types/ast.d.ts +40 -0
- package/src/types/auto-ask.d.ts +6 -0
- package/src/types/auto-orch.d.ts +59 -0
- package/src/types/auto.d.ts +45 -0
- package/src/types/capability.d.ts +12 -0
- package/src/types/cli-auto-gate.d.ts +45 -0
- package/src/types/cli-auto.d.ts +42 -0
- package/src/types/config.d.ts +53 -0
- package/src/types/control.d.ts +56 -0
- package/src/types/docs.d.ts +6 -0
- package/src/types/doctrine.d.ts +22 -0
- package/src/types/llm.d.ts +28 -0
- package/src/types/mcp.d.ts +32 -0
- package/src/types/memory.d.ts +17 -0
- package/src/types/mission.d.ts +46 -0
- package/src/types/orchestrator.d.ts +33 -0
- package/src/types/routing.d.ts +25 -0
- package/src/types/rules.d.ts +30 -0
- package/src/types/snapshots.d.ts +25 -0
- package/src/types/teardown.d.ts +13 -0
- package/src/types/usage.d.ts +30 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// src/types/cli-auto.d.ts — Types du shell CLI Mode Auto (résultats + orchestrateur).
|
|
2
|
+
// Ambient global (aucun import/export) : utilisables via JSDoc sans import.
|
|
3
|
+
// Types du gate (NodeErr/AutoFlags/GateAutoDeps/GateAutoResult) : cli-auto-gate.d.ts.
|
|
4
|
+
|
|
5
|
+
/** Résultat lâche d'une opération du cœur Auto (branches isError/done/needsConsent). */
|
|
6
|
+
interface AutoOpResult {
|
|
7
|
+
isError?: boolean;
|
|
8
|
+
text?: string;
|
|
9
|
+
runId?: string;
|
|
10
|
+
tasks?: AutoTask[];
|
|
11
|
+
quote?: string;
|
|
12
|
+
status?: string;
|
|
13
|
+
consent?: boolean;
|
|
14
|
+
needsConsent?: boolean;
|
|
15
|
+
done?: boolean;
|
|
16
|
+
failed?: boolean;
|
|
17
|
+
progress?: string;
|
|
18
|
+
summary?: string;
|
|
19
|
+
steps?: unknown[];
|
|
20
|
+
last?: { failed?: boolean; task?: AutoTask; error?: string; asking?: boolean; question?: string; cancelled?: boolean };
|
|
21
|
+
/** Pause « ASK_USER » : question à poser à l'utilisateur (code de sortie 3). */
|
|
22
|
+
asking?: boolean;
|
|
23
|
+
question?: string;
|
|
24
|
+
/** Arrêt demandé par l'utilisateur : plan en pause (code de sortie 4). */
|
|
25
|
+
cancelled?: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Orchestrateur Auto consommé par le shell CLI (subset de createAutoOrchestrator). */
|
|
29
|
+
interface AutoShell {
|
|
30
|
+
buildAutoPlan: (args: { need: string; projectPath: string; pcfg: { primary: ProviderPrimary }; cfg: PlugConfig; instructions?: string; adjust?: string }) => Promise<AutoOpResult>;
|
|
31
|
+
runAutoRun: (args: { projectPath: string; confirmed?: boolean; maxSteps?: number; pcfg: { primary: ProviderPrimary }; cfg: PlugConfig }) => Promise<AutoOpResult>;
|
|
32
|
+
resumeAuto: (args: { projectPath: string; maxSteps?: number; answer?: string; pcfg: { primary: ProviderPrimary }; cfg: PlugConfig }) => Promise<AutoOpResult>;
|
|
33
|
+
loadAutoState: (projectPath: string) => Promise<AutoState | null>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Args du gate Auto (cfg/pcfg/tier) passés aux handlers plan/run/resume. */
|
|
37
|
+
interface AutoGateOk {
|
|
38
|
+
cfg: PlugConfig;
|
|
39
|
+
pcfg: { primary: ProviderPrimary };
|
|
40
|
+
tier: string;
|
|
41
|
+
}
|
|
42
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// src/types/config.d.ts — Contrats config client + provider + licence.
|
|
2
|
+
// Fichier ambient global (aucun import/export racine) : les interfaces sont
|
|
3
|
+
// disponibles partout pour les annotations JSDoc (checkJs strict, zéro any).
|
|
4
|
+
|
|
5
|
+
type ProviderName = "openai" | "anthropic" | "gemini" | "zhipu";
|
|
6
|
+
|
|
7
|
+
interface PlugConfig {
|
|
8
|
+
installedAt: string;
|
|
9
|
+
clientId: string;
|
|
10
|
+
licenseKey: string;
|
|
11
|
+
email: string;
|
|
12
|
+
trialExpiredNotified?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface LicenseSessionPayload { cid: string; tier: string; iat: number; exp: number; fp?: string; }
|
|
16
|
+
interface LicenseSession { token: string; tier: string; expSec: number; }
|
|
17
|
+
|
|
18
|
+
interface ProviderPrimary {
|
|
19
|
+
provider: ProviderName;
|
|
20
|
+
key: string;
|
|
21
|
+
base: string;
|
|
22
|
+
model: string;
|
|
23
|
+
smartModel: string;
|
|
24
|
+
fastModel: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
interface CallLLMArgs {
|
|
28
|
+
provider: ProviderName; key: string; model: string; base: string;
|
|
29
|
+
systemPrompt: string; userText: string; cachePrefix?: string; maxTokens?: number; showThinking?: boolean;
|
|
30
|
+
/** Remet chaque morceau de la réponse pendant la génération (affichage jeton par jeton). */
|
|
31
|
+
onDelta?: (text: string) => void;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
interface ProviderAdapter {
|
|
35
|
+
callLLM(args: CallLLMArgs): Promise<string>;
|
|
36
|
+
readProviderConfig(env?: Record<string, string | undefined>): { primary: ProviderPrimary | null };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Erreur enrichie (status HTTP, code errno, provider, payload, analysis Phase 2). */
|
|
40
|
+
interface EnrichedError extends Error {
|
|
41
|
+
status?: number;
|
|
42
|
+
code?: string;
|
|
43
|
+
provider?: string;
|
|
44
|
+
payload?: unknown;
|
|
45
|
+
analysis?: string;
|
|
46
|
+
rateLimitExhausted?: boolean;
|
|
47
|
+
}
|
|
48
|
+
/** État de l'essai tel que tranché par le serveur (affichage seulement). */
|
|
49
|
+
type TrialStatus =
|
|
50
|
+
| { state: "active"; endsAt?: string }
|
|
51
|
+
| { state: "expired"; upgrade?: string }
|
|
52
|
+
| { state: "error"; message: string };
|
|
53
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// src/types/control.d.ts — Contrats Phase 3 duo (contrôle/doute). Ambient global
|
|
2
|
+
// (aucun import/export) : fusion de déclaration sur OrchestratorResult — les
|
|
3
|
+
// champs duo/duo_same_provider/control S'AJOUTENT au retour existant ; aucun
|
|
4
|
+
// champ historique (analysis, patch, models, route) n'est modifié ni supprimé.
|
|
5
|
+
|
|
6
|
+
/** Verdict strict issu de la sortie LLM du contrôle (validation Zero Trust). */
|
|
7
|
+
interface ControlVerdict {
|
|
8
|
+
status: "ok" | "corrected" | "rejected";
|
|
9
|
+
reason: string;
|
|
10
|
+
patch: string | null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** Sortie du passage de contrôle : draft conservé en cas d'échec ou de rejet. */
|
|
14
|
+
interface ControlPhaseOutcome {
|
|
15
|
+
status: "ok" | "corrected" | "rejected" | "failed" | "skipped";
|
|
16
|
+
reason: string;
|
|
17
|
+
model: string;
|
|
18
|
+
patch: string;
|
|
19
|
+
checkpoints?: string[];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Autobilan du Modèle 1 : doutes déclarés (« doubts »), aucun (« none »), ou indisponible. */
|
|
23
|
+
interface SelfAssessment { state: "none" | "doubts" | "unavailable"; text: string }
|
|
24
|
+
|
|
25
|
+
/** Fichier d'un patch (Unified Diff) : chemin, texte, lignes ajoutées, nombre de lignes touchées. */
|
|
26
|
+
interface DiffSection { path: string; text: string; added: string[]; changed: number }
|
|
27
|
+
|
|
28
|
+
/** Point clé détecté : fichier à faire relire par le superviseur + raisons. */
|
|
29
|
+
interface Checkpoint { path: string; reasons: string[] }
|
|
30
|
+
|
|
31
|
+
/** Métadonnées duo remontées dans OrchestratorResult (comptabilité honnête). */
|
|
32
|
+
interface ControlReport {
|
|
33
|
+
status: "ok" | "corrected" | "rejected" | "failed" | "skipped" | "not_configured";
|
|
34
|
+
reason: string;
|
|
35
|
+
model: string | null;
|
|
36
|
+
checkpoints?: string[];
|
|
37
|
+
selfAssessment?: SelfAssessment["state"];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Décision + résultat du duo pour l'orchestrateur. */
|
|
41
|
+
interface DuoOutcome {
|
|
42
|
+
duo: boolean;
|
|
43
|
+
duoSameProvider: boolean;
|
|
44
|
+
control: ControlReport;
|
|
45
|
+
patch: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Fusion : champs Phase 3 ajoutés au retour d'orchestrateLLM.
|
|
49
|
+
interface OrchestratorResult {
|
|
50
|
+
duo?: boolean;
|
|
51
|
+
duo_same_provider?: boolean;
|
|
52
|
+
control?: ControlReport;
|
|
53
|
+
/** Pause « ASK_USER » : le modèle d'écriture pose une question au lieu de produire un patch. */
|
|
54
|
+
asking?: string;
|
|
55
|
+
}
|
|
56
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// src/types/docs.d.ts — Types ambients du trio documentaire client (fin de mission Auto).
|
|
2
|
+
// Aucun import/export top-level : déclarations ambient globales.
|
|
3
|
+
|
|
4
|
+
/** Mode de mission dérivé des tâches (majorité de fichiers nouveaux → création). */
|
|
5
|
+
type DocMode = "creation" | "refactoring";
|
|
6
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// src/types/doctrine.d.ts — Types globaux pour la doctrine fetchée & signée (thin client).
|
|
2
|
+
// Payload signé renvoyé par le Worker (fiche individuelle) + contenu déroulé après vérif Ed25519.
|
|
3
|
+
|
|
4
|
+
interface SignedSkillPayload {
|
|
5
|
+
data: string;
|
|
6
|
+
sig: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
interface SkillPayloadContent {
|
|
10
|
+
slug?: string;
|
|
11
|
+
tier?: string;
|
|
12
|
+
serverTime?: string;
|
|
13
|
+
nonce?: string;
|
|
14
|
+
content: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Entrée de cache RAM de doctrine (TTL 5 h, cache-ttl.js) — jamais sur disque. */
|
|
18
|
+
interface DoctrineCache {
|
|
19
|
+
content: string;
|
|
20
|
+
cachedAt: number;
|
|
21
|
+
}
|
|
22
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// src/types/llm.d.ts — Types globaux pour le client LLM BYOK (réponses providers + warmup cache).
|
|
2
|
+
// Ambient global (aucun import/export) — référencé via JSDoc sans import.
|
|
3
|
+
|
|
4
|
+
interface LLMErrorResponse {
|
|
5
|
+
error?: { message?: string };
|
|
6
|
+
message?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
interface LLMResponse {
|
|
10
|
+
choices?: { message?: { content?: string } }[];
|
|
11
|
+
content?: { type: string; text: string }[];
|
|
12
|
+
candidates?: { content?: { parts?: { text?: string; thought?: boolean }[] } }[];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface WarmupPrimedEntry {
|
|
16
|
+
provider: string;
|
|
17
|
+
model: string;
|
|
18
|
+
target: string;
|
|
19
|
+
ok: boolean;
|
|
20
|
+
error?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface WarmupResult {
|
|
24
|
+
warmed: boolean;
|
|
25
|
+
reason: string;
|
|
26
|
+
primed: WarmupPrimedEntry[];
|
|
27
|
+
}
|
|
28
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// src/types/mcp.d.ts — Contrats du serveur MCP (requêtes/réponses outils).
|
|
2
|
+
|
|
3
|
+
// Schéma d'entrée JSON d'un outil MCP (subset strict exposé par le manifest).
|
|
4
|
+
interface McpInputSchema {
|
|
5
|
+
type: "object";
|
|
6
|
+
properties?: Record<string, unknown>;
|
|
7
|
+
required?: string[];
|
|
8
|
+
additionalProperties?: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Définition d'un outil exposé par tools/list.
|
|
12
|
+
interface McpToolDef {
|
|
13
|
+
name: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
inputSchema: McpInputSchema;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Requête tools/call (structure minimale consommée par le dispatch).
|
|
19
|
+
// params non-optionnel avec name requis : reflète le typage zod du SDK
|
|
20
|
+
// (CallToolRequestSchema) et permet la déstructuration `request.params ?? {}`.
|
|
21
|
+
interface McpToolRequest {
|
|
22
|
+
params: { name: string; arguments?: Record<string, unknown> | undefined };
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Bloc texte d'une réponse MCP. Type alias (et non interface) : les résultats
|
|
26
|
+
// zod du SDK sont « loose » (signature d'index) et seuls les aliases d'objets
|
|
27
|
+
// littéraux portent la signature d'index implicite nécessaire à l'assignation.
|
|
28
|
+
type McpTextContent = { type: "text"; text: string };
|
|
29
|
+
|
|
30
|
+
// Réponse tools/call (type alias pour la même raison).
|
|
31
|
+
type McpToolResponse = { isError?: boolean; content: McpTextContent[] };
|
|
32
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// src/types/memory.d.ts — Contrats de la mémoire persistante (client local).
|
|
2
|
+
// Fichier ambient global : interfaces disponibles pour les annotations JSDoc.
|
|
3
|
+
|
|
4
|
+
/** Entrée de mémoire long terme. `source` = "user" | "mission" | "session" (jamais un slug produit). */
|
|
5
|
+
interface MemoryEntry {
|
|
6
|
+
kind: string;
|
|
7
|
+
text: string;
|
|
8
|
+
source: string;
|
|
9
|
+
createdAt: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** Contenu du fichier memory.json (0600, écriture atomique). */
|
|
13
|
+
interface MemoryFile {
|
|
14
|
+
version: number;
|
|
15
|
+
entries: MemoryEntry[];
|
|
16
|
+
}
|
|
17
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// src/types/mission.d.ts — Contrats Phase 0 (scratchpad mission + orchestration).
|
|
2
|
+
// Fichier ambient global : partagés entre index.js et auto.js (résout la
|
|
3
|
+
// contravariance des signatures AutoDeps — même type strict des deux côtés).
|
|
4
|
+
|
|
5
|
+
interface DesignViolation { rule: string; patterns: string[]; }
|
|
6
|
+
interface DomainConstraint { text: string; invariant: string; patterns: string[]; }
|
|
7
|
+
interface DomainPitfall { never: string; always: string; patterns: string[]; }
|
|
8
|
+
interface GlossaryEntry { term: string; definition: string; }
|
|
9
|
+
|
|
10
|
+
interface BusinessDomain {
|
|
11
|
+
label: string; keywords: string[]; roles: string[]; regles: string[];
|
|
12
|
+
contraintes: string[]; failles: string[]; fiches: string[];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface UxDesignEntry {
|
|
16
|
+
family: string; style: string; density: string; palette: string;
|
|
17
|
+
microInteractions: string; uxRules: string[]; designViolations: DesignViolation[];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Charte visuelle contextualisée attachée à un MissionPlan (section 6 du scratchpad).
|
|
21
|
+
interface DesignSystem {
|
|
22
|
+
family: string; style: string; density: string; palette: string;
|
|
23
|
+
microInteractions: string; wcag: string; violations: DesignViolation[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
interface Violation {
|
|
27
|
+
kind: "ast" | "pitfall" | "constraint" | "design";
|
|
28
|
+
rule: string; alternative: string; matched: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
interface OrchestratorResult {
|
|
32
|
+
analysis: string; patch: string;
|
|
33
|
+
models: { analysis: string; patch: string };
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface MissionPlan {
|
|
37
|
+
projectName: string; need: string; domainKeys?: string[];
|
|
38
|
+
personas: { role_name: string; scope: string; mandate: string }[];
|
|
39
|
+
constraints: DomainConstraint[]; pitfalls: DomainPitfall[]; glossary: GlossaryEntry[];
|
|
40
|
+
impact: { files: string[]; steps: string[]; tokens: number; risk: string };
|
|
41
|
+
fiches?: string[]; uxDirectives: string[];
|
|
42
|
+
designSystem: { family: string; style: string; density: string; palette: string; microInteractions: string; wcag: string; violations: DesignViolation[] };
|
|
43
|
+
autoMode: boolean; createdAt?: string; validatedAt?: string | null; iterations?: number;
|
|
44
|
+
checkedSteps: boolean[]; patternsLoaded?: boolean; raw?: string;
|
|
45
|
+
}
|
|
46
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// src/types/orchestrator.d.ts — Contrats orchestration Mode Auto.
|
|
2
|
+
// Fichier ambient global : interfaces disponibles pour index.js, auto.js et
|
|
3
|
+
// bin/setup.js (checkJs strict, zéro any).
|
|
4
|
+
|
|
5
|
+
interface OrchestratorArgs {
|
|
6
|
+
code: string; file_path?: string; language?: string; domain?: string;
|
|
7
|
+
missionContext?: string; doctrine?: string; lastDiff?: string; correction?: string; canAsk?: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface AmnesiaContext { doctrine: string; lastDiff: string; missionContext: string; }
|
|
11
|
+
|
|
12
|
+
interface AutoTask {
|
|
13
|
+
id: string; title: string; file: string; objective: string; acceptance: string;
|
|
14
|
+
status: "pending" | "done" | "failed"; attempts: number;
|
|
15
|
+
commit: string | null; error: string | null; isNew: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
interface AutoBudget { tokensEst: number; tokensUsed: number; costUsdEst: number; costUsdUsed: number; }
|
|
19
|
+
|
|
20
|
+
interface AutoState {
|
|
21
|
+
version: string; runId: string; projectPath: string; missionHash: string; gitHead: string;
|
|
22
|
+
tasks: AutoTask[]; cursor: number; lastDiff: string; budget: AutoBudget;
|
|
23
|
+
status: "consent_pending" | "running" | "done" | "failed" | "awaiting_user" | "paused";
|
|
24
|
+
startedAt: string; updatedAt: string;
|
|
25
|
+
/** Pause « ASK_USER » : question en attente, tâche concernée, réponses reçues, nombre de questions posées. */
|
|
26
|
+
question?: string; pendingTask?: string; answers?: { taskId: string; q: string; a: string }[]; questionsAsked?: number;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
interface OrchestratorContext {
|
|
30
|
+
args: OrchestratorArgs; pcfg: { primary: ProviderPrimary }; cfg: PlugConfig;
|
|
31
|
+
projectPath: string; state?: AutoState; fileSizes?: Record<string, number>;
|
|
32
|
+
}
|
|
33
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/types/routing.d.ts — Types du routage hybride (délégation locale/cloud)
|
|
2
|
+
// et de la capture de l'agent hôte. Ambient global (aucun import/export). Les
|
|
3
|
+
// champs route s'ajoutent à OrchestratorResult par fusion de déclarations.
|
|
4
|
+
|
|
5
|
+
/** Décision de routage d'une phase d'orchestration. */
|
|
6
|
+
interface RouteDecision { route: "local" | "cloud" | "primary" | "none"; reason: string; }
|
|
7
|
+
|
|
8
|
+
/** Args de decideRoute (routage hybride local-first, conditions a/b/c). */
|
|
9
|
+
interface RouteArgs {
|
|
10
|
+
local: ProviderPrimary | null;
|
|
11
|
+
secondary: ProviderPrimary | null;
|
|
12
|
+
promptTokens: number;
|
|
13
|
+
capacityTokens: number;
|
|
14
|
+
localMultiAgent?: boolean;
|
|
15
|
+
heavyTokens: number;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** Agent hôte MCP capturé à l'initialize (clientInfo). */
|
|
19
|
+
interface ClientInfo { name: string; version: string; }
|
|
20
|
+
|
|
21
|
+
// Fusion (declaration merging) : trace de routage ajoutée au résultat existant.
|
|
22
|
+
interface OrchestratorResult {
|
|
23
|
+
route?: { analysis: RouteDecision["route"]; patch: RouteDecision["route"]; reason: string };
|
|
24
|
+
}
|
|
25
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// src/types/rules.d.ts — Types des règles métier servies par le serveur PipCode (registre mémoire src/rules).
|
|
2
|
+
|
|
3
|
+
/** Règles métier servies par le serveur (jamais embarquées dans le paquet) — registre mémoire src/rules. */
|
|
4
|
+
interface EngineRules {
|
|
5
|
+
domains: Record<string, BusinessDomain>;
|
|
6
|
+
patterns: Record<string, { constraints?: DomainConstraint[]; pitfalls?: DomainPitfall[] }>;
|
|
7
|
+
glossary: Record<string, GlossaryEntry[]>;
|
|
8
|
+
ux: { design: Record<string, UxDesignEntry>; universal: string[] };
|
|
9
|
+
prompts: { analysis: string; mission: string; patch: string; master: string; decomp: string; control: string };
|
|
10
|
+
plan: { steps: string[]; impact: { base: number; perDomain: number; perRole: number; perRule: number; perFiche: number; filesPerDomain: number; filesBase: number } };
|
|
11
|
+
pricing: PricingGrid | null; // grille tarifaire servie par le serveur (null si absente)
|
|
12
|
+
prefix: Record<string, string> | null; // gabarits du préfixe de mission (lot Pro ; null pour un compte gratuit)
|
|
13
|
+
scan: ScanRules | null; // lot Pro : règles du scan de patch (null pour un compte gratuit).
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** Texte de règle : gabarit à variables {name}, éventuellement par langage. */
|
|
17
|
+
type RuleMsg = string | { js: string; py: string };
|
|
18
|
+
interface ScanMsg { rule: RuleMsg; alt: RuleMsg; }
|
|
19
|
+
/** Règles du scan de patch servies par le serveur (appliquées localement, jamais embarquées). */
|
|
20
|
+
interface ScanRules {
|
|
21
|
+
ast: {
|
|
22
|
+
callees: { js: { dangerous: string[]; shell: string[]; xssWrites: string[]; xssCalls: string[]; stringEval: string[] }; py: { dangerous: string[] } };
|
|
23
|
+
xssWriteAll: string[]; secretNames: string; minString: number; jsxSinks: string[];
|
|
24
|
+
msgs: { dangerous: ScanMsg; shell: ScanMsg; stringEval: ScanMsg; xssCall: ScanMsg; xssWrite: ScanMsg; secret: ScanMsg; jsx: ScanMsg };
|
|
25
|
+
};
|
|
26
|
+
graph: { cycle: ScanMsg; orphan: ScanMsg };
|
|
27
|
+
cheat: { testFile: string; tauto: string; assert: string; emptyCatch: string; skip: string; commented: string; commentedMin: number; callAssign: string; stub: string; rules: { rule: string; alt: string }[] };
|
|
28
|
+
design: { shellInUi: { rule: string; patterns: string[] }[]; shellAlt: string; charterAlt: string };
|
|
29
|
+
}
|
|
30
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/types/snapshots.d.ts — Types du garde-fou snapshots & rollback intellectuel
|
|
2
|
+
// (Mode Auto). Ambient global (aucun import/export). Les champs stop/failureStreak
|
|
3
|
+
// s'ajoutent aux interfaces existantes par fusion de déclarations.
|
|
4
|
+
|
|
5
|
+
/** Repère de snapshot capturé sous .pipcode/cache/snapshots/ (diff/patch léger). */
|
|
6
|
+
interface SnapshotMarker {
|
|
7
|
+
kind: string;
|
|
8
|
+
head: string;
|
|
9
|
+
patch: string;
|
|
10
|
+
untracked: string[];
|
|
11
|
+
takenAt: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** État des gates du projet client (green/red/skipped chacun, best-effort). */
|
|
15
|
+
interface GreenReport {
|
|
16
|
+
tsc: "green" | "red" | "skipped";
|
|
17
|
+
tests: "green" | "red" | "skipped";
|
|
18
|
+
/** Sortie (stdout + stderr) des gates rouges : ce que la boucle auto-corrective relit. */
|
|
19
|
+
log?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Fusion (declaration merging) : champs garde-fou ajoutés aux types existants.
|
|
23
|
+
interface AutoResult { stop?: string; }
|
|
24
|
+
interface AutoState { failureStreak?: number; }
|
|
25
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// src/types/teardown.d.ts — Types ambients du domaine Teardown (Phase 6).
|
|
2
|
+
// Désinstallation propre de PipCode : retrait de l'entrée MCP `pipcode` des
|
|
3
|
+
// configs IDE + suppression de la config partagée ~/.pipcode/config.json.
|
|
4
|
+
// Aucun import/export top-level : déclarations ambient globales.
|
|
5
|
+
|
|
6
|
+
type TeardownStatus = "removed" | "file-removed" | "absent" | "kept-foreign" | "error";
|
|
7
|
+
interface TeardownFlags { yes: boolean; dryRun: boolean; keepConfig: boolean; configOnly: boolean; ideOnly: boolean; help: boolean; }
|
|
8
|
+
interface TeardownAction { kind: "ide-entry" | "config"; path: string; label: string; schema?: "mcpServers" | "servers" | "context_servers" | "toml"; }
|
|
9
|
+
interface RemoveResult { status: TeardownStatus; error?: string; }
|
|
10
|
+
interface TeardownResult extends RemoveResult { path: string; label: string; }
|
|
11
|
+
interface TeardownSummary { removed: number; absent: number; errors: number; dryRun: boolean; }
|
|
12
|
+
interface TeardownCtx { argv?: string[]; osName?: "macos" | "windows" | "linux"; env?: Record<string, string | undefined>; home?: string; }
|
|
13
|
+
// MODULE_COMPLETE
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// src/types/usage.d.ts — Types de l'usage RÉEL rapporté par les API (tokens, coût) et du relevé émis à l'extension.
|
|
2
|
+
|
|
3
|
+
/** Partie « usage » d'une réponse fournisseur (tous champs possibles, tous optionnels, non fiables). */
|
|
4
|
+
interface ProviderUsageBody {
|
|
5
|
+
usage?: {
|
|
6
|
+
prompt_tokens?: unknown; completion_tokens?: unknown; prompt_tokens_details?: { cached_tokens?: unknown }; cost?: unknown;
|
|
7
|
+
input_tokens?: unknown; output_tokens?: unknown; cache_read_input_tokens?: unknown; cache_creation_input_tokens?: unknown;
|
|
8
|
+
};
|
|
9
|
+
usageMetadata?: { promptTokenCount?: unknown; candidatesTokenCount?: unknown; cachedContentTokenCount?: unknown };
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** Usage d'UN appel : tokens d'entrée (cache inclus), de sortie, part servie par le cache, coût rapporté par l'API. */
|
|
13
|
+
interface UsageSample { input: number; output: number; cached: number; cacheWrite: number; cost: number | null; }
|
|
14
|
+
|
|
15
|
+
/** Grille tarifaire d'un modèle (USD par million de tokens), servie par le serveur. */
|
|
16
|
+
interface PriceEntry { in: number; out: number; cachedIn?: number; cacheWriteIn?: number; note?: string; }
|
|
17
|
+
interface PricingGrid { asOf: string; currency: string; models: Record<string, PriceEntry>; }
|
|
18
|
+
|
|
19
|
+
/** Cumul par modèle dans le processus moteur. */
|
|
20
|
+
interface UsageEntry {
|
|
21
|
+
provider: string; model: string; local: boolean; calls: number;
|
|
22
|
+
input: number; output: number; cached: number; cacheWrite: number; apiCost: number; apiCostCalls: number;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Ligne du relevé émis (PLUGCTO_USAGE) : coût et sa SOURCE ("api" | "local" | "grille" | null = inconnu). */
|
|
26
|
+
interface UsageReportEntry {
|
|
27
|
+
provider: string; model: string; calls: number; input: number; output: number; cached: number;
|
|
28
|
+
cost: number | null; costSource: "api" | "local" | "grille" | null; grid: { in: number; out: number; cachedIn: number | null; asOf: string; note: string | null } | null;
|
|
29
|
+
}
|
|
30
|
+
// MODULE_COMPLETE
|