@agent-phonon/protocol 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +70 -0
  3. package/dist/index.d.ts +24 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +24 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/json-schema/_index.json +3794 -0
  8. package/dist/json-schema/connect.hello.json +117 -0
  9. package/dist/json-schema/discovery.changed.json +190 -0
  10. package/dist/json-schema/discovery.get.json +183 -0
  11. package/dist/json-schema/discovery.list.json +182 -0
  12. package/dist/json-schema/document.prepare_upload.json +96 -0
  13. package/dist/json-schema/document.send.json +165 -0
  14. package/dist/json-schema/hook.fired.json +100 -0
  15. package/dist/json-schema/hook.resolve.json +96 -0
  16. package/dist/json-schema/interaction.cancel.json +48 -0
  17. package/dist/json-schema/interaction.request.json +376 -0
  18. package/dist/json-schema/interaction.response.json +68 -0
  19. package/dist/json-schema/project.create.json +89 -0
  20. package/dist/json-schema/project.get.json +76 -0
  21. package/dist/json-schema/project.git.deleteBranch.json +64 -0
  22. package/dist/json-schema/project.list.json +72 -0
  23. package/dist/json-schema/project.remove.json +69 -0
  24. package/dist/json-schema/project.worktree.create.json +88 -0
  25. package/dist/json-schema/project.worktree.list.json +77 -0
  26. package/dist/json-schema/project.worktree.remove.json +61 -0
  27. package/dist/json-schema/session.compress.json +72 -0
  28. package/dist/json-schema/session.create.json +128 -0
  29. package/dist/json-schema/session.inject.json +72 -0
  30. package/dist/json-schema/session.interrupt.json +58 -0
  31. package/dist/json-schema/session.list.json +127 -0
  32. package/dist/json-schema/session.send.json +132 -0
  33. package/dist/json-schema/session.status.json +94 -0
  34. package/dist/json-schema/session.switchModel.json +73 -0
  35. package/dist/json-schema/session.terminate.json +54 -0
  36. package/dist/json-schema/skill.install.json +171 -0
  37. package/dist/json-schema/skill.list.json +101 -0
  38. package/dist/json-schema/skill.uninstall.json +76 -0
  39. package/dist/json-schema/stream.ack.json +36 -0
  40. package/dist/json-schema/stream.event.json +381 -0
  41. package/dist/schemas/capabilities.d.ts +90 -0
  42. package/dist/schemas/capabilities.d.ts.map +1 -0
  43. package/dist/schemas/capabilities.js +59 -0
  44. package/dist/schemas/capabilities.js.map +1 -0
  45. package/dist/schemas/common.d.ts +66 -0
  46. package/dist/schemas/common.d.ts.map +1 -0
  47. package/dist/schemas/common.js +97 -0
  48. package/dist/schemas/common.js.map +1 -0
  49. package/dist/schemas/connect.d.ts +111 -0
  50. package/dist/schemas/connect.d.ts.map +1 -0
  51. package/dist/schemas/connect.js +46 -0
  52. package/dist/schemas/connect.js.map +1 -0
  53. package/dist/schemas/device.d.ts +221 -0
  54. package/dist/schemas/device.d.ts.map +1 -0
  55. package/dist/schemas/device.js +59 -0
  56. package/dist/schemas/device.js.map +1 -0
  57. package/dist/schemas/discovery.d.ts +892 -0
  58. package/dist/schemas/discovery.d.ts.map +1 -0
  59. package/dist/schemas/discovery.js +66 -0
  60. package/dist/schemas/discovery.js.map +1 -0
  61. package/dist/schemas/document.d.ts +351 -0
  62. package/dist/schemas/document.d.ts.map +1 -0
  63. package/dist/schemas/document.js +103 -0
  64. package/dist/schemas/document.js.map +1 -0
  65. package/dist/schemas/env.d.ts +265 -0
  66. package/dist/schemas/env.d.ts.map +1 -0
  67. package/dist/schemas/env.js +44 -0
  68. package/dist/schemas/env.js.map +1 -0
  69. package/dist/schemas/file.d.ts +274 -0
  70. package/dist/schemas/file.d.ts.map +1 -0
  71. package/dist/schemas/file.js +72 -0
  72. package/dist/schemas/file.js.map +1 -0
  73. package/dist/schemas/hook.d.ts +132 -0
  74. package/dist/schemas/hook.d.ts.map +1 -0
  75. package/dist/schemas/hook.js +58 -0
  76. package/dist/schemas/hook.js.map +1 -0
  77. package/dist/schemas/interaction.d.ts +1583 -0
  78. package/dist/schemas/interaction.d.ts.map +1 -0
  79. package/dist/schemas/interaction.js +112 -0
  80. package/dist/schemas/interaction.js.map +1 -0
  81. package/dist/schemas/jsonrpc.d.ts +314 -0
  82. package/dist/schemas/jsonrpc.d.ts.map +1 -0
  83. package/dist/schemas/jsonrpc.js +64 -0
  84. package/dist/schemas/jsonrpc.js.map +1 -0
  85. package/dist/schemas/methods.d.ts +3826 -0
  86. package/dist/schemas/methods.d.ts.map +1 -0
  87. package/dist/schemas/methods.js +311 -0
  88. package/dist/schemas/methods.js.map +1 -0
  89. package/dist/schemas/policy.d.ts +81 -0
  90. package/dist/schemas/policy.d.ts.map +1 -0
  91. package/dist/schemas/policy.js +66 -0
  92. package/dist/schemas/policy.js.map +1 -0
  93. package/dist/schemas/project.d.ts +506 -0
  94. package/dist/schemas/project.d.ts.map +1 -0
  95. package/dist/schemas/project.js +148 -0
  96. package/dist/schemas/project.js.map +1 -0
  97. package/dist/schemas/session.d.ts +730 -0
  98. package/dist/schemas/session.d.ts.map +1 -0
  99. package/dist/schemas/session.js +287 -0
  100. package/dist/schemas/session.js.map +1 -0
  101. package/dist/schemas/skill.d.ts +465 -0
  102. package/dist/schemas/skill.d.ts.map +1 -0
  103. package/dist/schemas/skill.js +103 -0
  104. package/dist/schemas/skill.js.map +1 -0
  105. package/dist/schemas/stream.d.ts +688 -0
  106. package/dist/schemas/stream.d.ts.map +1 -0
  107. package/dist/schemas/stream.js +133 -0
  108. package/dist/schemas/stream.js.map +1 -0
  109. package/package.json +52 -0
  110. package/src/index.ts +24 -0
  111. package/src/schemas/capabilities.ts +62 -0
  112. package/src/schemas/common.ts +119 -0
  113. package/src/schemas/connect.ts +50 -0
  114. package/src/schemas/device.ts +67 -0
  115. package/src/schemas/discovery.ts +80 -0
  116. package/src/schemas/document.ts +121 -0
  117. package/src/schemas/env.ts +60 -0
  118. package/src/schemas/file.ts +97 -0
  119. package/src/schemas/hook.ts +66 -0
  120. package/src/schemas/interaction.ts +135 -0
  121. package/src/schemas/jsonrpc.ts +80 -0
  122. package/src/schemas/methods.ts +414 -0
  123. package/src/schemas/policy.ts +71 -0
  124. package/src/schemas/project.ts +185 -0
  125. package/src/schemas/session.ts +336 -0
  126. package/src/schemas/skill.ts +121 -0
  127. package/src/schemas/stream.ts +149 -0
@@ -0,0 +1,132 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Hook / 人在回路 HITL(design §8)。
4
+ *
5
+ * 核心:phonon 自己不实现人在回路,只做事件中转 + 阻塞等裁决。
6
+ * phonon → server : hook.fired (到 hook 点抛事件)
7
+ * server → phonon : hook.resolve (裁决;服务端决定是否问真人、怎么问、等多久)
8
+ */
9
+ /** hook 触发载荷(phonon → server)。 */
10
+ export declare const HookFiredParams: z.ZodObject<{
11
+ sessionId: z.ZodBranded<z.ZodString, "SessionId">;
12
+ /** 本次 hook 的唯一 id,hook.resolve 用它配对。 */
13
+ hookId: z.ZodString;
14
+ hookType: z.ZodEnum<["pre_tool", "post_tool", "pre_command", "pre_file_write", "pre_network", "session_start", "session_end", "notification"]>;
15
+ /** 触发上下文:被拦截的操作详情(命令、工具名、参数、文件路径等)。 */
16
+ payload: z.ZodDefault<z.ZodObject<{
17
+ toolName: z.ZodOptional<z.ZodString>;
18
+ command: z.ZodOptional<z.ZodString>;
19
+ filePath: z.ZodOptional<z.ZodString>;
20
+ url: z.ZodOptional<z.ZodString>;
21
+ /** 其余 adapter 特定字段。 */
22
+ extra: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ toolName?: string | undefined;
25
+ command?: string | undefined;
26
+ filePath?: string | undefined;
27
+ url?: string | undefined;
28
+ extra?: Record<string, unknown> | undefined;
29
+ }, {
30
+ toolName?: string | undefined;
31
+ command?: string | undefined;
32
+ filePath?: string | undefined;
33
+ url?: string | undefined;
34
+ extra?: Record<string, unknown> | undefined;
35
+ }>>;
36
+ /** 该 turn 的关联 id(若在某轮对话内触发)。 */
37
+ turnId: z.ZodOptional<z.ZodString>;
38
+ at: z.ZodString;
39
+ }, "strip", z.ZodTypeAny, {
40
+ at: string;
41
+ sessionId: string & z.BRAND<"SessionId">;
42
+ hookId: string;
43
+ hookType: "pre_tool" | "post_tool" | "pre_command" | "pre_file_write" | "pre_network" | "session_start" | "session_end" | "notification";
44
+ payload: {
45
+ toolName?: string | undefined;
46
+ command?: string | undefined;
47
+ filePath?: string | undefined;
48
+ url?: string | undefined;
49
+ extra?: Record<string, unknown> | undefined;
50
+ };
51
+ turnId?: string | undefined;
52
+ }, {
53
+ at: string;
54
+ sessionId: string;
55
+ hookId: string;
56
+ hookType: "pre_tool" | "post_tool" | "pre_command" | "pre_file_write" | "pre_network" | "session_start" | "session_end" | "notification";
57
+ turnId?: string | undefined;
58
+ payload?: {
59
+ toolName?: string | undefined;
60
+ command?: string | undefined;
61
+ filePath?: string | undefined;
62
+ url?: string | undefined;
63
+ extra?: Record<string, unknown> | undefined;
64
+ } | undefined;
65
+ }>;
66
+ export type HookFiredParams = z.infer<typeof HookFiredParams>;
67
+ /**
68
+ * 裁决动作(server → phonon)。
69
+ * - continue : 放行,照常执行
70
+ * - inject : 先注入上下文再继续(用 context 字段)
71
+ * - modify : 用修改后的参数继续(用 patch 字段,如改写命令)
72
+ * - abort : 中止该操作(可带原因)
73
+ */
74
+ export declare const HookAction: z.ZodEnum<["continue", "inject", "modify", "abort"]>;
75
+ export type HookAction = z.infer<typeof HookAction>;
76
+ export declare const HookResolveParams: z.ZodObject<{
77
+ sessionId: z.ZodBranded<z.ZodString, "SessionId">;
78
+ /** 必须与对应 hook.fired 的 hookId 一致。 */
79
+ hookId: z.ZodString;
80
+ action: z.ZodEnum<["continue", "inject", "modify", "abort"]>;
81
+ /** action=inject 时:要注入的上下文。 */
82
+ context: z.ZodOptional<z.ZodArray<z.ZodObject<{
83
+ role: z.ZodEnum<["system", "user", "assistant"]>;
84
+ content: z.ZodString;
85
+ }, "strip", z.ZodTypeAny, {
86
+ role: "system" | "user" | "assistant";
87
+ content: string;
88
+ }, {
89
+ role: "system" | "user" | "assistant";
90
+ content: string;
91
+ }>, "many">>;
92
+ /** action=modify 时:对被拦截操作的修改(结构与该 hook 的 payload 对应)。 */
93
+ patch: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
94
+ /** action=abort 时:可选原因,会回传给 agent / 记录。 */
95
+ reason: z.ZodOptional<z.ZodString>;
96
+ }, "strip", z.ZodTypeAny, {
97
+ sessionId: string & z.BRAND<"SessionId">;
98
+ hookId: string;
99
+ action: "inject" | "continue" | "modify" | "abort";
100
+ reason?: string | undefined;
101
+ context?: {
102
+ role: "system" | "user" | "assistant";
103
+ content: string;
104
+ }[] | undefined;
105
+ patch?: Record<string, unknown> | undefined;
106
+ }, {
107
+ sessionId: string;
108
+ hookId: string;
109
+ action: "inject" | "continue" | "modify" | "abort";
110
+ reason?: string | undefined;
111
+ context?: {
112
+ role: "system" | "user" | "assistant";
113
+ content: string;
114
+ }[] | undefined;
115
+ patch?: Record<string, unknown> | undefined;
116
+ }>;
117
+ export type HookResolveParams = z.infer<typeof HookResolveParams>;
118
+ export declare const HookResolveResult: z.ZodObject<{
119
+ sessionId: z.ZodBranded<z.ZodString, "SessionId">;
120
+ hookId: z.ZodString;
121
+ applied: z.ZodBoolean;
122
+ }, "strip", z.ZodTypeAny, {
123
+ sessionId: string & z.BRAND<"SessionId">;
124
+ hookId: string;
125
+ applied: boolean;
126
+ }, {
127
+ sessionId: string;
128
+ hookId: string;
129
+ applied: boolean;
130
+ }>;
131
+ export type HookResolveResult = z.infer<typeof HookResolveResult>;
132
+ //# sourceMappingURL=hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/schemas/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;;;;;GAMG;AAEH,kCAAkC;AAClC,eAAO,MAAM,eAAe;;IAE1B,wCAAwC;;;IAGxC,uCAAuC;;;;;;QAOnC,uBAAuB;;;;;;;;;;;;;;;IAI3B,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,sDAAoD,CAAC;AAC5E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,iBAAiB;;IAE5B,oCAAoC;;;IAGpC,+BAA+B;;;;;;;;;;;IAE/B,yDAAyD;;IAEzD,2CAA2C;;;;;;;;;;;;;;;;;;;;;;EAE3C,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { z } from "zod";
2
+ import { SessionId, Timestamp } from "./common.js";
3
+ import { HookType } from "./capabilities.js";
4
+ import { ContextItem } from "./session.js";
5
+ /**
6
+ * Hook / 人在回路 HITL(design §8)。
7
+ *
8
+ * 核心:phonon 自己不实现人在回路,只做事件中转 + 阻塞等裁决。
9
+ * phonon → server : hook.fired (到 hook 点抛事件)
10
+ * server → phonon : hook.resolve (裁决;服务端决定是否问真人、怎么问、等多久)
11
+ */
12
+ /** hook 触发载荷(phonon → server)。 */
13
+ export const HookFiredParams = z.object({
14
+ sessionId: SessionId,
15
+ /** 本次 hook 的唯一 id,hook.resolve 用它配对。 */
16
+ hookId: z.string().min(1),
17
+ hookType: HookType,
18
+ /** 触发上下文:被拦截的操作详情(命令、工具名、参数、文件路径等)。 */
19
+ payload: z
20
+ .object({
21
+ toolName: z.string().optional(),
22
+ command: z.string().optional(),
23
+ filePath: z.string().optional(),
24
+ url: z.string().optional(),
25
+ /** 其余 adapter 特定字段。 */
26
+ extra: z.record(z.unknown()).optional(),
27
+ })
28
+ .default({}),
29
+ /** 该 turn 的关联 id(若在某轮对话内触发)。 */
30
+ turnId: z.string().optional(),
31
+ at: Timestamp,
32
+ });
33
+ /**
34
+ * 裁决动作(server → phonon)。
35
+ * - continue : 放行,照常执行
36
+ * - inject : 先注入上下文再继续(用 context 字段)
37
+ * - modify : 用修改后的参数继续(用 patch 字段,如改写命令)
38
+ * - abort : 中止该操作(可带原因)
39
+ */
40
+ export const HookAction = z.enum(["continue", "inject", "modify", "abort"]);
41
+ export const HookResolveParams = z.object({
42
+ sessionId: SessionId,
43
+ /** 必须与对应 hook.fired 的 hookId 一致。 */
44
+ hookId: z.string().min(1),
45
+ action: HookAction,
46
+ /** action=inject 时:要注入的上下文。 */
47
+ context: z.array(ContextItem).optional(),
48
+ /** action=modify 时:对被拦截操作的修改(结构与该 hook 的 payload 对应)。 */
49
+ patch: z.record(z.unknown()).optional(),
50
+ /** action=abort 时:可选原因,会回传给 agent / 记录。 */
51
+ reason: z.string().optional(),
52
+ });
53
+ export const HookResolveResult = z.object({
54
+ sessionId: SessionId,
55
+ hookId: z.string(),
56
+ applied: z.boolean(),
57
+ });
58
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/schemas/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;GAMG;AAEH,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,SAAS;IACpB,wCAAwC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,QAAQ,EAAE,QAAQ;IAClB,uCAAuC;IACvC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,uBAAuB;QACvB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;KACxC,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,EAAE,EAAE,SAAS;CACd,CAAC,CAAC;AAGH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAG5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,SAAS;IACpB,oCAAoC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,UAAU;IAClB,+BAA+B;IAC/B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;IACxC,yDAAyD;IACzD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,2CAA2C;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC"}