laohuang 0.3.2 → 0.4.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 (86) hide show
  1. package/README.md +142 -16
  2. package/dist/agent.d.ts +166 -0
  3. package/dist/agent.js +858 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/bash-runner.d.ts +79 -0
  6. package/dist/bash-runner.js +464 -0
  7. package/dist/bash-runner.js.map +1 -0
  8. package/dist/cancellation.d.ts +36 -0
  9. package/dist/cancellation.js +123 -0
  10. package/dist/cancellation.js.map +1 -0
  11. package/dist/cli.d.ts +117 -0
  12. package/dist/cli.js +1307 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/client.d.ts +21 -0
  15. package/dist/client.js +17 -0
  16. package/dist/client.js.map +1 -0
  17. package/dist/commands.d.ts +123 -0
  18. package/dist/commands.js +660 -0
  19. package/dist/commands.js.map +1 -0
  20. package/dist/config.d.ts +51 -0
  21. package/dist/config.js +183 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/credentials.d.ts +12 -0
  24. package/dist/credentials.js +102 -0
  25. package/dist/credentials.js.map +1 -0
  26. package/dist/events.d.ts +288 -0
  27. package/dist/events.js +838 -0
  28. package/dist/events.js.map +1 -0
  29. package/dist/model-adapter.d.ts +138 -0
  30. package/dist/model-adapter.js +244 -0
  31. package/dist/model-adapter.js.map +1 -0
  32. package/dist/model-selection.d.ts +67 -0
  33. package/dist/model-selection.js +148 -0
  34. package/dist/model-selection.js.map +1 -0
  35. package/dist/model-stream.d.ts +128 -0
  36. package/dist/model-stream.js +582 -0
  37. package/dist/model-stream.js.map +1 -0
  38. package/dist/project-instructions.d.ts +99 -0
  39. package/dist/project-instructions.js +348 -0
  40. package/dist/project-instructions.js.map +1 -0
  41. package/dist/providers.d.ts +9 -0
  42. package/dist/providers.js +26 -0
  43. package/dist/providers.js.map +1 -0
  44. package/dist/routing.d.ts +170 -0
  45. package/dist/routing.js +669 -0
  46. package/dist/routing.js.map +1 -0
  47. package/dist/semantic-classifier.d.ts +66 -0
  48. package/dist/semantic-classifier.js +86 -0
  49. package/dist/semantic-classifier.js.map +1 -0
  50. package/dist/session.d.ts +162 -0
  51. package/dist/session.js +871 -0
  52. package/dist/session.js.map +1 -0
  53. package/dist/system-prompt.d.ts +16 -0
  54. package/dist/system-prompt.js +42 -0
  55. package/dist/system-prompt.js.map +1 -0
  56. package/dist/terminal/editor.d.ts +161 -0
  57. package/dist/terminal/editor.js +1060 -0
  58. package/dist/terminal/editor.js.map +1 -0
  59. package/dist/terminal/input.d.ts +61 -0
  60. package/dist/terminal/input.js +276 -0
  61. package/dist/terminal/input.js.map +1 -0
  62. package/dist/terminal/markdown.d.ts +20 -0
  63. package/dist/terminal/markdown.js +621 -0
  64. package/dist/terminal/markdown.js.map +1 -0
  65. package/dist/terminal/screen.d.ts +66 -0
  66. package/dist/terminal/screen.js +624 -0
  67. package/dist/terminal/screen.js.map +1 -0
  68. package/dist/terminal/theme.d.ts +23 -0
  69. package/dist/terminal/theme.js +101 -0
  70. package/dist/terminal/theme.js.map +1 -0
  71. package/dist/terminal/ui.d.ts +285 -0
  72. package/dist/terminal/ui.js +1815 -0
  73. package/dist/terminal/ui.js.map +1 -0
  74. package/dist/tools.d.ts +95 -0
  75. package/dist/tools.js +444 -0
  76. package/dist/tools.js.map +1 -0
  77. package/dist/ui-state.d.ts +51 -0
  78. package/dist/ui-state.js +194 -0
  79. package/dist/ui-state.js.map +1 -0
  80. package/dist/web.d.ts +56 -0
  81. package/dist/web.js +247 -0
  82. package/dist/web.js.map +1 -0
  83. package/package.json +24 -21
  84. package/bin/laohuang.js +0 -10
  85. package/lib/launcher.js +0 -133
  86. package/vendor/laohuangcode-0.3.2-py3-none-any.whl +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-selection.js","sourceRoot":"","sources":["../src/model-selection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * OpenAI-compatible Chat Completions stream assembly and validation.
3
+ *
4
+ * One streamed completion is buffered into a provisional {@link ModelAttempt};
5
+ * the attempt only produces a {@link StreamResult} (the unit the agent commits
6
+ * to history, atomically, per turn) after the whole stream validates. Late
7
+ * deltas for a superseded request are dropped via `isRequestActive`, and a
8
+ * cancelled attempt flushes its partial text for display but never validates,
9
+ * so the caller has nothing to commit.
10
+ */
11
+ import { CancelToken } from "./cancellation.ts";
12
+ /** Raised when a streamed model response is incomplete or invalid. */
13
+ export declare class ModelStreamError extends Error {
14
+ /** True when the stream had already delivered deltas before failing. */
15
+ hadDelta: boolean;
16
+ constructor(message: string, options?: {
17
+ hadDelta?: boolean;
18
+ cause?: unknown;
19
+ });
20
+ }
21
+ /** Raised when a model stream is cooperatively cancelled. */
22
+ export declare class ModelStreamCancelled extends ModelStreamError {
23
+ constructor(message: string, options?: {
24
+ cause?: unknown;
25
+ });
26
+ }
27
+ /** Raised when chunks arrive for a request which is no longer active. */
28
+ export declare class StaleModelRequest extends ModelStreamCancelled {
29
+ constructor(message: string, options?: {
30
+ cause?: unknown;
31
+ });
32
+ }
33
+ export type AttemptState = "provisional" | "validated" | "aborted";
34
+ export interface AssembledFunction {
35
+ readonly name: string;
36
+ readonly arguments: string;
37
+ }
38
+ export interface AssembledToolCall {
39
+ readonly id: string;
40
+ readonly type: string;
41
+ readonly function: AssembledFunction;
42
+ }
43
+ /** Chat Completions wire shape for one assistant tool call. */
44
+ export declare function toolCallToDict(toolCall: AssembledToolCall): Record<string, unknown>;
45
+ /** Assemble fragmented Chat Completions tool calls by their index. */
46
+ export declare class ToolCallAccumulator {
47
+ readonly index: number;
48
+ private readonly idParts;
49
+ private readonly typeParts;
50
+ private readonly nameParts;
51
+ private readonly argumentParts;
52
+ constructor(index: number);
53
+ add(fragment: unknown): void;
54
+ build(): AssembledToolCall;
55
+ }
56
+ /** A fully validated assistant turn, ready to commit to history. */
57
+ export declare class StreamResult {
58
+ readonly requestId: string;
59
+ readonly content: string | null;
60
+ readonly reasoningContent: string | null;
61
+ readonly toolCalls: readonly AssembledToolCall[];
62
+ readonly finishReason: string;
63
+ readonly usage: unknown;
64
+ constructor(init: {
65
+ requestId: string;
66
+ content: string | null;
67
+ reasoningContent: string | null;
68
+ toolCalls: readonly AssembledToolCall[];
69
+ finishReason: string;
70
+ usage?: unknown;
71
+ });
72
+ /** Assistant message in Chat Completions wire shape (nulls stripped). */
73
+ messageDict(): Record<string, unknown>;
74
+ }
75
+ export interface DeltaEvent {
76
+ kind: string;
77
+ payload: Record<string, unknown>;
78
+ }
79
+ /** A provisional response which can be atomically committed after validation. */
80
+ export declare class ModelAttempt {
81
+ readonly requestId: string;
82
+ readonly contentParts: string[];
83
+ readonly reasoningParts: string[];
84
+ readonly toolCalls: Map<number, ToolCallAccumulator>;
85
+ finishReason: string | null;
86
+ usage: unknown;
87
+ receivedDelta: boolean;
88
+ state: AttemptState;
89
+ constructor(requestId: string);
90
+ get content(): string;
91
+ get reasoningContent(): string;
92
+ addChoice(choice: unknown): DeltaEvent[];
93
+ validate(): StreamResult;
94
+ abort(): void;
95
+ }
96
+ export type DeltaCallback = (kind: string, payload: Record<string, unknown>) => void;
97
+ /**
98
+ * Minimal structural view of `client.chat.completions` from the openai SDK.
99
+ * `create` may return the response/stream directly or a promise of it.
100
+ */
101
+ export interface ChatCompletionsEndpoint {
102
+ create(request: Record<string, unknown>): unknown;
103
+ }
104
+ export interface CompleteOptions {
105
+ model: string;
106
+ messages: Array<Record<string, unknown>>;
107
+ tools: Array<Record<string, unknown>>;
108
+ toolChoice?: string | Record<string, unknown> | null;
109
+ requestId?: string;
110
+ cancelToken?: CancelToken | null;
111
+ isRequestActive?: ((requestId: string) => boolean) | null;
112
+ onDelta?: DeltaCallback | null;
113
+ onRequestOpened?: (() => boolean | void) | null;
114
+ maxPreDeltaRetries?: number;
115
+ /** Provider-specific extra request fields, merged into the wire request. */
116
+ extraBody?: Record<string, unknown> | null;
117
+ }
118
+ /** Create and assemble one OpenAI-compatible streaming completion. */
119
+ export declare class ChatCompletionStreamer {
120
+ private readonly completions;
121
+ constructor(completions: ChatCompletionsEndpoint);
122
+ complete(options: CompleteOptions): Promise<StreamResult>;
123
+ /**
124
+ * Compatibility path for fake clients and OpenAI-compatible endpoints
125
+ * which answer a streaming request with a plain completion object.
126
+ */
127
+ private static fromNonStream;
128
+ }