@gajae-code/coding-agent 0.11.11 → 0.12.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/CHANGELOG.md +131 -4
- package/dist/types/async/job-manager.d.ts +17 -3
- package/dist/types/cli/read-cli.d.ts +1 -0
- package/dist/types/commands/deep-interview.d.ts +9 -0
- package/dist/types/commands/harness.d.ts +22 -0
- package/dist/types/commands/read.d.ts +6 -0
- package/dist/types/config/model-registry.d.ts +4 -0
- package/dist/types/config/provider-auth-health.d.ts +14 -0
- package/dist/types/config/provider-ranking.d.ts +59 -0
- package/dist/types/config/settings-schema.d.ts +83 -1
- package/dist/types/config/settings.d.ts +2 -0
- package/dist/types/exa/mcp-client.d.ts +10 -1
- package/dist/types/exec/bash-executor.d.ts +45 -12
- package/dist/types/extensibility/extensions/types.d.ts +38 -4
- package/dist/types/extensibility/gjc-plugins/index.d.ts +12 -2
- package/dist/types/extensibility/gjc-plugins/installer.d.ts +63 -7
- package/dist/types/extensibility/gjc-plugins/lifecycle-reconciliation.d.ts +55 -0
- package/dist/types/extensibility/gjc-plugins/lifecycle.d.ts +64 -0
- package/dist/types/extensibility/gjc-plugins/runtime-quarantine.d.ts +67 -0
- package/dist/types/extensibility/gjc-plugins/session-validation.d.ts +3 -1
- package/dist/types/extensibility/gjc-plugins/types.d.ts +124 -0
- package/dist/types/extensibility/shared-events.d.ts +6 -0
- package/dist/types/gjc-runtime/deep-interview-ambiguity.d.ts +5 -12
- package/dist/types/gjc-runtime/deep-interview-recorder.d.ts +17 -32
- package/dist/types/gjc-runtime/deep-interview-stage.d.ts +37 -0
- package/dist/types/gjc-runtime/deep-interview-state.d.ts +4 -135
- package/dist/types/gjc-runtime/gc-runtime.d.ts +1 -1
- package/dist/types/gjc-runtime/launch-tmux.d.ts +1 -0
- package/dist/types/gjc-runtime/memory-guard-owner-claims.d.ts +47 -0
- package/dist/types/gjc-runtime/ralplan-runtime.d.ts +70 -1
- package/dist/types/gjc-runtime/state-writer.d.ts +5 -46
- package/dist/types/gjc-runtime/team-launch.d.ts +1 -1
- package/dist/types/gjc-runtime/team-runtime.d.ts +27 -1
- package/dist/types/gjc-runtime/team-store.d.ts +12 -0
- package/dist/types/gjc-runtime/team-worker-heartbeat.d.ts +43 -0
- package/dist/types/gjc-runtime/team-worker-memory-guard.d.ts +92 -0
- package/dist/types/gjc-runtime/tmux-owner-isolation.d.ts +17 -0
- package/dist/types/gjc-runtime/ultragoal-receipt-freshness.d.ts +8 -0
- package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +31 -80
- package/dist/types/gjc-runtime/workflow-manifest.d.ts +3 -5
- package/dist/types/internal-urls/local-root-gc.d.ts +2 -0
- package/dist/types/main.d.ts +1 -1
- package/dist/types/memories/index.d.ts +2 -0
- package/dist/types/modes/acp/acp-agent.d.ts +10 -19
- package/dist/types/modes/components/assistant-message.d.ts +3 -1
- package/dist/types/modes/components/gjc-bundle-settings.d.ts +34 -0
- package/dist/types/modes/components/irc-sidebar.d.ts +41 -0
- package/dist/types/modes/components/notifications-settings-editor.d.ts +1 -0
- package/dist/types/modes/components/read-tool-group.d.ts +4 -4
- package/dist/types/modes/components/session-observer-overlay.d.ts +22 -0
- package/dist/types/modes/components/settings-selector.d.ts +11 -0
- package/dist/types/modes/components/status-line/gh.d.ts +5 -0
- package/dist/types/modes/components/tool-execution.d.ts +8 -0
- package/dist/types/modes/components/transcript-viewer-overlay.d.ts +18 -1
- package/dist/types/modes/controllers/event-controller.d.ts +3 -0
- package/dist/types/modes/interactive-mode.d.ts +2 -0
- package/dist/types/modes/irc-observation-ledger.d.ts +17 -1
- package/dist/types/modes/types.d.ts +2 -0
- package/dist/types/modes/utils/ui-helpers.d.ts +16 -0
- package/dist/types/reminders/star-reminder.d.ts +3 -13
- package/dist/types/runtime-mcp/manager.d.ts +1 -0
- package/dist/types/runtime-mcp/smithery-auth.d.ts +5 -0
- package/dist/types/sdk/acp/adapter.d.ts +3 -1
- package/dist/types/sdk/broker/lifecycle.d.ts +5 -0
- package/dist/types/sdk/broker/transport.d.ts +2 -0
- package/dist/types/sdk/bus/attachment-registry.d.ts +1 -0
- package/dist/types/sdk/bus/chat-daemon-control.d.ts +4 -1
- package/dist/types/sdk/bus/config.d.ts +6 -2
- package/dist/types/sdk/bus/control-drain-lease.d.ts +52 -0
- package/dist/types/sdk/bus/index.d.ts +44 -1
- package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +44 -0
- package/dist/types/sdk/bus/lifecycle-control-runtime.d.ts +4 -0
- package/dist/types/sdk/bus/prompt-reconciliation.d.ts +2 -1
- package/dist/types/sdk/bus/reconciliation-store.d.ts +69 -0
- package/dist/types/sdk/bus/rich-draft.d.ts +1 -0
- package/dist/types/sdk/bus/rich-render.d.ts +2 -0
- package/dist/types/sdk/bus/telegram-adoption-intent.d.ts +165 -0
- package/dist/types/sdk/bus/telegram-cli.d.ts +12 -0
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +11 -4
- package/dist/types/sdk/bus/telegram-daemon.d.ts +25 -1
- package/dist/types/sdk/bus/telegram-reference.d.ts +11 -1
- package/dist/types/sdk/bus/threaded-render.d.ts +3 -2
- package/dist/types/sdk/bus/topic-registry.d.ts +11 -1
- package/dist/types/sdk/host/control/operations.d.ts +1 -1
- package/dist/types/sdk/host/host.d.ts +2 -0
- package/dist/types/sdk/host/query/handlers.d.ts +5 -0
- package/dist/types/sdk/host/query/revision-store.d.ts +2 -0
- package/dist/types/sdk/host/reverse-leases.d.ts +1 -1
- package/dist/types/sdk/prompt-status.d.ts +23 -3
- package/dist/types/sdk/session.d.ts +6 -0
- package/dist/types/session/agent-session.d.ts +82 -12
- package/dist/types/session/artifacts.d.ts +8 -0
- package/dist/types/session/blob-store.d.ts +57 -4
- package/dist/types/session/internal/managed-session-storage.d.ts +8 -1
- package/dist/types/session/memory-guard-checkpoint-participant.d.ts +69 -0
- package/dist/types/session/session-manager.d.ts +48 -19
- package/dist/types/session/session-storage.d.ts +4 -0
- package/dist/types/session/streaming-output.d.ts +96 -12
- package/dist/types/setup/credential-import.d.ts +12 -0
- package/dist/types/skill-state/active-state.d.ts +12 -4
- package/dist/types/skill-state/workflow-hud.d.ts +9 -0
- package/dist/types/task/executor.d.ts +3 -2
- package/dist/types/task/index.d.ts +3 -1
- package/dist/types/task/provider-retry-status.d.ts +8 -0
- package/dist/types/task/receipt.d.ts +7 -1
- package/dist/types/task/types.d.ts +23 -0
- package/dist/types/tools/ask-answer-registry.d.ts +2 -2
- package/dist/types/tools/bash-interactive.d.ts +4 -1
- package/dist/types/tools/bash.d.ts +3 -1
- package/dist/types/tools/browser/launch.d.ts +7 -0
- package/dist/types/tools/fetch.d.ts +17 -1
- package/dist/types/tools/image-gen.d.ts +4 -0
- package/dist/types/tools/index.d.ts +4 -0
- package/dist/types/tools/output-meta.d.ts +44 -3
- package/dist/types/tools/path-utils.d.ts +1 -0
- package/dist/types/tools/read-internals.d.ts +12 -0
- package/dist/types/tools/read.d.ts +45 -7
- package/dist/types/tools/resource-gc.d.ts +4 -0
- package/dist/types/tools/review.d.ts +5 -7
- package/dist/types/tools/subagent.d.ts +2 -0
- package/dist/types/tools/tool-result.d.ts +7 -1
- package/dist/types/utils/gh.d.ts +13 -0
- package/dist/types/utils/image-resize.d.ts +1 -0
- package/dist/types/web/search/providers/kimi.d.ts +2 -0
- package/dist/types/web/search/providers/searxng.d.ts +7 -0
- package/dist/types/web/search/providers/xai.d.ts +2 -0
- package/package.json +11 -13
- package/scripts/acp-conformance-agent.ts +218 -0
- package/scripts/benchmark-sticky-viewport-pr1.ts +239 -0
- package/scripts/capture-gjc-bundle-settings.ts +306 -0
- package/scripts/capture-sticky-viewport-showcase.ts +292 -0
- package/scripts/generate-sdk-operation-inventory.ts +5 -0
- package/scripts/resident-memory-bench.ts +1341 -0
- package/scripts/run-acp-conformance.ts +285 -0
- package/scripts/verify-gjc-sdk-canonicalization.ts +122 -18
- package/scripts/verify-sticky-viewport-showcase.ts +611 -0
- package/src/async/job-manager.ts +78 -20
- package/src/capability/index.ts +8 -0
- package/src/cli/fast-help.ts +1 -1
- package/src/cli/plugin-cli.ts +176 -18
- package/src/cli/read-cli.ts +2 -1
- package/src/cli.ts +1 -0
- package/src/commands/deep-interview.ts +29 -9
- package/src/commands/harness.ts +35 -12
- package/src/commands/read.ts +11 -2
- package/src/commands/team.ts +20 -2
- package/src/config/file-lock.ts +11 -2
- package/src/config/model-registry.ts +21 -2
- package/src/config/provider-auth-health.ts +42 -0
- package/src/config/provider-ranking.ts +119 -0
- package/src/config/settings-schema.ts +74 -1
- package/src/config/settings.ts +246 -108
- package/src/coordinator-mcp/question-gate-codec.ts +1 -1
- package/src/coordinator-mcp/server.ts +5 -12
- package/src/defaults/gjc/skills/deep-interview/SKILL.md +230 -82
- package/src/defaults/gjc/skills/ralplan/SKILL.md +77 -41
- package/src/defaults/gjc/skills/team/SKILL.md +3 -1
- package/src/defaults/gjc/skills/ultragoal/SKILL.md +62 -39
- package/src/defaults/gjc/skills/ultragoal/validation-batch-contracts.md +12 -0
- package/src/defaults/gjc-defaults.ts +4 -4
- package/src/eval/py/executor.ts +7 -2
- package/src/exa/mcp-client.ts +12 -3
- package/src/exec/bash-executor.ts +144 -27
- package/src/extensibility/extensions/runner.ts +15 -0
- package/src/extensibility/extensions/types.ts +46 -5
- package/src/extensibility/gjc-plugins/constrained-hooks.ts +8 -2
- package/src/extensibility/gjc-plugins/index.ts +19 -2
- package/src/extensibility/gjc-plugins/installer.ts +189 -50
- package/src/extensibility/gjc-plugins/lifecycle-reconciliation.ts +199 -0
- package/src/extensibility/gjc-plugins/lifecycle.ts +626 -0
- package/src/extensibility/gjc-plugins/observability.ts +3 -3
- package/src/extensibility/gjc-plugins/prompt-appendix.ts +5 -1
- package/src/extensibility/gjc-plugins/runtime-adapters.ts +12 -2
- package/src/extensibility/gjc-plugins/runtime-quarantine.ts +121 -0
- package/src/extensibility/gjc-plugins/schema.ts +84 -12
- package/src/extensibility/gjc-plugins/session-validation.ts +9 -3
- package/src/extensibility/gjc-plugins/types.ts +141 -0
- package/src/extensibility/gjc-plugins/validation.ts +9 -0
- package/src/extensibility/shared-events.ts +5 -0
- package/src/gjc-runtime/deep-interview-ambiguity.ts +47 -82
- package/src/gjc-runtime/deep-interview-recorder.ts +227 -310
- package/src/gjc-runtime/deep-interview-runtime.ts +109 -270
- package/src/gjc-runtime/deep-interview-stage.ts +1016 -0
- package/src/gjc-runtime/deep-interview-state.ts +12 -943
- package/src/gjc-runtime/gc-render.ts +1 -0
- package/src/gjc-runtime/gc-runtime.ts +11 -1
- package/src/gjc-runtime/launch-tmux.ts +25 -6
- package/src/gjc-runtime/managed-owner-admission.ts +1 -1
- package/src/gjc-runtime/memory-guard-owner-claims.ts +389 -0
- package/src/gjc-runtime/ralplan-runtime.ts +1149 -98
- package/src/gjc-runtime/state-runtime.ts +2 -1
- package/src/gjc-runtime/state-writer.ts +70 -222
- package/src/gjc-runtime/team-launch.ts +42 -5
- package/src/gjc-runtime/team-runtime.ts +1085 -40
- package/src/gjc-runtime/team-store.ts +32 -0
- package/src/gjc-runtime/team-worker-heartbeat.ts +149 -0
- package/src/gjc-runtime/team-worker-memory-guard.ts +363 -0
- package/src/gjc-runtime/team-workers.ts +1 -0
- package/src/gjc-runtime/tmux-owner-isolation.ts +28 -0
- package/src/gjc-runtime/tmux-sessions.ts +58 -13
- package/src/gjc-runtime/ultragoal-receipt-freshness.ts +20 -0
- package/src/gjc-runtime/ultragoal-runtime.ts +414 -618
- package/src/gjc-runtime/workflow-manifest.generated.json +105 -449
- package/src/gjc-runtime/workflow-manifest.ts +38 -247
- package/src/hooks/native-skill-hook.ts +17 -4
- package/src/hooks/skill-state.ts +1 -23
- package/src/internal-urls/docs-index.generated.ts +21 -22
- package/src/internal-urls/local-root-gc.ts +127 -0
- package/src/main.ts +9 -5
- package/src/memories/index.ts +10 -0
- package/src/modes/DESIGN.md +98 -0
- package/src/modes/acp/acp-agent.ts +339 -191
- package/src/modes/acp/acp-event-mapper.ts +14 -7
- package/src/modes/acp/acp-mode.ts +39 -3
- package/src/modes/components/assistant-message.ts +123 -22
- package/src/modes/components/gjc-bundle-settings.ts +508 -0
- package/src/modes/components/irc-sidebar.ts +176 -62
- package/src/modes/components/model-selector.ts +61 -4
- package/src/modes/components/notifications-settings-editor.ts +12 -1
- package/src/modes/components/oauth-selector.ts +96 -28
- package/src/modes/components/read-tool-group.ts +82 -14
- package/src/modes/components/session-observer-overlay.ts +457 -83
- package/src/modes/components/settings-selector.ts +116 -23
- package/src/modes/components/status-line/gh.ts +16 -0
- package/src/modes/components/tool-execution.ts +138 -27
- package/src/modes/components/tool-status-header.ts +3 -14
- package/src/modes/components/transcript-viewer-overlay.ts +99 -24
- package/src/modes/controllers/command-controller.ts +4 -0
- package/src/modes/controllers/event-controller.ts +109 -27
- package/src/modes/controllers/extension-ui-controller.ts +26 -2
- package/src/modes/controllers/input-controller.ts +18 -3
- package/src/modes/controllers/selector-controller.ts +127 -36
- package/src/modes/interactive-mode.ts +62 -3
- package/src/modes/irc-observation-ledger.ts +71 -15
- package/src/modes/runtime-init.ts +22 -2
- package/src/modes/types.ts +2 -0
- package/src/modes/utils/ui-helpers.ts +94 -1
- package/src/prompts/agent-fragments/ralplan-persistence.md +4 -3
- package/src/prompts/agents/architect.md +9 -1
- package/src/prompts/agents/critic.md +9 -0
- package/src/prompts/system/eager-todo.md +8 -4
- package/src/prompts/system/system-prompt.md +11 -5
- package/src/prompts/tools/bash.md +5 -5
- package/src/prompts/tools/read.md +4 -2
- package/src/prompts/tools/search-tool-bm25.md +5 -0
- package/src/prompts/tools/task.md +1 -1
- package/src/reminders/star-reminder.ts +4 -42
- package/src/runtime-mcp/manager.ts +19 -4
- package/src/runtime-mcp/smithery-auth.ts +17 -2
- package/src/runtime-mcp/smithery-connect.ts +11 -1
- package/src/sdk/acp/adapter.ts +22 -6
- package/src/sdk/broker/lifecycle.ts +25 -6
- package/src/sdk/broker/transport.ts +35 -3
- package/src/sdk/bus/attachment-registry.ts +5 -1
- package/src/sdk/bus/chat-daemon-cli.ts +4 -39
- package/src/sdk/bus/chat-daemon-control.ts +6 -3
- package/src/sdk/bus/config.ts +18 -2
- package/src/sdk/bus/control-drain-lease.ts +104 -0
- package/src/sdk/bus/index.ts +984 -146
- package/src/sdk/bus/kind-aware-reconciliation.ts +317 -0
- package/src/sdk/bus/lifecycle-commands.ts +4 -1
- package/src/sdk/bus/lifecycle-control-runtime.ts +403 -88
- package/src/sdk/bus/prompt-reconciliation.ts +2 -1
- package/src/sdk/bus/reconciliation-store.ts +303 -0
- package/src/sdk/bus/rich-draft.ts +1 -1
- package/src/sdk/bus/rich-render.ts +2 -2
- package/src/sdk/bus/telegram-adoption-intent.ts +574 -0
- package/src/sdk/bus/telegram-cli.ts +33 -8
- package/src/sdk/bus/telegram-daemon-cli.ts +1 -0
- package/src/sdk/bus/telegram-daemon-contract.ts +11 -4
- package/src/sdk/bus/telegram-daemon.ts +916 -23
- package/src/sdk/bus/telegram-reference.ts +40 -3
- package/src/sdk/bus/threaded-render.ts +48 -3
- package/src/sdk/bus/topic-registry.ts +20 -0
- package/src/sdk/host/control/dispatch.ts +5 -1
- package/src/sdk/host/control/operations.ts +1 -1
- package/src/sdk/host/host.ts +23 -1
- package/src/sdk/host/query/handlers.ts +55 -0
- package/src/sdk/host/query/revision-store.ts +36 -2
- package/src/sdk/host/reverse-leases.ts +44 -7
- package/src/sdk/mcp/server.ts +46 -18
- package/src/sdk/prompt-status.ts +16 -3
- package/src/sdk/protocol/operation-inventory.generated.json +51 -0
- package/src/sdk/protocol/operation-registry.ts +7 -2
- package/src/sdk/session.ts +101 -10
- package/src/session/agent-session.ts +1286 -220
- package/src/session/artifacts.ts +22 -0
- package/src/session/auth-broker-config.ts +10 -3
- package/src/session/blob-store.ts +915 -24
- package/src/session/internal/managed-session-scope.ts +44 -6
- package/src/session/internal/managed-session-storage.ts +48 -6
- package/src/session/memory-guard-checkpoint-participant.ts +131 -0
- package/src/session/session-manager.ts +2364 -438
- package/src/session/session-storage.ts +9 -1
- package/src/session/streaming-output.ts +500 -111
- package/src/setup/credential-import.ts +75 -13
- package/src/setup/provider-onboarding.ts +19 -4
- package/src/skill-state/active-state.ts +32 -10
- package/src/skill-state/workflow-hud.ts +42 -2
- package/src/skill-state/workflow-mutation-guard.ts +560 -8
- package/src/task/executor.ts +122 -39
- package/src/task/index.ts +23 -14
- package/src/task/provider-retry-status.ts +16 -0
- package/src/task/receipt.ts +23 -7
- package/src/task/render.ts +6 -2
- package/src/task/types.ts +108 -0
- package/src/tools/ask-answer-registry.ts +12 -6
- package/src/tools/ask.ts +169 -118
- package/src/tools/ast-edit.ts +1 -0
- package/src/tools/ast-grep.ts +1 -0
- package/src/tools/bash-interactive.ts +8 -3
- package/src/tools/bash.ts +503 -60
- package/src/tools/browser/launch.ts +41 -6
- package/src/tools/fetch.ts +114 -23
- package/src/tools/find.ts +1 -0
- package/src/tools/image-gen.ts +29 -5
- package/src/tools/index.ts +4 -0
- package/src/tools/output-meta.ts +281 -20
- package/src/tools/path-utils.ts +8 -3
- package/src/tools/read-internals.ts +44 -0
- package/src/tools/read.ts +1560 -310
- package/src/tools/resource-gc.ts +182 -18
- package/src/tools/review.ts +5 -7
- package/src/tools/search.ts +1 -0
- package/src/tools/subagent-render.ts +6 -2
- package/src/tools/subagent.ts +6 -0
- package/src/tools/telegram-send.ts +6 -3
- package/src/tools/tool-result.ts +14 -1
- package/src/utils/gh.ts +39 -0
- package/src/utils/image-resize.ts +3 -0
- package/src/web/search/providers/anthropic.ts +4 -4
- package/src/web/search/providers/codex.ts +1 -1
- package/src/web/search/providers/kimi.ts +15 -5
- package/src/web/search/providers/searxng.ts +47 -4
- package/src/web/search/providers/xai.ts +7 -2
- package/dist/types/gjc-runtime/deep-interview-draft.d.ts +0 -8
- package/dist/types/gjc-runtime/deep-interview-payload.d.ts +0 -41
- package/dist/types/gjc-runtime/deep-interview-repair.d.ts +0 -17
- package/dist/types/gjc-runtime/ultragoal-pipeline.d.ts +0 -23
- package/src/defaults/gjc/skills/ultragoal/pipeline-validation-contracts.md +0 -30
- package/src/gjc-runtime/deep-interview-draft.ts +0 -843
- package/src/gjc-runtime/deep-interview-payload.ts +0 -262
- package/src/gjc-runtime/deep-interview-repair.ts +0 -1674
- package/src/gjc-runtime/ultragoal-pipeline.ts +0 -306
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
decodeDeepInterviewAnswerJson,
|
|
3
|
-
decodeDeepInterviewRoundResultJson,
|
|
4
|
-
decodeDeepInterviewSetupJson,
|
|
5
|
-
decodeDeepInterviewTopologyJson,
|
|
6
|
-
} from "./deep-interview-repair";
|
|
7
|
-
import type { DeepInterviewRoundResultV1 } from "./deep-interview-state";
|
|
8
|
-
|
|
9
|
-
export const DEEP_INTERVIEW_DRAFT_KINDS = [
|
|
10
|
-
"initialize-context",
|
|
11
|
-
"confirm-topology",
|
|
12
|
-
"record-answer",
|
|
13
|
-
"apply-round-result",
|
|
14
|
-
] as const;
|
|
15
|
-
|
|
16
|
-
export type DeepInterviewDraftKind = (typeof DEEP_INTERVIEW_DRAFT_KINDS)[number];
|
|
17
|
-
export type DeepInterviewDraftPayload = Record<string, unknown>;
|
|
18
|
-
export type DraftScalarType = "string" | "id" | "text" | "score" | "number" | "safe-int" | "boolean" | "enum";
|
|
19
|
-
export interface DraftLeafDescriptor {
|
|
20
|
-
kind: "leaf";
|
|
21
|
-
type: DraftScalarType;
|
|
22
|
-
nullable?: boolean;
|
|
23
|
-
maxBytes?: number;
|
|
24
|
-
values?: readonly string[];
|
|
25
|
-
optional?: boolean;
|
|
26
|
-
dynamicMapValue?: boolean;
|
|
27
|
-
}
|
|
28
|
-
export interface DraftObjectDescriptor {
|
|
29
|
-
kind: "object";
|
|
30
|
-
fields: Record<string, DraftDescriptor>;
|
|
31
|
-
optional?: boolean;
|
|
32
|
-
dynamicMapValue?: boolean;
|
|
33
|
-
dynamicValue?: DraftLeafDescriptor;
|
|
34
|
-
}
|
|
35
|
-
export interface DraftArrayDescriptor {
|
|
36
|
-
kind: "array";
|
|
37
|
-
item: DraftLeafDescriptor | DraftObjectDescriptor;
|
|
38
|
-
maxItems: number;
|
|
39
|
-
optional?: boolean;
|
|
40
|
-
}
|
|
41
|
-
export type DraftDescriptor = DraftLeafDescriptor | DraftObjectDescriptor | DraftArrayDescriptor;
|
|
42
|
-
|
|
43
|
-
const string = (maxBytes: number, optional = true): DraftLeafDescriptor => ({
|
|
44
|
-
kind: "leaf",
|
|
45
|
-
type: "string",
|
|
46
|
-
maxBytes,
|
|
47
|
-
optional,
|
|
48
|
-
});
|
|
49
|
-
const text = (maxBytes: number, optional = true): DraftLeafDescriptor => ({
|
|
50
|
-
kind: "leaf",
|
|
51
|
-
type: "text",
|
|
52
|
-
maxBytes,
|
|
53
|
-
optional,
|
|
54
|
-
});
|
|
55
|
-
const id = (optional = true): DraftLeafDescriptor => ({ kind: "leaf", type: "id", maxBytes: 128, optional });
|
|
56
|
-
const score = (optional = true): DraftLeafDescriptor => ({ kind: "leaf", type: "score", optional });
|
|
57
|
-
const safeInt = (optional = true): DraftLeafDescriptor => ({ kind: "leaf", type: "safe-int", optional });
|
|
58
|
-
const boolean = (optional = true): DraftLeafDescriptor => ({ kind: "leaf", type: "boolean", optional });
|
|
59
|
-
const enumeration = (values: readonly string[], optional = true, nullable = false): DraftLeafDescriptor => ({
|
|
60
|
-
kind: "leaf",
|
|
61
|
-
type: "enum",
|
|
62
|
-
values,
|
|
63
|
-
optional,
|
|
64
|
-
nullable,
|
|
65
|
-
});
|
|
66
|
-
const object = (fields: Record<string, DraftDescriptor>, optional = true): DraftObjectDescriptor => ({
|
|
67
|
-
kind: "object",
|
|
68
|
-
fields,
|
|
69
|
-
optional,
|
|
70
|
-
});
|
|
71
|
-
const array = (
|
|
72
|
-
item: DraftLeafDescriptor | DraftObjectDescriptor,
|
|
73
|
-
maxItems: number,
|
|
74
|
-
optional = true,
|
|
75
|
-
): DraftArrayDescriptor => ({
|
|
76
|
-
kind: "array",
|
|
77
|
-
item,
|
|
78
|
-
maxItems,
|
|
79
|
-
optional,
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
const DIMENSIONS = ["goal", "constraints", "criteria", "context"] as const;
|
|
83
|
-
const dimensionScores = object(Object.fromEntries(DIMENSIONS.map(dimension => [dimension, score(false)])), false);
|
|
84
|
-
const component = object(
|
|
85
|
-
{ id: id(false), name: string(1024), status: enumeration(["active", "deferred"]), active: boolean() },
|
|
86
|
-
false,
|
|
87
|
-
);
|
|
88
|
-
const setup = object(
|
|
89
|
-
{
|
|
90
|
-
type: enumeration(["greenfield", "brownfield"], false),
|
|
91
|
-
interview_id: id(),
|
|
92
|
-
initial_idea: text(4096),
|
|
93
|
-
initial_context_summary: text(4096),
|
|
94
|
-
codebase_context: text(4096),
|
|
95
|
-
challenge_modes_used: array(string(256, false), 64),
|
|
96
|
-
threshold: score(false),
|
|
97
|
-
threshold_source: text(4096),
|
|
98
|
-
language: text(4096),
|
|
99
|
-
trace: array(string(2048, false), 64),
|
|
100
|
-
trace_summary: text(4096),
|
|
101
|
-
},
|
|
102
|
-
false,
|
|
103
|
-
);
|
|
104
|
-
const result = object(
|
|
105
|
-
{
|
|
106
|
-
global_scores: dimensionScores,
|
|
107
|
-
component_updates: array(object({ component_id: id(false), scores: dimensionScores }, false), 12),
|
|
108
|
-
targeting: object({
|
|
109
|
-
target_component_id: id(false),
|
|
110
|
-
target_dimension: enumeration(DIMENSIONS, false),
|
|
111
|
-
weakest_component_id: id(false),
|
|
112
|
-
weakest_dimension: enumeration(DIMENSIONS, false),
|
|
113
|
-
last_targeted_component_id: { ...id(false), nullable: true },
|
|
114
|
-
}),
|
|
115
|
-
triggers: array(
|
|
116
|
-
object(
|
|
117
|
-
{
|
|
118
|
-
kind: enumeration(["A", "B", "C", "D"], false),
|
|
119
|
-
name: text(1024, false),
|
|
120
|
-
status: enumeration(["active", "disputed", "unresolved"], false),
|
|
121
|
-
component: id(false),
|
|
122
|
-
dimension: enumeration(DIMENSIONS, false),
|
|
123
|
-
evidence: text(4096),
|
|
124
|
-
contradictedFactId: id(),
|
|
125
|
-
rationale: text(4096),
|
|
126
|
-
},
|
|
127
|
-
false,
|
|
128
|
-
),
|
|
129
|
-
16,
|
|
130
|
-
),
|
|
131
|
-
fact_ops: array(
|
|
132
|
-
object(
|
|
133
|
-
{
|
|
134
|
-
op: enumeration(["add", "dispute", "supersede"], false),
|
|
135
|
-
id: id(false),
|
|
136
|
-
statement: text(4096),
|
|
137
|
-
component: text(128),
|
|
138
|
-
dimension: enumeration(DIMENSIONS),
|
|
139
|
-
evidence: text(4096),
|
|
140
|
-
target_id: id(),
|
|
141
|
-
},
|
|
142
|
-
false,
|
|
143
|
-
),
|
|
144
|
-
32,
|
|
145
|
-
),
|
|
146
|
-
ontology: object({
|
|
147
|
-
entities: array(
|
|
148
|
-
object(
|
|
149
|
-
{
|
|
150
|
-
id: id(false),
|
|
151
|
-
name: text(1024, false),
|
|
152
|
-
type: text(1024, false),
|
|
153
|
-
fields: array(text(1024, false), 16, false),
|
|
154
|
-
},
|
|
155
|
-
false,
|
|
156
|
-
),
|
|
157
|
-
32,
|
|
158
|
-
false,
|
|
159
|
-
),
|
|
160
|
-
relationships: array(
|
|
161
|
-
object(
|
|
162
|
-
{ id: id(false), from_entity_id: id(false), to_entity_id: id(false), type: text(1024, false) },
|
|
163
|
-
false,
|
|
164
|
-
),
|
|
165
|
-
16,
|
|
166
|
-
false,
|
|
167
|
-
),
|
|
168
|
-
reasoning: array(object({ statement: text(4096, false), evidence: text(4096) }, false), 32, false),
|
|
169
|
-
}),
|
|
170
|
-
bookkeeping: object({
|
|
171
|
-
resolution: enumeration(
|
|
172
|
-
["auto_research_accepted", "auto_answer", "direct", "refined", "cited_confirmation"],
|
|
173
|
-
false,
|
|
174
|
-
),
|
|
175
|
-
round_ids: array(id(false), 32),
|
|
176
|
-
counter_deltas: {
|
|
177
|
-
kind: "object",
|
|
178
|
-
fields: {},
|
|
179
|
-
dynamicValue: { ...safeInt(false), dynamicMapValue: true },
|
|
180
|
-
optional: true,
|
|
181
|
-
},
|
|
182
|
-
}),
|
|
183
|
-
},
|
|
184
|
-
false,
|
|
185
|
-
);
|
|
186
|
-
const DRAFT_SCHEMAS: Record<DeepInterviewDraftKind, DraftObjectDescriptor> = {
|
|
187
|
-
"initialize-context": setup,
|
|
188
|
-
"confirm-topology": object(
|
|
189
|
-
{ components: array(component, 64, false), deferred_components: array(id(false), 64, false) },
|
|
190
|
-
false,
|
|
191
|
-
),
|
|
192
|
-
"record-answer": object(
|
|
193
|
-
{
|
|
194
|
-
question: text(8192, false),
|
|
195
|
-
answer: object(
|
|
196
|
-
{
|
|
197
|
-
selected_options: array(string(2048, false), 64, false),
|
|
198
|
-
custom_input: { ...text(4096, false), nullable: true },
|
|
199
|
-
},
|
|
200
|
-
false,
|
|
201
|
-
),
|
|
202
|
-
},
|
|
203
|
-
false,
|
|
204
|
-
),
|
|
205
|
-
"apply-round-result": result,
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
export function deepInterviewDraftSchema(kind: DeepInterviewDraftKind): DraftObjectDescriptor {
|
|
209
|
-
return DRAFT_SCHEMAS[kind];
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/** Shared strict payload decoders used by compatibility JSON and CLI-owned drafts. */
|
|
213
|
-
export function decodeInitializeContextPayload(payload: unknown): Record<string, unknown> {
|
|
214
|
-
return decodeDeepInterviewSetupJson(payload);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
export function decodeConfirmTopologyPayload(payload: unknown): Record<string, unknown> {
|
|
218
|
-
return decodeDeepInterviewTopologyJson(payload);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
export function decodeRecordAnswerPayload(payload: unknown): {
|
|
222
|
-
question: string;
|
|
223
|
-
answer: { selected_options: string[]; custom_input: string | null };
|
|
224
|
-
} {
|
|
225
|
-
const input = asRecord(payload);
|
|
226
|
-
if (Object.keys(input).some(key => key !== "question" && key !== "answer")) throw new Error("DI_INVALID_INPUT_JSON");
|
|
227
|
-
if (typeof input.question !== "string") throw new Error("DI_INVALID_QUESTION_JSON");
|
|
228
|
-
return { question: input.question, answer: decodeDeepInterviewAnswerJson(input.answer) };
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
export function decodeApplyRoundResultPayload(
|
|
232
|
-
payload: unknown,
|
|
233
|
-
state: Record<string, unknown>,
|
|
234
|
-
): DeepInterviewRoundResultV1 {
|
|
235
|
-
return decodeDeepInterviewRoundResultJson(payload, state);
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
export function validateDraftPayload(
|
|
239
|
-
kind: DeepInterviewDraftKind,
|
|
240
|
-
payload: unknown,
|
|
241
|
-
state: Record<string, unknown> = {},
|
|
242
|
-
): void {
|
|
243
|
-
switch (kind) {
|
|
244
|
-
case "initialize-context":
|
|
245
|
-
decodeInitializeContextPayload(payload);
|
|
246
|
-
return;
|
|
247
|
-
case "confirm-topology":
|
|
248
|
-
decodeConfirmTopologyPayload(payload);
|
|
249
|
-
return;
|
|
250
|
-
case "record-answer":
|
|
251
|
-
decodeRecordAnswerPayload(payload);
|
|
252
|
-
return;
|
|
253
|
-
case "apply-round-result":
|
|
254
|
-
decodeApplyRoundResultPayload(payload, state);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
function asRecord(value: unknown): Record<string, unknown> {
|
|
259
|
-
if (!value || typeof value !== "object" || Array.isArray(value) || Object.getPrototypeOf(value) !== Object.prototype)
|
|
260
|
-
throw new Error("DI_INVALID_INPUT_JSON");
|
|
261
|
-
return value as Record<string, unknown>;
|
|
262
|
-
}
|