orbitmap 0.3.0 → 0.4.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.
Files changed (174) hide show
  1. package/README.md +546 -212
  2. package/dist/adapters/cloud.d.ts +367 -0
  3. package/dist/adapters/cloud.js +582 -0
  4. package/dist/adapters/cloud.js.map +1 -0
  5. package/dist/adapters/factory.d.ts +15 -0
  6. package/dist/adapters/factory.js +31 -0
  7. package/dist/adapters/factory.js.map +1 -0
  8. package/dist/adapters/local/adapter.d.ts +351 -0
  9. package/dist/adapters/local/adapter.js +346 -0
  10. package/dist/adapters/local/adapter.js.map +1 -0
  11. package/dist/adapters/local/context.d.ts +112 -0
  12. package/dist/adapters/local/context.js +137 -0
  13. package/dist/adapters/local/context.js.map +1 -0
  14. package/dist/adapters/local/entities/documents.d.ts +85 -0
  15. package/dist/adapters/local/entities/documents.js +251 -0
  16. package/dist/adapters/local/entities/documents.js.map +1 -0
  17. package/dist/adapters/local/entities/planning.d.ts +108 -0
  18. package/dist/adapters/local/entities/planning.js +540 -0
  19. package/dist/adapters/local/entities/planning.js.map +1 -0
  20. package/dist/adapters/local/entities/tasks.d.ts +95 -0
  21. package/dist/adapters/local/entities/tasks.js +442 -0
  22. package/dist/adapters/local/entities/tasks.js.map +1 -0
  23. package/dist/adapters/local/entities/work-items.d.ts +110 -0
  24. package/dist/adapters/local/entities/work-items.js +623 -0
  25. package/dist/adapters/local/entities/work-items.js.map +1 -0
  26. package/dist/adapters/local/rules.d.ts +172 -0
  27. package/dist/adapters/local/rules.js +319 -0
  28. package/dist/adapters/local/rules.js.map +1 -0
  29. package/dist/adapters/local/shapes.d.ts +209 -0
  30. package/dist/adapters/local/shapes.js +558 -0
  31. package/dist/adapters/local/shapes.js.map +1 -0
  32. package/dist/adapters/local/store.d.ts +200 -0
  33. package/dist/adapters/local/store.js +665 -0
  34. package/dist/adapters/local/store.js.map +1 -0
  35. package/dist/adapters/local/types.d.ts +226 -0
  36. package/dist/adapters/local/types.js +41 -0
  37. package/dist/adapters/local/types.js.map +1 -0
  38. package/dist/adapters/types.d.ts +332 -0
  39. package/dist/adapters/types.js +2 -0
  40. package/dist/adapters/types.js.map +1 -0
  41. package/dist/agent-instructions.d.ts +25 -9
  42. package/dist/agent-instructions.js +285 -237
  43. package/dist/agent-instructions.js.map +1 -1
  44. package/dist/api-client.d.ts +8 -239
  45. package/dist/api-client.js +8 -403
  46. package/dist/api-client.js.map +1 -1
  47. package/dist/commands/agents.d.ts +1 -1
  48. package/dist/commands/agents.js +10 -10
  49. package/dist/commands/agents.js.map +1 -1
  50. package/dist/commands/areas.d.ts +3 -0
  51. package/dist/commands/areas.js +29 -0
  52. package/dist/commands/areas.js.map +1 -0
  53. package/dist/commands/assign.d.ts +3 -2
  54. package/dist/commands/assign.js +52 -15
  55. package/dist/commands/assign.js.map +1 -1
  56. package/dist/commands/context.d.ts +1 -1
  57. package/dist/commands/context.js +18 -12
  58. package/dist/commands/context.js.map +1 -1
  59. package/dist/commands/create-area.d.ts +7 -0
  60. package/dist/commands/create-area.js +29 -0
  61. package/dist/commands/create-area.js.map +1 -0
  62. package/dist/commands/create.d.ts +3 -1
  63. package/dist/commands/create.js +5 -8
  64. package/dist/commands/create.js.map +1 -1
  65. package/dist/commands/dep.d.ts +2 -2
  66. package/dist/commands/dep.js +3 -3
  67. package/dist/commands/dep.js.map +1 -1
  68. package/dist/commands/doc-import.d.ts +1 -1
  69. package/dist/commands/doc-import.js +2 -2
  70. package/dist/commands/doc-import.js.map +1 -1
  71. package/dist/commands/doc-patch.d.ts +1 -1
  72. package/dist/commands/doc-patch.js +2 -2
  73. package/dist/commands/doc-patch.js.map +1 -1
  74. package/dist/commands/doc-share.d.ts +6 -6
  75. package/dist/commands/doc-share.js +13 -13
  76. package/dist/commands/doc-share.js.map +1 -1
  77. package/dist/commands/doc-update.d.ts +1 -1
  78. package/dist/commands/doc-update.js +2 -2
  79. package/dist/commands/doc-update.js.map +1 -1
  80. package/dist/commands/doc.d.ts +1 -1
  81. package/dist/commands/doc.js +5 -4
  82. package/dist/commands/doc.js.map +1 -1
  83. package/dist/commands/docs-cache.d.ts +2 -2
  84. package/dist/commands/docs-cache.js +3 -3
  85. package/dist/commands/docs-cache.js.map +1 -1
  86. package/dist/commands/docs.d.ts +1 -1
  87. package/dist/commands/docs.js +2 -2
  88. package/dist/commands/docs.js.map +1 -1
  89. package/dist/commands/get.d.ts +1 -1
  90. package/dist/commands/get.js +43 -3
  91. package/dist/commands/get.js.map +1 -1
  92. package/dist/commands/ideas.d.ts +4 -4
  93. package/dist/commands/ideas.js +6 -11
  94. package/dist/commands/ideas.js.map +1 -1
  95. package/dist/commands/init.d.ts +45 -3
  96. package/dist/commands/init.js +452 -104
  97. package/dist/commands/init.js.map +1 -1
  98. package/dist/commands/intent.d.ts +41 -0
  99. package/dist/commands/intent.js +237 -0
  100. package/dist/commands/intent.js.map +1 -0
  101. package/dist/commands/issues.d.ts +6 -5
  102. package/dist/commands/issues.js +8 -12
  103. package/dist/commands/issues.js.map +1 -1
  104. package/dist/commands/log.d.ts +1 -1
  105. package/dist/commands/log.js +2 -2
  106. package/dist/commands/log.js.map +1 -1
  107. package/dist/commands/mission.d.ts +42 -0
  108. package/dist/commands/mission.js +219 -0
  109. package/dist/commands/mission.js.map +1 -0
  110. package/dist/commands/orbit.d.ts +40 -3
  111. package/dist/commands/orbit.js +231 -58
  112. package/dist/commands/orbit.js.map +1 -1
  113. package/dist/commands/overview.d.ts +2 -2
  114. package/dist/commands/overview.js +25 -28
  115. package/dist/commands/overview.js.map +1 -1
  116. package/dist/commands/setup-agent.d.ts +27 -0
  117. package/dist/commands/setup-agent.js +85 -30
  118. package/dist/commands/setup-agent.js.map +1 -1
  119. package/dist/commands/setup-mcp.d.ts +1 -1
  120. package/dist/commands/setup-mcp.js +20 -49
  121. package/dist/commands/setup-mcp.js.map +1 -1
  122. package/dist/commands/start.d.ts +1 -1
  123. package/dist/commands/start.js +2 -2
  124. package/dist/commands/start.js.map +1 -1
  125. package/dist/commands/status.d.ts +2 -1
  126. package/dist/commands/status.js +3 -3
  127. package/dist/commands/status.js.map +1 -1
  128. package/dist/commands/subtask.d.ts +1 -1
  129. package/dist/commands/subtask.js +2 -2
  130. package/dist/commands/subtask.js.map +1 -1
  131. package/dist/commands/task-edit-content.d.ts +1 -1
  132. package/dist/commands/task-edit-content.js +2 -2
  133. package/dist/commands/task-edit-content.js.map +1 -1
  134. package/dist/commands/task.d.ts +10 -3
  135. package/dist/commands/task.js +19 -21
  136. package/dist/commands/task.js.map +1 -1
  137. package/dist/commands/tasks.d.ts +1 -1
  138. package/dist/commands/tasks.js +2 -2
  139. package/dist/commands/tasks.js.map +1 -1
  140. package/dist/commands/vibes.d.ts +4 -4
  141. package/dist/commands/vibes.js +5 -5
  142. package/dist/commands/vibes.js.map +1 -1
  143. package/dist/config.d.ts +69 -9
  144. package/dist/config.js +206 -23
  145. package/dist/config.js.map +1 -1
  146. package/dist/doc-cache.d.ts +23 -3
  147. package/dist/doc-cache.js +72 -12
  148. package/dist/doc-cache.js.map +1 -1
  149. package/dist/errors.d.ts +19 -2
  150. package/dist/errors.js +35 -0
  151. package/dist/errors.js.map +1 -1
  152. package/dist/id-resolve.d.ts +61 -0
  153. package/dist/id-resolve.js +87 -0
  154. package/dist/id-resolve.js.map +1 -0
  155. package/dist/index.js +477 -104
  156. package/dist/index.js.map +1 -1
  157. package/dist/mcp-config.d.ts +36 -0
  158. package/dist/mcp-config.js +51 -0
  159. package/dist/mcp-config.js.map +1 -0
  160. package/dist/oauth.d.ts +8 -0
  161. package/dist/oauth.js +54 -15
  162. package/dist/oauth.js.map +1 -1
  163. package/dist/output.js +7 -2
  164. package/dist/output.js.map +1 -1
  165. package/dist/paths.d.ts +97 -0
  166. package/dist/paths.js +178 -0
  167. package/dist/paths.js.map +1 -0
  168. package/dist/project-config.d.ts +75 -0
  169. package/dist/project-config.js +55 -0
  170. package/dist/project-config.js.map +1 -0
  171. package/dist/workspace-resolve.d.ts +158 -0
  172. package/dist/workspace-resolve.js +284 -0
  173. package/dist/workspace-resolve.js.map +1 -0
  174. package/package.json +53 -50
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning.js","sourceRoot":"","sources":["../../../../src/adapters/local/entities/planning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Local-mode task surface (spec §4.5, §6, task T6).
3
+ *
4
+ * Every function takes the shared {@link LocalContext} and returns the Agent API
5
+ * envelope for the matching endpoint. Domain validation is delegated to `rules.ts`;
6
+ * envelope construction to `shapes.ts`; all file I/O to `store.ts`.
7
+ */
8
+ import { type LocalContext } from '../context.js';
9
+ import type { FoundEntity } from '../types.js';
10
+ type TaskFile = FoundEntity<'task'>;
11
+ /** `createTask` payload; `mission_id` is the local extension for `--mission`. */
12
+ export interface CreateTaskInput {
13
+ title: string;
14
+ description?: string;
15
+ status?: string;
16
+ priority?: string;
17
+ agent_instructions?: string;
18
+ branch_name?: string;
19
+ estimated_effort?: string;
20
+ agent_id?: string;
21
+ area_id?: string;
22
+ source_issue_id?: string;
23
+ intent_id?: string;
24
+ mission_id?: string;
25
+ orbit_id?: string | null;
26
+ }
27
+ /**
28
+ * Resolve a task reference: `TS-000001`, the bare code `000001`, or the task uuid.
29
+ * Throws `NOT_FOUND` when nothing matches.
30
+ */
31
+ export declare function requireTaskFile(ctx: LocalContext, ref: string): Promise<TaskFile>;
32
+ /** `GET /tasks` — area-scoped, with comma-separated status/priority filters. */
33
+ export declare function listTasks(ctx: LocalContext, options?: {
34
+ status?: string;
35
+ priority?: string;
36
+ areaId?: string;
37
+ orbit?: string;
38
+ }): Promise<unknown>;
39
+ /** `GET /tasks/{id}` — accepts a uuid, `TS-000001` or the bare code. */
40
+ export declare function getTask(ctx: LocalContext, taskId: string): Promise<unknown>;
41
+ /** `GET /tasks/by-number/{number}` — the CLI strips the `TS-` prefix first. */
42
+ export declare function getTaskByNumber(ctx: LocalContext, taskNumber: string): Promise<unknown>;
43
+ /** `POST /tasks`. */
44
+ export declare function createTask(ctx: LocalContext, data: CreateTaskInput): Promise<unknown>;
45
+ /** `POST /tasks/{id}/subtasks` — N ordinary task files carrying `parent_task`. */
46
+ export declare function createSubtasks(ctx: LocalContext, parentId: string, subtasks: Array<{
47
+ title: string;
48
+ description?: string;
49
+ priority?: string;
50
+ estimated_effort?: string;
51
+ }>): Promise<unknown>;
52
+ /** `PATCH /tasks/{id}/content`. */
53
+ export declare function editTaskContent(ctx: LocalContext, taskId: string, data: {
54
+ title?: string;
55
+ description?: string;
56
+ agent_instructions?: string;
57
+ }): Promise<unknown>;
58
+ /** `POST /tasks/{id}/assign` — only the implicit `local-agent` / `me` are accepted. */
59
+ export declare function assignTask(ctx: LocalContext, taskId: string, assignment: {
60
+ agent_id: string;
61
+ } | {
62
+ user_id: number;
63
+ }): Promise<unknown>;
64
+ /** `POST /assign` — generic assignment for tasks, issues, ideas and intents. */
65
+ export declare function assignItem(ctx: LocalContext, objectType: 'task' | 'issue' | 'idea' | 'intent', objectId: string, assignment: {
66
+ agent_id: string;
67
+ } | {
68
+ user_id: number;
69
+ }): Promise<unknown>;
70
+ /**
71
+ * `POST /tasks/start` (auto-pick, rule 8) or `POST /tasks/{id}/start`.
72
+ * Returns the full task context plus the area's `agent_instructions_template`
73
+ * as `area_instructions`, or `{ data: null }` when nothing is startable.
74
+ */
75
+ export declare function startTask(ctx: LocalContext, taskId?: string): Promise<unknown>;
76
+ /**
77
+ * `PATCH /tasks/{id}/status` — status and/or delivery status.
78
+ * `force` bypasses the parent-completion rule (§6.2, `--force`).
79
+ */
80
+ export declare function updateTaskStatus(ctx: LocalContext, taskId: string, status?: string, deliveryStatus?: string | null, force?: boolean): Promise<unknown>;
81
+ /** `POST /tasks/{id}/dependencies`. */
82
+ export declare function addTaskDependency(ctx: LocalContext, taskId: string, data: {
83
+ target_task_id: string;
84
+ type?: string;
85
+ note?: string;
86
+ }): Promise<unknown>;
87
+ /** `DELETE /tasks/{id}/dependencies/{target}`. */
88
+ export declare function removeTaskDependency(ctx: LocalContext, taskId: string, targetTaskId: string, type?: string): Promise<unknown>;
89
+ /**
90
+ * `POST /tasks/{id}/logs` — appends exactly one
91
+ * `### <iso> · <type> · <author>` entry to the `## Work Log` section.
92
+ * Existing entries are copied verbatim (spec §4.5, append-only).
93
+ */
94
+ export declare function logWork(ctx: LocalContext, taskId: string, type: string, content: string, _metadata?: Record<string, unknown>): Promise<unknown>;
95
+ export {};
@@ -0,0 +1,442 @@
1
+ /**
2
+ * Local-mode task surface (spec §4.5, §6, task T6).
3
+ *
4
+ * Every function takes the shared {@link LocalContext} and returns the Agent API
5
+ * envelope for the matching endpoint. Domain validation is delegated to `rules.ts`;
6
+ * envelope construction to `shapes.ts`; all file I/O to `store.ts`.
7
+ */
8
+ import { OrbitMapAPIError } from '../../../errors.js';
9
+ import { LOCAL_AGENT_ID, LOCAL_CREATED_BY, LOCAL_USER_ID, LOCAL_USER_NAME, newId, requireAreaFile, resolveAreaRef, } from '../context.js';
10
+ import { assertDeliveryStatus, assertEnum, assertIntentExclusiveMission, assertNoDependencyCycle, assertParentCompletable, assertPriority, assertReferencesResolve, assertTaskStatus, buildDependencyGraph, selectNextTask, TASK_LOG_TYPES, VIBE_TYPES, validationError, } from '../rules.js';
11
+ import { appendWorkLogEntry, assignItemEnvelope, assignTaskEnvelope, buildTaskBody, dependencyAddEnvelope, dependencyRemoveEnvelope, documentEntry, logWorkEnvelope, parseDescription, parseWorkLog, replaceDescription, subtasksEnvelope, taskContentEnvelope, taskCreateEnvelope, taskDetailData, taskListItem, taskStatusEnvelope, tasksListEnvelope, } from '../shapes.js';
12
+ import { nowIso } from '../store.js';
13
+ /** Log types the CLI accepts on `orbitmap log` (task log types + the vibe extras). */
14
+ const LOG_TYPES = [...new Set([...TASK_LOG_TYPES, ...VIBE_TYPES])];
15
+ /** Dependency relationship types the API supports. */
16
+ const DEPENDENCY_TYPES = ['depends_on', 'related'];
17
+ // ── Lookups ─────────────────────────────────────────────────────────────────
18
+ /**
19
+ * Resolve a task reference: `TS-000001`, the bare code `000001`, or the task uuid.
20
+ * Throws `NOT_FOUND` when nothing matches.
21
+ */
22
+ export async function requireTaskFile(ctx, ref) {
23
+ const trimmed = ref.trim();
24
+ const numbers = [];
25
+ if (/^[A-Za-z]{2}-/.test(trimmed)) {
26
+ numbers.push(`${trimmed.slice(0, 2).toUpperCase()}${trimmed.slice(2)}`);
27
+ }
28
+ else if (/^[0-9a-zA-Z]+$/.test(trimmed)) {
29
+ numbers.push(`TS-${trimmed}`);
30
+ }
31
+ for (const number of numbers) {
32
+ const found = await ctx.store.tryReadEntity('task', number);
33
+ if (found)
34
+ return found;
35
+ }
36
+ const all = await ctx.store.listEntities('task');
37
+ const byId = all.find((file) => file.frontmatter.id === trimmed);
38
+ if (byId)
39
+ return byId;
40
+ throw new OrbitMapAPIError(`Task \`${ref}\` was not found in this workspace.`, 'NOT_FOUND', 404);
41
+ }
42
+ /** The `area.yml` a task file lives in. */
43
+ async function areaOfTask(ctx, file) {
44
+ if (file.area)
45
+ return ctx.store.readArea(file.area);
46
+ return requireAreaFile(ctx);
47
+ }
48
+ // ── Detail assembly ─────────────────────────────────────────────────────────
49
+ async function detailFor(ctx, file) {
50
+ const area = await areaOfTask(ctx, file);
51
+ const task = file.frontmatter;
52
+ const areaTasks = (await ctx.store.listEntities('task', { area: file.area })).map((entry) => entry.frontmatter);
53
+ const byNumber = new Map(areaTasks.map((entry) => [entry.task_number, entry]));
54
+ const resolve = (numbers) => numbers
55
+ .map((number) => byNumber.get(number))
56
+ .filter((entry) => entry !== undefined);
57
+ const documents = await documentEntries(ctx);
58
+ return taskDetailData({
59
+ task,
60
+ area,
61
+ workspace: ctx.workspace,
62
+ description: parseDescription(file.body),
63
+ logs: parseWorkLog(file.body),
64
+ subtasks: areaTasks.filter((entry) => entry.parent_task === task.task_number),
65
+ dependsOn: resolve(task.depends_on ?? []),
66
+ blocks: areaTasks.filter((entry) => (entry.depends_on ?? []).includes(task.task_number)),
67
+ related: resolve(task.related ?? []),
68
+ documents,
69
+ });
70
+ }
71
+ async function documentEntries(ctx) {
72
+ const docs = await ctx.store.listDocuments();
73
+ return docs.map((doc) => documentEntry(doc.frontmatter, doc.body));
74
+ }
75
+ // ── Read surface ────────────────────────────────────────────────────────────
76
+ /** `GET /tasks` — area-scoped, with comma-separated status/priority filters. */
77
+ export async function listTasks(ctx, options = {}) {
78
+ const area = await resolveAreaRef(ctx, options.areaId);
79
+ const files = await ctx.store.listEntities('task', { area: area.slug });
80
+ const statuses = splitFilter(options.status);
81
+ const priorities = splitFilter(options.priority);
82
+ const items = files
83
+ .map((file) => file.frontmatter)
84
+ .filter((task) => statuses.length === 0 || statuses.includes(task.status))
85
+ .filter((task) => priorities.length === 0 || priorities.includes(task.priority))
86
+ .sort(byListOrder)
87
+ .map((task) => taskListItem(task, parseDescription(files.find((file) => file.frontmatter.task_number === task.task_number)?.body ??
88
+ '')));
89
+ return tasksListEnvelope(items);
90
+ }
91
+ /** `GET /tasks/{id}` — accepts a uuid, `TS-000001` or the bare code. */
92
+ export async function getTask(ctx, taskId) {
93
+ const file = await requireTaskFile(ctx, taskId);
94
+ return { data: await detailFor(ctx, file) };
95
+ }
96
+ /** `GET /tasks/by-number/{number}` — the CLI strips the `TS-` prefix first. */
97
+ export async function getTaskByNumber(ctx, taskNumber) {
98
+ return getTask(ctx, taskNumber);
99
+ }
100
+ // ── Create ──────────────────────────────────────────────────────────────────
101
+ /** `POST /tasks`. */
102
+ export async function createTask(ctx, data) {
103
+ const title = (data.title ?? '').trim();
104
+ if (title.length === 0) {
105
+ throw validationError('Task creation', 'title is required.');
106
+ }
107
+ const area = await resolveAreaRef(ctx, data.area_id);
108
+ const status = assertTaskStatus(data.status ?? 'todo');
109
+ const priority = assertPriority(data.priority ?? 'medium');
110
+ const intent = normaliseRef(data.intent_id);
111
+ const mission = normaliseRef(data.mission_id);
112
+ await assertLinks(ctx, { intent, mission });
113
+ const sourceIssueNumber = await resolveSourceIssue(ctx, data.source_issue_id);
114
+ const sortOrder = await nextSortOrder(ctx, area.slug);
115
+ const now = nowIso();
116
+ const created = await ctx.store.createEntity('task', (taskNumber) => ({
117
+ frontmatter: {
118
+ id: newId(),
119
+ task_number: taskNumber,
120
+ title,
121
+ status,
122
+ priority,
123
+ parent_task: null,
124
+ intent,
125
+ mission,
126
+ mission_position: null,
127
+ orbit: null,
128
+ assigned_agent: data.agent_id ?? LOCAL_AGENT_ID,
129
+ assigned_user: null,
130
+ branch_name: data.branch_name ?? null,
131
+ delivery_status: null,
132
+ estimated_effort: data.estimated_effort ?? null,
133
+ sort_order: sortOrder,
134
+ depends_on: [],
135
+ related: [],
136
+ agent_instructions: data.agent_instructions ?? null,
137
+ source_issue: sourceIssueNumber,
138
+ created_by: LOCAL_CREATED_BY,
139
+ created_at: now,
140
+ updated_at: now,
141
+ },
142
+ body: buildTaskBody(data.description ?? null),
143
+ }), { area: area.slug });
144
+ return taskCreateEnvelope(created.frontmatter, area, { sourceIssueNumber });
145
+ }
146
+ /** `POST /tasks/{id}/subtasks` — N ordinary task files carrying `parent_task`. */
147
+ export async function createSubtasks(ctx, parentId, subtasks) {
148
+ const parentFile = await requireTaskFile(ctx, parentId);
149
+ const parent = parentFile.frontmatter;
150
+ const area = await areaOfTask(ctx, parentFile);
151
+ if (!Array.isArray(subtasks) || subtasks.length === 0) {
152
+ throw validationError('Subtask creation', 'at least one subtask is required.');
153
+ }
154
+ const created = [];
155
+ let sortOrder = await nextSortOrder(ctx, area.slug);
156
+ for (const input of subtasks) {
157
+ const title = (input.title ?? '').trim();
158
+ if (title.length === 0) {
159
+ throw validationError('Subtask creation', 'every subtask needs a title.');
160
+ }
161
+ const priority = assertPriority(input.priority ?? parent.priority ?? 'medium');
162
+ const now = nowIso();
163
+ const file = await ctx.store.createEntity('task', (taskNumber) => ({
164
+ frontmatter: {
165
+ id: newId(),
166
+ task_number: taskNumber,
167
+ title,
168
+ status: 'todo',
169
+ priority,
170
+ parent_task: parent.task_number,
171
+ intent: parent.intent ?? null,
172
+ mission: parent.mission ?? null,
173
+ mission_position: null,
174
+ orbit: null,
175
+ assigned_agent: parent.assigned_agent ?? LOCAL_AGENT_ID,
176
+ assigned_user: null,
177
+ branch_name: null,
178
+ delivery_status: null,
179
+ estimated_effort: input.estimated_effort ?? null,
180
+ sort_order: sortOrder,
181
+ depends_on: [],
182
+ related: [],
183
+ agent_instructions: null,
184
+ created_by: LOCAL_CREATED_BY,
185
+ created_at: now,
186
+ updated_at: now,
187
+ },
188
+ body: buildTaskBody(input.description ?? null),
189
+ }), { area: area.slug });
190
+ created.push(file.frontmatter);
191
+ sortOrder += 1;
192
+ }
193
+ return subtasksEnvelope(parent, created);
194
+ }
195
+ // ── Edit ────────────────────────────────────────────────────────────────────
196
+ /** `PATCH /tasks/{id}/content`. */
197
+ export async function editTaskContent(ctx, taskId, data) {
198
+ const file = await requireTaskFile(ctx, taskId);
199
+ const updated = [];
200
+ if (data.title !== undefined) {
201
+ file.frontmatter.title = data.title;
202
+ updated.push('title');
203
+ }
204
+ if (data.agent_instructions !== undefined) {
205
+ file.frontmatter.agent_instructions = data.agent_instructions;
206
+ updated.push('agent_instructions');
207
+ }
208
+ if (data.description !== undefined) {
209
+ file.body = replaceDescription(file.body, data.description);
210
+ updated.push('description');
211
+ }
212
+ if (updated.length === 0) {
213
+ throw validationError('Task content update', 'at least one of title, description or agent_instructions must be provided.');
214
+ }
215
+ file.frontmatter.updated_at = nowIso();
216
+ await ctx.store.writeEntity(file);
217
+ return taskContentEnvelope(file.frontmatter, updated, parseDescription(file.body));
218
+ }
219
+ // ── Assignment ──────────────────────────────────────────────────────────────
220
+ /** `POST /tasks/{id}/assign` — only the implicit `local-agent` / `me` are accepted. */
221
+ export async function assignTask(ctx, taskId, assignment) {
222
+ const file = await requireTaskFile(ctx, taskId);
223
+ applyAssignment(file.frontmatter, assignment);
224
+ file.frontmatter.updated_at = nowIso();
225
+ await ctx.store.writeEntity(file);
226
+ return assignTaskEnvelope(file.frontmatter);
227
+ }
228
+ /** `POST /assign` — generic assignment for tasks, issues, ideas and intents. */
229
+ export async function assignItem(ctx, objectType, objectId, assignment) {
230
+ if (objectType === 'task') {
231
+ return assignTask(ctx, objectId, assignment);
232
+ }
233
+ const file = await ctx.store.requireEntity(objectId);
234
+ if (file.kind !== objectType) {
235
+ throw validationError('Assignment', `${objectId} is a ${file.kind}, not a ${objectType}.`);
236
+ }
237
+ const record = file.frontmatter;
238
+ applyAssignment(record, assignment);
239
+ record.updated_at = nowIso();
240
+ await ctx.store.writeEntity(file);
241
+ return assignItemEnvelope(String(record.id), record.assigned_agent ?? null, record.assigned_user ?? null);
242
+ }
243
+ function applyAssignment(record, assignment) {
244
+ if ('user_id' in assignment) {
245
+ if (Number(assignment.user_id) !== LOCAL_USER_ID) {
246
+ throw validationError('Local assignment', `local mode has exactly one user (\`${LOCAL_USER_NAME}\`, id ${LOCAL_USER_ID}) — ` +
247
+ `user ${assignment.user_id} does not exist.`);
248
+ }
249
+ record.assigned_user = LOCAL_USER_NAME;
250
+ record.assigned_agent = null;
251
+ return;
252
+ }
253
+ if (assignment.agent_id !== LOCAL_AGENT_ID) {
254
+ throw validationError('Local assignment', `local mode has exactly one agent (\`${LOCAL_AGENT_ID}\`) — ` +
255
+ `agent "${assignment.agent_id}" does not exist.`);
256
+ }
257
+ record.assigned_agent = LOCAL_AGENT_ID;
258
+ record.assigned_user = null;
259
+ }
260
+ // ── Start / status ──────────────────────────────────────────────────────────
261
+ /**
262
+ * `POST /tasks/start` (auto-pick, rule 8) or `POST /tasks/{id}/start`.
263
+ * Returns the full task context plus the area's `agent_instructions_template`
264
+ * as `area_instructions`, or `{ data: null }` when nothing is startable.
265
+ */
266
+ export async function startTask(ctx, taskId) {
267
+ let file;
268
+ if (taskId) {
269
+ file = await requireTaskFile(ctx, taskId);
270
+ }
271
+ else {
272
+ const area = await requireAreaFile(ctx);
273
+ const files = await ctx.store.listEntities('task', { area: area.slug });
274
+ const picked = selectNextTask(files.map((entry) => entry.frontmatter), { agent: LOCAL_AGENT_ID });
275
+ if (!picked) {
276
+ return {
277
+ data: null,
278
+ meta: { message: `No todo tasks available in area \`${area.slug}\`.` },
279
+ };
280
+ }
281
+ file = files.find((entry) => entry.frontmatter.task_number === picked.task_number);
282
+ }
283
+ const area = await areaOfTask(ctx, file);
284
+ if (file.frontmatter.status !== 'in_progress') {
285
+ file.frontmatter.status = 'in_progress';
286
+ file.frontmatter.updated_at = nowIso();
287
+ }
288
+ if (!file.frontmatter.assigned_agent && !file.frontmatter.assigned_user) {
289
+ file.frontmatter.assigned_agent = LOCAL_AGENT_ID;
290
+ }
291
+ await ctx.store.writeEntity(file);
292
+ const detail = await detailFor(ctx, file);
293
+ return {
294
+ data: {
295
+ ...detail,
296
+ area_instructions: area.agent_instructions_template ?? null,
297
+ },
298
+ };
299
+ }
300
+ /**
301
+ * `PATCH /tasks/{id}/status` — status and/or delivery status.
302
+ * `force` bypasses the parent-completion rule (§6.2, `--force`).
303
+ */
304
+ export async function updateTaskStatus(ctx, taskId, status, deliveryStatus, force = false) {
305
+ const file = await requireTaskFile(ctx, taskId);
306
+ const task = file.frontmatter;
307
+ if (status !== undefined) {
308
+ const next = assertTaskStatus(status);
309
+ const siblings = await ctx.store.listEntities('task', { area: file.area });
310
+ assertParentCompletable(task.task_number, next, siblings
311
+ .map((entry) => entry.frontmatter)
312
+ .filter((entry) => entry.parent_task === task.task_number), force);
313
+ task.status = next;
314
+ }
315
+ if (deliveryStatus !== undefined) {
316
+ task.delivery_status = assertDeliveryStatus(deliveryStatus);
317
+ }
318
+ task.updated_at = nowIso();
319
+ await ctx.store.writeEntity(file);
320
+ return taskStatusEnvelope(task);
321
+ }
322
+ // ── Dependencies ────────────────────────────────────────────────────────────
323
+ /** `POST /tasks/{id}/dependencies`. */
324
+ export async function addTaskDependency(ctx, taskId, data) {
325
+ const type = assertEnum('dependency type', data.type ?? 'depends_on', DEPENDENCY_TYPES);
326
+ const file = await requireTaskFile(ctx, taskId);
327
+ const targetFile = await requireTaskFile(ctx, data.target_task_id);
328
+ const task = file.frontmatter;
329
+ const target = targetFile.frontmatter;
330
+ if (type === 'depends_on') {
331
+ const tasks = (await ctx.store.listEntities('task')).map((entry) => entry.frontmatter);
332
+ assertNoDependencyCycle(task.task_number, target.task_number, buildDependencyGraph(tasks));
333
+ task.depends_on = addUnique(task.depends_on, target.task_number);
334
+ }
335
+ else {
336
+ task.related = addUnique(task.related, target.task_number);
337
+ }
338
+ task.updated_at = nowIso();
339
+ await ctx.store.writeEntity(file);
340
+ return dependencyAddEnvelope(task, target, type, data.note ?? null);
341
+ }
342
+ /** `DELETE /tasks/{id}/dependencies/{target}`. */
343
+ export async function removeTaskDependency(ctx, taskId, targetTaskId, type) {
344
+ const resolvedType = type === undefined
345
+ ? undefined
346
+ : assertEnum('dependency type', type, DEPENDENCY_TYPES);
347
+ const file = await requireTaskFile(ctx, taskId);
348
+ const targetFile = await requireTaskFile(ctx, targetTaskId);
349
+ const task = file.frontmatter;
350
+ const target = targetFile.frontmatter;
351
+ if (resolvedType === undefined || resolvedType === 'depends_on') {
352
+ task.depends_on = removeValue(task.depends_on, target.task_number);
353
+ }
354
+ if (resolvedType === undefined || resolvedType === 'related') {
355
+ task.related = removeValue(task.related, target.task_number);
356
+ }
357
+ task.updated_at = nowIso();
358
+ await ctx.store.writeEntity(file);
359
+ return dependencyRemoveEnvelope(task, target, resolvedType ?? 'depends_on');
360
+ }
361
+ // ── Work log ────────────────────────────────────────────────────────────────
362
+ /**
363
+ * `POST /tasks/{id}/logs` — appends exactly one
364
+ * `### <iso> · <type> · <author>` entry to the `## Work Log` section.
365
+ * Existing entries are copied verbatim (spec §4.5, append-only).
366
+ */
367
+ export async function logWork(ctx, taskId, type, content, _metadata) {
368
+ const logType = assertEnum('log type', type, LOG_TYPES);
369
+ const text = (content ?? '').trim();
370
+ if (text.length === 0) {
371
+ throw validationError('Work log', 'log content must not be empty.');
372
+ }
373
+ const file = await requireTaskFile(ctx, taskId);
374
+ const createdAt = nowIso();
375
+ file.body = appendWorkLogEntry(file.body, {
376
+ created_at: createdAt,
377
+ type: logType,
378
+ author: LOCAL_CREATED_BY,
379
+ content: text,
380
+ });
381
+ file.frontmatter.updated_at = createdAt;
382
+ await ctx.store.writeEntity(file);
383
+ const index = parseWorkLog(file.body).length;
384
+ return logWorkEnvelope(`${file.frontmatter.task_number}-log-${index}`, file.frontmatter, logType);
385
+ }
386
+ // ── Internals ───────────────────────────────────────────────────────────────
387
+ function splitFilter(value) {
388
+ if (!value)
389
+ return [];
390
+ return value
391
+ .split(',')
392
+ .map((part) => part.trim())
393
+ .filter((part) => part.length > 0);
394
+ }
395
+ function byListOrder(a, b) {
396
+ const orderA = a.sort_order ?? 0;
397
+ const orderB = b.sort_order ?? 0;
398
+ if (orderA !== orderB)
399
+ return orderA - orderB;
400
+ return (a.created_at ?? '') < (b.created_at ?? '') ? -1 : 1;
401
+ }
402
+ function normaliseRef(value) {
403
+ if (value === undefined || value === null)
404
+ return null;
405
+ const trimmed = value.trim();
406
+ if (trimmed.length === 0)
407
+ return null;
408
+ return `${trimmed.slice(0, 2).toUpperCase()}${trimmed.slice(2)}`;
409
+ }
410
+ /** Rules 3 + 4: references must resolve and mission is intent-exclusive. */
411
+ async function assertLinks(ctx, item) {
412
+ assertIntentExclusiveMission(item);
413
+ const intents = await ctx.store.listEntities('intent');
414
+ const missions = await ctx.store.listEntities('mission');
415
+ assertReferencesResolve(item, {
416
+ intents: intents.map((entry) => entry.frontmatter.intent_number),
417
+ missions: missions.map((entry) => entry.frontmatter.mission_number),
418
+ });
419
+ }
420
+ async function resolveSourceIssue(ctx, ref) {
421
+ if (!ref)
422
+ return null;
423
+ const found = await ctx.store.findEntity(ref);
424
+ if (!found || found.kind !== 'issue') {
425
+ throw validationError('Reference containment', `source issue \`${ref}\` does not exist in this workspace.`);
426
+ }
427
+ return String(found.frontmatter.issue_number);
428
+ }
429
+ async function nextSortOrder(ctx, area) {
430
+ const tasks = await ctx.store.listEntities('task', { area });
431
+ return tasks.reduce((max, entry) => Math.max(max, Number(entry.frontmatter.sort_order ?? 0)), 0) + 1;
432
+ }
433
+ function addUnique(list, value) {
434
+ const next = [...(list ?? [])];
435
+ if (!next.includes(value))
436
+ next.push(value);
437
+ return next;
438
+ }
439
+ function removeValue(list, value) {
440
+ return [...(list ?? [])].filter((entry) => entry !== value);
441
+ }
442
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../../src/adapters/local/entities/tasks.ts"],"names":[],"mappings":"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"}